Uart串口收发程序.ppt

Uart串口收发程序.ppt

ID:50243265

大小:1.15 MB

页数:50页

时间:2020-03-10

Uart串口收发程序.ppt_第1页
Uart串口收发程序.ppt_第2页
Uart串口收发程序.ppt_第3页
Uart串口收发程序.ppt_第4页
Uart串口收发程序.ppt_第5页
资源描述:

《Uart串口收发程序.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、3.1MCS-51机间通信的C语言编程3.2键盘和数码显示人机交互的C语言编程三C51应用编程设计3.1MCS-51机间通信的C语言编程3.1.1点对点的串行异步通信1.通信双方的硬件连接图3.18031间RS—232C电平信号的传2.通信双方的约定图3.2点对点通信的程序框图3.点对点通信编程点对点通信双方基本等同,只是人为规定一个为发送,一个为接收。要求两机串行口的波特率相同,因而发送和接收方串行口的初始化相同。可编制含有初始化函数、发送函数接收函数的程序,在主函数中根据程序的发送、接收设置TR,采用条件判别决定使

2、用发送函数还是接收函数。这样点对点通信的双方都可运行此程序,只需在程序运行之前人为设置选择TR,一个令TR=0,一个令TR=1,然后分别编译,在两机上分别装入,同时运行。例1点对点通信。点对点通信的程序如下:#include#defineucharunsignedchar#defineTR1/*发送接收差别值TR=0发送*/ucharidatabuf[10];ucharpf;voidinit(void)/*串行口初始化*/{TMOD=0x20;/*设T/C1为定时方式2*/TH1=0xe8;/*设定波

3、特率*/TL1=0xe8;PCON=0x00;TR1=1;/*启动T/C1*/SCON=0x50;/*串行口工作在方式1*/}voidsend(ucharidata*d){uchari;do{SBUF=0xaa;/*发送联络信号*/while(TI==0);/*等待发送出去*/TI=0;while(RI==0);/*等待B机回答*/RI=0;}while((SBUF^0xbb)!=0);/*B机未准备好,继续联络*/do{pf=0;/*清校验和*/for(i=0;i<16;i++){SBUF=d[i];/*发送一个数据

4、*/pf+=d[i];/*求校验和*/while(TI==0);TI=0;}SBUF=pf;/*发送校验和*/while(TI==0);TI=0;while(RI==0);RI=0;/*等待B机回答*/}while(SBUF!=0);/*回答出错,则重发*/}voidreceive(ucharidata*d){uchari;do{while(RI==0);RI=0;}while((SBUF^0xaa)!=0);/*判A机请求否*/SBUF=0xbb;/*发应答信号*/while(TI==0);TI=0;while(1)

5、{pf=0;/*清校验和*/for(i=0;i<16;i++){while(RI==0);RI=0;d[i]=SBUF;/*接收一个数据*/pf+=d[i];/*求校验和*/}while(RI==0);RI=0;/*接收A机校验和*/if((SBUF^pf)==0)/*比较校验和*/{SBUF=0x00;break;}/*校验和相同发"00"*/else{SBUF=0xff;/*出错发"FF",重新接收*/while(TI==0);TI=0;}}}voidmain(void){init();if(TR==0){send

6、(buf);}else{receive(buf);}}3.1.2多机通信1.通信接口图3.3总线式主从式多机系统2.通信协议根据MCS-51串行口的多机通信能力,多机通信可以按照以下协议进行:(1)首先使所有从机的SM2位置1处于只接收地址帧的状态。(2)主机先发送一帧地址信息,其中8位地址,第9位为地址/数据信息的标志位,该位置1表示该帧为地址信息。(3)从机接收到地址帧后,各自将接收的地址与本机的地址比较。对于地址相符的那个从机,使SM2位清零,以接收主机随后发来的所有信息;对于地址不符的从机,仍保持SM2=1,对

7、主机随后发来的数据不予理睬,直至发送新的地址帧。(4)当从机发送数据结束后,发送一帧校验和,并置第9位(TB8)为1,作为从机数据传送结束标志。(5)主机接收数据时先判断数据结束标志(RB8),若RB8=1,表示数据传送结束,并比较此帧校验和,若正确,则会送正确信号00H,此信号令该从机复位(即重新等待地址帧);若校验和出错,则发送0FFH,令该从机重发数据。若接收帧的RB8=0,则原数据到缓冲区,并准备接收下帧信息。(6)若主机向从机发送数据,从机在第(3)步中比较地址相符后,从机令SM2=0,同时把本站地址发回主机

8、。作为应答之后才能收到主机发送来的数据。其它从机(SM2=1),无法收到数据。(7)主机收到从机的应答地址后,确认地址是否相符。如果地址不符,发复位信号(数据帧中TB8=1);如果地址相符,则清TB8,开始发送数据。(8)从机接收到复位命令后回到监听地址状态(SM2=1)。否则开始接收数据和命令。3.通信程序设主机发送的地址联络信

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。