单片机单机与多机通信

上传人:ni****g 文档编号:507464808 上传时间:2024-03-07 格式:DOC 页数:88 大小:1.64MB
返回 下载 相关 举报
单片机单机与多机通信_第1页
第1页 / 共88页
单片机单机与多机通信_第2页
第2页 / 共88页
单片机单机与多机通信_第3页
第3页 / 共88页
单片机单机与多机通信_第4页
第4页 / 共88页
单片机单机与多机通信_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《单片机单机与多机通信》由会员分享,可在线阅读,更多相关《单片机单机与多机通信(88页珍藏版)》请在金锄头文库上搜索。

1、12.2MCS-51单片机双机串行通讯技术12.2.1双机通讯接口设计根据8031单片机双机通讯距离,抗干扰性等要求,可选择TIL电平传输,或选择阳一232C、RS-422A、RS-485串行接口进行串行数据传输。1.TTL电平通讯接口如果两个8031应用系统相距在1米之内,它们的串行口可直接相连,从而实现了双机通讯。如图12.11所示。2RS-232C双机通讯接口如果双机通讯距离在30米之内,可利用RS-232C标准接口实现双机通讯,接口电路如图12.12图12.11用TIL电平传输方法实现双机串行所75通讯的接口电路3RS-422A双机通讯接口为了增加通讯距离,减小通道及电源干扰,可以在通

2、讯线路上采用光电隔离方法,利用RS-422A标准进行双机通讯,接口电路如图12.13所示。图12.12RS-232C双机通讯接口电路在图12.13中,每个通道的接收端都接有三个电阻R1、R2、R3,其中R1为传输线的匹配电阻,取值范围在50Qlkn之间,其他两个电阻是为了解决第一个数据的误码而设置的匹配电阻。为了起到隔离、抗干扰的作用,图12.13中必须使用两组独立的电源。4.RS-485双机通讯接口RS-422A双机通讯需四芯传输线,这对工业现场的长距离通讯是很不经济的,故在工业现场,通常采用双绞线传输的RS-485串行通讯,这种接口很容易实现多机通讯。图12.14给出了其RS-485双机通

3、讯接口电路。由图12.14可知:RS-485以双向、半双工的方式实现了双机通讯。在8031系统发送或接263收数据前,应先将75176的发送门或接收门打开,当P1O=1时,发送门打开,接收门关闭;当P1.O=O时,接收门打开,发送门关闭。12.13RS-422A双机通讯接口电路图12.14RS-485双机通讯接口电路12.2.2双机通讯软件设计除RS-485串行通讯夕卜,TTL、RS-232C、RS-422A双机通讯的软件设计方法是一样的,下面举一例加以说明,有关RS-485串行通讯软件的设计方法将在12.5节中介绍。1 通讯协议为确保通讯成功,通讯双方必须在软件上有一系列的约定,通常称为通讯

4、协议。本例规定双机异步通讯的协议如下:(1) 通讯的甲、乙双方均可发送和接收。(2) 通讯波特率为2400波特,定时器T1工作在方式2,对于6MHz时钟频率,计数常数为F3H,SMOD=10(3) 双方均采用串行口方式3。(4) 欲发送或接收的数据块首地址存放在64H、63H,其中64H为首地址高字节暂存单元,63H为首地址字节暂存单元;数据块长度存放在62H.61H中,其中62H为数据长度高字节暂存单元,61H为数据长度低字节暂存单元。(5) 发送或接收的数据格式为:双字节地址双字节数据个数n数据1数据n累加校验和双字节地址:低地址字节在前,高地址字节在后;双字节数据个数:数据个数的低字节在

5、前,高字节在后;数据1数据m所通讯的n字节数据;累加校验和:为双字节地址,双字节数据个数n,数据1,,数据n这n+4个字节的算术累加和,用作校验。(6) 接收方接收到校验和后,判断接收的数据是否正确。若接收正确,向发送方回发OFH信号,否则,回发FOH信号。#(7) 甲、乙双方均采用串行口中断方式接收和发送数据。2 中断方式双机通讯软件设计根据上述通讯协议,设计的数据发送、接收程序框图如图12.15、图12.16、图12.17所示。返回图12.15、乙机发送子程序图12.16甲、乙机接收子程序框图框在主程序中,如某一方需要发送时,调用发送子程序,另一方则调用接收子程离,反之亦然。主程序结构如下

6、:ORGUMPORGLJMPORG0000HSTART0023HINT0030HSTART:(略)在接收子程序中,假设接收到的数据存放在以1000H为首地址的外部RAM区中;数据个数为100H;65H中存累加和;7FH为数据类型标志位;R2中的数用来确定接收到的数是地址还是数据个数。#1117甲.乙机串行中断服务子程序框甲、乙机接收子程序RX:RX:MOVMOVMOVMOVMOVMOVSEIBSETBMOVMOVMOVMOVMOVSETBSETBWATT1:JBR2,#03HTMOD,#20HTH1,#F3HTL1,#0F3HSCON,#OFOHPCON,#80HTH17FH65H,#00H6

7、4H,#10H63H,#OOH62H,#01H61H,#00HEAESES,WAm;定时器T1为方式2,波特率2400;串行口方式3,允许接收;启动定时器;标志位初始化置1;清累加和寄存器;规定接收数据存入首地址为1000H外存中;数据个数为100H;允许串行口中断;没接收完,等待RET在发送子程序中,假设发送的数据首地址为2000H;发送的数据个数为100H;累加和寄存器为65H;7FH为数据类型标志位;R2中的数表示发送的是地址还是数据个数;66H中为数传成功标志。甲、乙机发送子程序IX:TX;MOVMOVMOVMOVMOVMOVSETBSETBMOVMOVMOVMOVMOVSETBSET

8、BWATI2:JBRETR2,#03HTMOD,#20HTH1,OF3HTL1.0F3HSCON.OEOHPCON,#80HTRI7FH65H,#00H64H,#20H63H,#00H62H,#01H61H,#00HEAESES,WATI2;定时器T1为方式2,波特率2400;串行口方式3,不允许接收;启动定时器;标志位初始化置1;清累加和寄存器;发送数据首地址为2000H;数据个数100H;允许串行口中断;没发送完,等待甲乙机串行口中断发送或接收子程序INT:INT:JBU,SNDSJMPRCV;转换收程序SND:MOVC,SM2#JNCSBATCH;SM2=0转发送数据程序,SM2=1发送

9、首地址和数据块长度CJNER2,#O3H,TT1;R2h#03H转TTlMOVSBUF,63H;R2=#03H,发送首地址低字节MOVDPL,63HSJMPTT4TTl:CJNER2,#O2H,TT2;R2#02H转TI2MOVSBUF.64H;R2=#02H发送首地址高字节MOVDPH,64HSJMPTT4TI2:QJNER2,#01H,TI3;R2工#01H转TI3MOVR0,61H;R2=#01H发送数据块长度低字节MOVSBUF,ROSJMPTT4TIB:MOVR1,62H;R2=#00H发送数据块长度高字节MOVSBUF,R1CLRSM2;清除发送地址和数据块长度标志TI4:DECR

10、2CLRTIRED1*pSBADCH;JB7FH,TXDATA;7FH=1转发送数据块MOVXA,DFIRMOVSBUF,A;发送累加校验和WAIT3:JNBTI,WAn3;等待发完CLRTISETBREN;允许接收WAIT4:JNBRI,WAIT4;等待接收对方回答MOVA,SBUF-MOV66H,A;回答信息存入66H中,以备主程序判断是否重发CLRRICLRREN;禁止接收CLRES;禁止串行中断RETITXDATA:MOVXA,DPTR;发送数据块MOVSBUF,ACJNERO,#OOH,TT5;数据块长度低字节工#00H,转TT5DECRl;数据块长度低字节=#00H时,高字节减1T

11、I5:DECRO;数据块长度低字节减1INCDPTR;地址增CLR71CJNERl,#OOH,RFT1CJNERO,#OOH,RPT1;数据块长度高低字节均为0时,中断返回CLR7FH;清除发送数据块标志RPT1:ROTRCV:MOVC,SM2268JNCRBATCHCJNER2,#O3H,RR1MOVDPL.SBUFMOV63H,DPLMOVA,65HADDA,63HMOV65H,ASJMPRR4RR1:CJNER2,#02H,RR2MOVDPH,SBUFMOV64H.DPHMOVA,65HADDA,64HMOV65H,ASJMPRR4RR2:CJNER2,#01H,RR3MOVRO,SBU

12、FMOV61H,R0MOVA,65HADDA,61HMOV65H,ASJMPRR4RR3:MOVR1,SBUFMOV62H,R1MOVA,65HADDA,62HMOV65H,ACLRSM2RR4:DECR2CLRRIRETIRBATCH:JB7FH,RXDATAMOVA,SBUFMOVXDPTR,ACLRRICJNEA,65H,ERRMOVA,#OFHMOVSBUF,AWAITS:JNBWAITSCLRnSJMPENDDERR:MOVA,#OFOHMOVSBUF,AWATT6:JNBn,WAir6;SM2-0转换接收数据程序,SM2=:1接收首地址和数据块长度#03H转RR1;R2=#03H接收首地址低字节;形成校验和;R2#02H转RR2;R2=02H接收首地址高字节;形成校验和;R2=#01H转RR3;R2=#02H接收数据块长度低字节;形成校验和;接收数据块长度高字节;形成校验和

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号