您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 通过8251A双机通信
双机通信,一个发送,另一个接收,异步,波特率因子16,字符7位,2个停止位,奇校验,允许发送和允许接收,出错复位。设计硬件图和编写相应的程序。解:(1)分析:每台机配一片8251A,近距离通信,通信线直接相连,不需要转换成RS232。(2)绘制硬件图:1D7-D0D7-D0ABABRD#WR#RD#WR#CLKCLKTxCRxCA1A1CS#CS#C/D#C/D#TxDRxDGNDGND译码器译码器8251A(1)8251A(2)2设A机的奇地址是42H,偶地址是40H。B机也一样。3(3)编制程序:A机发送程序:BUFFERDB‘100MESSAGES‘START:MOVAL,0DAH;写模式字OUT42H,ALMOVAL,15H;写控制字OUT42H,ALMOVSI,OFFERSETBUFFER;取发送信息的首址MOVAL,[SI];先发第一个字符OUT40H,ALMOVCX,99;发送100个字符,已发一个,所以还要循环99次NEXT:INAL,42H;读状态TESTAL,01H;检查TXRDY的状态JNZNEXTINCSI;数据指针加1MOVAL,[SI];取下一个数OUT40H,AL;发送LOOPNEXT;循环直至100个字符发完HLT这里可加校验11011010x0x101x14B机接收程序BUFFERDB100DUP()START:MOVAL,0DAH;写模式字OUT42H,ALMOVAL,15H;写控制字OUT42H,ALMOVDI,OFFESETBUFFER;取数据缓冲区首址MOVCX,100;准备接收100个字符NEXT:INAL,42H;读状态字TESTAL,02H;检测RXRDY的状态JZNEXTTESTAL,38H;检查是否出错JNZERRORINAL,40H;读取收到的字符MOV[DI],AL;保存到缓冲区INCDI;指针加1,准备存放下一个数LOOPNEXT;完成100个字符的接收ERROR:CALLDISPLAY;调用出错显示程序HLT
本文标题:通过8251A双机通信
链接地址:https://www.777doc.com/doc-5136624 .html