电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

80C51单片机双机通讯与多机通讯的运用办法

2017-04-22 10:49分类:PLC基础知识 阅读:

  80C51单片机之间的串行通讯首要可分为双机通讯和多机通讯,本节举例阐明双机通讯与多机通讯的运用办法。
1.双机通讯硬件电路
假定两个80C51单片机体系间隔较近,那么就能够将它们的串行口直接相连,完毕双机通讯,如图1所示。


图1 双机异步通讯接口电路
为了添加通讯间隔,削减通道和电源搅扰,能够在通讯线路上选用光电阻隔的办法,运用RS-422A规范进行双机通讯,有用的接口电路如图2所示。


图2 RS-422A双机异步通讯接口电路
2.双机通讯软件编程
关于双机通讯选用两种办法:查询办法和接连办法。
(1)查询办法
例 在双机通讯中,设置串行口作业于办法3,波特率为9600,守时器T1作业于办法2,容许接纳,单片机主频fosc=6MHZ,编写初始化编程序。
剖析:
①设置SCON寄存器
串行口作业于办法3,SM0SM1=11。双机通讯不需求发送地址,SM2=0。容许接纳REN=1。所以SCON=11010000B=0D0H。
②核算守时器T1计数初值,波特率不加倍,smod=0。
可写出:
COUNT=254=0FEH
③初始化程序


例 当1号机开端发送时,先送出一个“A1”信号,2号机收到后答复一个“B2”信号,标明附和接纳。当1号机收到“B2”信号后,开端发送数据,每发送一次求一个“校验和,早年进通讯的牢靠性。设数据块为10个字节,数据缓冲区的开端地址是40H,数据块发完后立刻发送“校验和”。2号机接纳数据并将其转存到40H开端的缓冲区,每接纳到一个数据也求一次“校验和”,数据块收完后,再接纳1号机发来的“校验和”,并与2号机求出的效果比照照。如二者持平,阐明接纳精确,2号机答复“00H”;若两者不等,阐明接纳过错,2号机答复“0FFH”,恳求重发。1号机收到“00H”的答复后,完毕发送。若收到的答复非零,则将数据重发一次。假定两头约好的传输波特率为1200bps,振动频率为11.0592Hz,T1作业在办法2。
解:


查表可知,TH1=TL1=0E8H,PCON的SMOD位为0。程序流程图如图所示,程序清单如下。


(2)接连办法
为跋涉CPU的运喫苦率,大大都的通讯程序格外是接纳程序运用接连办法。
例 单工办法的双机通讯。 假定甲乙机以办法1进行串行数据通讯,其波特率为1200, 甲机发送,发送数据在外部RAM 4000H-401FH单元中。乙机接纳,并把接纳到的数据块首末地址和数据顺次放入外部RAM 5000H开端的区域中。
剖析:
①设甲、乙机的时钟频率均为6MHz,然后机器周期为2μs。
②smod波特率不倍增,然后PCON=00H,至于smod啥时分为0,啥时分为1,能够依据需求来挑选,详细地说,波特率较大,则smod=1,不然smod=0
③由公式可知波特率为:
计数初值=COUNT=243=F3H
④串行数据的发送(或接纳)的内容包含数据块首末地址和数据两有些内容。对数据块首末地址以查询办法传送,而数据则以接连办法传送。因而在程序中要先阻遏串行接连,后容许串行接连。
甲机发送主程序:


甲机接连效劳程序:
ACINT: CLR TI ;清发送接连
MOVX A,@DPTR ;读数据
MOV SBUF,A ;发送字符
INC DPTR
DJNZ R7, LOOP ;未发送完转LOOP
CLR ES ;阻遏串行接连
CLR TR1 ;守时器1接连计数
LOOP: RETI ;接连回来
乙机接纳主程序:
留神:上述程序4个接纳地址的程序段可用一个循环程序来替代,此处为了与发送程序对应故分为4段书写。
乙机接连效劳程序:


在试验进程中,应先施行乙机的接纳程序,然后施行甲机的发送程序。

上一篇:Modbus多机通信例程

下一篇:串行扩展的特点

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部