《第七章MCS-51单片机串行通讯.ppt》由会员分享,可在线阅读,更多相关《第七章MCS-51单片机串行通讯.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章第七章 MCS-51单片机串行通信部件单片机串行通信部件 7.1 串行通信的概念串行通信的概念7.2 MCS-51单片机串行通信的结构原理单片机串行通信的结构原理7.3 单片机串行通信的工作方式和原理单片机串行通信的工作方式和原理1并行通信和串行通信 通通信信是是指指计计算算机机与与计计算算机机或或外外设设之之间间的的数数据据传传送送,因因此此,这这里里的的“信信”是是一一种种信信息息,是是由由数数字字1和和0构构成成的的具具有有一一定定规规则则并并反反映映确确定定信信息息的的一一个个数据或一批数据。这种数据传输有两种基本方式,即并行通信和串行通信。数据或一批数据。这种数据传输有两种基本
2、方式,即并行通信和串行通信。并行通信并行通信是数据的每位被同时传输出去或接收进来。是数据的每位被同时传输出去或接收进来。串串行行通通信信其其数数据据传传输输是是逐逐位位传传输输的的,因因而而在在相相同同条条件件下下,比比并并行行通通信信传输速度慢。传输速度慢。7.1 7.1 串行通信的概念串行通信的概念串行通信的概念串行通信的概念-基本概念基本概念 异异步步串串行行通通信信:简简称称为为异异步步通通信信,异异步步通通信信的的实实质质是是指指通通信信双双方方采采用用独独立立的的时时钟钟,每每个个数数据据均均以以起起始始位位开开始始,停停止止位位结结束束,起起始始位位触触发发甲甲乙乙双双方方同同步
3、步时时钟钟。每每个个异异步步串串行行帧帧中中的的1位位彼彼此此严严格格同同步步,位位周周期期相相同同。所所谓谓异异步步是是指指发发送送、接接收收双双方方的的数数据据帧帧与与帧帧之之间间不不要要求求同同步步,也也不不必同步。必同步。7.1 7.1 串行通信的概念串行通信的概念串行通信的概念串行通信的概念-基本概念基本概念2异步串行通信和同步串行通信2异步串行通信和同步串行通信 异异步步通通信信,所所传传输输的的数数据据格格式式(也也称称为为串串行行帧帧)由由1个个起起始始位位、7个个或或8个个数数据据位位、12个个停停止止位位(含含1.5个个停停止止位位)和和1个个校校验验位位组组成成。起起始始
4、位位约约定定为为0,空空闲闲位位约约定定为为1。在在异异步步通通信信方方式式中中,接接收收器器和和发发送送器器有有各各自自的的时时钟钟,它它们们的的工工作作是是非非同同步步的。的。-基本概念基本概念7.1 7.1 串行通信的概念串行通信的概念串行通信的概念串行通信的概念 同步串行通信同步串行通信:简称为简称为同步通信同步通信,发送器和接收器由同一个时钟,发送器和接收器由同一个时钟源控制。在异步通信中,每传输一帧字符都必须加上起始位和停止位,源控制。在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就会慢得多。占用了传输时间,在要求传送数据量较
5、大的场合,速度就会慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。一个同步头(字符)标志即可。同步传输方式比异步传输方式速度快,这是它的优势。但同步传同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。以它的设备也较复杂。-基本概念基本概念2异步串行通信和同步串行通信7.1 7.1 串行通信的概念串行通信的概念串行通信的概念串行通信的概念数据通信
6、的传输方式有单工、半双工和全双工方式。数据通信的传输方式有单工、半双工和全双工方式。3数据通信的传输类型-传输方式传输方式单工方式:单工方式:数据仅按一个固定方向传送。数据仅按一个固定方向传送。半双工方式:半双工方式:数据可实现双向传送,但不能同时进行。数据可实现双向传送,但不能同时进行。全双工方式:全双工方式:允许双方同时进行数据双向传送。允许双方同时进行数据双向传送。7.1 7.1 串行通信的概念串行通信的概念串行通信的概念串行通信的概念 根根据据串串行行通通信信的的不不同同工工作作方方式式,可可将将发发送送接接收收线线合合二二为为一一,成成为为发发送送/接接收收复复用用线线(如如半半双双
7、工工)。即即便便在在实实际际应应用用中中可可能能还还要要附附加加一一些些信信号号线线,如如应应答答信信号号线线、准准备备好好信信号号线线等等,但但在在多多字字节节数数据据通信中,串行通信与并行通信相比,其工程实现上造价要低得多。通信中,串行通信与并行通信相比,其工程实现上造价要低得多。因因此此,串串行行通通信信已已被被越越来来越越广广泛泛地地采采用用,尤尤其其是是,串串行行通通信信通通过过在在信信道道中中设设立立调调制制/解解调调器器中中继继站站等等,可可使使数数据据传传输输到到地地球球的的每每个个角角落落。目目前前,飞飞速速发发展展的的计计算算机机网网络络技技术术(互互联联网网、广广域域网网
8、、局局域网)均为串行通信。域网)均为串行通信。-基本概念基本概念3数据通信的传输类型7.1 7.1 串行通信的概念串行通信的概念串行通信的概念串行通信的概念4波特率及时钟频率发送发送/接收时钟频率与波特率有关,即接收时钟频率与波特率有关,即fT/R=nBRT/R式式中中,fT/R为为发发/收收时时钟钟频频率率,单单位位:Hz;BRT/R为为发发/收收波特率,单位:波特率,单位:bps;n为波特率因子。为波特率因子。同同步步通通信信n=1。异异步步通通信信n可可取取1、16或或64。也也就就是是说说,同同步步通通信信中中数数据据传传输输的的波波特特率率即即为为同同步步时时钟钟频频率率;而而异异步
9、步通通信中,时钟频率可为波特率的整数倍。信中,时钟频率可为波特率的整数倍。波波波波特特特特率率率率BRBR是是是是单单单单位位位位时时时时间间间间传传传传输输输输的的的的数数数数据据据据位位位位数数数数,单单单单位位位位:bpsbps(bit bit per per secondsecond),1bps=1bit/s1bps=1bit/s。波波波波特特特特率率率率的的的的倒倒倒倒数数数数即即即即为为为为每每每每位位位位传传传传输输输输所所所所需的时间。需的时间。需的时间。需的时间。-基本概念基本概念7.1 7.1 串行通信的概念串行通信的概念串行通信的概念串行通信的概念5串行通信的校验 异异步
10、步通通信信时时可可能能会会出出现现帧帧格格式式错错、超超时时错错等等传传输输错错误误。在在具具有有串串行行口口应应用用的的单单片片机机开开发发中中,应应考考虑虑在在通通信信过过程程中中对对数数据据差差错错进进行行校校验验,因因为为差差错错校校验验是是保保证证准准确确无无误误通通信信的的关关键。键。常常用用差差错错校校验验方方法法有有奇奇偶偶校校验验(MCS-51系系列列单单片片机机编编程采用此法)、和校验及循环冗余码校验。程采用此法)、和校验及循环冗余码校验。-传输的准确性传输的准确性7.1 7.1 串行通信的概念串行通信的概念串行通信的概念串行通信的概念 在在发发送送数数据据时时,数数据据位
11、位尾尾随随的的一一位位数数据据为为奇奇偶偶校校验验位位(1或或0)。)。当当设设置置为为奇奇校校验验时时,数数据据中中1的的个个数数与与校校验验位位1的的个个数数之之和应为奇数;和应为奇数;当当设设置置为为偶偶校校验验时时,数数据据中中1的的个个数数与与校校验验位位中中1的的个个数之和应为偶数。数之和应为偶数。接接收收时时,接接收收方方应应具具有有与与发发送送方方一一致致的的差差错错检检验验设设置置,当当接接收收一一个个字字符符时时,对对1的的个个数数进进行行校校验验,若若二二者者不不一一致致,则说明数据传送出现了差错。则说明数据传送出现了差错。奇奇偶偶校校验验是是按按字字符符校校验验,数数据
12、据传传输输速速度度将将受受到到影影响响。这种特点使得它一般只用于异步串行通信中。这种特点使得它一般只用于异步串行通信中。(1 1)奇偶校验)奇偶校验)奇偶校验)奇偶校验-奇偶校验奇偶校验5串行通信的校验7.1 7.1 串行通信的概念串行通信的概念串行通信的概念串行通信的概念 所所谓谓和和校校验验是是指指发发送送方方将将所所发发送送的的数数据据块块求求和和(字字节节数数求求和和),并并产产生生一一个个字字节节的的校校验验字字符符(校校验验和和)附附加加到到数数据据块块末末尾尾。接接收收方方接接收收数数据据时时也也是是先先对对数数据据块块求求和和,将将所所得得结结果果与与发发送送方方的的校校验验和
13、和进进行行比比较较,相相符符则则无无差差错错,否否则则即即出出现现了了差差错错。这这种种和和校校验验的的特特点点是是无无法法检检验验出出字字节节位位序序的错误。的错误。(2 2)和校验)和校验)和校验)和校验-和校验和校验5串行通信的校验7.1 7.1 串行通信的概念串行通信的概念串行通信的概念串行通信的概念 这这种种校校验验是是对对一一个个数数据据块块校校验验一一次次。例例如如对对磁磁盘盘信信息息的的访访问问、ROM或或RAM存存储储区区的的完完整整性性等等的的检验。这种方法广泛应用于串行通信方式。检验。这种方法广泛应用于串行通信方式。(3 3)循环冗余码校验)循环冗余码校验)循环冗余码校验
14、)循环冗余码校验-循环冗余码校循环冗余码校验验5串行通信的校验7.1 7.1 串行通信的概念串行通信的概念串行通信的概念串行通信的概念 51系系列列单单片片机机配配置置了了一一个个UART(Universal asynchronous Receiver/Transmitter)的的串串行行接接口口。MCS-51单单片片机机串串行行口口是是由由以以下下部部分分构构成成:发发送送缓缓冲冲寄寄存存器器(SBUF),发发送送控控制制器器,发发送送控控制制门门,接接收收缓缓冲冲寄寄存存器器(SBUF),接接收收控控制制寄寄存存器器,移位寄存器,中断等部分组成。移位寄存器,中断等部分组成。串行口结构与特殊
15、功能寄存器串行口结构与特殊功能寄存器串行口结构与特殊功能寄存器串行口结构与特殊功能寄存器7.2 单片机串行接口的结构原理单片机串行接口的结构原理-串行口结构串行口结构 MCS-51MCS-51单单片片机机内内部部是是一一个个全全双双工工的的异异步步串串行行通通信信口口,与与串串行行通通信信有有关关的的控控制制寄寄存存器器共共有有4个个:SBUF、SCON、PCON和和IE。-SBUF串行口结构与特殊功能寄存器串行口结构与特殊功能寄存器串行口结构与特殊功能寄存器串行口结构与特殊功能寄存器7.2 单片机串行接口的结构原理单片机串行接口的结构原理 该串行接口的特性如下:该串行接口的特性如下:通讯格式
16、:异步通讯。通讯格式:异步通讯。通讯类型:完全双工,可以同时接收和发送串行数据。通讯类型:完全双工,可以同时接收和发送串行数据。工工作作方方式式:4种种工工作作方方式式,1种种方方式式用用于于I/O接接口口扩扩展展,3种种方方式用于串行通讯。式用于串行通讯。接收接收接收接收/发送缓冲器(发送缓冲器(发送缓冲器(发送缓冲器(SBUFSBUF):):):):在逻辑上,SBUF只有一个,既表示发送寄存器,又表示接收寄存器。具有同一个单元地址99H。在物理上,SBUF有两个,一个是发送寄存器,另一个是接收寄存器。访问缓冲器时,通过采用不同的指令来区分访问不同的缓冲器,比如写入发送缓冲器时,用指令“MO
17、V SBUF,A”;读取接收缓冲器时,用指令“MOV A,SBUF”。-接收接收/发送缓冲器(发送缓冲器(SBUF)7.2 单片机串行接口的结构原理单片机串行接口的结构原理 发送控制器:发送控制器:用于将发送缓冲器的数据按异步通讯的数据格式通过输出控制门一位一位地从TXD引脚上发出。接收控制器:接收控制器:用于将引脚RXD上输入的串行信息通过输入移位寄存器转换成并行信息,然后送入接收缓冲器。串行控制寄存器串行控制寄存器SCON(Serial Control):用于确定串行口工作方式,使串行口按确定的工作方式工作。串行口中断申请信号串行口中断申请信号TI、RI:串行口有两个中断申请信号,一个是T
18、I,当串行口将1帧数据发送完毕后,TI被置1,向CPU申请中断;一个是RI,当串行口接收完1个数据后,RI被置1,向CPU申请中断。波特率发生器波特率发生器T1/T2:用于产生串行口传输信息时的移位时钟信号,控制串行信息传输的速率。通过对T1或T2以及特殊功能寄存器PCON的设置,可以选择T1或T2产生串行口传输信息时的移位时钟信号,并设置符合要求的波特率。由于该部件不属于串行口内的电路,故放在虚线以外。7.2 单片机串行接口的结构原理单片机串行接口的结构原理 7.2 单片机串行接口的结构原理单片机串行接口的结构原理接收器接受数据原理接收器接受数据原理 SCON是是MCS-51的的一一个个可可
19、位位寻寻址址的的专专用用寄寄存存器器,用用于于串串行行数数据据通通信信的的控控制制。单单元元地地址址98H,位位地地址址9FH98H。SCON各位的定义如表各位的定义如表7-4所示。所示。一、串行接口的寄存器一、串行接口的寄存器一、串行接口的寄存器一、串行接口的寄存器1.1.串行控制寄存器(串行控制寄存器(串行控制寄存器(串行控制寄存器(SCONSCON)-串行控制寄存器串行控制寄存器(SCON)7.3 单片机串行通信的工作方式和原理单片机串行通信的工作方式和原理 SM11)串行口工作方式选择位串行口工作方式选择位SM0、SM1 SM0、SM1由由软软件件置置1或或清清0,用用于于选选择择串串
20、行行口口的的4种工作方式。种工作方式。-串行控制寄存器串行控制寄存器(SCON)7.3 单片机串行接口的工作方式和原理 一、串行接口的寄存器一、串行接口的寄存器一、串行接口的寄存器一、串行接口的寄存器1.1.串行控制寄存器(串行控制寄存器(串行控制寄存器(串行控制寄存器(SCONSCON)2)多机通信控制位多机通信控制位SM2 SM2=1时时,接接收收到到一一帧帧信信息息,如如果果接接收收到到的的第第9位位数数据据为为1,硬硬件件将将RI置置1,申申请请中中断断;如如果果第第九九位位数数据据为为0,则则RI不不置置1,且且所所接接收收的的数数据据无无效效。SM2=0时时,只只要要接接收收到到一
21、一帧帧信信息息,不不管管第第九九位位数数据据是是0还还是是1,硬硬件件都都置置RI=1,并并申申请请中中断断。RI由由软软件件清清0,SM2由由软软件件置置1或或清清0。多多机机通通信信时时,各各从从机机先先将将SM2置置l。接接收收并并识识别别主主机机发发来来的的地地址址,当当地地址址与与本本机机相相同同时时,将将SM2清清0,与与主主机机进进行行数数据据传传递递。各各机机所所发发送送的的数据第数据第9位必须为位必须为0。-串行控制寄存器串行控制寄存器(SCON)7.3 单片机串行接口的工作方式和原理 一、串行接口的寄存器一、串行接口的寄存器一、串行接口的寄存器一、串行接口的寄存器1.1.串
22、行控制寄存器(串行控制寄存器(串行控制寄存器(串行控制寄存器(SCONSCON)3)允许接收控制位允许接收控制位RENREN=1时时允允许许并并启启动动接接收收,REN=0时时禁禁止止接接收收。REN由软件置由软件置1或清或清0。4)发送数据发送数据D8位位TB8TB8是是方方式式2、方方式式3中中要要发发送送的的第第九九位位数数据据,事事先先用用软件写入软件写入1或或0。方式。方式0、方式、方式1不用不用。-串行控制寄存器串行控制寄存器(SCON)7.3 单片机串行接口的工作方式和原理 一、串行接口的寄存器一、串行接口的寄存器一、串行接口的寄存器一、串行接口的寄存器1.1.串行控制寄存器(串
23、行控制寄存器(串行控制寄存器(串行控制寄存器(SCONSCON)5)接收数据接收数据D8位位RB8方方式式2、方方式式3中中,由由硬硬件件将将接接收收到到的的第第九九位位数数据据存存入入RB8。方式方式1中,停止位存入中,停止位存入RB8。6)发送中断标志位发送中断标志位TI发送完一帧信息,由硬件使发送完一帧信息,由硬件使TI置置1,TI必须由软件清必须由软件清0。7)接收中断标志位接收中断标志位RI接接收收完完一一帧帧有有效效信信息息,由由硬硬件件使使RI置置1,RI必必须须由由软软件件清清0。-串行控制寄存器串行控制寄存器(SCON)7.3 单片机串行接口的工作方式和原理 一、串行接口的寄
24、存器一、串行接口的寄存器一、串行接口的寄存器一、串行接口的寄存器1.1.串行控制寄存器(串行控制寄存器(串行控制寄存器(串行控制寄存器(SCONSCON)IE的的地地址址是是A8H,其其内内容容第第6章章已已介介绍绍。其其中中串串行行口口允允许许中中断断的的控控制制位位为为ES,当当ES=1,允允许许串串行行口口中中断断;当当ES=0,禁止串行中断。禁止串行中断。2.2.电源控制寄存器(电源控制寄存器(电源控制寄存器(电源控制寄存器(PCONPCON)PCONPCON主主主主要要要要是是是是为为为为CHMOSCHMOS型型型型单单单单片片片片机机机机的的的的电电电电源源源源控控控控制制制制而而
25、而而设设设设置置置置的的的的专专专专用用用用寄寄寄寄存存存存器器器器。单单单单元元元元地地地地址址址址为为为为87H87H,不不不不能能能能位位位位寻寻寻寻址址址址。PCONPCON是是是是一一一一个个个个8 8位位位位寄寄寄寄存存存存器器器器,其其其其最最最最高高高高位位位位SMODSMOD为为为为波波波波特特特特率率率率控控控控制制制制位位位位:该该该该位位位位为为为为1 1时时时时,波特率增大一倍波特率增大一倍波特率增大一倍波特率增大一倍。3.3.中断允许控制寄存器中断允许控制寄存器中断允许控制寄存器中断允许控制寄存器IEIE-PCON与与IE7.3 单片机串行接口的工作方式和原理 二、
26、二、二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式串行通信工作方式串行通信工作方式-工作方式工作方式7.3 单片机串行接口的工作方式和原理 在在方方式式0下下,串串行行口口作作为为同同步步移移位位寄寄存存器器使使用用。这这时时用用RXD(P3.0)引引脚脚作作为为数数据据移移位位的的入入口口和和出出口口,而而由由TXD(P3.1)引引脚脚提提供供移移位位脉脉冲冲。移移位位数数据据的的发发送送和和接接收收以以8位位为为一一帧帧,不不设设起起始始位位和和停停止止位位,低低位位在在前前高高位位在在后后,其其帧帧格式如图所示。格式如图所示。二、二、二、二、MCS-51MCS-51串行
27、通信工作方式串行通信工作方式串行通信工作方式串行通信工作方式1.1.串行工作方式串行工作方式串行工作方式串行工作方式0 0-工作方式工作方式7.3 单片机串行接口的工作方式和原理 1)扩展输出口)扩展输出口 该扩展输出功能实际是将串行输出变为并行输出该扩展输出功能实际是将串行输出变为并行输出二、二、二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式串行通信工作方式串行通信工作方式1.1.串行工作方式串行工作方式串行工作方式串行工作方式0 0-工作方式工作方式7.3 单片机串行接口的工作方式和原理 图7-10 方式0扩展输出口1)扩展输出口)扩展输出口二、二、MCS-51MCS-5
28、1串行通信工作方式串行通信工作方式1.1.串行工作方式串行工作方式0 0-工作方式工作方式7.3 单片机串行接口的工作方式和原理 图7-11 方式0输出时序CPU执行“MOVSBUF,A”后串口方式串口方式0的输出扩展应用的输出扩展应用例:例:使用使用74HC164的并行输出引脚接的并行输出引脚接8支发光二极管,利用它的串入并出支发光二极管,利用它的串入并出功能,把发光二极管从左向右轮流点亮,并反复循环。发光二极管为共功能,把发光二极管从左向右轮流点亮,并反复循环。发光二极管为共阴极型,电路连接如图所示。阴极型,电路连接如图所示。-串行移位输出串行移位输出7.3 单片机串行接口的工作方式和原理
29、 二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式1.1.串行工作方式串行工作方式0 0汇编语言编程汇编语言编程 ORG 1000HSTART:MOV SCON,#00H;置串行口工作方式置串行口工作方式0 MOV A,#80H;最高位灯先亮最高位灯先亮 CLR P1.0;关闭并行输出关闭并行输出OUT0:MOV SBUF,A;开始串行输出开始串行输出OUT1:JNB TI,OUT1 ;输出完否输出完否?未完未完,等待完了等待完了,继续执行继续执行 CLR TI ;完了完了,清零清零TI标志位标志位,以备下次发送以备下次发送 SETB P1.0 ;打开并行口输出打开并行口输出
30、ACALL DELAY ;延时一段时间延时一段时间 RRA ;循环右移循环右移 CLR P1.0 ;关闭并行输出关闭并行输出 SJMP OUT0 ;循环循环-串行移位输出串行移位输出7.3 单片机串行接口的工作方式和原理 二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式1.1.串行工作方式串行工作方式0 0;延时子程序延时子程序DELAY:MOVR7,#250D1:MOVR6,#250D2:DJNZR6,D2 DJNZR7,D1 RET END-串行移位输出串行移位输出二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式1.1.串行工作方式串行工作方式0 07.3
31、单片机串行接口的工作方式和原理-串行移位输入串行移位输入二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式1.1.串行工作方式串行工作方式0 07.3 单片机串行接口的工作方式和原理 2)扩展输入口)扩展输入口 该扩展输出功能实际是将串行输出变为并行输出该扩展输出功能实际是将串行输出变为并行输出图7-12 方式0扩展输入口-串行移位输入串行移位输入二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式1.1.串行工作方式串行工作方式0 07.3 单片机串行接口的工作方式和原理 2)扩展输入口)扩展输入口 图7-13 方式0输入时序 CPU执行“SETBREN”后-串行移
32、位输入串行移位输入二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式1.1.串行工作方式串行工作方式0 07.3 单片机串行接口的工作方式和原理 例:若有某单片机应用系统,其串行口的电路如图例:若有某单片机应用系统,其串行口的电路如图7-12所示。所示。要求编一程序段先将外部数据装入外部移位寄存器(要求编一程序段先将外部数据装入外部移位寄存器(1)和)和(2),然后把它们输入至单片机,并把它们分别存放在内),然后把它们输入至单片机,并把它们分别存放在内部数据存储器部数据存储器30H、31H单元。单元。-串行移位输入串行移位输入二、二、MCS-51MCS-51串行通信工作方式串行通
33、信工作方式1.1.串行工作方式串行工作方式0 07.3 单片机串行接口的工作方式和原理 解:根据题意,程序编制如下:START:MOVR0,#30H;设置内部数据存储器指针。MOVR7,#02H;设置接收数据个数计数器。MOVSCON,#00H;将串行口设置在方式0,并清RI。LOOP:CLRP1.0;将外部数据装入外部移位寄存器。SETBP1.0;将外部移位寄存器控制在移位状态。SETBREN;启动串行口输入数据。WAIT:JB RI,NEXT:如串行口接收到数据,则转入NEXT。SJMPWAIT;如串行口位接收到数据,则继续等待查询。NEXT:MOVA,SBUF;将接收到的数据暂存ACC。
34、MOVR0,A;将接收到的数据存放在内部数据存储器。INCR0;数据区指针加1。CLRREN;清REN,准备再一次启动串行口接收数据。CLRRI;清RI,准备再一次启动串行口接收数据。DJNZR7,LOOP;判断是否还有未接收的数据。STOP:SJMPSTOP;程序在此-串行工作方式串行工作方式1二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式2.2.串行工作方式串行工作方式1 17.3 单片机串行接口的工作方式和原理 串行口在方式1下为8位异步通讯接口,一帧信息为10位,其中1位起始位、8位数据位、1位停止位,TXD为发送端,RXD为接收端,波特率可调,波特率信号来自T1或T
35、2。串行口方式1的数据一帧格式-串行工作方式串行工作方式1二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式2.2.串行工作方式串行工作方式1 17.3 单片机串行接口的工作方式和原理 1)串行口方式)串行口方式1发送原理发送原理 图7-14 方式1发送时序CPU执行MOV SBUF,A后-串行工作方式串行工作方式1二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式2.2.串行工作方式串行工作方式1 17.3 单片机串行接口的工作方式和原理 2)串行口方式)串行口方式1接受原理接受原理 图7-15 方式1接收时序CPU执行SETB REN后-串行工作方式串行工作方式
36、2、3二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式3.3.串行工作方式串行工作方式2 2、3 37.3 单片机串行接口的工作方式和原理 串行口工作方式串行口工作方式2、3都是作为都是作为9位位UART接口,是加了控接口,是加了控制位的制位的UART。发送和接收的一帧信息是由。发送和接收的一帧信息是由11位组成,即起始位组成,即起始位位1位,数据位位,数据位8位,控制位位,控制位1位和停止位位和停止位1位。发送数据时,位。发送数据时,控制位是控制位是TB8;接收数据时,控制位是;接收数据时,控制位是RB8。在通讯中,发送。在通讯中,发送方的方的TB8送至接收方的送至接收方的R
37、B8。方式方式2和方式和方式3的区别在于:方式的区别在于:方式2的波特率是的波特率是fosc/32或或fosc/64,不需要,不需要T1或或T2充当波特率发生器,有利于节省单片充当波特率发生器,有利于节省单片机机CTC资源。而方式资源。而方式3的波特率是可调的,需要的波特率是可调的,需要T1或或T2充当波充当波特率发生器。特率发生器。串行口方式2、3的数据一帧格式-串行工作方式串行工作方式2、3二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式3.3.串行工作方式串行工作方式2 2、3 37.3 单片机串行接口的工作方式和原理 1)串行口方式)串行口方式2、3发送原理发送原理 图
38、7-16 方式2、3发送时序CPU执行“MOV SBUF,A”后-串行工作方式串行工作方式2、3二、二、MCS-51MCS-51串行通信工作方式串行通信工作方式3.3.串行工作方式串行工作方式2 2、3 37.3 单片机串行接口的工作方式和原理 2)串行口方式)串行口方式2、3接受原理接受原理 图7-17 方式2、3接收时序CPU执行“SETB REN”后-串行口数据传送的波特率串行口数据传送的波特率 三、三、MCS-51MCS-51串行数据传送的波特率串行数据传送的波特率 7.3 单片机串行接口的工作方式和原理 51系列单片机串行口的波特率是根据串行口的工作方式来系列单片机串行口的波特率是根
39、据串行口的工作方式来确定的,不同的方式对应不同的波特率,以下具体说明串行口确定的,不同的方式对应不同的波特率,以下具体说明串行口波特率的确定方法:波特率的确定方法:当串行口工作于方式当串行口工作于方式0时,时,其波特率或移位信号的频率是固定其波特率或移位信号的频率是固定的,的,BR=fosc/12。当串行口工作于方式当串行口工作于方式2时,时,波特率的计算公式为:波特率的计算公式为:BR=2SMODfosc/64。当串行口工作于方式当串行口工作于方式1、3时,时,T1和和T2都可以作为波特率发生都可以作为波特率发生器,波特率的计算方法也各有不同。器,波特率的计算方法也各有不同。-串行口数据传送
40、的波特率串行口数据传送的波特率 三、三、MCS-51MCS-51串行数据传送的波特率串行数据传送的波特率 7.3 单片机串行接口的工作方式和原理 T1作为波特率发生器,一般它被设置在工作模式作为波特率发生器,一般它被设置在工作模式2,则,则 T2作作为为波特率波特率发发生器,生器,则则 由特殊功能寄存器由特殊功能寄存器T2CON的的TCLK、RCLK二位取值决定:二位取值决定:如果选择如果选择T1作为波特率发生器,则将作为波特率发生器,则将TCLK、RCLK位都清零;位都清零;如果选择如果选择T2作为波特率发生器,则将作为波特率发生器,则将TCLK、RCLK位都置位都置1。为能获得准确的波特率
41、可选用为能获得准确的波特率可选用11.0592Mhz作为系统时钟频作为系统时钟频率。率。-串行口应用举例串行口应用举例 四、串行口应用举例四、串行口应用举例 7.3 单片机串行接口的工作方式和原理单片机串行接口的工作方式和原理 例:某例:某89C52单片机应用系统的系统工作频率单片机应用系统的系统工作频率fosc为为11.0592MHZ,要,要求其串行口工作在方式求其串行口工作在方式3进行发送和接收数据,用进行发送和接收数据,用T1作为波特率发生器,作为波特率发生器,波特率为波特率为1200b/s、SMOD=0,求在进行串行口初始化过程中,求在进行串行口初始化过程中T1的初值的初值为多少?并编
42、写串行口初始化程序。为多少?并编写串行口初始化程序。解:解:根据题意,根据题意,T1初值按式(初值按式(7-1)计算如下:)计算如下:按题意串行口初始化程序编制如下:按题意串行口初始化程序编制如下:CLRTCLK;择择T1作为波特率发生器。作为波特率发生器。CLRRCLK;选择选择T1作为波特率发生器。作为波特率发生器。MOVTMOD,#20H;把把T1设置为工作模式设置为工作模式2定时器方式。定时器方式。MOVTH1,#0E8H;设置定时器初值。设置定时器初值。MOVTL1,#0E8H;设置定时器初值。设置定时器初值。ANLPCON,#7FH;将将SMOD控制位清控制位清0。SETBTR1;
43、启动启动T1波特率发生器。波特率发生器。MOVSCON,#0D0H;把串行口设置为方式把串行口设置为方式3,;并启动串行口接收数据。;并启动串行口接收数据。-串行口应用举例串行口应用举例 四、串行口应用举例四、串行口应用举例 7.3 单片机串行接口的工作方式和原理 例例7-6:某:某89C52单片机应用系统的系统工作频率单片机应用系统的系统工作频率fosc为为11.0592MHZ,要求其串行口工作在方式要求其串行口工作在方式1进行发送和接收数据,用进行发送和接收数据,用T2作为波特率发生作为波特率发生器,波特率为器,波特率为9600b/s,求在进行串行口初始化过程中,求在进行串行口初始化过程中
44、T2的初值为多少的初值为多少?并编写串行口初始化程序。?并编写串行口初始化程序。解:解:根据题意,根据题意,T2初值按式(初值按式(7-2)计算如下:)计算如下:按题意串行口初始化程序编制如下:按题意串行口初始化程序编制如下:MOVT2MOD,#00H;把把T2设置为波特率发生器工作模式。设置为波特率发生器工作模式。MOVT2CON,#30H;把把T2设置为波特率发生器工作模式。设置为波特率发生器工作模式。MOVTH2,#0FFH;设置定时器初值。设置定时器初值。MOVTL2,#0DCH;设置定时器初值。设置定时器初值。MOVRCAPH,#0FFH;设置定时器重装的初值。设置定时器重装的初值。
45、MOVRCAPL,#0DCH;设置定时器重装的初值。设置定时器重装的初值。SETBTR2;启动启动T2波特率发生器。波特率发生器。MOVSCON,#50H;把串行口设置为方式把串行口设置为方式1,;并启动串行口接收数据。;并启动串行口接收数据。-串行口应用举例串行口应用举例 四、串行口应用举例四、串行口应用举例 7.3 单片机串行接口的工作方式和原理 例例7-7:在某:在某89C52单片机应用系统中有两片单片机(甲、单片机应用系统中有两片单片机(甲、乙),如图乙),如图7-18所示。试编一甲机串行口发送子程序。串行所示。试编一甲机串行口发送子程序。串行口采用方式口采用方式3、偶校验、偶校验、T
46、1为波特率发生器、波特率为为波特率发生器、波特率为9600、附加的第附加的第9位数据作为奇偶校验位。设位数据作为奇偶校验位。设fosc为为11.0592MHZ,SMOD为为0。程序采用查询方式将内部数据存储器。程序采用查询方式将内部数据存储器50H5FH单元的数据一一从串行口发送出去。单元的数据一一从串行口发送出去。解:根据题意,波特率发生器T1的初值计算如下:-串行口应用举例串行口应用举例 四、串行口应用举例四、串行口应用举例 7.3 单片机串行接口的工作方式和原理 M3T:PUSHPSW;保护现场。保护现场。PUSHACC;保护现场。保护现场。MOVPSW,#08H;将工作寄存器区设置在将
47、工作寄存器区设置在1区。区。CLR TCLK;选择选择T1作为波特率发生器。作为波特率发生器。CLKRCLK;选择选择T1作为波特率发生器。作为波特率发生器。MOV TMOD,#20H;把把T1设置为工作模式设置为工作模式2定时器方式。定时器方式。MOVTH1,#0FDH;设置定时器初值。设置定时器初值。MOVTL1,#0FDH;设置定时器初值。设置定时器初值。MOVSCON,#0C0H;把串行口设置为方式把串行口设置为方式3 ANLPCON,#7FH;将将SMOD控制位清控制位清0。SETBTR1;启动启动T1波特率发生器。波特率发生器。MOVR0,#50H;设置数据区指针。设置数据区指针。
48、MOVR7,#10H;设置需发送数据的个数。设置需发送数据的个数。-串行口应用举例串行口应用举例 四、串行口应用举例四、串行口应用举例 7.3 单片机串行接口的工作方式和原理 LOOP:MOVA,R0;从存储器中取出数据。从存储器中取出数据。MOVC,P;将数据的将数据的“奇偶奇偶”特性送入特性送入Cy位。位。MOVTB8,C;将数据的将数据的“奇偶奇偶”特性送入特性送入TB8。MOVSBUF,A;将数据送入串行口,并启动数据发送。将数据送入串行口,并启动数据发送。WAIT:JBCTI,NEXT;如果数据发送完毕,清如果数据发送完毕,清TI位,并转入位,并转入NEXT。SJMPWAIT;如果数
49、据未发送完毕,则不断查询。如果数据未发送完毕,则不断查询。NEXT:INC R0;修改数据区指针。修改数据区指针。DJNZR7,LOOP;如果数据块未发送完,则继续发送数据。如果数据块未发送完,则继续发送数据。POPACC;恢复现场。恢复现场。POPPSW;恢复现场。恢复现场。RET;子程序返回。子程序返回。-串行口数据传送的波特率串行口数据传送的波特率 三、三、MCS-51MCS-51串行数据传送的波特率串行数据传送的波特率 7.3 单片机串行接口的工作方式和原理 T1作为波特率发生器,一般它被设置在工作模式作为波特率发生器,一般它被设置在工作模式2,则,则 T2作作为为波特率波特率发发生器,生器,则则 由特殊功能寄存器由特殊功能寄存器T2CON的的TCLK、RCLK二位取值决定:二位取值决定:如果选择如果选择T1作为波特率发生器,则将作为波特率发生器,则将TCLK、RCLK位都清零;位都清零;如果选择如果选择T2作为波特率发生器,则将作为波特率发生器,则将TCLK、RCLK位都置位都置1。为能获得准确的波特率可选用为能获得准确的波特率可选用11.0592Mhz作为系统时钟频作为系统时钟频率。率。
限制150内