双机通信系统单片机课程设计 下载本文

设计概况 .......................................................... 2 1 总体设计 ........................................................ 3

1.1 设计要求 .................................................. 3 1.2 设计方案 .................................................. 3 2 双机通信硬件设计 ................................................ 4

2.1 AT89C51简介 .............................................. 4 2.2 AT89C51串行口的工作方式 .................................. 5 2.3 晶振电路设计 .............................................. 8 2.4 复位电路设计 .............................................. 8 2.5 接口电路的设计 ............................................ 9 2.6 输入输出电路设计 .......................................... 11 3 双机通信软件设计 ............................................... 13

3.1 串行通信软件实现 ......................................... 13 3.2 串行通信程序流程 ......................................... 13 3.3 程序清单 ................................................. 16 4 软件仿真 ...................................................... 20 5 硬件连接 ...................................................... 21 6 设计总结 ...................................................... 23 参考文献 ......................................................... 24

设计概况

要构成一个较大规模的控制系统,常常需要采用多机控制实现,而AT89C51单片机有一个异步通信方式的全双工串行接口,可以方便地构成双机、多机系统。而串行通信也成为单片机与单片机、单片机与上位机之间进行数据传输的主要方式,是一种适用于远距离通信的数据传输方式。

串行通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一个系统,实现双片单片机串行通信。通信的结果实用数码管进行显示,数码管采用查表方式显示。两个单片机之间采用RS232进行双机通信。在通信过程中,使用通信协议进行通信。

关键词:单片机;串行通信;接口

1 总体设计

1.1 设计要求

设计一个单片机双机通信系统,单片机A接1个8位按键开关,单片机B接8个发光二极管,通过串行通信实现由A机拨码开关控制B机发光二极管的亮灭。

1.2 设计方案

本次设计,对于两片AT89C51,采用RS-232进行双机通信。如图1所示,发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS-232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接收方接收后,在LED二极管上显示接收的对应信息。

晶振电路 晶振电路

8路拨码 开关电路 复位电路 发送机 接口 接口 接收机 复位电路 显示电路

图1 双机通信系统原理框图

软件部分,通过通信协议进行发送接收,发送机先送联络信号给接收机,当接收机接收到联络信号后,向发送机回答一个应答信号,表示同意接收。发送机收到应答信号后开始发送数据,每发送一个数据块字节都要计算“校验和”,假定数据长度为16个字节,起始地址为40H,一个数据块发送完毕后立即发送“校验和”。接收机接收数据并存入数据缓冲区起始地址也为40H,每接收到一个数据字节便计算一次“校验和”,当接收到一个数据块后,在接受发送机发来的“校验和”,并将它与接收机计算的校验和进行比较。若二者相等,说明接受正确,接收机回答00H,发送机结束发送;若二者不等,说明接受不正确,接收机回答0FFH,请求重发,发送机重新发送数据一次。接收机接收到数据后通过发光二极管LED显示发送机的发送状态。