logo资料库

PIC单片机rs232串口通信源代码并附详细备注说明.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
//////////以下字符里面的 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
} }
分享到:
收藏