《单片机原理与控制技术优秀课件.ppt》由会员分享,可在线阅读,更多相关《单片机原理与控制技术优秀课件.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机原理与控制技术第1页,本讲稿共42页串行通信串行通信优点优点:便于长距离传送便于长距离传送缺点缺点:传送速度较慢传送速度较慢计算机与外界信息交换称为计算机与外界信息交换称为通信通信。通信的通信的基本方式基本方式可分为并行通信和串行通信:可分为并行通信和串行通信:并行通信并行通信是数据的各位同时发送或同时接收;是数据的各位同时发送或同时接收;串行通信串行通信是数据的各位依次逐位发送或接收。是数据的各位依次逐位发送或接收。并行通信并行通信优点优点:传送速度快传送速度快缺点缺点:不便长距离传送不便长距离传送第2页,本讲稿共42页串行通信的基本特征是串行通信的基本特征是数据数据逐位顺序逐位顺序进
2、行传送进行传送串行通信的格式及约定(如:同步方式、通讯速串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平率、数据块格式、信号电平等)不同,形成等)不同,形成了多种串行通信的协议与接口标准。了多种串行通信的协议与接口标准。常见的有:常见的有:通用异步收发器通用异步收发器(UARTUART)本课程介绍的串口本课程介绍的串口通用串行总线(通用串行总线(USBUSB)I I2 2C C总线总线CANCAN总线总线SPISPI总线总线RS-485RS-485,RS-232CRS-232C,RS422ARS422A标准标准等等等等第3页,本讲稿共42页异异步步通通信信对对硬硬件件要要求求
3、较较低低,实实现现起起来来比比较较简简单单、灵灵活活,适适用用于于数数据据的的随随机机发发送送/接接收收,但但因因每每个个字字节节都都要要建建立立一一次次同同步步,即即每每个个字字符符都都要要额额外外附附加加两两位位,所所以以工工作作速速度度较较低低,在在单单片片机机中中主主要要采采用用异异步步通通信信方式。方式。6-1 6-1 串行通信概述串行通信概述一、一、异步通信和同步通信异步通信和同步通信串行通信按同步方式可分为异步通信和同步通信。串行通信按同步方式可分为异步通信和同步通信。1、异步通信异步通信异步通信依靠起始位、停止位保持通信同步。异步通信依靠起始位、停止位保持通信同步。异步通信数据
4、传送按帧传输,异步通信数据传送按帧传输,一帧数据包含一帧数据包含起始位、数据位、校验位和停止位起始位、数据位、校验位和停止位。第4页,本讲稿共42页同同步步通通信信传传输输速速度度较较快快,但但要要求求有有准准确确的的时时钟钟来来实实现现收收发发双双方方的的严严格格同同步步,对对硬硬件件要要求求较高,适用于成批数据传送。较高,适用于成批数据传送。2、同步通信同步通信同步通信依靠同步字符保持通信同步。同步通信依靠同步字符保持通信同步。同步通信是同步通信是由由1 12 2个同步字符和多字节个同步字符和多字节数据位组成数据位组成,同步字符作为起始位以触发同步,同步字符作为起始位以触发同步时钟开始发送
5、或接收数据;多字节数据之间不时钟开始发送或接收数据;多字节数据之间不允许有空隙,每位占用的时间相等;空闲位需允许有空隙,每位占用的时间相等;空闲位需发送同步字符。发送同步字符。第5页,本讲稿共42页波特率的倒数即为每位传输所需的时间。波特率的倒数即为每位传输所需的时间。相相互互通通信信的的甲甲乙乙双双方方必必须须具具有有相相同同的的波波特特率,否则无法成功地完成串行数据通信。率,否则无法成功地完成串行数据通信。二、二、串行通信波特率串行通信波特率波特率波特率bps(bit per second)bps(bit per second)定义定义:每秒传输数据的位数,即:每秒传输数据的位数,即:1波
6、特波特=1位位/秒(秒(1bps1bps)第6页,本讲稿共42页三、三、串行通信的制式串行通信的制式 串串行行通通信信按按照照数数据据传传送送方方向向可可分分为为三三种种制制式:式:单工制式单工制式是指甲乙双方通信时是指甲乙双方通信时只能单向传只能单向传送数据送数据,发送方和接收方固定。,发送方和接收方固定。1 1、单工制式(单工制式(SimplexSimplex)第7页,本讲稿共42页半半双双工工制制式式是是指指通通信信双双方方都都具具有有发发送送器器和和接接收收器器,既既可可发发送送也也可可接接收收,但但不不能能同同时时接接收收和和发发送,送,发送时不能接收,接收时不能发送。发送时不能接收
7、,接收时不能发送。2、半双工制式(半双工制式(Half DuplexHalf Duplex)第8页,本讲稿共42页 全全双双工工制制式式是是指指通通信信双双方方均均设设有有发发送送器器和和接接收收器器,并并且且信信道道划划分分为为发发送送信信道道和和接接收收信信道道,因因此此全全双双工工制制式式可可实实现现甲甲乙乙双双方方同同时时发发送送和和接接收收数数据据,发送时能接收,接收时也能发送。,发送时能接收,接收时也能发送。3 3、全双工制式(全双工制式(Full DuplexFull Duplex)第9页,本讲稿共42页四、四、串行通信的校验串行通信的校验3、循环冗余码校验循环冗余码校验(Cyc
8、lic Redundancy Check,Cyclic Redundancy Check,简称简称CRCCRC)1、奇偶校验奇偶校验2、累加和校验累加和校验累加和校验累加和校验是指发送方将所发送的数据块求和,并是指发送方将所发送的数据块求和,并将将“校验和校验和”附加到数据块末尾。接收方接收数据附加到数据块末尾。接收方接收数据时也是先对数据块求和,将所得结果与发送方的时也是先对数据块求和,将所得结果与发送方的“校验和校验和”进行比较,相符则无差错,否则即出现了进行比较,相符则无差错,否则即出现了差错。差错。“校验和校验和”的加运算可用逻辑加,也可用算的加运算可用逻辑加,也可用算术加。累加和校验
9、术加。累加和校验的缺点是无法检验出字节位序的缺点是无法检验出字节位序(或或1 1、0 0位序不同位序不同)的错误。的错误。循环冗余码校验的基本原理循环冗余码校验的基本原理是将一个数据块看成一是将一个数据块看成一个位数很长的二进制数,然后用一个特定的数去除个位数很长的二进制数,然后用一个特定的数去除它,将余数作校验码附在数据块后一起发送。接收它,将余数作校验码附在数据块后一起发送。接收端收到该数据块和校验码后,进行同样的运算来校端收到该数据块和校验码后,进行同样的运算来校验传送是否出错。目前验传送是否出错。目前CRC已广泛用于数据存储和已广泛用于数据存储和数据通信中,数据通信中,并在国际上形成规
10、范,已有不少现成并在国际上形成规范,已有不少现成的的CRCCRC软件算法。软件算法。第10页,本讲稿共42页 80C5180C51系系列列单单片片机机有有一一个个全全双双工工的的串串行行口口,这这个个口口既既可可以以用用于于网网络络通通信信,也也可可以以实实现现串串行行异异步步通通信信,还还可可以以作作为同步移位寄存器使用。为同步移位寄存器使用。6-2 80C516-2 80C51串行口串行口第11页,本讲稿共42页51单片机的串行接口SBUF(发)(发)SBUF(收)(收)发送控制器发送控制器TI接收控制器接收控制器RI移位寄存器移位寄存器波波特特率率发发生生器器T1 1A累累加加器器(门门
11、)移位寄存器移位寄存器RxDTxD去申请中断去申请中断引脚引脚引脚引脚CPU内内部部第12页,本讲稿共42页发发送送时时,只只需需将将发发送送数数据据输输入入SBUFSBUF,CPUCPU将将自自动动启启动动和和完完成成串串行行数数据的发送;据的发送;接接收收时时,CPUCPU将将自自动动把把接接收收到到的的数数据据存存入入SBUFSBUF,用用户户只只需需从从SBUFSBUF中读出接收数据中读出接收数据。一、一、串行口特殊功能寄存器串行口特殊功能寄存器1 1、串行数据缓冲器串行数据缓冲器SBUFSBUF 在在逻辑上逻辑上只有一个只有一个,既表示发送寄存器,又表示接收寄存器,既表示发送寄存器,
12、又表示接收寄存器,具有同一个单元地址具有同一个单元地址99H99H,用,用同一寄存器名同一寄存器名SBUFSBUF。在在物理上有两个物理上有两个,一个是发送缓冲寄存器,另一个是接收缓冲寄存,一个是发送缓冲寄存器,另一个是接收缓冲寄存器。器。指令指令 MOV SBUFMOV SBUF,A A 启动一次数据发送启动一次数据发送,可向可向SBUFSBUF 再发送下一个数再发送下一个数指令指令 MOV AMOV A,SBUFSBUF 完成一次数据接收完成一次数据接收,SBUF,SBUF可再可再 接收下一个数接收下一个数第13页,本讲稿共42页2 2、串行控制寄存器串行控制寄存器SCONSCONSCON
13、SCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0位名称位名称SM0SM0SM1SM1SM2SM2RENRENTB8TB8RB8RB8TITIRIRI位地址位地址9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98H功能功能工作方式工作方式选择选择多机通信多机通信控制控制接收接收 允许允许发送发送 第第9 9位位接收接收 第第9 9位位发送发送 中断中断接收接收 中断中断 SM0 SM1SM0 SM1 串行口串行口工作方式工作方式选择位。选择位。SM2SM2 多机通信控制位。多机通信控制位。RENREN 允许允许接收控制位。接收控
14、制位。REN=1REN=1,允许接收。,允许接收。TB8TB8 方式方式2 2和方式和方式3 3中要发送的第中要发送的第9 9位数据。位数据。RB8RB8 方式方式2 2和方式和方式3 3中要接收的第中要接收的第9 9位数据。位数据。TITI 发送发送中断标志。中断标志。RIRI 接收接收中断标志。中断标志。第14页,本讲稿共42页 SM0 SM1SM0 SM1串行口工作方式选择位。其状态组合所对应的工作串行口工作方式选择位。其状态组合所对应的工作方式如表方式如表6-26-2所示。所示。SM0 SM1工作方式工作方式 功能说明功能说明 00 0同步移位寄存器输入同步移位寄存器输入/输出输出,波
15、特率波特率固定固定为为fosc/12 01 18位位UART;波特率;波特率可变可变(TI溢出率溢出率/n,n=32或或16)10 29位位UART,波特率,波特率固定固定为为fosc/n,(n=64或或32)11 39位位UART,波特率,波特率可变可变(T1溢出率溢出率/n,n=32或或16)SM2-多机通信控制位。在方式多机通信控制位。在方式2和方式和方式3中,若中,若SM2=1,且,且RB8(接收到的第接收到的第9位数据位数据)=1时,将接收到的前时,将接收到的前8位数据送入位数据送入SBUF,并置位并置位RI产生中断请求;否则,将接收到的产生中断请求;否则,将接收到的8位数据丢弃。而
16、当位数据丢弃。而当SM2=0时,则不论第时,则不论第9位数据为位数据为0还是为还是为1,都将前,都将前8位数据装入位数据装入SBUF中,并产生中断请求。中,并产生中断请求。在方式在方式0 0时,时,SM2SM2必须为必须为0 0。第15页,本讲稿共42页REN-允许接收控制位。允许接收控制位。REN位用于对串行数据位用于对串行数据的接收进行控制:的接收进行控制:REN=0,禁止接收;,禁止接收;REN=1,允许,允许接收。该位由软件置位或复位。接收。该位由软件置位或复位。TB8-方式方式2和方式和方式3中要发送的第中要发送的第9位数据。在方位数据。在方式式2和方式和方式3时,时,TB8是发送的
17、第是发送的第9位数据。在多机通信位数据。在多机通信中,以中,以TB8位的状态表示主机发送的是地址还是数据:位的状态表示主机发送的是地址还是数据:TB8=0表示数据,表示数据,TB8=1表示地址。该位由软件置位表示地址。该位由软件置位或复位。或复位。TB8还可用于奇偶校验位。还可用于奇偶校验位。RB8-方式方式2和方式和方式3中要接收的第中要接收的第9位数据。在方位数据。在方式式2或方式或方式3时,时,RB8存放接收到的第存放接收到的第9位数据。位数据。第16页,本讲稿共42页TI-发送中断标志。当方式发送中断标志。当方式0时,发送完第时,发送完第8位位数据后,该位由硬件置位。在其他方式下,遇发
18、送数据后,该位由硬件置位。在其他方式下,遇发送停止位时,该位由硬件置位。因此停止位时,该位由硬件置位。因此TI=1,表示帧发,表示帧发送结束,可软件查询送结束,可软件查询TI位标志,也可以请求中断。位标志,也可以请求中断。TI位必须由软件清位必须由软件清0。RI-接收中断标志。当方式接收中断标志。当方式0时,接收完第时,接收完第8位位数据后,该位由硬件置位。在其他方式下,当接收数据后,该位由硬件置位。在其他方式下,当接收到停止位时,该位由硬件置位。因此到停止位时,该位由硬件置位。因此RI=1,表示帧,表示帧接收结束,可软件查询接收结束,可软件查询RIRI位标志,也可以请求中断。位标志,也可以请
19、求中断。RIRI位也必须由软件清位也必须由软件清0 0。接收接收/发送数据发送数据,无论是否采用中断方式工作无论是否采用中断方式工作,每接每接收收/发送一个数据都必须用指令对发送一个数据都必须用指令对 RI/TIRI/TI 清清0 0,以以备下一次收备下一次收/发。发。第17页,本讲稿共42页3 3、电源控制寄存器电源控制寄存器PCONPCONPCONPCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0位名称位名称SMODSMODGF1GF1GF0GF0PDPDIDLIDLSMODSMOD=1=1,串行口波特率加倍。串行口波特率加倍。PCONPCON寄存器不能进行位寻址。寄
20、存器不能进行位寻址。SMODSMOD:在串行口工作方式:在串行口工作方式 1 1、2 2、3 3 中,是中,是波特波特率加倍位率加倍位 =1=1 时,波特率加倍时,波特率加倍 =0=0 时,波特率不加倍。时,波特率不加倍。(在在PCONPCON中只有这一个位与串口有关中只有这一个位与串口有关)第18页,本讲稿共42页二、二、串行工作方式串行工作方式 80C5180C51串行通信共有串行通信共有4 4种种工作方式,由串行控制寄存器工作方式,由串行控制寄存器SCONSCON中中SM0 SM0 SM1SM1决定。决定。1 1、串行工作方式、串行工作方式0 0(同步移位寄存器工作方式)(同步移位寄存器
21、工作方式)以以RXDRXD(P3.0P3.0)端作为数据移位的输入)端作为数据移位的输入/输出端,输出端,以以TXDTXD(P3.1P3.1)端输出移位脉冲。)端输出移位脉冲。移位数据的发送和接收以移位数据的发送和接收以8 8位为一帧,位为一帧,不设不设起始位和停止位,无论起始位和停止位,无论输入输入/输出,均低位在前高位在后。输出,均低位在前高位在后。其帧格式为:其帧格式为:D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7 方式方式0 0可将可将串行串行输入输出数据输入输出数据转换成转换成并行并行输入输出数据。输入输出数据。第19页,本讲稿共42页数据发送数据发送 在在移位时
22、钟脉冲(移位时钟脉冲(TXDTXD)的控制下,数据从串行口的控制下,数据从串行口RXDRXD端逐位端逐位移入移入74HC164 S74HC164 SA A、S SB B端。端。当当8 8位数据全部移出后,位数据全部移出后,SCONSCON寄存器的寄存器的TITI位被自动置位被自动置1 1。其后其后74HC16474HC164的内容即可并行输出。的内容即可并行输出。74HC164 CLR74HC164 CLR为清为清0 0端,输出时端,输出时CLRCLR必须为必须为1 1,否则,否则74HC164 Q074HC164 Q0Q7Q7输出为输出为0 0。串串行行口口作作为为并并行行输输出出口口使使用
23、用时时,要要有有“串串入入并并出出”的的移移位寄存器配合。位寄存器配合。(例如例如CD4094或或74HCl64)第20页,本讲稿共42页(2)(2)数据接收数据接收 串串行行口口作作为为并并行行输输入入口口使使用用时时,要要有有“并并入入串串出出”的的移移位位寄寄存器配合。存器配合。(例如例如CD4014或或74HCl65)74HC165 74HC165 S/LS/L端端为为移移位位/置置入入端端,当当S/L=0S/L=0时时,从从Q0Q0Q7Q7并并行行置置入入数数据据,当当S/L=1S/L=1时时,允允许许从从Q QH H端端移移出出数数据据。在在80C5180C51串串行行控控制制寄寄
24、存存器器SCONSCON中中的的REN=1REN=1时时,TXDTXD端端发发出出移移位位时时钟钟脉脉冲冲,从从RXDRXD端端串串行行输输入入8 8位位数数据据。当当接接收收到到第第8 8位位数数据据D7D7后后,置置位位中中断断标标志志RIRI,表示一帧数据接收完成。,表示一帧数据接收完成。第21页,本讲稿共42页 波特率波特率:方式方式0 0 波特率固定波特率固定,为单片机晶振频率的十二分,为单片机晶振频率的十二分之一。即之一。即一个机器周期进行一次移位。一个机器周期进行一次移位。应用举例应用举例【例例6-16-1】电路如图所示,试编制程序按下列顺序要求每隔电路如图所示,试编制程序按下列
25、顺序要求每隔0.50.5秒秒循环操作。循环操作。从右向左依次点亮,每从右向左依次点亮,每次亮一个;次亮一个;从左向右依次点亮,每从左向右依次点亮,每次增加一个,次增加一个,直至全直至全部点亮;部点亮;返回从返回从不断循环。不断循环。8个发光二极管全部点亮;个发光二极管全部点亮;从左向右依次暗灭,每次减少一个,直至全灭;从左向右依次暗灭,每次减少一个,直至全灭;从左向右依次点亮,从左向右依次点亮,每次亮一个;每次亮一个;解:编程如下:解:编程如下:第22页,本讲稿共42页LIGHT:MOV SCON,#00H LIGHT:MOV SCON,#00H ;串行口方式串行口方式0 0 CLR ES C
26、LR ES ;禁止串行中断禁止串行中断 P121P121 MOV DPTR,#TAB MOV DPTR,#TAB ;置发光二极管亮暗控制字表首址置发光二极管亮暗控制字表首址LP1:MOV R7,#0 LP1:MOV R7,#0 ;置顺序编号置顺序编号0 0LP2:MOV A,R7 LP2:MOV A,R7 ;读顺序编号读顺序编号 MOVMOVC C A,A+DPTR A,A+DPTR ;读控制字读控制字 CLR P1.0 CLR P1.0 ;关闭并行输出关闭并行输出,STR=OSTR=O时,关闭并行输时,关闭并行输出;出;MOV SBUF,A MOV SBUF,A ;启动串行发送启动串行发送
27、JNB TI,$JNB TI,$;等待发送完毕等待发送完毕 CLR TI CLR TI ;清发送中断标志清发送中断标志 SETB P1.0 SETB P1.0 ;开启并行输出开启并行输出,STR=1STR=1时,开启并行输时,开启并行输出;出;LCALL DLY500ms LCALL DLY500ms ;调用延时调用延时0.50.5秒子程序秒子程序(参阅例参阅例4-13)4-13)INC R7 INC R7 ;指向下一控制字指向下一控制字 CJNE R7,#30,LP2 CJNE R7,#30,LP2;判循环操作完否判循环操作完否?未完继续未完继续 SJMP LP1 SJMP LP1 ;顺序编
28、号顺序编号0 02929依次操作完毕依次操作完毕,从从0 0开始重新循环开始重新循环TAB:TAB:DB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00HDB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00H;从左向右依次暗灭从左向右依次暗灭,每次减少一个每次减少一个,直至全灭直至全灭;DB 80H,40H,20H,10H,08H,04H,02H,01H DB 80H,40H,20H,10H,08H,04H,02H,01H;从左向右依次点亮从左向右依次点亮,每次亮一个每次亮一个 DB 02H,04H,08H,10H,20H,40H,80HDB 0
29、2H,04H,08H,10H,20H,40H,80H;从右向左依次点亮从右向左依次点亮,每次亮一个每次亮一个 DB 0C0H,0E0H,0F0H,0F8H,0FCH,0FEHDB 0C0H,0E0H,0F0H,0F8H,0FCH,0FEH;从左向右依次点亮从左向右依次点亮,每次增加一个每次增加一个,直至全部点亮直至全部点亮;第23页,本讲稿共42页【例例】电路如图所示,电路如图所示,试编制程序输入试编制程序输入K1K1K8K8状态数据,并状态数据,并存入内存入内RAM 40HRAM 40H。解:编程如下:解:编程如下:KIN:KIN:MOV SCON,#00HMOV SCON,#00H;串行口
30、方式串行口方式0 0 CLR ES CLR ES ;禁止串行中断禁止串行中断 CLR P1.0 CLR P1.0 ;锁存并行输入数据锁存并行输入数据 SETB P1.0 SETB P1.0 ;允许串行移位操作允许串行移位操作 SETB REN SETB REN ;允许并启动接收(允许并启动接收(TXDTXD发送移位脉冲)发送移位脉冲)JNB RI,$JNB RI,$;等待接收完毕等待接收完毕 MOV 40H,SBUF MOV 40H,SBUF;存入存入K1K1K8K8状态数据状态数据 RET RET ;第24页,本讲稿共42页2 2、串行工作方式串行工作方式1 1 方式方式1 1是是一帧一帧1
31、010位位的异步串行通信方式,包括的异步串行通信方式,包括1 1个起始位,个起始位,8 8个个数据位和一个停止位数据位和一个停止位。其帧格式为:其帧格式为:起始起始D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7停止停止数据发送数据发送 发发送送时时只只要要将将数数据据写写入入SBUFSBUF,在在串串行行口口由由硬硬件件自自动动加加入入起起始始位位和和停停止止位位,构构成成一一个个完完整整的的帧帧格格式式。然然后后在在移移位位脉脉冲冲的的作作用用下下,由由TXDTXD端串行输出。一帧数据发送完毕,将端串行输出。一帧数据发送完毕,将SCONSCON中的中的TITI置置1 1。数
32、据接收数据接收 接接收收时时,在在REN=1REN=1前前提提下下,当当采采样样到到RXDRXD从从1 1向向0 0跳跳变变状状态态时时,就就认认定定为为已已接接收收到到起起始始位位。随随后后在在移移位位脉脉冲冲的的控控制制下下,将将串串行行接接收收数数据据移移入入SBUFSBUF中中。一一帧帧数数据据接接收收完完毕毕,将将SCONSCON中中的的RIRI置置1 1,表表示示可可以以从从SBUFSBUF取走接收到的一个字符。取走接收到的一个字符。第25页,本讲稿共42页在在实实际际应应用用时时,通通常常是是先先确确定定波波特特率率,后后根根据据波波特率求特率求T1T1定定时初值,因此上式又可写
33、为:时初值,因此上式又可写为:波特率波特率 方式方式1 1波特率可变,由定时波特率可变,由定时/计数器计数器T1T1的计的计数溢出率来决定。数溢出率来决定。波特率波特率=2=2SMODSMOD(T1T1溢出率)溢出率)/32/32 其中其中SMODSMOD为为PCONPCON寄存器中最高位的值,寄存器中最高位的值,SMOD=1SMOD=1表示波特率倍增。表示波特率倍增。第26页,本讲稿共42页当定时计数器当定时计数器T1用作波特率发生器时,通常选用作波特率发生器时,通常选用定时初值自动重装的工作方式用定时初值自动重装的工作方式2(注意:不要把定注意:不要把定时计数器的工作方式与串行口的工作方式
34、搞混时计数器的工作方式与串行口的工作方式搞混淆了淆了)。其计数结构为。其计数结构为8位,假定计数初值为位,假定计数初值为COUNT,单片机的机器周期为,单片机的机器周期为T,则定时时间为,则定时时间为(256-COUNT)*T。从而在。从而在1s内发生溢出的次数内发生溢出的次数(即溢出率)为:(即溢出率)为:波特率波特率=(2=(2SMODSMOD/32)/32)T1T1的溢出率的溢出率第27页,本讲稿共42页波特率波特率=(2=(2SMODSMOD/32)/32)T1T1的溢出率的溢出率 溢出率:溢出率:T1T1溢出的频繁程度溢出的频繁程度 即:即:T1T1溢出一次所需时间的倒数。溢出一次所
35、需时间的倒数。初值初值X=2 2n n -2 2SMOD SMOD foscfosc32 32 波特率波特率 1212 波特率波特率 =2 2SMOD SMOD foscfosc32 32 12(212(2n n -X-X)其中:其中:X X 是定时器初值是定时器初值第28页,本讲稿共42页应用举例应用举例【例例6-36-3】设设甲甲乙乙机机以以串串行行方方式式1 1进进行行数数据据传传送送,fosc=11.0592MHzfosc=11.0592MHz,波波特特率率为为1200b/s1200b/s。甲甲机机发发送送的的1616个个数数据据存存在在内内RAM RAM 40H40H4FH4FH单单
36、元元中中,乙乙机机接接收收后后存在内存在内RAM 50HRAM 50H为首地址的区域中为首地址的区域中。T1T1初值初值 =256-=232=E8H=256-=232=E8H3232121200121200解:解:串行方式串行方式1 1波特率取决于波特率取决于T1T1溢出率溢出率(设设SMOD=0),SMOD=0),计算计算T1T1定时初值:定时初值:11059200110592002 20 0第29页,本讲稿共42页甲机发送子程序:甲机发送子程序:MOV TMOD,#20HMOV TMOD,#20H;置置T1T1定时器工作方式定时器工作方式2 2MOV TL1,#0E8HMOV TL1,#0
37、E8H;置置T1T1计数初值计数初值MOV TH1,#0E8HMOV TH1,#0E8H;置置T1T1计数重装值计数重装值CLR ET1CLR ET1;禁止禁止T1T1中断中断SETB TR1SETB TR1;T1;T1启动启动MOV SCON,#40HMOV SCON,#40H;置串行方式置串行方式1,1,禁止接收禁止接收MOV PCON,#00HMOV PCON,#00H;置置SMOD=0(SMODSMOD=0(SMOD不能位操作不能位操作)CLR ESCLR ES;禁止串行中断禁止串行中断MOV R0,#40HMOV R0,#40H;置发送数据区首地址置发送数据区首地址MOV R2,#1
38、6MOV R2,#16;置发送数据长度置发送数据长度MOVMOVA,R0A,R0;读一个数据读一个数据MOVMOVSBUF,ASBUF,A;发送发送JNBJNBTI,$TI,$;等待一帧数据发送完毕等待一帧数据发送完毕CLRCLRTITI;清发送中断标志清发送中断标志INCINCR0R0;指向下一字节单元指向下一字节单元DJNZDJNZR2,TRSAR2,TRSA;判判1616个数据发完否个数据发完否?未完继续未完继续RET RET ;TXDA:TXDA:TRSA:TRSA:第30页,本讲稿共42页MOV TMOD,#20HMOV TMOD,#20H;置置T1T1定时器工作方式定时器工作方式2
39、 2MOV TL1,#0E8HMOV TL1,#0E8H;置置T1T1计数初值计数初值MOV TH1,#0E8HMOV TH1,#0E8H;置置T1T1计数重装值计数重装值CLR ET1CLR ET1;禁止禁止T1T1中断中断SETB TR1SETB TR1;T1;T1启动启动MOV SCON,#40HMOV SCON,#40H;置串行方式置串行方式1,1,禁止接收禁止接收MOV PCON,#00HMOV PCON,#00H;置置SMOD=0(SMODSMOD=0(SMOD不能位操作不能位操作)CLR ESCLR ES;禁止串行中断禁止串行中断MOV R0,#50HMOV R0,#50H;置接
40、收数据区首地址置接收数据区首地址MOV R2,#16MOV R2,#16;置接收数据长度置接收数据长度SETB RENSETB REN;启动接收启动接收JNBJNB RI,$RI,$;等待一帧数据接收完毕等待一帧数据接收完毕CLRCLR RI RI;清接收中断标志清接收中断标志MOVMOV A,SBUF A,SBUF;读接收数据读接收数据MOVMOV R0,A R0,A;存接收数据存接收数据INCINC R0 R0;指向下一数据存储单元指向下一数据存储单元DJNZDJNZ R2,RDSB R2,RDSB;判判1616个数据接收完否个数据接收完否?未完继续未完继续RET RET ;乙机接收子程序
41、:乙机接收子程序:RXDB:RXDB:RDSB:RDSB:第31页,本讲稿共42页方方式式2 2是是一一帧帧1111位位的的串串行行通通信信方方式式,即即1 1个个起起始始位位,8 8个个数数据据位位,1 1个个可可编编程程位位TB8/RB8TB8/RB8和和1 1个个停停止止位位,其其帧帧格格式式为:为:3 3、串行工作方式串行工作方式2 2起始起始D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7TB8/RB8TB8/RB8停止停止当当SMOD=0SMOD=0时,波特率时,波特率=2=20 0 fosc/64=fosc/64=fosc/64fosc/64当当SMOD=1SMO
42、D=1时,波特率时,波特率=2=21 1 fosc/64=fosc/64=fosc/32fosc/32 可编程位可编程位TB8/RB8TB8/RB8既可作奇偶校验位用,也可作控制位既可作奇偶校验位用,也可作控制位(多机通信)用,其功能由用户确定。(多机通信)用,其功能由用户确定。数据发送和接收与方式数据发送和接收与方式1 1基本相同,基本相同,区别区别在于方式在于方式2 2把发把发送送/接收到的第接收到的第9 9位内容送入位内容送入TB8/RB8TB8/RB8。波特率:波特率:方式方式2 2波特率固定波特率固定,即,即fosc/32fosc/32和和fosc/64fosc/64。如用公如用公式
43、表示则为:式表示则为:波特率波特率=2=2SMOD SMOD fosc/64 fosc/64第32页,本讲稿共42页【例例6-46-4】设计一个串行方式设计一个串行方式2 2发送子程序发送子程序(SMOD=1SMOD=1),将片内),将片内RAM 50HRAM 50H5FH5FH中的数据串行中的数据串行发送,第发送,第9 9数据位作为奇偶校验位。接到接收方数据位作为奇偶校验位。接到接收方核对正确的回复信号(用核对正确的回复信号(用FFHFFH表示)后,再发送表示)后,再发送下一字节数据,否则再重发一遍。下一字节数据,否则再重发一遍。解:程序如下:解:程序如下:第33页,本讲稿共42页第34页,
44、本讲稿共42页MOV A,R0 MOV A,R0 ;读数据读数据MOV C,PSW.0 MOV C,PSW.0 ;奇偶标志送奇偶标志送TB8TB8MOV TB8,C MOV TB8,C ;MOV SBUF,A MOV SBUF,A ;启动发送启动发送JNB TI,$JNB TI,$;等待一帧数据发送完毕等待一帧数据发送完毕CLR TI CLR TI ;清发送中断标志清发送中断标志SETB REN SETB REN ;允许接收允许接收CLR RI CLR RI ;清接收中断标志清接收中断标志JNB RI,$JNB RI,$;等待接收回复信号等待接收回复信号MOV A,SBUF MOV A,SBU
45、F ;读回复信号读回复信号CPL A CPL A ;回复信号取反回复信号取反JNZ TRLP JNZ TRLP ;非全非全0(0(回复信号回复信号FFH,FFH,错误错误),),转重发转重发INC R0 INC R0 ;全全0(0(回复信号回复信号=FFH,=FFH,正确正确),),指向下一数据存储单元指向下一数据存储单元CJNE R0,#60H,TRLP CJNE R0,#60H,TRLP ;判判1616个数据发送完否个数据发送完否?未完继续未完继续RET RET ;TRLP:TRLP:MOV SCON,#80H MOV SCON,#80H ;置串行方式置串行方式2,2,禁止接收禁止接收MO
46、V PCON,#80H MOV PCON,#80H ;置置SMOD=1SMOD=1MOV R0,#50HMOV R0,#50H;置发送数据区首址置发送数据区首址TRS2:TRS2:第35页,本讲稿共42页【例例6-56-5】编编制制一一个个串串行行方方式式2 2接接收收子子程程序序,接接收收上上例例发发送送的的1616个个数数据据,存存首首址址为为40H40H的的内内RAMRAM中中,并并核核对对奇奇偶偶校校验验位位,接接收收核核对对正正确确,发发出出回回复复信信号号FFHFFH;发现错误,发出回复信号;发现错误,发出回复信号00H00H,并等待重新接收。,并等待重新接收。第36页,本讲稿共4
47、2页RXD2:MOV SCON,#80H RXD2:MOV SCON,#80H ;置串行方式置串行方式2,2,禁止接收禁止接收 MOV PCON,#80H MOV PCON,#80H ;置置SMOD=1SMOD=1 MOV R0,#40H MOV R0,#40H ;置接收数据区首址置接收数据区首址 SETB REN SETB REN ;启动接收启动接收RWAP:JNB RI,$RWAP:JNB RI,$;等待一帧数据接收完毕等待一帧数据接收完毕 CLR RICLR RI ;清接收中断标志清接收中断标志 MOV A,SBUF MOV A,SBUF ;读接收数据读接收数据,并在并在PSWPSW中产
48、生接收数据的奇偶值中产生接收数据的奇偶值 JB PSW.0,ONE JB PSW.0,ONE ;P=1,;P=1,转另判转另判 JB RB8,ERR JB RB8,ERR ;P=0,RB8=1,;P=0,RB8=1,接收有错接收有错;P=0,RB8=0,;P=0,RB8=0,接收正确接收正确,继续接收继续接收RLOP:MOV R0,A RLOP:MOV R0,A ;存接收数据存接收数据 INC R0 INC R0 ;指向下一数据存储单元指向下一数据存储单元RIT:MOV A,#0FFH RIT:MOV A,#0FFH ;置回复信号正确置回复信号正确FDBK:MOV SBUF,A FDBK:MO
49、V SBUF,A ;发送回复信号发送回复信号 CJNE R0,#50H,RWAP CJNE R0,#50H,RWAP ;判判1616个数据接收完否个数据接收完否?未完继续未完继续 CLR REN CLR REN ;16;16个数据正确接收完毕个数据正确接收完毕,禁止接收禁止接收 RET RET ;ONE:JNB RB8,ERR ONE:JNB RB8,ERR ;P=1,RB8=0,;P=1,RB8=0,接收有错接收有错 SJMP RIT SJMP RIT ;P=1,RB8=1,;P=1,RB8=1,接收正确接收正确,继续接收继续接收ERR:CLR A ERR:CLR A ;接收有错接收有错,置
50、回复信号错误标志置回复信号错误标志 SJMP FDBK SJMP FDBK ;转发送回复信号转发送回复信号解:程序如下:解:程序如下:第37页,本讲稿共42页方方式式3 3同同样样是是一一帧帧1111位位的的串串行行通通信信方方式式,其其通通信信过过程程与与方方式式2 2完完全全相相同同,所所不不同同的的仅仅在在于于波波特特率率。方方式式2 2的的波波特特率率只只有有固固定定的的两两种种,而而方方式式3 3的的波波特特率率则则与方式与方式1 1相同,即通过设置相同,即通过设置T1T1的初值来设定波特率。的初值来设定波特率。4、串行工作方式串行工作方式3 3第38页,本讲稿共42页5 5、串行口