(通信企业管理)多机通信举例

上传人:管****问 文档编号:128092357 上传时间:2020-04-08 格式:DOC 页数:6 大小:54.07KB
返回 下载 相关 举报
(通信企业管理)多机通信举例_第1页
第1页 / 共6页
(通信企业管理)多机通信举例_第2页
第2页 / 共6页
(通信企业管理)多机通信举例_第3页
第3页 / 共6页
(通信企业管理)多机通信举例_第4页
第4页 / 共6页
(通信企业管理)多机通信举例_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《(通信企业管理)多机通信举例》由会员分享,可在线阅读,更多相关《(通信企业管理)多机通信举例(6页珍藏版)》请在金锄头文库上搜索。

1、多机通信举例:例84 现有1台主机与10台从机进行双向通信。从机地址为:00H09H 。设主、从机以方式3进行串行通信,波特率为1200,F晶振为6MHZ。下面以主机发送数据,从机接收数据为例说明。主机设定有关寄存器的内容如下:R1存放主机发送的数据块首地址R2存放寻址的从机地址R3存放主机发送数据块的长度通信命令约定: “01H”:表示主机发送数据,从机接收数据;“02H”:表示主机接收数据,从机发送数据。主机通信程序流程图如图88所示: 开始 定时器T1 初始化 串行口初始化向从机发送地址接收从机返回的地址发送无效地址FFH从机地址相符? N Y向从机发送命令 延 时 发 送 数 据 块

2、结束图88 主机通信程序流程图由图88流程图可得主机通信程序清单如下:MAIN:MOV TMOD, #20H ;定时器T1设置工作方式2。 MOV TL1, #0F3H ;T1置初值。 MOV TH1, #0F3H SETB TR1 ;启动T1。 MOV PCON, #00H ;波特率不倍增。 MOV SCON, #0D8H ;串行口设置工作方式3,TB8置1,表示发送地址。SADDR:MOV A, R2 ;取出从机地址。 MOV SBUF, A ;发送从机地址。 JNB RI, $ ;等待从机应答。 CLR RI ;接收到从机应答,RI清零。 MOV A, SBUF ;取出从机应答数据(从机

3、地址)。 XRL A, R2 ;核对应答地址。 JZ MSEND ;若地址相符转发送命令。SETB TB8 ;地址不相符,置地址标志,以便重发地址。CLR TIMOV SBUF, #0FFH ;发送无效地址,使所有从机SM2置1。 SJMP SADDR ;重发地址。 MSEND:CLR TB8 ;地址相符,准备发送命令、数据等。 MOV SBUF, #01H ;发送命令,要求从机接收数据。 LCALL DELAY10 ;延迟10MS。 MAGAIN: MOV SBUF, R1 ;主机发送数据。 JNB TI, $ ;等待一个字符发送完。 CLR TI ;本字符发送完毕,准备发送下一个字符。 I

4、NC R1 ;发送数据区地址指针加一,指向下一单元。 DJNZ R3, MAGAIN ;数据快未发送完,继续发送。 RET ;发送完毕,返回。以#08H号从机接收为例,设定:R1:存放从机接收数据块首地址;R2:存放从机接收数据块长度。从机通信程序流程图如图89所示: 定时器T1 初始化 串行口初始化接收 数 据 块开始接收主机发送的地址本机SM2位清零接收主机命令命令识别主机发送,从机接收?主机接收,从机发送?发送数据块(略)结 束是本机地址?本机SM2置1 N Y N Y N Y 图89 从机通信程序流程图 由图89可得从机通信程序清单如下: MOV TMOD, #20H ;T1设置工作方

5、式2。 MOV TL1, #0F3H ;置初值。 MOV TH1, #0F3H SETB TR1 ;启动T1。 MOV PCON, #00H ;波特率不倍增。 MOV SCON, #0F0H ;本机串行口设置工作方式3,SM2置1,准备接收地址信息。 WAIT:JNB RI, $ ;等待主机联络。CLR RI ;接收到主机地址信息,清RI,准备接收下一数据。 MOV A, SBUF ;取出接收到的地址信息。 XRL A, #08H ;与本机比较。 JZ SADDR ;是本机地址,转发送本机地址程序。 SETB SM2 ;本机SM2置1,以便重新接收地址。 AJMP WAIT ;不是本机地址,再

6、重新联络。SADDR:MOV SBUF, #08H ;发送本地址,供主机核对。CLR TI CLR SM2 ;准备接收命令。 JNB RI, $ ;接收主机发送的命令。 CLR RI MOV 70H, SBUF MOV A, 70H ;取出命令。 XRL A, #01H ;检查命令。 JZ RECIV ;若为本机接收数据命令,转接收程序。 XRL A, #02H ;再次检查命令。 JZ SEND ;若为本机发送数据命令,转发送程序。AJMP WAIT ;命令无效,返回待命状态。RECIV:JNB RI, $ ;接收一个字符。 CLR RI ;准备下次接收。 MOV R1, SBUF ;存接收数

7、据。 INC R1 ;修改接收数据区指针。 DJNZ R2, RECIV ;若数据接收未完,继续接收。 SETB SM2 ;数据接收完毕,SM2重新置1。 LJMP WAIT ;返回待命状态。SEND :(略) 应当指出,以上介绍了多机通信的一个简单示例,实际应用时还应考虑命令校核、数据校核等问题,以求提高通信的可靠性。同时波特率的设定还要考虑所选择的通信介质等,篇幅有限,不再细述。思考题与习题81 什么是串行通信的波特率?82 若8051单片机F晶振=11.059MHZ,需用波特率2400,试计算定时器T1的记数初值。 83 MCS51单片机的串行口 四种工作方式各有哪些特点? 84 MCS

8、51单片机串行口四种工作方式的波特率如何确定? 85 试用8051串行口工作方式0与移位寄存器组成6位LED静态电路,并编程输出字符”89C51P”。86 试编写程序,设串行口为工作方式1,波特率为1200,禁止中断,用查询法将甲机从外部RAM 2000H开始的10个数传送到乙机从2000H开始的外部RAM中去,已知晶振频率F晶振11.0592MHZ。87 甲乙两机进行串行通信,数据区均为内部RAM的50H5FH,串行口 以方式2工作,要求用TB8作奇偶校验位一起传送,波特率为1200,F晶振=11.059MHZ,试设计流程图并编程。88 8051向外部设备传送数据,串行口工作在方式3,单片机和外设之间采用9位异步通信方式,波特率为2400。F晶振为11.0592MHZ。现设从内部RAM的60H70H中数据从串行口输出,试设计流程图并编程。89 简述单片机多机通信的原理。810 若将例84 该成主机接收数据,#08号从机发送数据,试设计流程图并编程。 187

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

当前位置:首页 > 商业/管理/HR > 营销创新

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