7.3.2 串行口方式1的应用——双机通信

7.3.2 串行口方式1的应用——双机通信

80C51串行口的方式1在串行通信中应用的最多,也是双机通信的主要方式。在通信中有主从式和对等式,多机通信比较常用主从式,双机通信一般采用对等式。下面主要介绍一下全双工的对等式的双机通信方式。

通信双方的硬件连接可以直接连接或经过电平转换连接。如图7-16所示,两个单片机间采用TTL电平直接传输信息,其传输距离一般不应超过5 m。

图7-16 双机通信直连方式连接图

实际应用中通常采用RS-232C标准电平进行点对点的通信连接,如图7-17所示。两个单片机间采用MAX232芯片进行电平转换,实现两个单片机间远程通信连接。

图7-17 双机通信电平转换方式连接

【例7-3】 双机通信查询方式程序设计。

双机通信约定采用方式1,每帧信息为10位,设波特率为2 400 baud,定时器/计数器T1工作在定时方式2,晶振频率选用11.059 2 MHz,查表可得TH1=TL1=0F4H,PCON的SMOD位为0。双机通信程序流程图如图7-18所示。

图7-18 双机通信程序流程图

设发送方单片机为1号机,接收方单片机为2号机。当1号机发送时,先发送一个“E1”联络信号,2号机收到后回答一个“E2”应答信号,表示同意接收。当1号机收到应答信号“E2”后,开始发送数据,每发送一数据字节都要计算“校验和”。假定数据块长度为16字节,起始地址为40 H,一个数据块发送完毕后立即发送“校验和”。

2号机接收数据并转存到数据缓冲区,起始地址也为40H,每接收到一个数据字节便计算一次“校验和”。当收到一个数据块后,再接收1号机发来的“校验和”,并将它与2号机求出的校验和进行比较。若两者相等,说明接收正确,2号机回答00H;若两者不相等,说明接收不正确,2号机回答0FFH,请求重发。

1号机接到00H后结束发送。若收到的答复非零,则重新发送数据一次。

【例7-4】 双机通信中断方式程序设计。

双机通信采用串行口方式1,晶振频率为6 MHz,波特率约定为9 600 baud。

接收程序如下。

汇编语言参考程序:

C51语言参考程序:

发送程序如下。

汇编语言参考程序: