-(大学课件)MCS-51单片机的定时器计数器-PPT.ppt

上传人(卖家):三亚风情 文档编号:3379242 上传时间:2022-08-25 格式:PPT 页数:53 大小:399.51KB
下载 相关 举报
-(大学课件)MCS-51单片机的定时器计数器-PPT.ppt_第1页
第1页 / 共53页
-(大学课件)MCS-51单片机的定时器计数器-PPT.ppt_第2页
第2页 / 共53页
-(大学课件)MCS-51单片机的定时器计数器-PPT.ppt_第3页
第3页 / 共53页
-(大学课件)MCS-51单片机的定时器计数器-PPT.ppt_第4页
第4页 / 共53页
-(大学课件)MCS-51单片机的定时器计数器-PPT.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、郑州大学3.3 MCS-51单片机的定时器单片机的定时器/计数器计数器 3.3.1 定时器定时器/计数器计数器 1 1基本概念基本概念(1 1)计数)计数:计数是指对外部事件的个数进行计量。其实质就是计数是指对外部事件的个数进行计量。其实质就是对外部输入脉冲的个数进行计量。实现计数功能的器件称为对外部输入脉冲的个数进行计量。实现计数功能的器件称为计数器。计数器。(2 2)定时:)定时:8051单片机中的定时器和计数器是一个部件,只单片机中的定时器和计数器是一个部件,只不过计数器记录的是外界发生的事件,而定时器则是由单片不过计数器记录的是外界发生的事件,而定时器则是由单片机内部提供一个非常稳定的

2、计数源进行定时的。这个计数源机内部提供一个非常稳定的计数源进行定时的。这个计数源是由单片机的晶振经过是由单片机的晶振经过12分频后获得的一个脉冲源。所以定分频后获得的一个脉冲源。所以定时器计数脉冲的时间间隔与晶振有关。时器计数脉冲的时间间隔与晶振有关。docin/sundae_meng郑州大学(3 3)定时的种类)定时的种类 软件定时软件定时:利用执行一个循环程序进行时间延迟。其特点是定利用执行一个循环程序进行时间延迟。其特点是定时时间精确,不需外加硬件电路,但占用时时间精确,不需外加硬件电路,但占用CPU时间。因此软件时间。因此软件定时的时间不宜过长。定时的时间不宜过长。硬件定时硬件定时:利

3、用硬件电路实现定时。其特点是不占用利用硬件电路实现定时。其特点是不占用CPU时间,时间,通过改变电路元器件参数来调节定时,但使用不够灵活方便。通过改变电路元器件参数来调节定时,但使用不够灵活方便。对于时间较长的定时,常用硬件电路来实现。对于时间较长的定时,常用硬件电路来实现。可编程定时器可编程定时器:通过专用的定时器通过专用的定时器/计数器芯片实现。其特点是计数器芯片实现。其特点是通过对系统时钟脉冲进行计数实现定时,定时时间可通过程序通过对系统时钟脉冲进行计数实现定时,定时时间可通过程序设定的方法改变,使用灵活方便。也可实现对外部脉冲的计数设定的方法改变,使用灵活方便。也可实现对外部脉冲的计数

4、功能。功能。docin/sundae_meng郑州大学 MCS-51单片机内部有两个单片机内部有两个16位可编程的定时器位可编程的定时器/计数器,简计数器,简称为称为T0和和T1,均可作定时器用也可计数器,它们均是二进制加,均可作定时器用也可计数器,它们均是二进制加法计数器,当计数器计满回零时能自动产生溢出中断请求,表法计数器,当计数器计满回零时能自动产生溢出中断请求,表示定时时间已到或计数已终止。适用于定时控制、延时、外部示定时时间已到或计数已终止。适用于定时控制、延时、外部计数和检测等。计数和检测等。计数器计数器:对引脚对引脚T0(P 3.4)和)和T1(P3.5.)输入的外部脉冲信号)输

5、入的外部脉冲信号计数,当输入脉冲信号从计数,当输入脉冲信号从1到到0的负跳变时,计数器就自动加的负跳变时,计数器就自动加1。计数的最高频率一般为振荡频率的计数的最高频率一般为振荡频率的1/24。定时器定时器:对系统晶振振荡脉冲的对系统晶振振荡脉冲的12分频输出进行计数。分频输出进行计数。(1 1)定时器)定时器/计数器的结构计数器的结构组成:组成:16位加法计数器、工作方式寄存器位加法计数器、工作方式寄存器TMOD和控制寄存器和控制寄存器TCON。T0:TL0(低(低8位)和位)和TH0(高(高8位)位)T1:TL1(低(低8位)和位)和TH1(高(高8位)位)2MCS-51内部定时器内部定时

6、器/计数器计数器 docin/sundae_meng郑州大学 8051单片机内部的定时器单片机内部的定时器/计数器的结构如下图所示计数器的结构如下图所示。docin/sundae_meng郑州大学(2)控制寄存器)控制寄存器TCON (88H)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF0/TF1:T0/1计数溢出标志位。可用于申请中断或供计数溢出标志位。可用于申请中断或供CPU查查询。在进入中断服务程序时会自动清零;但在查询方式时必须询。在进入中断服务程序时会自动清零;但在查询方式时必须软件清零。软件清零。=1:计数溢出计数溢出;=0:计数未满。:计数未满。TR0/TR

7、1:T0/1启停控制位。启停控制位。=1:启动计数;:启动计数;=0:停止计数。停止计数。IE0/IE1和和IT0/IT1:用于管理外部中断(前面已介绍过)。:用于管理外部中断(前面已介绍过)。docin/sundae_meng郑州大学 M1,M0:工作方式选择位:工作方式选择位。=00:13位定时器位定时器/计数器;计数器;=01:16位定时器位定时器/计数器(常用);计数器(常用);=10:可自动重装的:可自动重装的8位定时器位定时器/计数器(常用);计数器(常用);=11:T0 分为分为2个个8位定时器位定时器/计数器;仅适用于计数器;仅适用于T0。C/T:定时方式:定时方式/计数方式选

8、择位。计数方式选择位。=1:选择计数器工作方式,对:选择计数器工作方式,对T0/T1引脚输入的外部事件引脚输入的外部事件的负脉冲计数;的负脉冲计数;=0:选择定时器工作方式,对机器周期脉冲计数定时。:选择定时器工作方式,对机器周期脉冲计数定时。如下页图所示。(3 3)工作方式寄存器)工作方式寄存器TMOD GATE C/T M1 M0 GATE C/T M1 M0T1T2Tdocin/sundae_meng郑州大学GATE:门控位,定时器:门控位,定时器/计数器的启计数器的启/停可由软件与硬件两者控制停可由软件与硬件两者控制 =0:软件控制,只由:软件控制,只由TCON中的启中的启/停控制位停

9、控制位TR0/TR1控制定控制定时器时器/计数器的启计数器的启/停。停。=1:硬件控制,由外部中断请求信号:硬件控制,由外部中断请求信号 /和和TCON中的中的启启/停控制位停控制位TR0/TR1组合状态控制定时器组合状态控制定时器/计数器的启计数器的启/停。停。其控制逻辑如下图所示。其控制逻辑如下图所示。0INT1INTdocin/sundae_meng郑州大学3.3.2 3.3.2 定时器定时器/计数器的工作方式计数器的工作方式 8051单片机的定时器单片机的定时器/计数器共有四种工作模式,现以计数器共有四种工作模式,现以T0为例加为例加以介绍,以介绍,T1与与T0的工作原理相同,但方式的

10、工作原理相同,但方式3下下T1停止计数。方式(如停止计数。方式(如F0)和用户定义名称等几种)和用户定义名称等几种方式。方式。1工作方式工作方式0(M1M0=00,13位定时器位定时器/计数器)计数器)由由TH0的全部的全部8位和位和TL0的低的低5位(位(TL0的高的高3位未用)构成位未用)构成13位位加加1计数器,当计数器,当TL0低低5位计数满时直接向位计数满时直接向TH0进位,并当全部进位,并当全部13位计位计数满溢出时,溢出标志位数满溢出时,溢出标志位TF0置置“1”。2工作方式工作方式1(M1M0=01,16位定时器位定时器/计数器)计数器)由由TH0和和TL0构成构成16位加位加

11、1计数器,其他特性与工作方式计数器,其他特性与工作方式0相同。相同。3工作方式工作方式2(M1M0=10,自动重装计数初值的,自动重装计数初值的8位定位定时器时器/计数器)计数器)16位定时器位定时器/计数器被拆成两个计数器被拆成两个8位寄存器位寄存器TH0和和TL0,CPU在对在对它们初始化时必须装入相同的定时器它们初始化时必须装入相同的定时器/计数器初值。以计数器初值。以TL0作计数器,作计数器,而而TH0作为预置寄存器。当计数满溢出时,作为预置寄存器。当计数满溢出时,TF0置置“1”,同时,同时TH0将将计数初值以硬件方法自动装入计数初值以硬件方法自动装入TL0。这种工作方式很适合于那些

12、重复计。这种工作方式很适合于那些重复计数的应用场合(如串行数据通信的波特率发生器)。数的应用场合(如串行数据通信的波特率发生器)。docin/sundae_meng郑州大学4工作方式工作方式3(M1M0=11,2个个8位定时器位定时器/计数器,仅适用计数器,仅适用于于T0)TL0:8位定时器位定时器/计数器,使用计数器,使用T0原有控制资源原有控制资源TR0和和TF0,其功能和操作与方式其功能和操作与方式0或方式或方式1完全相同。完全相同。TH0:只能作为:只能作为8位定时器,借用位定时器,借用T1的控制位的控制位TR1和和TF1,只能,只能对片内机器周期脉冲计数。对片内机器周期脉冲计数。在方

13、式在方式3模式下,定时器模式下,定时器/计数器计数器0可以构成两个定时器或可以构成两个定时器或者一个定时器和一个计数器。者一个定时器和一个计数器。T0方式方式3下的下的T1方式方式2,因定时初值能自动恢复,用作波,因定时初值能自动恢复,用作波特率发生器更为合适。特率发生器更为合适。docin/sundae_meng郑州大学 定时器定时器/计数器可按片内机器周期定时,也可对由计数器可按片内机器周期定时,也可对由T0/T1引脚输入一个负脉冲进行加法计数。在应用时,其工引脚输入一个负脉冲进行加法计数。在应用时,其工作方式和工作过程均可通过程序设定和控制,因此,定时器作方式和工作过程均可通过程序设定和

14、控制,因此,定时器/计数器在工作前必须先对其进行初始化,计算和设置初值。计数器在工作前必须先对其进行初始化,计算和设置初值。1.定时器定时器T0/T1 中断申请过程中断申请过程 (1)在已经开放)在已经开放T0/T1中断允许且已被启动的前提下,中断允许且已被启动的前提下,T0/T1加加1计满溢出时计满溢出时 TF0/TF1标志位自动置标志位自动置“1”;(2)CPU 检测到检测到TCON中中TF0/TF1变变“1”后后,将产生指将产生指令:令:LCALL 000BH/LCALL 001BH 执行中断服务程序;执行中断服务程序;(3)TF0/TF1标志位由硬件自动清标志位由硬件自动清“0”,以备

15、下次中断申以备下次中断申请。请。3.3.3 定时器定时器/计数器的应用计数器的应用 docin/sundae_meng郑州大学2.定时器定时器/计数器初始化的步骤计数器初始化的步骤 (1)写)写TMOD,设置定时器,设置定时器/计数器的工作方式;计数器的工作方式;(2)计算定时器)计算定时器/计数器的初值,写入计数器的初值,写入TH0/TH1、TL0/TL1。(3)设置)设置IE、IP,以开放相应的中断和设定中断优先级。,以开放相应的中断和设定中断优先级。3.定时器定时器/计数器的定时器计数器的定时器/计数器范围计数器范围 (1 1)工作方式)工作方式0 0:13位定时器位定时器/计数器方式计

16、数器方式 最大计数值最大计数值=213=8192 (2 2)工作方式)工作方式1 1:16位定时器位定时器/计数器方式计数器方式 最大计数值最大计数值=216=65536 (3)工作方式工作方式2和工作方式和工作方式3:8位的定时器位的定时器/计数器方式因此,计数器方式因此,最大计数值最大计数值=28=256 docin/sundae_meng郑州大学3.计数器初值的计算计数器初值的计算 方法:方法:用最大计数量减去需要的计数次数。即:用最大计数量减去需要的计数次数。即:TC=M C 其中:其中:TC计数器需要预置的初值;计数器需要预置的初值;M计数器的模值(最大计数值);计数器的模值(最大计

17、数值);方式方式0时,时,M=213;方式;方式1时,时,M=216;方式;方式2,3时,时,M=28;C计数器计满回计数器计满回0所需的计数值,即设计任务要求的计数值。所需的计数值,即设计任务要求的计数值。例如:例如:流水线上一个包装是流水线上一个包装是12盒,要求每到盒,要求每到12盒就产生一个动盒就产生一个动作,用单片机的工作方式作,用单片机的工作方式0来控制,则应当预置的初值为:来控制,则应当预置的初值为:TC=M C=213 12=8180docin/sundae_meng郑州大学4.定时器初值的计算定时器初值的计算 定时时间的计算公式为定时时间的计算公式为:T=(M TC)T0(或

18、或TC=M T/T0)其中:其中:T定时器的定时时间,即设计任务要求的定时时间;定时器的定时时间,即设计任务要求的定时时间;T0计数器计数脉冲的周期,即单片机系统主频周期计数器计数脉冲的周期,即单片机系统主频周期的的12倍;倍;M计数器的模值;计数器的模值;TC定时器需要预置的初值。定时器需要预置的初值。若设初值若设初值TC=0,则定时器定时时间为最大。若设单片机系,则定时器定时时间为最大。若设单片机系统主频为统主频为12MHz,则各种工作方式定时器的最大定时时间为:,则各种工作方式定时器的最大定时时间为:工作方式工作方式0 0:Tmax=2131 s=8.192ms工作方式工作方式1 1:T

19、max=2161 s=65.536ms工作方式工作方式2 2和和3 3:Tmax=281 s=0.256msdocin/sundae_meng郑州大学 例例 设外部有一个脉冲源。编制程序,对外部脉冲源进行计数并设外部有一个脉冲源。编制程序,对外部脉冲源进行计数并显示。显示。解:解:将外部计数源连到引脚将外部计数源连到引脚T1上,可用上,可用LED将计数的值显示出将计数的值显示出来,我们用来,我们用P1口连接的口连接的8个个LED来显示计到的数据。来显示计到的数据。程序如下程序如下:ORG 0000H AJMP START;转入主程序转入主程序 ORG 0030H START:MOV SP,#6

20、0H;设置堆栈指针设置堆栈指针 MOV TMOD,#60H;定时器定时器/计数器计数器1作计数用作计数用 01100000B MOV TL1,#00H MOV TH1,#00H SETB TR1 ;启动计数器启动计数器1开始运行开始运行 LOOP:MOV A,TL1 ;读计数器读计数器1的计数值送的计数值送A MOV P1,A ;将计数值输出到将计数值输出到P1口,驱动口,驱动LED显示显示 AJMP LOOP ;转回转回LOOP END5.定时器定时器/计数器应用举例计数器应用举例docin/sundae_meng郑州大学 P126 例3.6 设一只发光二极管LED和8051的P1.0脚相连

21、。当当P1.0脚是高电平时,LED不亮;当P1.0脚是低电平时,LED亮。编制程序用定时器来实现发光二极管LED的闪烁功能。已知单片机系统主频为12MHz。解:解:设置LED每60ms闪烁1次。选择定时器/计数器0工作在方式1。此时定时器对系统主频的12分频脉冲计数。T0=1微秒,TC=M-T/T0=5536=15A0Hdocin/sundae_meng郑州大学方法方法1:用查询方式:用查询方式 ORG 0000H MOV TH0,#15H AJMP START MOV TL0,#0A0H ORG 0030H SETB TR0START:MOV SP,#60H AJMP LOOP MOV P1

22、,#0FFH END MOV TMOD,#01H ;00000001 MOV TH0,#15H MOV TL0,#0A0H SETB TR0LOOP:JBC TF0,NEXT AJMP LOOPNEXT:CPL P1.0docin/sundae_meng郑州大学方法方法2:用中断方式实现:用中断方式实现 ORG 0000H TIME0:PUSH ACC AJMP START PUSH PSW ORG 000BH CPL P1.0 AJMP TIME0 MOV TH0,#15H ORG 0030H MOV TL0,#0A0HSTART:MOV SP,#60H SETB TR0 MOV P1,#0

23、FFH POP PSW MOV TMOD,#01H POP ACC MOV TH0,#15H RETI MOV TL0,#0A0H END SETB EA SETB ET0 SETB TR0LOOP:AJMP LOOPdocin/sundae_meng郑州大学 例例 设置设置LED每每1s闪烁一次。已知单片机系统主频为闪烁一次。已知单片机系统主频为12MHz。解:解:定时器定时器/计数器的最长的定时是计数器的最长的定时是65.536ms,无法实,无法实现现1s的定时。可以采用软件计数器来进行设计。的定时。可以采用软件计数器来进行设计。docin/sundae_meng郑州大学设计思想:设计思想

24、:定义一个软件计数器单元定义一个软件计数器单元30H,先用定时器,先用定时器/计数计数器器0做一个做一个50ms的定时器,定时时间到了以后将软件计数器中的定时器,定时时间到了以后将软件计数器中的值加的值加1,如果软件计数器计到了,如果软件计数器计到了20,取反,取反P1.0,并清掉软件,并清掉软件计数器中的值,否则直接返回。则完成了计数器中的值,否则直接返回。则完成了20次定时中断才取反次定时中断才取反一次一次P1.0,因此定时时间就为,因此定时时间就为2050=1000ms=1s。定时器定时器/计数器计数器0采用工作方式采用工作方式1,其初值为:,其初值为:216 50ms/1 s=6553

25、6 50000=15536=3CB0H电路图如下:电路图如下:docin/sundae_meng郑州大学程序如下:程序如下:ORG 0000H AJMP START ;转入主程序转入主程序 ORG 000BH ;定时器定时器/计数器计数器0的中断服务程序入口地址的中断服务程序入口地址 AJMP TIME0 ;跳转到真正的定时器中断服务程序处跳转到真正的定时器中断服务程序处 ORG 0030H START:MOV SP,#60H ;设置堆栈指针设置堆栈指针 MOV P1,#0FFH ;关发光二极管关发光二极管LED(使其灭)(使其灭)MOV 30H,#00H ;软件计数器预清软件计数器预清0 M

26、OV TMOD,#01H ;定时器定时器/计数器计数器0工作于方式工作于方式1 MOV TH0,#3CH ;设置定时器设置定时器/计数器的初值计数器的初值 MOV TL0,#0B0H SETB EA ;开总中断允许开总中断允许 SETB ET0 ;开定时器开定时器/计数器计数器0中断允许中断允许 SETB TR0;启动定时器启动定时器/计数器计数器0 LOOP:AJMP LOOP ;循环等待循环等待(真正工作时,这里可写任意其他程序)(真正工作时,这里可写任意其他程序)docin/sundae_meng郑州大学定时器定时器/计数器计数器0 0的中断服务程序如下的中断服务程序如下:TIME0:P

27、USH ACC ;将将PSW和和ACC推入堆栈保护推入堆栈保护 PUSH PSW INC 30H ;软件计数器加软件计数器加1 MOV A,30H CJNE A,#20,T_LP2;软件计数器单元中的值到了软件计数器单元中的值到了20了吗?了吗?到了,继续执行到了,继续执行;否则,转入否则,转入T_LP2 T_LP1:CPL P1.0 ;到了,到了,P1.0取反取反 MOV 30H,#00H;清软件计数器清软件计数器 T_LP2:MOV TH0,#3CH;重置定时器重置定时器/计数器的初值计数器的初值 MOV TL0,#0B0H POP PSW ;恢复恢复PSW和和ACC POP ACC RE

28、TI;中断返回中断返回 ENDdocin/sundae_meng郑州大学3.4 MCS-51 3.4 MCS-51 单片机的串行通信单片机的串行通信 3.4.1 3.4.1 概述概述1.1.通信通信 通信:通信:单片机与外界进行信息交换统称为通信。单片机与外界进行信息交换统称为通信。80518051单片机的通信方式有两种:单片机的通信方式有两种:并行通信:并行通信:数据的各位同时发送或接收。特点是传送速度快、效数据的各位同时发送或接收。特点是传送速度快、效率高,但成本高。适用于短距离传送数据。计算机内部的数率高,但成本高。适用于短距离传送数据。计算机内部的数据传送一般均采用并行方式。据传送一般

29、均采用并行方式。串行通信:串行通信:数据一位一位顺序发送或接收。特点是传送速度慢,数据一位一位顺序发送或接收。特点是传送速度慢,但成本低。适用于较长距离传送数据。计算机与外界的数据但成本低。适用于较长距离传送数据。计算机与外界的数据传送一般均采用串行方式。传送一般均采用串行方式。docin/sundae_meng郑州大学2.2.数据通信的制式数据通信的制式单工方式单工方式:数据仅按一个固定方向传送;数据仅按一个固定方向传送;半双工方式半双工方式:数据可实现双向传送,但不能同时进行;数据可实现双向传送,但不能同时进行;全双工方式全双工方式:允许双方同时进行数据双向传送;允许双方同时进行数据双向传

30、送;多工方式多工方式:在同一线路上实现资源共享。在同一线路上实现资源共享。3.3.串行通信的分类串行通信的分类 串行数据通信按数据传送方式可分为串行数据通信按数据传送方式可分为异步通信异步通信和和同步通信同步通信两种形式:两种形式:同步方式:同步方式:以以数据块数据块为单位进行数据传送为单位进行数据传送,包括同步字符、数,包括同步字符、数据块和校验字符据块和校验字符CRCCRC。优点是数据传输速率较高,缺点是要求发。优点是数据传输速率较高,缺点是要求发送时钟和接收时钟保持严格同步。数据格式如下图所示。送时钟和接收时钟保持严格同步。数据格式如下图所示。docin/sundae_meng郑州大学异

31、步方式异步方式:以以字符为单位进行数据传送,字符为单位进行数据传送,每一个字符均按固定每一个字符均按固定的字符格式传送,又被称为帧。优点是不需要传送同步脉冲,的字符格式传送,又被称为帧。优点是不需要传送同步脉冲,可靠性高,所需设备简单;缺点是字符帧中因包含有起始位和可靠性高,所需设备简单;缺点是字符帧中因包含有起始位和停止位而降低了有效数据的传输速率。停止位而降低了有效数据的传输速率。数据格式如下图所示:数据格式如下图所示:docin/sundae_meng郑州大学4.4.串行数据通信的波特率串行数据通信的波特率 波特率是指每秒钟传送信号的数量,单位为波特(波特率是指每秒钟传送信号的数量,单位

32、为波特(Baud)。)。而每秒钟传送二进制数的信号数(即二进制数的位数)定义为而每秒钟传送二进制数的信号数(即二进制数的位数)定义为比特率,单位是比特率,单位是bps(bit per second)或写成)或写成b/s(位(位/秒)。秒)。在单片机串行通信中,传送的信号是二进制信号,波特率在单片机串行通信中,传送的信号是二进制信号,波特率与比特率数值上相等。单位采用与比特率数值上相等。单位采用bps。例如,异步串行通信的数据传送的速率是例如,异步串行通信的数据传送的速率是120字符字符/秒,而每个字秒,而每个字符规定包含符规定包含10位数字,则传输波特率为:位数字,则传输波特率为:120字符字

33、符/秒秒 10位位/字符字符=1200位位/秒秒=1200bpsdocin/sundae_meng郑州大学3.4.2 MCS-513.4.2 MCS-51的串行口的串行口 MCS-51单片机内部有一个全双工的串行通信口(单片机内部有一个全双工的串行通信口(P3.0、P3.1),既可作,既可作UART(通用异步接收(通用异步接收/发送器)用,也可作同发送器)用,也可作同步移位寄存器使用,还可用于网络通信,其帧格式可有步移位寄存器使用,还可用于网络通信,其帧格式可有8位、位、10位和位和11位,并能设置各种波特率。位,并能设置各种波特率。1 1串行口寄存器结构串行口寄存器结构 (1)两个物理上独立

34、的同名的接收)两个物理上独立的同名的接收/发送缓冲寄存器发送缓冲寄存器SBUF 指令指令 MOV SBUF,A 启动一次数据发送启动一次数据发送,指令指令 MOV A,SBUF 完成一次数据接收完成一次数据接收,即向发送缓冲器即向发送缓冲器SBUF写入数据即可写入数据即可发送数据,从接收缓冲器发送数据,从接收缓冲器SBUF读出数据即可接收数据。读出数据即可接收数据。(2)输入和输出移位寄存器和控制器等组成。)输入和输出移位寄存器和控制器等组成。(3)2个个SFR寄存器寄存器SCON和和PCON,用于串行口的初始化编,用于串行口的初始化编程。程。(4)接收)接收/发送数据发送数据,无论是否采用中

35、断方式工作无论是否采用中断方式工作,每接收每接收/发送发送一个数据都必须用指令对一个数据都必须用指令对 RI/TI 清清0,以备下一次收,以备下一次收/发。发。docin/sundae_meng郑州大学 SBUF(发)(发)SBUF(收)(收)发送控制器发送控制器 TI接收控制器接收控制器 RI移位寄存器移位寄存器波波特特率率发发生生器器T1 1A累累加加器器(门门)移位寄存器移位寄存器RxD(P3.0)TxD(P3.1)去申请中断去申请中断引脚引脚引脚引脚CPU内部内部 MCS-51串行口的结构如下图所示:串行口的结构如下图所示:docin/sundae_meng郑州大学2.串行通信控制寄存

36、器串行通信控制寄存器SCON(98H)SM0 SM1 SM2 REN TB8 RB8 TI R1SM0,SM1:串行口:串行口4种工作方式控制位。种工作方式控制位。=00:方式:方式0,8位同步移位寄存器,其波特率为位同步移位寄存器,其波特率为fosc/12;=01:方式:方式1,10位位UART,其波特率为可变,由定时器控制;,其波特率为可变,由定时器控制;=10:方式:方式2,11位位UART,其波特率为,其波特率为fosc/64或或fosc/32;=11:方式:方式3,11位位UART,其波特率为可变,由定时器控制。,其波特率为可变,由定时器控制。其中:其中:fosc为系统晶振频率。为系

37、统晶振频率。RI,TI:串行口收:串行口收/发数据申请中断标志位发数据申请中断标志位 1 申请中断;申请中断;0 不申请中断。不申请中断。docin/sundae_meng郑州大学RB8:在方式:在方式2、3中,用于存放收到的第中,用于存放收到的第9位数据;在双机通信位数据;在双机通信中,作为奇偶校验;在多机通信中,用作区别地址帧中,作为奇偶校验;在多机通信中,用作区别地址帧/数据帧的数据帧的标志。标志。TB8:方式:方式2、3中,是要发送的第中,是要发送的第9位数据;在双机通信中,用位数据;在双机通信中,用于对接收到的数据进行奇偶校验;在多机通信中,用作判断地址于对接收到的数据进行奇偶校验;

38、在多机通信中,用作判断地址帧帧/数据帧,数据帧,TB8=0 表示发送的是数据,表示发送的是数据,TB8=1 表示发送的是地表示发送的是地址。址。REN:串行口接收允许控制位:串行口接收允许控制位 =1:表示允许接收;表示允许接收;=0:禁止接收。禁止接收。SM2:串行口多机通信控制位,作为方式:串行口多机通信控制位,作为方式2、方式、方式3的附加控制位。的附加控制位。docin/sundae_meng郑州大学3.中断允许寄存器中断允许寄存器IE(0A8H)中断允许寄存器中断允许寄存器IE在在3.2.2节中已介绍。其中对串行口有影节中已介绍。其中对串行口有影响的位响的位ES。ES为串行中断允许控

39、制位。为串行中断允许控制位。ES=1:允许串行中断;:允许串行中断;ES=0:禁止串行中断。:禁止串行中断。4.4.电源管理寄存器电源管理寄存器PCONPCON(87H87H)不可位寻址。不可位寻址。PCON主要用于实现电源控制而设置的专用主要用于实现电源控制而设置的专用寄存器,已在寄存器,已在1.3.3节中介绍过。其格式如下图所示。节中介绍过。其格式如下图所示。SMOD GF1 GF0 PD 1DLSMOD:串行口波特率倍增位串行口波特率倍增位 =1:串行口波特率加倍。:串行口波特率加倍。=0:串行口波特率不变,系统复位时默认:串行口波特率不变,系统复位时默认SMOD=0。docin/sun

40、dae_meng郑州大学3.4.3 3.4.3 串行口的工作方式串行口的工作方式 1.工作方式工作方式0(8位移位寄存器位移位寄存器I/O方式)方式)发送发送/接收过程:接收过程:SBUF中的串行数据由中的串行数据由RxD逐位移出逐位移出/移入(低移入(低位在先,高位在后);位在先,高位在后);TxD输出移位时钟,频率输出移位时钟,频率=fosc1/12;每;每送出送出/接收接收8位数据位数据 TI/RI自动置自动置1;需要用软件清零;需要用软件清零 TI/RI。注意注意:串行口在方式串行口在方式0下的工作并非是一种同步通信方式,下的工作并非是一种同步通信方式,经常经常配合配合“串入并出串入并

41、出”“”“并入串出并入串出”移位寄存器一起使用,移位寄存器一起使用,以达到以达到扩展一个并行口的目的。扩展一个并行口的目的。扩展电路如下图所示。扩展电路如下图所示。docin/sundae_meng郑州大学如要发送数据,查询方式的程序如下:如要发送数据,查询方式的程序如下:MOV SCON,#00H ;串行口方式;串行口方式0 MOV SBUF,A ;将数据送出;将数据送出 JNB TI,$;等待数据发送完毕;等待数据发送完毕 CLR TI ;为下次发送作准备;为下次发送作准备注意:注意:复位时,复位时,SCON 已经被清零,缺省值为方式已经被清零,缺省值为方式0。发送条件:发送条件:TI=0

42、。接收条件接收条件:TI=0,置位,置位 REN=1(允许接收数据)。(允许接收数据)。2.方式方式1(波特率可变的波特率可变的10位异步通信方式位异步通信方式)发送发送/接收数据的格式接收数据的格式:一帧信息包括一帧信息包括1个起始位个起始位0,8个数据位和个数据位和1个停止位个停止位1。发送发送/接收过程接收过程:SBUF中的串行数据由中的串行数据由RXD逐位移出逐位移出/移入;移入;TXD输出移输出移位时钟,频率位时钟,频率=(2SMOD/32)T1的溢出率,的溢出率,波特率可变。每送出波特率可变。每送出/接收接收8位数位数据据 TI/RI自动置自动置1;需要用软件清零;需要用软件清零

43、TI/RI。工作时,发送端自动添加一个起。工作时,发送端自动添加一个起始位和一个停止位;接收端自动去掉一个起始位和一个停止位。始位和一个停止位;接收端自动去掉一个起始位和一个停止位。发送发送/接收条件接收条件:同方式同方式0。docin/sundae_meng郑州大学3.方式方式2(固定波特率的固定波特率的11位异步接收位异步接收/发送方式发送方式)发送发送/接收过程接收过程:方式方式2的接收的接收/发送过程类似于方式发送过程类似于方式1,所不同的,所不同的是它比方式是它比方式1增加了一位增加了一位“第第9位位”数据数据(TB8/RB8),用于,用于“奇偶奇偶校验校验”。方式。方式2常用于单片

44、机间通信。波特率常用于单片机间通信。波特率=fosc 2SMOD/64。发送发送/接收条件接收条件:同方式同方式0。4.方式方式3(可变波特率的可变波特率的11位异步接收位异步接收/发送方式发送方式)方式方式3和方式和方式2唯一的区别是波特率机制不同,唯一的区别是波特率机制不同,方式方式3的波特的波特率率=(2SMOD/32)T1的溢出率。的溢出率。docin/sundae_meng郑州大学奇偶校验奇偶校验:奇偶校验是检验串行通信双方传输的数据正确与否奇偶校验是检验串行通信双方传输的数据正确与否的一个措施,并不能保证通信数据的传输一定正确。即的一个措施,并不能保证通信数据的传输一定正确。即如果

45、如果奇奇偶校验发生错误,表明数据传输一定出错了;如果奇偶校验没偶校验发生错误,表明数据传输一定出错了;如果奇偶校验没有出错,绝不等于数据传输完全正确。有出错,绝不等于数据传输完全正确。奇校验规定奇校验规定:8位有效数据连同位有效数据连同1位附加位中,二进制位附加位中,二进制“1”的个的个数为奇数。数为奇数。偶校验规定偶校验规定:8位有效数据连同位有效数据连同1位附加位中,二进制位附加位中,二进制“1”的个的个数为偶数。数为偶数。约定发送采用约定发送采用奇校验奇校验:若发送的若发送的8位有效数据中位有效数据中“1”的个数为偶的个数为偶数,则要人为在附加位中添加一个数,则要人为在附加位中添加一个“

46、1”一起发送;若发送的一起发送;若发送的8位位有效数据中有效数据中“1”的个数为奇数,则要人为在附加位中添加一个的个数为奇数,则要人为在附加位中添加一个“0”一起发送。一起发送。约定接收采用约定接收采用奇校验奇校验:若接收到的若接收到的9位数据中位数据中“1”的个数为奇数,的个数为奇数,则表明接收正确,取出则表明接收正确,取出8位有效数据即可;若接收到的位有效数据即可;若接收到的9位数据位数据中中“1”的个数为偶数,则表明接收出错!应当进行出错处理。的个数为偶数,则表明接收出错!应当进行出错处理。采用采用偶校验时,处理方法与奇校验类似。偶校验时,处理方法与奇校验类似。docin/sundae_

47、meng郑州大学3.4.4 3.4.4 串行口的通信波特率串行口的通信波特率 串行口的通信波特率恰到好处地反映了串行传输数据的速率。在串行口的通信波特率恰到好处地反映了串行传输数据的速率。在MCS-51串行口的四种工作方式中,方式串行口的四种工作方式中,方式0和和2的波特率是固定的,而方式的波特率是固定的,而方式1和和3的波特的波特率是可变的,由定时器率是可变的,由定时器T1的溢出率(的溢出率(T1溢出信号的频率)控制。各种方式的溢出信号的频率)控制。各种方式的通信波特率如下:通信波特率如下:方式方式0:波特率固定为波特率固定为fosc/12。其中:其中:fosc系统主机晶振频率系统主机晶振频

48、率方式方式2:波特率由波特率由PCON中的选择位中的选择位SMOD来决定,可由下式表示:来决定,可由下式表示:波特率波特率=(2SMOD/64)fosc 方式方式1和方式和方式3:波特率是可变的,由定时器波特率是可变的,由定时器T1的溢出率控制。波特率为:的溢出率控制。波特率为:波特率波特率=(2SMOD/32)定时器定时器T1溢出率溢出率 T1溢出率溢出率=T1计数率计数率/产生溢出所需的周期产生溢出所需的周期 =(fosc/12)/(2K TC)其中:其中:K定时器定时器T1的位数,定时器的位数,定时器T1用作波特率发生器时,通常工用作波特率发生器时,通常工作在方式作在方式2,所以所以T1

49、的溢出所需的周期数的溢出所需的周期数=28 TC。TC定时器定时器T1的预置初值。的预置初值。docin/sundae_meng郑州大学 下表列出了定时器T1工作于方式2的常用波特率及初值。docin/sundae_meng郑州大学3.4.5 3.4.5 串行口的应用串行口的应用 1 1串口方式串口方式0 0应用编程应用编程 例题例题6 6 用用8051串行口外接串行口外接CD4094扩展扩展8位并行输出口,位并行输出口,8位并位并行口的各位都接一个发光二极管,要求发光二极管呈流水灯状行口的各位都接一个发光二极管,要求发光二极管呈流水灯状态(轮流点亮)。态(轮流点亮)。解:解:硬件连接电路如下

50、图所示。硬件连接电路如下图所示。docin/sundae_meng郑州大学 在开始通信之前,应先对控制寄存器在开始通信之前,应先对控制寄存器SCON进行进行初始化初始化。将。将00H送送SCON即设置方式即设置方式0。数据传送采用查询方式,通过查询。数据传送采用查询方式,通过查询TI的状态,来决定是否发送下一帧数据。在串行接收时,通过对的状态,来决定是否发送下一帧数据。在串行接收时,通过对RI查询来确定何时接收下一帧数据。程序如下:查询来确定何时接收下一帧数据。程序如下:ORG 1000H START:MOV SCON,#00H;置串行口工作方式置串行口工作方式0 MOV A,#80H ;最高

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(-(大学课件)MCS-51单片机的定时器计数器-PPT.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|