毕业设计单片机多机通信实现.docx
- 文档编号:3541128
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:29
- 大小:47.72KB
毕业设计单片机多机通信实现.docx
《毕业设计单片机多机通信实现.docx》由会员分享,可在线阅读,更多相关《毕业设计单片机多机通信实现.docx(29页珍藏版)》请在冰豆网上搜索。
毕业设计单片机多机通信实现
毕业设计说明书
单片机多机通信实现
摘要:
目前,单片机在多机通信领域应用很广。
但研究最多的是上位机与下位
机的通信及多单片机构成的主从式多机通信系统。
本文重点研究了多单片机的平权式多机通信,使各单片机有相同的权限。
本文从平权式多机通信协议入手,首先设计了具体平权式多机通信协议;主机通信用按键控制,模拟实际应用中的触发信号输入。
对于1号单片机,还可通过液晶实时显示工作状态,初始为主机。
在不需置其他单片机为主机的情形下,本多机通信系统可以作为主从式多机通信系统。
从机通信模式通过串口中断触发启动,通信结束即恢复之前的从机状态。
通信过程中,主机先发送寻址的从机号,待从机响应后开始通信。
通信结束后,主机发送自己的主机号,告知从机。
然后从机发给主机校验字节数据,主机检验错误,检验无误后,作出响应,1号单片机液晶会显示,2号和3号单片机收发数据无误后会使LED指示灯亮起。
其外,本文研究了可切换双向接口的实现方法。
通过用单片机的一个引脚控制单片机的串口的连接方式,使其工作在主机模式或从机模式。
本研究已经仿真通过,真实可行。
具有一定的检错能力,串行通信的比特率是9600bit/s,通信速度较快,且可靠性高。
本研究通过硬件电路解决了通信过程中多单片机争用主机权的问题。
关键词:
单片机;多机通信;平权;AT89S52
I
盐城工学院本科生毕业设计说明书
(2010)
RealizationofmanySCMcommunication
Abstract:
Atpresent,thesinglechipmulti-machinecommunicationinawidefield:
ofapplications.However,themoststudiedisthehostcomputerandlowercomputercommunicationsandmulti-chipmicroprocessormaster-slavemulti-machine
communicationsystem.Thispaperfocusesonanumberofsinglechipmulti-machinecommunicationaffirmative,sothattheMCUhasthesamepermissions.Thepapermachinefromthemulti-levelcommunicationprotocoloftherighttostartwith,first,thespecificcommunicationprotocol.HostCommunicationbuttoncontrol,thepracticalapplicationofsimulationinthetriggersignalinput.FortheNo.1microcontroller,butalsothroughtheLCDdisplayworkingstatus,theinitialforthehost.Noothersinglechipsetinthecaseofthehost,themulti-machinecommunicationsystemcanbeusedasmaster-slavemulti-machinecommunicationsystem.Communicationmodefromthemachinethroughtheserialportinterrupttriggering,communicationbeforetheendoftherecoveryfromthemachinestate.Communicationprocess,thehostsendstheaddressnumberfromthemachineuntiltheresponsefromtheplaneaftercommunications.Aftercommunication,thehostsendsitsownhostnumber,informedfromthemachines.Andthendistributedtothehostfromthemachinecheckbytesofdata,thehosttesterror,testandprovedcorrectresponse,1singlechipLCDdisplays,2and3,aftertheMCUwillsendandreceivedatacorrectLEDlightison.Besides,thispaper,bi-directionalswitchimplementationoftheinterfacemethods.Throughtheuseofmicrocomputercontrolofamicrocontrollerpinserialportconnection,toworkinmastermodeorslavemode.Thisstudyhasbeensimulatedbytherealfeasible.Havesomeerrordetectioncapability,thebitrateofserialcommunication9600bit/s,communicationspeed,andreliability.Inthisstudy,thehardwarecircuitthroughthecommunicationprocesstoresolvethecontentionoverthehostmicrocontrollerovertheissue.
Keywords:
SCM;Multi-machinecommunication;Equalrights;AT89S52:
:
II
盐城工学院本科生毕业设计说明书
(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.52号与3号单片机按键电路设计……234.6LED显示电路设计……23
4.7主机权分配电路设计……244.8电源电路设计……285软件设计……295.1多机通信协议的算法设计……295.2键盘程序设计……325.3系统初始化程序设计……356结论……35参考文献……36致谢……37附录1:
1号单片机电路原理图……38附录2:
2号单片机电路原理图……39附录3:
3号单片机电路原理图……错误!
未定义书签。
错误!
未定义书签。
附录4:
仿真电路图……42附录5:
源程序:
……43
III
盐城工学院本科生毕业设计说明书
(2010)
单片机多机通信实现
1绪论
1.1课题研究的背景与意义目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高,在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。
串行通信作为单片机之间常用的通信方法之一,由于其通信编程灵活、硬件简洁并遵循统一的标准,因此其在工业控制领域得到了广泛的应用。
构成较大规模的检测、控制系统,经常要采用多个单片机,组成可以通信的多机系统。
Mcs一51系列单片机为实现多机通信联网设计了方便的串行通信接口功能。
将多个Mcs一51单片机组成串行总线形式的相互通道,通过写单片机的串行控制方式寄存器,将串行口置成方式2或方式3,就可以实现主机与分机之间的串行通信。
这种多机系统结构简单,应用广泛,但它只能实现由主机呼叫分机,然后实现主机与分机之间的全双工串行通信。
我们在监控系统中要求既有主机与分机主动通信,又有分机与主机主动通信,这种结构的多机系统就无法满足要求。
多机协同工作已是单片机发展的一个重要趋势,目前单片机多机通信的主要方式仍然是主从式多机通信系统。
单片机多机通信的目的是实现分布式处理系统,单片机多机通信的方式有很多种,应用前景广阔,非常具有研究意义!
1.2单片机多机通信领域的历史及国内外发展现状单片微型计算机(SingleChipMicrocomputer)简称单片机,又称MCU(MicroControllerUnit),是将计算机的基本部分微型化,使之集成在一块芯片上的微机.片内含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线等。
随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用
1
单片机多机通信实现
计算机系统和嵌入式计算机系统两大分支。
单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。
所涉及的市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。
生产MCS—51系列单片机的厂家如美国AMD公司、ATMEL公司、INTEL公司、WINBOND公司、PHILIPS公司、ISSI公司、TEMIC公司及南韩的LG公司、日本NEC、西门子公司等。
到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
单片机的通信领域应用首先从两片单片机之间的通信发展起来,后来有了主从式多机通信并得到了广泛的应用,又出现了以单片机作为下位机与以PC机作为上位机的通信应用,上位机用VB或VC++等面向对象的程序设计语言编写通信收发程序,也得到了广泛的应用。
虽然,单片机多机通信已经有较长的研究历史了,但其形式大多是主从式的,很少是平权式的。
1.3本课题的研究内容本文在研究传统的多机通信系统的基础上,设计了一种基于MCS-51系列单片机AT89S52的多机通信系统。
初始时,1号单片机为主机。
主机通过串口向从单片机发送指定格式的数据,从单片机收数据并作出响应,主机通过液晶屏显示通信信息,从机通过LED显示通信状态。
主机通信结束即转为从机,其他单片机可置为主机,获得总线控制权。
号单片机通过矩阵键盘控制通信过程与1显示,2与3号单片机通过独立按键控制通信状态与主从机切换。
在此多机通信系统中,各个单片机具有平等的权限。
仅在初始时,1号单片机被默认置为主机,若不需使2号与3号单片机变成主机,则此通信系统可以作为主从式多机通信系统。
任何时刻,系统只有一片单片机作为主机,其他均为从机。
主机发送的信息可以传送到指定从机,各从机之间也不能直接通信。
主机发起通信,从机接收到自己的单片机号后,开始与主机通信。
2
盐城工学院本科生毕业设计说明书
(2010)
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,其各位定义如表2-1。
表2-1SCON寄存器的各位功能定义D7SM0D6SM1D5SM2D4REND3TB8D2RB8D1TID0RI
表2-2串行口工作方式选择位定义
3
单片机多机通信实现
SM0、SM100110101
工作方式方式0方式1方式2方式3
功能描述8位移位寄存器10位UART11位UART11位UART
波特率Fosc/12可变Fosc/64或fosc/32可变
其中fosc为晶振频率SM2:
多机通讯控制位。
在方式0时,SM2一定要等于0。
在方式1中,当SM2=1时,则只有接收到有效停止位时,才置1。
RI在方式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:
位UART,帧信息为10位,81其中一位起始位“0”八位数据位、(先低位后高位)和一个停止位“1”,波特率可变,根据定时器1的溢出率计算。
方式2:
位UART,帧信息为11位,91其中一位起始位“0”八位数据位、(先低位后高位),一位控制位(第九位)和一个停止位“1”。
波特率为振荡频率的1/64或1/32
4
盐城工学院本科生毕业设计说明书
(2010)
方式3:
9位UART,帧信息为11位,其中一位起始位“0”、八位数据位(先低位后高位),一位控制位(第九位)和一个停止位“1”。
波特率可变,根据定时器1的溢出率计算。
附加的第9位数据为SCON中的TB8的值,它由软件置位或清零,可作为多机通信中地址/数据信息的标志位,也可作为数据的奇偶校验位。
单片机的串行通信传输方式有三种:
单工制式、半双工制式和全双工制式。
2.2单片机多机通信方案选择根据需要,各片单片机有相等的权限,每块单片机都可设置为主机或从机,因此单片机的串口应具有双向可选择性。
采用两个同相三态门加上一个反相器即可构成这样的接口,并由单片机的一根引脚控制单片机串口的连接方式。
发送数据区可存放1B~48B的数据,以空字符'\0'作为发送数据结束标志。
接收数据时以空字符作为接收有效数据结束标志。
通信结束时,从机发回收发长度作为校验。
2.3微处理器的选择本系统对微处理器要求不是太高,速度不要求太高,但代码较长,因此要求微处理器应有较大的程序存储空间,最好用FlashROM。
通信的发送缓冲区与接收缓冲区均从RAM中分配,为了能传送更多的数据,要求要有较大的RAM。
此外,处理器还应有一个全双工的串行口。
综合考虑以上各种因素,选用MCS-51系列的单片机AT89S52。
AT89S52是一种低功耗高性能的CMOS8位微处理器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适用于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
字节Flash,8k256字节RAM,位I/O口32线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
其引脚结构如下图:
5
单片机多机通信实现
图2-1AT89S52的引脚结构
单片机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”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,
6
盐城工学院本科生毕业设计说明书
(2010)
将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在Flash编程和校验时,P1口接收低8位地址字节。
P1口的第二功能如下表:
表2-2P1口的第二功能引脚号P1.0P1.1P1.5P1.6P1.7第二功能T2(定时器/计数器T2的外部计数输入),时钟输出T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)MOSI(在系统编程用)MISO(在系统编程用)SCK(在系统编程用)
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口:
口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能P3驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将
输出电流(IIL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 单片机 通信 实现