单片机原理及应用技术项目化项目5单片机的串口通信设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机原理及应用技术项目化项目5单片机的串口通信设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用技术 项目 串口 通信 设计 课件
- 资源描述:
-
1、项目5单片机的串口通信设计模块模块5 5单片机的串口通信设计单片机的串口通信设计5.1 项目描述项目描述5.2 项目目的与要求项目目的与要求5.3 项目支撑知识链接项目支撑知识链接 5.4 项目实施项目实施 项目小结项目小结项目拓展技能与练习项目拓展技能与练习 项目5单片机的串口通信设计【项目导入】由项目1可知,单片机的I/O端口中有一个可编程、全双工的串行口,它就是单片机与外界进行交换信息的端口,本项目将学习单片机串行通信的相关知识和串口的结构及应用。项目5单片机的串口通信设计【项目目标】1.知识目标(1)了解单片机串行通信的一些概念;(2)掌握单片机串行口的结构和工作原理;(3)理解单片机
2、串行口的工作方式;(4)掌握串行通信的硬件设计。项目5单片机的串口通信设计2.能力目标(1)能根据系统的功能要求,对串口进行设置;(2)能根据功能模块要求,对串口通信进行设计;(3)学会串行口的初始化编程。项目5单片机的串口通信设计5.1 项项 目目 描描 述述单片机与外界进行信息的交换必然要用到通信协议,比如单片机与单片机的通信、单片机与PC的通信等。本项目通过设计一个由甲单片机(简称甲机)通过串口通信去控制乙单片机(简称乙机)LED灯的闪烁,来让大家熟悉并掌握单片机的通信设计。项目5单片机的串口通信设计5.2 项目目的与要求项目目的与要求本项目的设计目的是通过甲单片机的端口控制乙单片机I/
3、O端口LED灯的闪烁。具体要求:通过按下甲单片机的开关次数来完成发送控制命令字符,乙单片机根据接收来自甲机传送的信息来完成LED1闪烁、LED2闪烁、双闪烁或停止闪烁等。项目5单片机的串口通信设计在实施项目过程中,要掌握以下基本知识点:(1)串行通信的基本概念和工作原理;(2)单片机的串行口结构;(3)串口寄存器的功能及串口的工作方式;(4)串口通信的应用。项目5单片机的串口通信设计5.3 项目支撑知识链接项目支撑知识链接5.3.1 串行通信串行通信1概述在实际应用中,计算机与外部设备之间,计算机与计算机之间常常要进行信息交换,所有这些信息的交换均称为“通信”。通信的基本方式分为并行通信和串行
4、通信两种。并行通信是构成数据信息的各位同时进行传送的通信方式,例如8位数据或16位数据并行传送。项目5单片机的串口通信设计图5-1(a)为并行通信方式的示意图,其特点是传输速度快,缺点是需要多条传输线,当距离较远、位数又多时,通信线路复杂且成本高。串行通信是数据一位接一位地顺序传送。图5-1(b)为串行通信方式的示意图。其特点是通信线路简单,只要一对传输线就可以实现通信(如电话线),从而大大降低了成本,特别适用于远距离通信,缺点是传送速度慢。项目5单片机的串口通信设计图5-1 通信的两种基本方式项目5单片机的串口通信设计由图5-1可知,假设并行传送N位数据所需时间为T,那么串行传送的时间至少为
5、NT,实际上总是大于NT。在串行通信中一个方向只有一根通信线,这根线既传输数据信息,又传输控制信息。为了加以区分,要对信息的格式进行约定。信息格式有异步信息和同步信息两种,与此对应,串行通信就分为异步通信和同步通信两种方式。项目5单片机的串口通信设计1)异步通信方式异步通信方式是一种常用的通信方式,以帧为发送单位。帧由四个部分组成:起始位、数据位、奇偶校验位、停止位。起始位占1位,数据位占58位,奇偶校验位占1位(也可以没有奇偶校验位),停止位占1或2位,如图5-2所示。图5-2中给出的是有8位数据位的帧格式,帧中有1位起始位、8位数据位、1位奇偶校验位、1位停止位,共11位。项目5单片机的串
6、口通信设计其中,起始位标识数据发送开始,接下来是数据位和奇偶校验位,停止位标识数据发送结束。数据传送的基本过程是:传送开始后,接收设备不断检测传输线,若在接收到一系列的“1”之后,检测到一个“0”,说明接到一个帧的起始位,接着接收数据位和奇偶校验位,当接收到停止位时,说明帧传送结束。将数据位拼成一个字节,进行奇偶校验,验证无误后表明正确收到一个字符。项目5单片机的串口通信设计图5-2 异步通信原理示意图项目5单片机的串口通信设计由上述过程可见,异步通信是按字符传输的。异步通信的特点是不需要传送同步脉冲,字符帧长度也不受限制,故硬件结构比同步通信方式简单;但因此种传送方式中包含有起始位和停止位,
7、故而降低了有效数据的传输速率。2)同步通信方式同步通信是一种比特同步的通信方式,要求发收双方具有同频同相的同步时钟信号,用同步起始位作为发送或接收数据的开始,如图5-3所示。项目5单片机的串口通信设计图5-3 同步通信示意图项目5单片机的串口通信设计图5-3中给出的是同步通信方式的一帧数据。数据传送的基本过程为:发送方先发送一个或两个特殊字符,该字符称为同步字符,当发送方和接收方达到同步后,就一个接一个地发送一大块数据。使用同步通信方式可以实现高速度、大容量的数据传送,其缺点是要求发送时钟和接收时钟保持严格同步。故发送时钟除应和发送比特率保持一致外,还应把它同时传送到接收端。项目5单片机的串口
8、通信设计2串行通信方式与波特率1)串行通信方式在串行通信中,数据是在两个站之间进行传送的。按照数据传送方向,串行通信可分为单工(simplex)、半双工(half duplex)和全双工(full duplex)三种方式。图5-4为三种方式的示意图。项目5单片机的串口通信设计(1)单工:指通信双方只能进行单方向传输。单工通信的通信线是单向的,发送端只有发送器,只能发送数据;接收端只有接收器,只能接收数据,如图5-4(a)所示。(2)半双工:指通信双方都能进行数据传输,双方都设有发送器和接收器,都能发送数据和接收数据,但不能同时进行,即发送时不能接收,接收时不能发送,如图5-4(b)所示。(3)
9、全双工:是指通信双方能同时进行数据传输,双方都设有发送器和接收器,能同时发送数据和接收数据,如图5-4(c)所示。项目5单片机的串口通信设计图5-4 串行通信数据传送方式项目5单片机的串口通信设计2)波特率串行通信的快慢用波特率来表示。51系列单片机串行口有4种工作方式,波特率也随之不同。波特率和帧格式可以通过软件编程来设置。必须正确进行波特率的设置,才能进行可靠的数据通信。项目5单片机的串口通信设计波特率是数据的传送速率,指的是每秒钟传送二进制数码的位数,单位为波特/秒(baud/s),也叫波特数,它是衡量异步通信的一个重要指标。但波特率与字符的实际传送速率不同,字符的实际传送速率(字符帧/
10、秒)是每秒内所传送的字符帧数,和字符帧格式有关。项目5单片机的串口通信设计波特率与字符的传送速率(字符/秒)之间存在如下关系:波特率=位/字符字符/秒=位/秒。每1位二进制位的传送时间Td就是波特率的倒数。例如:假设字符传送速度为360字符/s,每个字符又包含10位,试求此通信中的波特率及一位二进制数的传送时间。波特率为 项目5单片机的串口通信设计一位二进制数传送的时间即为波特率的倒数:异步通信的传送速率在5019 200位/s之间,常用于计算机到CRT终端,以及双机和多机之间的通信。d1T=ms=0.278 ms3600项目5单片机的串口通信设计3信号的调制和解调当异步通信的距离在30 m以
11、内时,计算机之间可以直接通信。而当传输距离较远时,通常用电话线进行传送。电话线的带宽限制以及信号传送中的衰减会使信号发生明显的畸变。所以,在这种情况下,发送时要用调制解调器(Modulator)把数字信号转换为模拟信号,并加以放大再传送,这个过程称为调制。在接收时,用解调器(Demodulator)检测此模拟信号,并把它转换成数字信号再送入计算机,这个过程称为解调。项目5单片机的串口通信设计4RS-232C串行通信协议RS-232C由美国电子工业协会制定,是目前使用最多的一种异步串行通信总线标准。RS-232C定义了数据终端设备(DTE)和数据通信设备(DCE)之间的物理接口规范。采用标准接口
12、后,能方便地把单片机和外设以及测量仪器等有机地连接起来构成一个控制系统。此串口协议适合短距离或调制解调的通信场合。项目5单片机的串口通信设计1)RS-232C的电气特性该标准采用负逻辑,电平值为3 V15 V的低电平表示逻辑“1”;电平值为+3 V+15 V的高电平表示逻辑“0”。RS-232C不能直接与TTL电路连接,使用时必须加上适当的电平转换电路,否则会烧坏。目前较常用的电平转换芯片有MAX232、MC1488和MC1489等。2)RS-232C引脚RS-232C接口采用的是9针连接和25针连接,具体如图5-5所示。RS-232C的引脚定义见表5-1所示。项目5单片机的串口通信设计图5-
13、5 串行口项目5单片机的串口通信设计项目5单片机的串口通信设计3)RS-232C的通信距离和速度RS-232C规定的最大负载电容为2500 pF,这个电容限制了它的传送距离和传送速率。在不使用调制解调器(Modem)时,它的可靠最大通信距离为15米。另外,它的接口最大传输速率为20 k/s,它还提供以下传输速率:1200 b/s、2400 b/s、4800 b/s、9600 b/s和19 200 b/s。在使用RS-232C时要根据情况选择它的传输速率。项目5单片机的串口通信设计5.3.2 单片机的串行口及工作方式单片机的串行口及工作方式51单片机内部含有一个可编程的全双工通信串行接口(简称串
14、行口),该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。该串行口通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界进行通信。由三个特殊功能寄存器对串行口的接收和发送进行控制,它们分别是串行口缓冲寄存器SBUF、串行口控制寄存器SCON和电源控制寄存器PCON。51系列单片机串行口内部简化结构示意图如图5-6所示。项目5单片机的串口通信设计图5-6 串行口简化结构项目5单片机的串口通信设计串行发送和接收的速率与移位时钟同步,定时器T1作为串行通信的波特率发生器,T1溢出率经2分频(或不分频)后又经16分频作为串行发送或接收的移位时钟
15、。移位时钟的速率即波特率。(1)发送数据过程:CPU通过内部总线将并行数据写入发送SBUF。在发送控制电路的控制下,按设定好的波特率,每来一次移位脉冲,通过引脚TXD向外输出一位。一帧数据发送结束后,向CPU发出中断请求,TI位置1;CPU响应中断后,开始准备发送下一帧数据。项目5单片机的串口通信设计(2)接收数据过程:CPU不停检测引脚RXD上的信号,当信号中出现低电平时,在接收控制电路的控制下,按设定好的波特率,每来一次移位脉冲,读取外部设备发送的一位数据到移位寄存器。一帧数据传输结束后,数据被存入接收SBUF,同时向CPU发出中断请求,RI位置1。CPU响应中断后,开始接收下一帧数据。项
16、目5单片机的串口通信设计1与串行口有关的寄存器51系列单片机中有关串行通信的特殊功能寄存器有串行数据缓冲寄存器SBUF、串行控制寄存器SCON和电源控制寄存器PCON。项目5单片机的串口通信设计1)串行数据缓冲寄存器SBUF串行数据缓冲寄存器SBUF是一个字节地址为99H的特殊功能寄存器,用来存放将要发送或接收到的数据。在物理结构上,它对应着发送缓冲寄存器和接收缓冲寄存器,它们共用同一个地址。CPU通过读或写来区别究竟对哪一个缓冲寄存器进行操作,即发送缓冲寄存器只能写入不能读出,接收缓冲寄存器只能读出而不能写入。当CPU向SBUF发出“写”命令时,表示将A中数据写入发送缓冲寄存器,同时也启动数
17、据按一定的波特率发送;而当执行读SBUF的命令时,则表示将接收到的数据从接收缓冲寄存器读出并送入A中。项目5单片机的串口通信设计2)串行控制寄存器SCON串行控制寄存器SCON用于设置串行口的工作方式,监视串行口的工作状态、发送与接收的状态控制等。它是一个既可进行字节寻址又可进行位寻址的特殊功能寄存器。串行控制寄存器SCON的结构和各位名称、位地址如表5-2所示。项目5单片机的串口通信设计项目5单片机的串口通信设计各位功能说明如下:(1)SM0、SM1串行口工作方式选择位:串行口的工作方式及功能选择由这两位确定,具体如表5-3所示。项目5单片机的串口通信设计(2)SM2多机通信控制位:在方式2
18、和方式3中,若SM2=1,且RB8(接收到的第九位数据)=1时,将接收到的前8位数据送入SBUF,并置位RI产生中断请求,否则将接收到的8位数据丢弃;若SM2=0,则不论第九位数据为0还是为1,都将前8位数据装入SBUF中,并产生中断请求。在方式0中,SM2必须为0。(3)REN允许接收控制位:REN位用于对串行数据的接收进行控制:REN=0,禁止接收;REN=1,允许接收。该位由软件置位或复位。项目5单片机的串口通信设计(4)TB8方式2和方式3中要发送的第9位数据:在方式2和方式3时,TB8是发送的第9位数据。该位由软件置位或复位。TB8还可用作奇偶校验位,也可在多机通信中作为地址帧或数据
19、帧的标志位使用。(5)RB8在方式2或方式3中,RB8存放已接收到的第9位数据,作为奇偶校验位或地址帧/数据帧的标志位;在方式1中,若SM2=0,则RB8是接收到的停止位。项目5单片机的串口通信设计(6)TI发送中断标志位:当采用方式0时,发送完第8位数据后,该位由硬件置位;在其他方式下,遇发送停止位时,该位由硬件置位。因此TI=1,表示帧发送结束,可用软件查询TI位标志,也可以请示中断。TI位必须由软件清0。(7)RI接收中断标志位:当采用方式0时,接收完第8位数据后,该位由硬件置位;在其他方式下,当接收到停止位时,该位由硬件置位。因此RI=1,表示帧接收结束,可用软件查询RI位标志,也可以
20、请示中断。RI位也必须由软件清0。项目5单片机的串口通信设计3)电源控制寄存器PCONPCON主要是为CHMOS型单片机电源控制而设置的专用寄存器。其中,最高位SMOD是串行口波特率的倍增位,在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时串行口波特率加倍。系统复位时,SMOD=0。PCON寄存器不能进行位寻址,其各位名称如表5-4所示。项目5单片机的串口通信设计2串行口的工作方式89C51单片机串行通信共有4种工作方式,可有8位、10位、11位帧格式,是由串行控制寄存器SCON中SM0SM1来决定的,如表5-3所示。项目5单片机的串口通信设计1)串行工作方式0在方式0
21、下,串行口作为同步移位寄存器使用。这时以RXD端作为数据移位的输入/输出端,而由TXD端输出移位脉冲。移位数据的发送和接收以8位为一帧,不设起始位和停止位,无论输入/输出,均低位在前高位在后。其帧格式如下:项目5单片机的串口通信设计在移位时钟脉冲(TXD)的控制下,将发送数据缓冲器的数据串行移到外接的移位寄存器,通过引脚RXD输出;8位数据以fosc/12的固定频率输出,发送完一帧数据后,发送中断标志TI由硬件置位;接收数据时,复位接收请求标志RI=0,置位允许接收控制位REN=1,外接移位寄存器中的内容首先移入内部的输入寄存器,然后写入接收数据缓冲寄存器,此后RI置1。项目5单片机的串口通信
22、设计在方式0下,移位操作的波特率是固定的,为单片机晶振频率的1/12。以fosc表示晶振频率,则波特率=fosc/12,也就是一个机器周期进行一次移位。若fosc=6 MHz,则波特率为500 kb/s,即2 s移位一次;若fosc=12 MHz,则波特率为1 Mb/s,即1 s移位一次。项目5单片机的串口通信设计2)串行工作方式1方式1是一帧10位的异步串行通信方式,包括1个起始位、8个数据位和1个停止位,其帧格式如下:项目5单片机的串口通信设计数据发送是由一条写串行数据缓冲寄存器SBUF指令开始的。在串行口硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TXD端
23、串行输出。一个字符帧发送完后,使TXD输出线维持在“1”(space)状态下,并将串行控制寄存器SCON中的TI置1,表示一帧数据发送完毕;接收数据时,SCON中的REN位应处于允许接收状态(REN=1)。在此前提下,串行口采样RXD端,当采样到从1向0状态的跳变时,就认定为已接收到起始位,随后在移位脉冲的控制下,接收数据位和停止位。项目5单片机的串口通信设计【小提示】(1)若RI=0,SM2=0,则8位数据装入SBUF,停止位装入RB8,置RI=1。(2)若RI=0,SM2=1,且停止位为1,则结果与A相同。(3)若RI=0,SM2=1,且停止位为0,则所接收数据丢失。(4)若RI=1,则所
24、接收数据丢失。项目5单片机的串口通信设计上述不论出现哪种情况,检测器都会重新检测RXD端的负跳变,以便接收下一帧。方式1的波特率是可变的,其波特率由定时器/计数器T1的计数溢出率来决定,其公式为:波特率=2SMOD(T1溢出率)/32。其中,SMOD为PCON中最高位的值,SMOD=1表示波特率倍增。项目5单片机的串口通信设计当定时器/计数器T1用作波特率发生器时,通常选用定时初值自动重装的工作方式2(注意:不要把定时器/计数器的工作方式与串行口的工作方式搞混淆),从而避免了通过程序反复装入计数初值而引起的定时误差,使得波特率更加稳定。若T1不中断,则T0可设置为方式3,借用T1的部分资源,拆
25、成两个独立的8位定时器/计数器,以弥补T1被用作波特率发生器而少一个定时器/计数器的缺憾。若时钟频率为fosc,定时计数初值为T1初值,则波特率为波特率=)1T256(12f322oscSMOD初值项目5单片机的串口通信设计在实际应用中,通常是先确定波特率,后根据波特率求T1定时初值,因此上式又可写为T1的时间常数=例如,89C51单片机控制系统,晶振为12 MHz,要求串口发送数据为8位,波特率为1200 b/s,设SMOD=1,则T1的时间常数的计算如下:T1的时间常数=25652.08=203.920CCH波特率12f322256oscSMOD12003841012225612f3222
展开阅读全文