项目6点对点双机通信系统的设计与制作_第1页
项目6点对点双机通信系统的设计与制作_第2页
项目6点对点双机通信系统的设计与制作_第3页
项目6点对点双机通信系统的设计与制作_第4页
项目6点对点双机通信系统的设计与制作_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理与应用(C语言版)嵌 入 式 开 发 初 级嵌 入 式 开 发 初 级目 录6.1 项目要求与分析6.4 项目详细设计6.6 项目小结6.7 项目拓展6.2 项目理论知识6.3 项目概要设计6.5 项目实施6.1 项目要求与分析项目要求与分析6.1.1 项目要求项目要求通过使用2个单片机实现点对点双机通信:(1)2个单片机的串口连接,构成数据的发送通道和接收通道;(2)2个单片机之间相互发送数据;(3)2个单片机之间相互接收数据,并将接收到的数据通过LED灯显示出来。6.1 项目要求与分析项目要求与分析6.1.2 项目要求分析项目要求分析根据项目要求的内容,需要满足以下要求,才可以完

2、成项目的设计。(1)硬件功能要求:系统由2组单片机系统构成,每组单片机系统由1个单片机和8个LED灯组成,完成2个单片机系统之间的串行连接和通信。(2)软件功能要求:完成2个单片机串行通信发送数据和接收数据的控制功能。根据项目要求的内容,项目设计关键是串行通信的实现。6.1 项目要求与分析项目要求与分析通信是人们传递信息的方式,实现通信双方之间的信息交换。单片机与其他设备(例如其他单片机、计算机和外部扩展设备)通过数据传输进行通信。数据传输可以通过两种方式进行:并行通信和串行通信。并行通信的传输方式是指一组数据的各数据位在多条线上同时被传输。并行通信时数据的各个位同时传送,可以字或字节为单位并

3、行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。并行数据传输只适用于近距离的通信,通常传输距离小于30米。6.1 项目要求与分析项目要求与分析串行通信的传输方式是指一组数据的各数据位在一条数据线上一位一位地依次传输,每一位数据占据一个固定的时间长度。串行通信时一个字节的数据要分8次由低位到高位按顺序一位位地传送。串行通信使用的传输线少,非常适合于远程通信,但是数据传送效率低,例如,传送一个字节,并行通信只需要1T的时间,而串行通信至少需要8T的时间。串行通信适合于远距离传送,可以从几米到数千公里。总之,串行通信适合于长距离、低速率的通信,并行通信适合于短距离、高速率的数据

4、传送。6.1 项目要求与分析项目要求与分析为了实现2个单片机之间的串行通信,应该掌握以下知识:(1)单片机的串口的硬件结构。(2)单片机的串口的相关寄存器。(3)单片机的串口的工作方式。(4)单片机的串口的初始化步骤。6.1 项目要求与分析项目要求与分析为了实现上述功能要求,应该具备以下能力:(1)能够使用Proteus软件的实现硬件功能要求;(2)能够使用Keil软件的实现软件功能要求: 完成串行通信发送数据和接收数据;(3)能够使用Keil软件和Proteus软件的联调开发环境完成整个项目设计,实现要求。6.2 项目理论知识项目理论知识6.2.1 单片机串行口的硬件结构单片机串行口的硬件结

5、构AT89C51单片机串行口的硬件结构如图6-1所示。6.2 项目理论知识项目理论知识在图6-1中,单片机的串口共有两个串行缓冲寄存器(Serial Buffer,SBUF):(1)发送缓冲寄存器SBUF: 串行发送时,从片内总线向发送SBUF写入数据;(2)接收缓冲寄存器SBUF:串行接收时,从接收SBUF向片内总线读出数据。它们都是可寻址的寄存器,但因为发送和接收不能同时进行。所以给这两个寄存器赋予同一地址(99H)。6.2 项目理论知识项目理论知识在接收方式下,串行数据通过引脚RXD(P3.0)进入,接收控制器控制移位寄存器一位一位将数据移入接收SBUF中,当数据都接收完成后,接收控制器

6、产生串行接收中断RI请求。在发送方式下,先将待发送数据写入发送SBUF中,发送控制器控制门将数据一位一位通过TXD(P3.1)发送出去。当数据发送完成后,发送控制器产生串行发送中断TI请求。波特率产生电路用于控制传送数据的速率,控制每秒钟传输的数据位数,且要求发送控制和接收控制器使用相同的波特率。6.2 项目理论知识项目理论知识6.2.2 单片机串行口的寄存器单片机串行口的寄存器1. 1. 串行控制寄存器串行控制寄存器SCONSCON(1)寄存器的作用:是一个可位寻址的特殊功能寄存器,用于串行数据通信的控制。(2)寄存器的内容:见表6-1SCOND7D6D5D4D3D2D1D0(98H)SM0

7、SM1SM2RENTB8RB8TIRI6.2 项目理论知识项目理论知识2. 2. 电源控制寄存器电源控制寄存器PCONPCON(1)寄存器的作用:用于电源控制(2)寄存器的内容:(只介绍和串口相关的位)SMOD为串行口波特率的倍增值。当SMOD=1时,串行口波特率倍增。系统复位时,SMOD=0。 PCOND7D6D5D4D3D2D1D0(87H)SMOD-GF1GF0PDID6.2 项目理论知识项目理论知识6.2.3 单片机串行口的工作方式单片机串行口的工作方式AT89C51单片机的串行口结构比较复杂,具有4种工作方式,这些工作方式用SCON中的SM0和SM1两位来确定。具体内容如表6-2所示

8、。表 6-2 串行口的工作方式SM0 SM1 工作方式功 能波 特 率0 0方式0同步移位寄存器方式fosc/120 1方式18位UART定时器T1溢出率/n1 0方式29位UARTfosc/32或fosc/641 1方式39位UART定时器T1溢出率/n6.2 项目理论知识项目理论知识1. 工作方式工作方式0(1)方式的作用方式的作用:为同步移位寄存器输入/输出模式,可外接移位寄存器,以扩展I/O口。(2)引脚的使用引脚的使用:数据由P3.0 (RXD)引脚输出或输入,同步移位脉冲由P3.1(TXD)引脚输出,每一移位脉冲将使RXD端输出或者输入1位二进制码。(3)数据的格式数据的格式:发送

9、和接收均为8位数据,低位在先,高位在后。(4)方式的波特率方式的波特率:在TXD端的移位脉冲即为方式0的波特率,其值固定为晶振率fosc的1/12,即每个机器周期移动1位数据。6.2 项目理论知识项目理论知识(5)方式的时序图方式的时序图:使用方式0实现数据的移位输出时,实际上是把串行口变成并行口使用。 数据预先写入串行口数据缓冲器SBUF,然后从串行口RXD端,在移位时钟脉冲(TXD)的控制下,逐位移出串口。当8位数据全部移出后,SCON寄存器的发送中断TI被自动置1。 图6-2 单片机的串行口的工作方式0的发送数据时序图6.2 项目理论知识项目理论知识串行数据经RXD端串行输入,同样由TX

10、D端提供移位时钟脉冲。8位数据串行接收需要有允许接收的控制,具体由SCON寄存器的REN位实现。 REN=0,禁止接收;REN=1允许接收。当软件置位REN时,即开始从RXD端输入数据(低位在前),当接收到8位数据时,置位接收中断标示RI。具体如图6-3所示。 图6-3 单片机的串行口的工作方式0的接收数据时序图6.2 项目理论知识项目理论知识2. 工作方式工作方式1(1)方式的作用方式的作用:为波特率可变的8位异步通信口(2)引脚的使用引脚的使用:数据位由P3.0(RXD)端接收,由P3.1(TXD)端发送。(3)数据的格式数据的格式:数据为10位,即1个起始位、8个数据位(低位在先,高位在

11、前)和1个停止位。其数据格式如图6-4所示。 图6-4 单片机的串行口的工作方式1的数据格式(4)方式的波特率方式的波特率:方式1的波特率由定时器T1的溢出率决定。6.2 项目理论知识项目理论知识(5)方式的时序图方式的时序图:采用方式1发送数据时,用软件清除TI后,CPU执行任何一条SBUF缓冲寄存器的传送指令,就启动发送过程,数据由TXD引脚输出,此时的发送移动脉冲是由定时/计数器T1送来的溢出信号经过16或32分频而得到的。一帧信号发送完时,将置位发送中断标志TI=1,向CPU申请中断,完成一次发送过程。具体如图6-5所示。 图6-5 单片机的串行口的工作方式1的发送数据时序图6.2 项

12、目理论知识项目理论知识采用方式1接收数据时,用软件清除RI后,当允许接收位REN被置位1时,接收器以选定波特率的16倍的速率采样RXD引脚上的电平。当检测到有从1到0的负跳变时,则启动接收过程。当最后一次移动脉冲生产时能满足下列两个条件:RI=0;接收到的停止位为1或SM2=0。则停止位送入RB8,8位数据进入SBUF,并置接收中断标志RI=1,向CPU发出中断请求,完成一次接收数据。具体如图6-6所示。 图6-6 单片机的串行口的工作方式1的接收数据时序图6.2 项目理论知识项目理论知识3. 方式方式2和方式和方式3(1)方式的作用:方式的作用:作为9位异步通信接口。(2)引脚的使用引脚的使

13、用:数据位由P3.0(RXD)端接收,由P3.1(TXD)端发送。(3)数据的格式数据的格式:每帧数据结构是11位的:最低位是起始位(0),其后是8位数据位(低位在先,高位在后),第10位时用户定义位(SCON中的TB8或RB8),最后1位是停止位。 图6-7 单片机的串行口的工作方式2/3的数据格式(4)方式的波特率方式的波特率:方式2的波特率固定为fosc的1/64或1/32;方式3的波特率由定时器T1的溢出率决定。6.2 项目理论知识项目理论知识(5)方式的时序图方式的时序图:采用方式2或方式3发送数据时,先将发送数据(D0-D7)写入SBUF,而D8位的内容则由硬件电路从TB8中直接送

14、到发送移位寄存器的第9位并以此来启动串行发送。一个字符帧发送完毕后,将TI位置1,向CPU申请中断,完成发送过程。具体如图6-8所示。 图6-8 单片机的串行口的工作方式2/3的发送数据时序图6.2 项目理论知识项目理论知识采用方式2或方式3接收数据时,数据从右边移入输入移位寄存器,在起始位0移到最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的第9位数据为1)时,接收到的数据装入接收缓冲器SBUF和RB8(接收数据的第9位),置RI=1,向CPU请求中断。如果条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚的负跳变。如图6-9所示。 图6-9 单片机的串行口的工

15、作方式2/3的接收数据时序图RI( 中 断 标 志 )位 采 样 脉 冲D0D1D2D3D4D5D6D7停 止 位RXD起 始RB86.2 项目理论知识项目理论知识6.2.4 单片机串行口的波特率计算单片机串行口的波特率计算波特率就是指每秒钟传输数据的位数。通过软件可对单片机串行口的4种工作方式的波特率进行设置,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。串行口的4种工作方式对应3种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。方式方式0:波特率:波特率 = fosc/12方式方式1:波特率:波特率 =(2S

16、MOD/32)()(T1溢出率)溢出率)方式方式2:波特率:波特率 =(2SMOD/64) fosc方式方式3:波特率:波特率 =(2SMOD/32)()(T1溢出率)溢出率)6.2 项目理论知识项目理论知识6.2.5 单片机串行口的初始化步骤单片机串行口的初始化步骤在使用串行口之前,应对其进行编程初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:(1)确定定时器T1的工作方式,设置TMOD寄存器;(2)确定定时器T1的计数初值,装载TH1、TL1;(3)启动定时器T1,把TCON中的TR1位设置为1;(4)确定串行口的控制,设置SCON寄存器;(5)串行口工作在中断

17、方式下,必须开总中断和串行口中断,设置IE寄存器。6.3 项目概要设计项目概要设计6.3.1 点对点双机通信系统的概要设计点对点双机通信系统的概要设计点对点双机通信系统项目的设计要使用中断来完成:项目的主要设计内容是:(1)进行硬件电路设计时,需要考虑单片机连接的I/O端口和串行通信电路。串行通信电路的设计,需要考虑电路中串行发送端和接收端的连接电路。(2)进行软件设计时,主要需要考虑如何进行串行通信的处理,其中包括串行发送端软件设计、串行接收端软件设计和串行中断的响应中断处理。6.3 项目概要设计项目概要设计6.3.2 硬件电路的概要设计硬件电路的概要设计(1)串行发送端电路部分串行发送端采

18、用单片机的P3.1端口,使用第二功能(TXD),作为串行通信数据发送端。为了直观说明发送的数据,单片机通过P1端口连接8个LED灯,显示发送数据。(2)串行接收端电路部分串行接收端采用单片机的P3.0端口,使用的第二功能(RXD),作为串行通信数据接收端。为了直观说明接收的数据,以便和发送端的数据进行比较,测试接收数据的正确性,单片机通过P1端口连接8个LED灯,显示接收数据。并用闪烁的方式,和发送数据有所区别。6.3 项目概要设计项目概要设计6.3.3 软件程序的概要设计软件程序的概要设计有关点对点双机通信项目的软件设计的核心:如何进行串行通信。6.4 项目详细设计项目详细设计6.4 项目详

19、细设计项目详细设计6.4.2 硬件电路的详细设计硬件电路的详细设计(1)单片机(甲机)部分:由电阻R1-R8和LED灯D1-D8组成数据显示部分,根据硬件电路的连接,当P1.0至P1.7端口为高电平时,LED灯D1-D8被点亮,当P1.0至P1.7端口为低电平时,LED灯D1-D8被熄灭。甲机的串行发送端(P3.1端口)和乙机的串行接收端连接,组成项目的串行发送数据通道。(2)单片机(乙机)部分:由电阻R9-R16和LED灯D8-D16组成数据显示部分,根据硬件电路的连接,当P1.0至P1.7端口为高电平时,LED灯D8-D16被点亮,当P1.0至P1.7端口为低电平时,LED灯D8-D16被

20、熄灭。乙机的串行发送端(P3.1端口)和甲机的串行接收端连接,组成项目的串行接收数据通道。6.4 项目详细设计项目详细设计6.4.3 软件程序的详细设计软件程序的详细设计 软件部分的设计主要是:双机之间点对点的发送和接收处理。6.5 项目实施项目实施根据上述有关项目的详细设计,现在使用Proteus软件实现系统设计。设计步骤如下:1新建可控流水灯系统设计;新建可控流水灯系统设计;2选择可控流水灯系统所需的元器件;选择可控流水灯系统所需的元器件;3放置对象(包括元器件和电源终端)并布局原放置对象(包括元器件和电源终端)并布局原理图;理图;4编辑修改元器件参数;编辑修改元器件参数;5放置连线,连接对象,建立原理图。放置连线,连接对象,建立原理图。6.5 项目实施项目实施序号序号 库参考名称库参考名称库库描述描述1AT89C51MCS8051 8051 Microcontroller2RESDEVICEGeneric resistor symbol3LED-REDACTIVEAnimated LED Model(RED)6.5 项目实施项目实施6.5.2 软件程序的实施有关项目的软件程序的实施,具体步骤如下:第一步,新建项目工程文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论