单片机多机通信实现毕业论文

上传人:痛*** 文档编号:154985701 上传时间:2022-09-22 格式:DOC 页数:75 大小:17.18MB
返回 下载 相关 举报
单片机多机通信实现毕业论文_第1页
第1页 / 共75页
单片机多机通信实现毕业论文_第2页
第2页 / 共75页
单片机多机通信实现毕业论文_第3页
第3页 / 共75页
点击查看更多>>
资源描述
盐城工学院本科生毕业论文 2010 毕业设计说明书单片机多机通信实现专 业 电子信息工程 学生姓名 杜运福 班 级 B电子062 学 号 0610620224 指导教师 张春永 完成日期 2010年6月 10日 盐城工学院本科生毕业设计说明书 (2010)单片机多机通信实现摘要:目前,单片机在多机通信领域应用很广。但研究最多的是上位机与下位机的通信及多单片机构成的主从式多机通信系统。本文重点研究了多单片机的平权式多机通信,使各单片机有相同的权限。本文从平权式多机通信协议入手,首先设计了具体平权式多机通信协议;主机通信用按键控制,模拟实际应用中的触发信号输入。对于1号单片机,还可通过液晶实时显示工作状态,初始为主机。在不需置其他单片机为主机的情形下,本多机通信系统可以作为主从式多机通信系统。从机通信模式通过串口中断触发启动,通信结束即恢复之前的从机状态。通信过程中,主机先发送寻址的从机号,待从机响应后开始通信。通信结束后,主机发送自己的主机号,告知从机。然后从机发给主机校验字节数据,主机检验错误,检验无误后,作出响应,1号单片机液晶会显示,2号和3号单片机收发数据无误后会使LED指示灯亮起。其外,本文研究了可切换双向接口的实现方法。通过用单片机的一个引脚控制单片机的串口的连接方式,使其工作在主机模式或从机模式。本研究已经仿真通过,真实可行。具有一定的检错能力,串行通信的比特率是9600bit/s,通信速度较快,且可靠性高。本研究通过硬件电路解决了通信过程中多单片机争用主机权的问题。关键词:单片机;多机通信;平权;AT89S52Realization of many SCM communicationAbstract:At present, the single chip multi-machine communication in a wide field of applications. However, the most studied is the host computer and lower computer communications and multi-chip microprocessor master-slave multi-machine communication system. This paper focuses on a number of single chip multi-machine communication affirmative, so that the MCU has the same permissions. The paper machine from the multi-level communication protocol of the right to start with, first, the specific communication protocol. Host Communication button control, the practical application of simulation in the trigger signal input. For the No. 1 microcontroller, but also through the LCD display working status, the initial for the host. No other single chip set in the case of the host, the multi-machine communication system can be used as master-slave multi-machine communication system. Communication mode from the machine through the serial port interrupt triggering, communication before the end of the recovery from the machine state. Communication process, the host sends the address number from the machine until the response from the plane after communications. After communication, the host sends its own host number, informed from the machines. And then distributed to the host from the machine check bytes of data, the host test error, test and proved correct response, 1 single chip LCD displays, 2 and 3, after the MCU will send and receive data correct LED light is on. Besides, this paper, bi-directional switch implementation of the interface methods. Through the use of microcomputer control of a microcontroller pin serial port connection, to work in master mode or slave mode. This study has been simulated by the real feasible. Have some error detection capability, the bit rate of serial communication 9600bit / s, communication speed, and reliability. In this study, the hardware circuit through the communication process to resolve the contention over the host microcontroller over the issue.Key words:SCM;Multi-machine communication;Equal rights; AT89S52II盐城工学院本科生毕业论文 (2010)目录1 绪论11.1 论文研究的背景与意义11.2 单片机多机通信领域的历史及国内外发展现状11.3 本论文的研究内容22 单片机多机通信理论及方案选择32.1 单片机串口通信32.2 单片机多机通信方案选择52.3 微处理器的选择52.4 液晶LCD1602介绍93 单片机多机通信协议设计154 硬件电路设计164.1 单片机最小系统的设计164.2 矩阵键盘电路设计174.3 液晶显示电路设计184.4 可切换接口电路设计194.5 2号与3号单片机按键电路设计234.6 LED显示电路设计234.7 主机权分配电路设计244.8 电源电路设计285 软件设计295.1 多机通信协议的算法设计295.2 键盘程序设计325.3 系统初始化程序设计356 结论35参考文献36致谢37附录1:1号单片机电路原理图38附录2:2号单片机电路原理图39附录3:3号单片机电路原理图39附录4:仿真电路图41附录5:源程序:42盐城工学院本科生毕业设计说明书 (2010)单片机多机通信实现1 绪论 1.1 课题研究的背景与意义目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。构成较大规模的检测、控制系统,经常要采用多个单片机,组成可以通信的多机系统。Mcs一51系列单片机为实现多机通信联网设计了方便的串行通信接口功能。将多个Mcs一51单片机组成串行总线形式的相互通道,通过写单片机的串行控制方式寄存器,将串行口置成方式2或方式3,就可以实现主机与分机之间的串行通信。这种多机系统结构简单,应用广泛,但它只能实现由主机呼叫分机,然后实现主机与分机之间的全双工串行通信。我们在监控系统中要求既有主机与分机主动通信,又有分机与主机主动通信,这种结构的多机系统就无法满足要求。多机协同工作已是单片机发展的一个重要趋势,目前单片机多机通信的主要方式仍然是主从式多机通信系统。单片机多机通信的目的是实现分布式处理系统,单片机多机通信的方式有很多种,应用前景广阔,非常具有研究意义!11.2 单片机多机通信领域的历史及国内外发展现状单片微型计算机(Single Chip Microcomputer)简称单片机,又称MCU(Micro Controller Unit),是将计算机的基本部分微型化,使之集成在一块芯片上的微机.片内含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线等。 随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。 所涉及的市场占有率最高的是MCS51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。生产MCS51系列单片机的厂家如美国AMD公司、ATMEL公司、INTEL公司、WINBOND公司、PHILIPS公司、ISSI公司、TEMIC公司及南韩的LG公司、日本NEC、西门子公司等。到目前为止,MCS51单片机已有数百个品种,还在不断推出功能更强的新产品。现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。单片机的通信领域应用首先从两片单片机之间的通信发展起来,后来有了主从式多机通信并得到了广泛的应用,又出现了以单片机作为下位机与以PC机作为上位机的通信应用,上位机用VB或VC+等面向对象的程序设计语言编写通信收发程序,也得到了广泛的应用。虽然,单片机多机通信已经有较长的研究历史了,但其形式大多是主从式的,很少是平权式的。1.3 本课题的研究内容本文在研究传统的多机通信系统的基础上,设计了一种基于MCS51系列单片机AT89S52 的多机通信系统。初始时,1号单片机为主机。主机通过串口向从单片机发送指定格式的数据,从单片机收数据并作出响应,主机通过液晶屏显示通信信息,从机通过LED显示通信状态。主机通信结束即转为从机,其他单片机可置为主机,获得总线控制权。1号单片机通过矩阵键盘控制通信过程与显示,2与3号单片机通过独立按键控制通信状态与主从机切换。在此多机通信系统中,各个单片机具有平等的权限。仅在初始时,1号单片机被默认置为主机,若不需使2号与3号单片机变成主机,则此通信系统可以作为主从式多机通信系统。任何时刻,系统只有一片单片机作为主机,其他均为从机。主机发送的信息可以传送到指定从机,各从机之间也不能直接通信。主机发起通信,从机接收到自己的单片机号后,开始与主机通信。2 单片机多机通信理论及方案选择 2.1 单片机串口通信2.1.1 单片机串口介绍AT89S52单片机内部含有一个可编程全双工串行通信接口,具有UART的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。 在进行异步通信时,数据的发送和接收分别在各自的时钟(TCLK和RCLK)控制下进行的,但都必须与字符位数的波特率保持一致。MCS-51串行口的发送和接收时钟可由两种方式产生,一种是由主机频率fosc经分频后产生,另一种方式是由内部定时器T1或T2的溢出率经16分频后提供。串行口的发送过程由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,再由硬件电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及其它控制位(如奇偶位等),然后在移位脉冲SHIFT的控制下,低位在前,高位在后,从TXD端(方式0除外)一位位地向外发送。串行口的接收与否受制于允许接收位REN的状态,当REN被软件置“1”后,允许接收器接收。接收端RXD一位位地接收数据,直到收到一个完整的字符数据后,控制电路进行最后一次移位,自动去掉启始位,使接收中断标志RI置“1”,并向CPU申请中断。TI和RI是由硬件置位的,但需要用软件复位。2.1.2 单片机串口控制寄存器a.SBUF是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。两个缓冲器只用一个字节地址99H,可通过指令对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。串行口对外有两条独立的收发信号线RXD(P3.0)、TXD(P3.1),因此可以同时发送、接收数据,实现全双工。b.SCON寄存器用来控制串行口的工作方式和状态,可按位寻址,其字节地址为98H。它用于定义串行口的工作方式及实施接收和发送控制。字节地址为98H,其各位定义如表21。表21 SCON寄存器的各位功能定义D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI 表22 串行口工作方式选择位定义SM0、SM1 工作方式 功能描述 波特率 0 0 方式0 8位移位寄存器 Fosc/12 0 1 方式1 10位UART 可变 1 0 方式2 11位UART Fosc/64或fosc/32 1 1 方式3 11位UART 可变其中fosc为晶振频率SM2:多机通讯控制位。在方式0时,SM2一定要等于0。在方式1中,当SM2=1时,则只有接收到有效停止位时,RI才置1。在方式2或方式3下,当SM2=1且接收到的第九位数据RB8=1时,RI才置1。REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。TB8: 是要发送数据的第9位。在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。RB8:接收到的数据的第9位。在方式0中不使用RB8。在方式1中,若SM2=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI必须用软件清0。RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。RI也必须用软件清0。c.PCON中的SMOD用来控制波特率加倍。d.TMOD设置定时器1的工作方式,用来产生波特率e.如果用到中断,则还需要用到中断相关的寄存器IE,IP等2.1.3 单片机串口的四种工作方式方式0:同步移位寄存器方式,其波特率是固定为振荡频率fosc的1/12。在这种工作方式下,发送和接收串行数据都通过RXD(P3.0)进行,从TXD(P3.1)输出移位脉冲,控制外部的移位寄存器移位。1帧信息为8位,没有起始位,停止位。方式1:8位UART,1帧信息为10位,其中一位起始位“0”、八位数据位(先低位后高位)和一个停止位“1”,波特率可变,根据定时器1的溢出率计算。方式2:9位UART,1帧信息为11位,其中一位起始位“0”、八位数据位(先低位后高位),一位控制位(第九位)和一个停止位“1”。波特率为振荡频率的1/64或1/32方式3:9位UART,帧信息为11位,其中一位起始位“0”、八位数据位(先低位后高位),一位控制位(第九位)和一个停止位“1”。波特率可变,根据定时器1的溢出率计算。附加的第9位数据为SCON中的TB8的值,它由软件置位或清零,可作为多机通信中地址/数据信息的标志位,也可作为数据的奇偶校验位。单片机的串行通信传输方式有三种:单工制式、半双工制式和全双工制式。2.2 单片机多机通信方案选择根据需要,各片单片机有相等的权限,每块单片机都可设置为主机或从机,因此单片机的串口应具有双向可选择性。采用两个同相三态门加上一个反相器即可构成这样的接口,并由单片机的一根引脚控制单片机串口的连接方式。发送数据区可存放1B48B的数据,以空字符0作为发送数据结束标志。接收数据时以空字符作为接收有效数据结束标志。通信结束时,从机发回收发长度作为校验。2.3 微处理器的选择本系统对微处理器要求不是太高,速度不要求太高,但代码较长,因此要求微处理器应有较大的程序存储空间,最好用Flash ROM。通信的发送缓冲区与接收缓冲区均从RAM中分配,为了能传送更多的数据,要求要有较大的RAM。此外,处理器还应有一个全双工的串行口。综合考虑以上各种因素,选用MCS-51系列的单片机AT89S52。AT89S52是一种低功耗高性能的CMOS 8位微处理器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适用于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52 具有以下标准功能:8k 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。其引脚结构如下图:图21 AT89S52的引脚结构单片机AT89S52的引脚说明:VCC:电源GND:地 P0口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8 个 TTL 逻辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0 口也被作为低 8 位地址/数据复用。在这种模式下,P0 具有内部上拉电阻。 在 flash 编程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0 和 P1.2 分别作定时器/计数器 2 的外部计数输入(P1.0/T2)和时器/计数器 2的触发输入(P1.1/T2EX),具体如下表所示。在Flash编程和校验时,P1口接收低8位地址字节。P1口的第二功能如下表:表22 P1口的第二功能引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用) P2口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行 MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如 MOVX RI)访问外部数据存储器时,P2 口输出P2锁存器的内容。 在 flash 编程和校验时,P2 口也接收高 8 位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的 8 位双向 I/O口,P2 输出缓冲器能驱动 4 个TTL 逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为 AT89S52特殊功能(第二功能)使用,如下表所示。在Flash编程和校验时,P3口也接收一些控制信号。P3口具有第二功能,具体如下表。表23 P3口的第二功能引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器0的外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)RST:复位输入。晶振工作时,RST脚连续两个机器周期高电平使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。 :地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在 flash 编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为 8EH 的 SFR 的第 0 位置“1”,ALE 操作将无效。这一位置“1”,ALE 仅在执行 MOVX 或 MOVC 指令时有效。否则,ALE将被微弱拉高。这个 ALE 使能标志位(地址为 8EH 的SFR的第0位)的设置对微控制器处于外部执行模式下无效。 :外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当 AT89S52 从外部程序存储器执行外部代码时,PSEN 在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN 将不被激活。:访问外部程序存储器控制信号。为使能从 0000H 到 FFFFH 的外部程序存储器读取指令,EA 必须接 GND。 为了执行内部程序指令,EA 应该接 VCC。 在 flash 编程期间,EA 也接收 12 伏 VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。表2-4AT89S52 特殊寄存器映象及复位值 并不是所有的地址都被定义了,片上没有定义的地址是不能用的。读这些地址,一般将得到一个随机数据;写入的数据将会无效。用户不应该给这些未定义的地址写入数据“1”。由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。 定时器 2 寄存器:寄存器 T2CON 和 T2MOD 包含定时器 2 的控制位和状态位(如表 2和表 3 所示),寄存器对RCAP2H和RCAP2L是定时器 2 的捕捉/自动重载寄存器。 中断寄存器:各中断允许位在 IE 寄存器中,六个中断源的两个优先级也可在 IE 中设置。T2CON地址为 0C8H 复位值:0000 0000B位可寻址表2-5T2CON位定义TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL2D7D6D5D4D3D2D1D0TF2:定时器 2 溢出标志位。必须软件清“0”。RCLK=1 或 TCLK=1 时,TF2不用置位。EXF2:定时器 2 外部标志位。EXEN2=1 时,T2EX 上的负跳变而出现捕捉或重载时,EXF2 会被硬件置位。定时器2 打开,EXF2=1 时,将引导 CPU执行定时器 2 中断程序。EXF2 必须如见清“0”。在向下/向上技术模式(DCEN=1)下 EXF2 不能引起中断。 RCLK:串行口接收数据时钟标志位。若 RCLK=1,串行口将使用定时器 2 溢出脉冲作为串行口工作模式 1 和 3 的串口接收时钟;RCLK0,将使用定时器 1 计数溢出作为串口接收时钟。 TCLK:串行口发送数据时钟标志位。若 TCLK=1,串行口将使用定时器 2 溢出脉冲作为串行口工作模式 1 和 3 的串口发送时钟;TCLK0,将使用定时器 1 计数溢出作为串口发送时钟。定时器 2 外部允许标志位。当 EXEN2=1 时,如果定时器 2 没有用作串行时钟,T2EX(P1.1)的负跳变见引起定时器2捕捉和重载。若EXEN20,定时器 2 将视 T2EX 端的信号无效TR2:开始/停止控制定时器2。TR2=1,定时器 2 开始工作定时器 2 定时/计数选择标志位。为0,定时;为1,外部事件计数(下降沿触发)CP/RL2:捕捉/重载选择标志位。当 EXEN2=1 时,为1,T2EX 出现负脉冲,会引起捕捉操作;当定时器 2 溢出或 EXEN2=1 时 T2EX 出现负跳变,都会出现自动重载操作。为0 将引起 T2EX 的负脉冲。当RCKL=1或 TCKL为1时,此标志位无效,定时器2溢出时,强制做自动重载操作。2.4 液晶LCD1602介绍市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,定义如下表所示:表26 LCD1602的引脚定义HD44780内置了DDRAM、CGROM和CGRAM。DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:表27 DDRAM地址与屏幕对应关系要在LCD1602屏幕的第一行第一列显示一个A字,就要向DDRAM的00H地址写入“A”字的代码就行了。但具体的写入是要按LCD模块的指令格式来进行的。在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下:表28 DDRAM地址与显示位置的对应关系文本文件中每一个字符都是用一个字节的代码记录的。一个汉字是用两个字节的代码记录。在PC上我们只要打开文本文件就能在屏幕上看到对应的字符是因为在操作系统里和BIOS里都固化有字符字模。字模就代表了是在点阵屏幕上点亮和熄灭的信息数据。例如“A” 01110 10001 10001 10001 11111 10001 10001图22 A的字模上图左边的数据就是字模数据,右边就是将左边数据用“”代表0,用“”代表1。在LCD模块上也固化了字模存储器,这就是CGROM和CGRAM。HD44780内置了192个常用字符的字模,存于字符产生器CGROM(Character Generator ROM)中,另外还有8个允许用户自定义的字符产生RAM,称为CGRAM(Character Generator RAM)。下图说明了CGROM和CGRAM与字符的对应关系。表29 CGROM中字符码与字模关系对照表从上图可以看出,“A”字的对应上面高位代码为0100,对应左边低位代码为0001,合起来就是01000001,也就是41H。可见它的代码与我们PC中的字符代码是基本一致的。因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1A这样的方法。PC在编译时就把“A”先转为41H代码了。HD44780的指令集介绍,共11条指令:1.清屏指令功能: 清除液晶显示器,即将DDRAM的内容全部填入空白的ASCII码20H; 光标归位,即将光标撤回液晶显示屏的左上方; 将地址计数器(AC)的值设为0。2.光标归位指令 功能: 把光标撤回到显示器的左上方; 把地址计数器(AC)的值设置为0; 保持DDRAM的内容不变。 3.进入模式设置指令功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况如下所示:位名设置I/D0=写入新数据后光标左移 1=写入新数据后光标右移S0=写入新数据后显示屏不移动1=写入新数据后显示屏整体右移1个字符4.显示开关控制指令功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数设定的情况如下:位名 设置D 0=显示功能关 1=显示功能开C 0=无光标 1=有光标B 0=光标闪烁 1=光标不闪烁5.设定显示屏或光标移动方向指令功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下:S/CR/L设定情况00光标左移1格,且AC值减101光标右移1格,且AC值加11 0显示器上字符全部左移一格,但光标不动 1 1 显示器上字符全部右移一格,但光标不动6.功能设定指令功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下:位名设置DL0=数据总线为4位 1=数据总线为8位N0=显示1行 1=显示2行F0=57点阵/每字符 1=510点阵/每字符7.设定CGRAM地址指令功能:设定下一个要存入数据的CGRAM的地址。8.设定DDRAM地址指令功能:设定下一个要存入数据的CGRAM的地址。9.读取忙信号或AC地址指令功能: 读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF=0时,液晶显示器可以接收单片机送来的数据或指令; 读取地址计数器(AC)的内容。10.数据写入DDRAM或CGRAM指令一览功能: 将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符; 将使用者自己设计的图形存入CGRAM。11.从CGRAM或DDRAM读出数据的指令一览功能:读取DDRAM或CGRAM中的内容。基本操作时序:读状态 输入:RS=L,RW=H,E=H 输出:DB0DB7=状态字写指令 输入:RS=L,RW=L,E=下降沿脉冲,DB0DB7=指令码 输出: 无读数据 输入:RS=H,RW=H,E=H 输出:DB0DB7=数据写数据 输入:RS=H,RW=L,E=下降沿脉冲,DB0DB7=数据 输出:无3 单片机多机通信协议设计 AT89S52的内部RAM只有256字节,不能存储太多的数据包;其次,单片机的外接晶振选用11.0592MHz,片内CPU的速度不理想,控制多个时钟,CPU资源消耗太多,会大大降低系统性能。因此,取消了停止等待协议有发送窗口这一机制,而采用发送一个数据包就等待当前数据包的确认包,超时再发。主机通信协议如下:(1) 主机的SM2=0;发送从机地址。(2) 若从机无应答则等待。若有应答,地址若不符,则发从机复位命令,返回(1);若有应答且地址相符则继续,准备发送命令。(3) 发送通信方向控制命令(0x00发或0x01收)。(4) 若从机无应答则等待;若从机有应答但状态字不正确,则令从机复位,返回(1);若从机有应答且状态字正确,则继续。(5) 将命令分类,若为0x00则准备发送转(6),若为0x01则准备接收转(7)。(6) 判断状态字,若从机接收但从机未准备就绪,则令从机复位并转到(1);若从机接收且从机准备就绪,则发送数据块。转到(8);(7) 判断状态字,若为从机发送但从机未准备就绪,则令从机复位并转到(1);若为从机发送且从机发送就绪,则接收数据块。转到(8)。(8) 发送主机号,然后接收从机发来的收发数据长度。发回响应。(9) 置为从机使SM2=1,返回等待接收地址。从机通信协议如下:(1) 置SM2=1,接收主机发来的地址,若不符合本机地址,则返回;若符合本机地址,则回送本机地址作为响应。(2) 关串口中断,置SM2=0准备接收命令。接收到主机发来的命令,先判断,若不是合法命令则置SM2=1并返回;若为合法命令则继续。(3) 将命令分类,若为0x00则发送本机接收就绪信号转(5),若为0x01则发送本机发送就绪信号转(4)。(4) 发送数据,等待发送结束,转到(6)。(5) 接收数据,等待接收完成。(6) 接收主机号,发送收发长度,等待主机的响应。(7) 收到主机发来的响应后,做些处理后,返回置SM2=1,开串口中断。 从机状态字如下:ERR00000TRDYRRDYERR0时为合法命令,ERR1时为非法命令;TRDY0时表示从机发送未就绪,TRDY1表示从机发送就绪。RRDY0表示从机接收未就绪;RRDY=1表示从机接收已经就绪。4 硬件电路设计 4.1 单片机最小系统的设计本系统共用三块单片机,每块单片机均选用AT89S52,最小系统也都一样。由于三块单片机的主要任务是通信,为了得到准确的波特率,采用振荡频率为11.0592MHz的晶振,再接两个30pF的瓷片电容即可构成单片机的时钟电路。单片机最小系统电路如下:图41 单片机最小系统电路复位电路也可以换成看门狗电路实现,可使单片机可靠的复位。为了简化电路设计,本系统采用简单方法,可使单片机上电复位,此外可以通过按键手动复位。单片机上电即可复位,R1与C3的充电时间大于两倍的机器周期,使RST引脚有足够长的时间保存高电平,使单片机可靠的复位。正常工作时,按下按键SW1就可以使单片机复位。4.2 矩阵键盘电路设计图42 矩阵键盘电路P1口接43的矩阵键盘,共12个按键,分别为09及Enter与Cancel键。P1.1P1.3接矩阵键盘的行,P1.4P1.7接矩阵键盘的列。4.3 液晶显示电路设计液晶显示电路如下图:图43 液晶LCD1602显示电路P0口上拉10K8的排阻,自己画的排阻符号如下: 图44 排阻符号排阻具有九个引脚,一个公共端,另外八个脚分别接到需要接上拉电阻的单片机的P0口。排阻相当于8个大小均为10K的电阻,在电路中主要其电平转化作用,通过的电流很小,每只电阻的功耗也很小。如接5V电源,每只电阻的电流约为0.5mA,很小。液晶LCD1602的符号绘制如下:图45 LCD1602的符号LCD1602的符号与液晶模块对应,共16个引脚,采用接插件形式,各位的名称根据其定义而定。4.4 可切换接口电路设计可切换方向接口用于切换该单片机的接口连接方式,使其为主机或从机。P3.6口用于控制接口的连接方式。公共总线R为主机发送从机接收线,公共总线T为主机接收从机发送线。当P3.6=1时,同向三态门U2A与U2C工作,U2B与U2D不能工作,相当于P3.1接到R总线上,P3.5接到T总线上。该单片机此时就起主机作用。当P3.6=0时,同向三态门U2B与U2D工作,U2A与U2C不能工作,相当于P3.1接到T总线上,P3.5接到R总线上。此时,该单片机充当从机,等待主机发起通信。P3.1为单片机串口的发送端,接二极管1N4001的作用是保证用于发送数据。可切换接口电路图如下:图46 可切换接口电路4.4.1 74HC126同相三态门介绍74HC126的引脚图如下:图47 74HC126的引脚图74HC126芯片共14个引脚,除了7脚接地、14脚接电源外,其他3个引脚一组构成4个三态门。具体功能结构图如下:图48 74HC126的功能图引脚1、4、10、13为使能端,当使能端为高电平时,该三态门有效,输出等于输入,具体的真值表如下:表41 74HC126的真值表表中H表示高电平,L表示低电平。当nOE为高电平时,三态门有效;当nOE为低电平时,三态门无效,输出为高阻态。在室温25度下,当Vcc为4.5V时,Voh最小为4.4V,典型值为4.5V。每个三态门的逻辑结构图如下:图49 74HC126的三态门内部逻辑结构图输入nA经四次反相后等效于同相。4.4.2 74HC04反相器介绍74HC04的引脚图如下:图410 74HC04的引脚图与74HC126类似,也是14个引脚。7脚接地,14脚接电源。一块74HC04包含6个反相器,A输入,Y输出。如1A与1Y对应,输入为1A,输出为1Y。74HC04的真值表如下:表42 74HC04的真值表表中L表示低电平,H表示高电平。输出电平与输入电平相反。当电源Vcc为4.5V且处于室温25度时,Voh最小为4.4V,典型值为4.5V。4.5 2号与3号单片机按键电路设计2号与3号单片机均有四个按键,分别为从机选择键、通信方向选择键、启动通信键与设置主从机键。如下图所示,R7R10的阻值均为10K,起到上拉电阻作用,SW2、SW3与SW4分别接到单片机的P3.2、P3.3与P3.4脚,P3.2对应单片机的外中断一脚,P3.2对应单片机的外中断二脚。从机选择与通信方向选择通过中断方式设置。SW4接到P3.4脚,即单片机的定时器T0输入端。此系统中,定时器T0用于计数,计数初值为65535,加一就产生计数中断,相当于一个下降沿触发的中断源。SW5接R10到电源,被拉至高电平,当按键按下时,接插件J3的1脚变成低电平,外接到74HC148优先编码器的输入端,去申请主机权。图411 2号单片机按键电路接插件J3有三个脚,一脚为2HS用于输出,二脚为2SET,为输入脚,从优先编码器的输出端引出。三脚为2NEI为输出端,当本机主机使用权结束后,交出主机控制权,发高电平,通过与非门后输出低电平,使优先编码器有效,开始接收主机权申请信号。本单片机作为一块电路板,通过此接插件接口,用三根的排线接口接到优先编码器的输入端即可。此图为2号单片机的按键电路,3号单片机的按键电路与此非常相似,只是网络标号不同,用于区别而已。4.6 LED显示电路设计1号单片机默认为主机,并且有LCD1602液晶屏可显示丰富多彩的信息,因此不许太多的LED来显示信息。但考虑到本系统设计让液晶屏显示通信收发数据长度,但未能显示通信正确与否,因此在1号单片机电路中也加入了两个LED,分别为红色与绿色,用于指示通信是否正确。若通信正确,则绿色LED发光,若通信不正确,则红色LED发光。两个LED的连接类似与下图中LED6与LED7的连接,分别接到1号单片机的P3.5脚与P3.7脚。2号单片机与3号单片机的LED显示电路相同,均有6个LED用于显示状态。LED1为红色接到P1.0脚,用于指示本机为主机,只有本机是主机时才发光。LED2为绿色接到P1.1脚,用于指示本机为从机,只有本机是从机时才发光。LED3为红色接到P1.2脚,用于指示发送数据,只有本机为主机且发送数据时才发光。LED4为绿色接到P1.3脚,用于指示接收数据,只有当本机为主机且接收数据时才发光。LED5为红色接到P1.7脚,用于按键错误指示,当按键错误时,此LED闪烁3次。即当本机为从机时,再按下SW2SW4键时,视为按键错误,LED5闪烁3次用于提示。LED显示电路的电源均为5V,限流电阻均取510欧姆。图412 2号与3号单片机LED显示电路4.7 主机权分配电路设计考虑到3块单片机有平等的权限,都可以申请主机权,但当两块以上单片机同时申请主机权或是在一块单片机已经获得主机权,但还未通信结束时,另一块单片机又申请主机权将引起冲突,使系统通信紊乱,通信数据不确定化。因此设计了如下图所示的主机权分配电路。图413 主机权分配电路将此主机权分配电路设在1号单片机电路中,不需接插件来连接1号单片机。但需要接插件来连接2号与3号单片机,包括HS、SET、NEI信号。此电路主要由优先编码器74HC148与四输入与非门74HC20共同构成。与非门的四个输入端,有一个固定的接到电源端,保持高电平;另三端分别接从3块单片机上引出的控制信号NEI。初始时,NEI均为高电平,与非门输出低电平,使优先编码器74HC148有效,接收输入信号,允许申请使用主机权。优先级有7到0递减,按照电路,优先级顺序为:1HS2HS3HS,即1号单片机的权限最高。4.7.1 74HC148优先编码器介绍74HC148优先编码器的引脚图如下:图414 74HC148优先编码器的引脚图由图可见,74HC148有16个引脚07为输入,EI为使能端,A2 A1 A0 为输出端,8脚接地,16脚接电源。其真值表如下:表43 74HC148的真值表表中H表示高电平,L表示低电平,X表示无关,EI为使能端,可见当EI为低电平时,优先编码器正常工作。输入八个端均是低电平有效,对地平编码,输出为对应的反码。正常工作时,应使GS=0,EO=1。从表可以看出,7的优先级最高,0的优先级最低,即由7到0优先级递减。本设计用了此优先编码器1,2,4端输入分别对应3HS、2HS、1HS,对应的输出A2A1A0分别为110、101、011,均只有一位为低电平,分别可接至各块单片机的主机设置端。4.7.2 74HC20四输入与非门介绍74HC20的引脚图如下:图415 74HC20的引脚图74HC20共14个引脚,7脚接地,14脚接电源,一块芯片包括两个四输入与非门,其外还有两个空脚。图416 74HC20的功能图每个四输入与非门又又由一些门电路组成,具体组成如下:图417 74HC20的单个与非门的逻辑图74HC20的真值表如下:表44 74HC20的真值表表中左边为输入,nY为输出,L表示低电平,H表示高电平,X表示无关有真值表可知,四个输入端只要有一个为低电平,输出就为高电平,只有当输入均为高电平时,输出才为低电平。4.8 电源电路设计本系统主要供电为5V直流电,为了获得5V的直流电压和足够大的电流,并能提供两种接口,交流与直流输入都能通用,将电源电路设计成如下形式。图418 电源电路原理图交流输入用15V的变压器,将变压器通过接口插到板子上。直流输入与交流输入类似,都要经过整流桥,确保电解电容C4不会反接,稳压电路公用,用MC7805实现5V直流稳压,最大可输出1A的电流,足以为整个系统供电。C5与C6用于防止稳压块产生自激振荡。C4用于滤波,使输入纹波很小,输出端接电容C7,用于防止输出电压突变。5 软件设计 本系统软件部分包括通信模块、键盘模块、液晶显示模块、中断服务和LED显示等。3块单片机的程序均用C语言编写,采用Keil C51 uVesion3作为调试工具。用Proteus 7.1作为仿真工具,与Keil C51 uVesion3联合调试,最终达到了设计要求,仿真无误。1号单片机的框图如下:图51 1号单片机的系统框图键盘模块包括矩阵键盘按键扫描、获取键值与按键处理。按
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!