欢迎来到天天文库
浏览记录
ID:15800582
大小:25.50 KB
页数:3页
时间:2018-08-05
《pic单片机自学手记之串口通信》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、//////////以下字符里面的0x0d,0x0a是换行符//////////#include#defineucharunsignedchar#defineuintunsignedint__CONFIG(0x3B31);ucharLED_CODE[]={'I','.','L','O','V','E','.','Y','O','U',0x0d,0x0a,'k'};voiddelay500us(ucharr);voidsenddata();voidinit();voidmain(){init();//系统初始化wh
2、ile(1){//等待发送}}voidinit(){TRISC=0xFF;//注意接收端一定要设置成输入不然不能接收操作TRISB=0xFF;//B端口设置成输入(按键操作发送用途)TRISD=0x00;//D端口设置成输出PORTD=0xFF;//D端口初始输出高TRISA=0x00;//A端口设置成输出PORTA=0x00;//A端口初始输出高TXSTA=0x24;//发送数据控制位配置0B00100100RCSTA=0x90;//接收数据控制位配置0B10010000SPBRG=25;//波特率设置9600RCIE=1;
3、//接收使能TXIE=1;//发送使能PEIE=1;//外中断使能GIE=1;//总中断开启}//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·////~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~///*voidinterruptrc()//串口接收中断{if(RCIE&&RCIF)//判断接收中断是否置位{uchartemp;//定义个字符型临时变量temp=RCR
4、EG;//将接收到的串口数据存到临时变量里面以便后面操作TXREG=PORTD=temp;//=temp;while(!TRMT);}}*///~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·////~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//voidinterrupttx()//串口发送中断{if(TXIE&&TXIF)//判断发送中断是否置位{if(RB0==0
5、)//检测按键0是否按下{delay500us(20);//按键被按下后延时消抖if(RB0==0)//再次判断是否按下{senddata();//调用发送一个字符串的子函数}}while(!RB0);//按键松手检测}}voiddelay500us(ucharr)//500US延时子函数{uintp,m;for(p=0;p6、)//判断i的值是否不等于'k'将ILOVEYOU这个字符串一个个装入移位寄存器{TXREG=LED_CODE[i];//发送字符串ILOVEYOU到PC机while(!TRMT);//检测移位寄存器是否发完发完为1没有发完是0i++;//i的值加1}}
6、)//判断i的值是否不等于'k'将ILOVEYOU这个字符串一个个装入移位寄存器{TXREG=LED_CODE[i];//发送字符串ILOVEYOU到PC机while(!TRMT);//检测移位寄存器是否发完发完为1没有发完是0i++;//i的值加1}}
此文档下载收益归作者所有