课程设计(论文)基于51单片机的串口通信设计与实现.doc
《课程设计(论文)基于51单片机的串口通信设计与实现.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于51单片机的串口通信设计与实现.doc(22页珍藏版)》请在三一办公上搜索。
1、 课程设计(论文)说明书题 目: 基于51单片机的串 口通信设计与实现 院 (系): 信息与通信学院 专 业: 通信工程 学生姓名: 学 号: 指导教师: 职 称: 2011年12月12日摘 要目前,单片机在双机通信领域应用很广。但研究最多的是上位机与下位机的通信及多单片机构成的主从式多机通信系统。本文重点研究了多单片机的平权式多机通信,使各单片机有相同的权限。本文从平权式多机通信协议入手,首先设计了具体平权式多机通信协议;主机通信用按键控制,模拟实际应用中的触发信号输入。对于1号单片机,还可通过液晶实时显示工作状态,初始为主机。在不需置其他单片机为主机的情形下,本多机通信系统可以作为主从式多
2、机通信系统。从机通信模式通过串口中断触发启动,通信结束即恢复之前的从机状态。通信过程中,主机先发送寻址的从机号,待从机响应后开始通信。通信结束后,主机发送自己的主机号,告知从机。然后从机发给主机校验字节数据,主机检验错误,检验无误后,作出响应,1号单片机液晶会显示,2号和3号单片机收发数据无误后会使LED指示灯亮起。其外,本文研究了可切换双向接口的实现方法。通过用单片机的一个引脚控制单片机的串口的连接方式,使其工作在主机模式或从机模式。本研究已经仿真通过,真实可行。具有一定的检错能力,串行通信的比特率是9600bit/s,通信速度较快,且可靠性高。本研究通过硬件电路解决了通信过程中多单片机争用
3、主机权的问题。关键词:单片机;双机通信;平权;AT89S52目 录引言31 单片机多机通信实现31.1 本课题的研究内容32 单片机多机通信理论及方案选择 42.1 单片机串口通信42.1.1 单片机串口介绍42.1.2 单片机串口控制寄存器42.1.3 单片机串口的四种工作方式52.2 单片机多机通信方案选择62.3 微处理器的选择62.4 液晶LCD1602介绍73 单片机多机通信协议设计74 硬件电路设计 84.1 单片机最小系统的设计84.2 键盘电路设计94.3液晶显示电路设计95 软件设计95.1单片机的程序设计95.2 键盘程序设计106 结论11致谢12参考文献13附录一:仿真
4、电路14附录二:原理图14引言目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的
5、形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。构成较大规模的检测、控制系统,经常要采用多个单片机,组成可以通信的多机系统。Mcs一51系列单片机为实现多机通信联网设计了方便的串行通信接口功能。将多个Mcs一51单片机组成串行总线形式的相互通道,通过写单片机的串行控制方式寄存器,将串行口置成方式2或方式3,就可以实现主机与分机之间的串行通信。这种多机系统结构简单,应用广泛,但它只能实现由主机呼叫分机,然后实现主机与分机之间的全双工串行通信。我们在监控系统中要求
6、既有主机与分机主动通信,又有分机与主机主动通信,这种结构的多机系统就无法满足要求。多机协同工作已是单片机发展的一个重要趋势,目前单片机多机通信的主要方式仍然是主从式多机通信系统。单片机多机通信的目的是实现分布式处理系统,单片机多机通信的方式有很多种,应用前景广阔,非常具有研究意义!1单片机多机通信实现1.1 本课题的研究内容本文在研究传统的多机通信系统的基础上,设计了一种基于MCS51系列单片机AT89S52 的多机通信系统。初始时,1号单片机为主机。主机通过串口向从单片机发送指定格式的数据,从单片机收数据并作出响应,主机通过液晶屏显示通信信息,从机通过LED显示通信状态。主机通信结束即转为从
7、机,其他单片机可置为主机,获得总线控制权。1号单片机通过矩阵键盘控制通信过程与显示,2与3号单片机通过独立按键控制通信状态与主从机切换。在此多机通信系统中,各个单片机具有平等的权限。仅在初始时,1号单片机被默认置为主机,若不需使2号与3号单片机变成主机,则此通信系统可以作为主从式多机通信系统。任何时刻,系统只有一片单片机作为主机,其他均为从机。主机发送的信息可以传送到指定从机,各从机之间也不能直接通信。主机发起通信,从机接收到自己的单片机号后,开始与主机通信。2 单片机多机通信理论及方案选择 2.1 单片机串口通信2.1.1 单片机串口介绍AT89S52单片机内部含有一个可编程全双工串行通信接
8、口,具有UART的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。 在进行异步通信时,数据的发送和接收分别在各自的时钟(TCLK和RCLK)控制下进行的,但都必须与字符位数的波特率保持一致。MCS-51串行口的发送和接收时钟可由两种方式产生,一种是由主机频率fosc经分频后产生,另一种方式是由内部定时器T1或T2的溢出率经16分频后提供。串行口的发送过程由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,再由硬件电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及其它控制位(如奇偶位等),然后在移位脉冲SHIFT的控制下,
9、低位在前,高位在后,从TXD端(方式0除外)一位位地向外发送。串行口的接收与否受制于允许接收位REN的状态,当REN被软件置“1”后,允许接收器接收。接收端RXD一位位地接收数据,直到收到一个完整的字符数据后,控制电路进行最后一次移位,自动去掉启始位,使接收中断标志RI置“1”,并向CPU申请中断。TI和RI是由硬件置位的,但需要用软件复位。2.1.2 单片机串口控制寄存器a.SBUF是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。两个缓冲器只用一个字节地址99H,可通过指令对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。串行口对外有两条独立的收发信号线RXD(P
10、3.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位
11、UART 可变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方式
12、3:9位UART,帧信息为11位,其中一位起始位“0”、八位数据位(先低位后高位),一位控制位(第九位)和一个停止位“1”。波特率可变,根据定时器1的溢出率计算。附加的第9位数据为SCON中的TB8的值,它由软件置位或清零,可作为多机通信中地址/数据信息的标志位,也可作为数据的奇偶校验位。单片机的串行通信传输方式有三种:单工制式、半双工制式和全双工制式。2.2 单片机多机通信方案选择根据需要,各片单片机有相等的权限,每块单片机都可设置为主机或从机,因此单片机的串口应具有双向可选择性。采用两个同相三态门加上一个反相器即可构成这样的接口,并由单片机的一根引脚控制单片机串口的连接方式。发送数据区可存
13、放1B48B的数据,以空字符0作为发送数据结束标志。接收数据时以空字符作为接收有效数据结束标志。通信结束时,从机发回收发长度作为校验。2.3 微处理器的选择本系统对微处理器要求不是太高,速度不要求太高,但代码较长,因此要求微处理器应有较大的程序存储空间,最好用Flash ROM。通信的发送缓冲区与接收缓冲区均从RAM中分配,为了能传送更多的数据,要求要有较大的RAM。此外,处理器还应有一个全双工的串行口。综合考虑以上各种因素,选用MCS-51系列的单片机AT89S52。 AT89S52 具有以下标准功能:8k 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个
14、数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。其引脚结构如下图: 图21 AT89S52的引脚结构2.4 液晶LCD1602介绍市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
15、字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,定义如下表所示:3 单片机多机通信协议设计 AT89S52的内部RAM只有256字节,不能存储太多的数据包;其次,单片机的外接晶振选用11.0592MHz,片内CPU的速度不理想,控制多个时钟,CPU资源消耗太多,会大大降低系统性能。因此,取消了停止等待协议有发送窗口这一机制,而采用发送一个数据包就等待当前数据包的确认包,超时再发。主机通信协议如下:(1)主机的SM2=0;发送从机地址。(2)若从机无应答则等待。若有应答,地址若不符,则发从
16、机复位命令,返回(1);若有应答且地址相符则继续,准备发送命令。(3)发送通信方向控制命令(0x00发或0x01收)。(4)若从机无应答则等待;若从机有应答但状态字不正确,则令从机复位,返回(1);若从机有应答且状态字正确,则继续。(5)将命令分类,若为0x00则准备发送转(6),若为0x01则准备接收转(7)。(6)判断状态字,若从机接收但从机未准备就绪,则令从机复位并转到(1);若从机接收且从机准备就绪,则发送数据块。转到(8);(7)判断状态字,若为从机发送但从机未准备就绪,则令从机复位并转到(1);若为从机发送且从机发送就绪,则接收数据块。转到(8)。(8)发送主机号,然后接收从机发来
17、的收发数据长度。发回响应。(9)置为从机使SM2=1,返回等待接收地址。从机通信协议如下:(1)置SM2=1,接收主机发来的地址,若不符合本机地址,则返回;若符合本机地址,则回送本机地址作为响应。(2)关串口中断,置SM2=0准备接收命令。接收到主机发来的命令,先判断,若不是合法命令则置SM2=1并返回;若为合法命令则继续。(3)将命令分类,若为0x00则发送本机接收就绪信号转(5),若为0x01则发送本机发送就绪信号转(4)。(4)发送数据,等待发送结束,转到(6)。(5)接收数据,等待接收完成。(6)接收主机号,发送收发长度,等待主机的响应。(7)收到主机发来的响应后,做些处理后,返回置S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 论文 基于 51 单片机 串口 通信 设计 实现
链接地址:https://www.31ppt.com/p-4142349.html