//////////以下字符里面的 0x0d,0x0a 是换行符//////////
#include
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3B31);
uchar LED_CODE[]={'I','.','L','O','V','E','.','Y','O','U',0x0d,0x0a,'k'};
void delay500us(uchar r);
void senddata();
void init();
void main()
{
init();//系统初始化
while(1)
{
//等待发送
}
}
void init()
{
TRISC=0xFF;//注意接收端一定要设置成输入不然不能接收操作
TRISB=0xFF;//B 端口设置成输入(按键操作发送用途)
TRISD=0x00;//D 端口设置成输出
PORTD=0xFF;//D 端口初始输出高
TRISA=0x00;//A 端口设置成输出
PORTA=0x00;//A 端口初始输出高
TXSTA=0x24;//发送数据控制位配置 0B 0010 0100
RCSTA=0x90;//接收数据控制位配置 0B 1001 0000
SPBRG=25;//波特率设置 9600
RCIE=1;//接收使能
TXIE=1;//发送使能
PEIE=1;//外中断使能
GIE=1;//总中断开启
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
/*void interrupt rc()//串口接收中断
{
if(RCIE&&RCIF)//判断接收中断是否置位
{
}
uchar temp;//定义个字符型临时变量
temp=RCREG;//将接收到的串口数据存到临时变量里面以便后面操作
TXREG=PORTD=temp;
//=temp;
while(!TRMT);
}*/
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void interrupt tx()//串口发送中断
{
if(TXIE&&TXIF)//判断发送中断是否置位
{
if(RB0==0)//检测按键 0 是否按下
{
}
delay500us(20);//按键被按下后延时消抖
if(RB0==0)//再次判断是否按下
{
senddata();//调用发送一个字符串的子函数
}
while(!RB0);//按键松手检测
}
}
void delay500us(uchar r)//500US 延时子函数
{
uint p,m;
for(p=0;p
}
}