资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
查询方式:发送数据先发后查; 接收数据先查后收。中断方式:发送数据发送、等待中断、中断中发送; 接收数据等待中断、在中断中接收。下面让我们通过两个列子进一步看一下两者的区别:/*查询方式实现的串口通讯*/#include#define uint unsigned int#define uchar unsigned charuchar code table=E-mail:xtxy_esl163.com ;uchar i,temp;void init_ser() /串口初始化 TMOD=0x20; /定时器1工作于方式2 TH1=0xf3; /娤初值波特率为2400 TL1=0xf3; TR1=1; /开定时器1 SCON=0x50; /设置串口方式1 允许接收 EA=0; /关总中断 void out_ser() /串口输出 while(tablei != 0) SBUF=tablei; while(!TI); /注意“;” TI=0; i+; i=0; SBUF=temp; while(!TI); TI=0; void main() init_ser(); /串口初始化 while(1) /必须在大循环中 if(RI) /扫描是否接收到数据(一个字节) RI=0; temp=SBUF; out_ser(); /串口输出 /*中断方式实现的串口通讯*/#include#define uint unsigned int#define uchar unsigned char/uchar code table=you get ;uchar temp,flag;void init_ser() /串口初始化 TMOD=0x20; /定时器1工作于方式2 TH1=0xfd; /娤初值波特率为 TL1=0xfd; TR1=1; /开定时器1 SCON=0x50; /设置串口方式1 允许接收 EA=1; /开总中断 ES=1; /开串口中断 void main() init_ser(); while(1) if(flag=1) ES=0; SBUF=temp; while(!TI); TI=0; ES=1; flag=0; void ser() interrupt 4 temp=SBUF; /读走数据 RI=0; flag=1; 3
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号