单片机定时计数工作原理..课件

上传人:hs****ma 文档编号:568400421 上传时间:2024-07-24 格式:PPT 页数:79 大小:2.07MB
返回 下载 相关 举报
单片机定时计数工作原理..课件_第1页
第1页 / 共79页
单片机定时计数工作原理..课件_第2页
第2页 / 共79页
单片机定时计数工作原理..课件_第3页
第3页 / 共79页
单片机定时计数工作原理..课件_第4页
第4页 / 共79页
单片机定时计数工作原理..课件_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《单片机定时计数工作原理..课件》由会员分享,可在线阅读,更多相关《单片机定时计数工作原理..课件(79页珍藏版)》请在金锄头文库上搜索。

1、第六章第六章单片微机的定时器单片微机的定时器/计数器计数器原理及应用原理及应用通常采用以下三种方法来实现定时或计数:通常采用以下三种方法来实现定时或计数:1硬件法硬件法硬硬件件定定时时功功能能完完全全由由硬硬件件电电路路完完成成,不不占占用用CPU时时间间。但但当当要要求求改改变变定定时时时时间间时时,只只能能通通过过改改变变电电路路中中的的元元件件参参数数来来实现,很不灵活。实现,很不灵活。2软件法软件法软软件件定定时时是是执执行行一一段段循循环环程程序序来来进进行行时时间间延延时时,优优点点是是无额外的硬件开销,时间比较精确。但牺牲了无额外的硬件开销,时间比较精确。但牺牲了CPU的时间。的

2、时间。3可编程定时器计数器可编程定时器计数器6.1概述概述可编程定时器计数器最大特点是可以通过软件编程来可编程定时器计数器最大特点是可以通过软件编程来实现定时时间的改变,通过中断或查询方法来完成定时功能或实现定时时间的改变,通过中断或查询方法来完成定时功能或计数功能。有专门的可编程定时器计数器芯片可供选用,比计数功能。有专门的可编程定时器计数器芯片可供选用,比如如Intel8253。还有一些日历时钟芯片,如菲利浦公司的还有一些日历时钟芯片,如菲利浦公司的PCF8583等。等。目目前前单单片片微微机机中中往往往往已已配配备备了了定定时时器器计计数数器器(timercounter)。)。80C51

3、芯芯片片内内包包含含有有两两个个16位位的的定定时时器器计计数数器器:T0和和T1;而而80C52包包含含有有三三个个16位位的的定定时时器器计计数数器器:T0、T1和和T2;在在80C51系系列列的的部部分分产产品品(如如Philips公公司司的的80C552)中中,还还包包含有一个用做看门狗的含有一个用做看门狗的8位定时器(位定时器(T3)。)。定定时时器器计计数数器器的的核核心心是是一一个个加加1计计数数器器其其基基本本功功能能是是计数加计数加1。若若是是对对单单片片微微机机的的T0、T1或或T2引引脚脚上上输输入入的的一一个个1到到0的跳变进行计数增的跳变进行计数增l,即是计数功能。即

4、是计数功能。若若是是对对单单片片微微机机内内部部的的机机器器周周期期进进行行计计数数,从从而而得得到到定定时,这就是定时功能。时,这就是定时功能。定定时时功功能能和和计计数数功功能能的的设设定定和和控控制制都都是是通通过过软软件件来来设设定定的。的。80C51的的定定时时器器/计计数数器器除除了了可可用用作作定定时时器器或或计计数数器器之之外外,还可用作串行接口的波特率发生器。还可用作串行接口的波特率发生器。定定时时器器计计数数器器T0、T1的的内内部部结结构构简简图图示示于于图图61中中。从图中可以看出,定时器计数器从图中可以看出,定时器计数器T0、T1由以下几部分组成:由以下几部分组成:计

5、数器计数器TH0、TL0和和TH1、TL1;特殊功能寄存器特殊功能寄存器TMOD、TCON;时钟分频器;时钟分频器;输入引脚输入引脚T0、T1。6.2定时器计数器定时器计数器T0、T1定时器计数器定时器计数器T0、T1的方式寄存器的方式寄存器TMOD字节地址为字节地址为89H。TMOD的格式如下:低的格式如下:低4位用来定义位用来定义T0,高高4位用来定义位用来定义T16.2.1与定时器计数器与定时器计数器T0、T1有关的特殊功能寄存器有关的特殊功能寄存器D7D6 D5D4D3D2D1D0GATE C/TM1M0GATE C/TM1M0T1T0各位的意义如下:各位的意义如下:GATE门控位。门

6、控位。GATE1时时,由由外外部部中中断断引引脚脚、和和TR0、TR1共共同同来来启启动动定时器。当定时器。当引引脚脚为为高高电电平平时时,TR0置置位位启启动动定定时时器器T0;当当引引脚为高电平时,脚为高电平时,TR1置位,启动定时器置位,启动定时器T1。GATE0时,仅由时,仅由TR0和和TR1置位来启动定时器置位来启动定时器T0和和T1。CT功能选择位。功能选择位。C/T1时,选择计数功能;时,选择计数功能;C/T0时,选择定时功能。时,选择定时功能。T0、T1的计数、定时功能是通过的计数、定时功能是通过TMOD中的位来选择的。中的位来选择的。定时器,设置定时器,设置C/T0计计数数输

7、输入入信信号号是是内内部部时时钟钟脉脉冲冲,每每个个机机器器周周期期使使寄寄存存器器的的值值增增1。每每个个机机器器周周期期等等于于12个个振振荡荡周周期期,故故计计数数速速率率为为振振荡荡周周期期的的112。当当采采用用12MHz的的晶晶体体时时,计计数数速速率率为为1MHz。定定时时器器的的定定时时时间,与系统的振荡频率时间,与系统的振荡频率fosc、计数器的长度和初始值等有关。计数器的长度和初始值等有关。计数器,设置计数器,设置C/T1这这时时,通通过过引引脚脚T0(P3.4)和和T1(P3.5)对对外外部部信信号号进进行行计计数数。在在每每个个机机器器周周期期的的S5P2期期间间,CP

8、U采采样样引引脚脚的的输输入入电电平平。若若前前一一机机器器周周期期采采样样值值为为1,下下一一机机器器周周期期采采样样值值为为0,则则计计数数器器增增1,此后的机器周期,此后的机器周期S3P1期间,新的计数值装入计数器。期间,新的计数值装入计数器。所所以以检检测测一一个个1到到0的的跳跳变变需需要要两两个个机机器器周周期期,故故计计数数脉脉冲冲频频率率不能高于振荡脉冲频率的不能高于振荡脉冲频率的124。M1、M0工作方式选择位。工作方式选择位。由于有由于有M1和和M0两位,可以有四种工作方式,如两位,可以有四种工作方式,如表表61所示。所示。定时器计数器定时器计数器T0、T1的控制寄存器的控

9、制寄存器TCON控控制制寄寄存存器器TCON是是一一个个逐逐位位定定义义的的8位位寄寄存存器器,字字节节地地址址为为88H,位寻址的地址为位寻址的地址为88H8FH。其格式如下:其格式如下:位地址位地址 8FH8EH8DH8CH8BH8AH89H88H位功能位功能 TF1TR1TF0TR0IE1IT1IE0IT0其中各位的意义如下:其中各位的意义如下:TF1(TCON7)定时器计数器定时器计数器T1的溢出标志。的溢出标志。T1溢溢出出时时,该该位位由由内内部部硬硬件件置置位位。若若中中断断开开放放,即即响响应应中中断断,进进入入中中断断服服务务程程序序后后,由由硬硬件件自自动动清清0;若若中中

10、断断禁禁止止,可用于判跳,用软件清可用于判跳,用软件清0。TR1(TCON6)T1的运行控制位。的运行控制位。用软件控制,置用软件控制,置l时,启动时,启动T1;清清0时,停止时,停止T1。TF0(TCON5)T0的溢出标志。的溢出标志。T0溢溢出出时时,该该位位由由内内部部硬硬件件置置位位。若若中中断断开开放放,即即响响应应中中断断,进进入入中中断断服服务务程程序序后后,由由硬硬件件自自动动清清0;若若中中断断禁禁止止,可用于判跳,用软件清可用于判跳,用软件清0。TR0(TCON4)T0的运行控制位。的运行控制位。用软件控制,置用软件控制,置1时,启动时,启动T0;清清0时,停止时,停止T0

11、。IE1(TCON3)外部中断外部中断1下降沿触发标志位。下降沿触发标志位。IE0(TCONI)外部中断外部中断0下降沿触发标志位。下降沿触发标志位。IT1(TCON0)外部中断外部中断1触发类型选择位。触发类型选择位。IT0(TCON0)外部中断外部中断0触发类型选择位。触发类型选择位。TCON的低的低4位与中断有关,已在第五章位与中断有关,已在第五章“中断系统中断系统”中讨论过。中讨论过。复位后,复位后,TCON的所有位均清的所有位均清0。T0和和T1均是关断的。均是关断的。定时器计数器定时器计数器T0、T1的数据寄存器的数据寄存器由由TH1(地地址址为为8DH)、TL1(地地址址为为8B

12、H)和和TH0(地地址址为为8CH)、TL0(地地址址为为8AH)寄寄存存器器所所组组成成。复复位位后后,所所有有这这四四个个寄寄存器全部清零。存器全部清零。定时器定时器/计数器中断计数器中断中断允许寄存器中断允许寄存器IEEA位位-中断允许总控制位中断允许总控制位ET0位、位、ET1位、位、ET2位位-T0、T1和和T2的中断允许控制位。的中断允许控制位。某位某位=0,则禁止对应定时器,则禁止对应定时器/计数器的中断。计数器的中断。某位某位=1,则允许对应定时器,则允许对应定时器/计数器的中断。计数器的中断。中断矢量中断矢量定时器定时器T0:000BH定时器定时器T1:001BH定时器定时器

13、T2:002BH中断优先级寄存器中断优先级寄存器IP PT0PT0位、位、PT1PT1位、位、PT2PT2位位-T0T0、T1T1和和T2T2中断优先级控制位。中断优先级控制位。某位为某位为0 0,则相应的定时器,则相应的定时器/ /计数器的中断为低优先级;计数器的中断为低优先级;某位为某位为1,则相应的定时器,则相应的定时器/计数器的中断为高优先级。计数器的中断为高优先级。从从图图62中可看到:中可看到:C/T位的电平为位的电平为“0”或或“1”,用来设定是作定时器或计数器。,用来设定是作定时器或计数器。门门控控位位GATE可可用用作作对对INTx引引脚脚上上的的高高电电平平时时间间进进行行

14、计计量量。由由图图62上上可可看看出出,当当GATE0时时,A点点为为高高电电平平,定定时时器器计计数数器器的的启启动动停停止止由由TRx决决定定。TRx1,定定时时器器计计数数器器启启动动;TRx0,定时器计数器停止。定时器计数器停止。当当GATE1时时A点点的的电电位位由由INTx决决定定,因因而而B点点的的电电位位就就由由TRx和和INTx决决定定,即即定定时时器器计计数数器器的的启启动动停停止止由由TRx和和INTx两两个条件决定。个条件决定。计计数数溢溢出出时时,TFx置置位位。如如果果中中断断允允许许,CPU响响应应中中断断并并转转入入中中断服务程序,由内部硬件清断服务程序,由内部

15、硬件清TFx。TFx也可以由程序查询和清零。也可以由程序查询和清零。方式方式1:16位定时器位定时器/计数器计数器当当TMOD中的中的M10、M0l时,选定方式时,选定方式1工作。工作。方方式式1时时,T0、T1的的逻逻辑辑结结构构如如图图63所所示示。这这种种方方式式下下,计计数寄存器由数寄存器由16位组成,位组成,THx高八位和高八位和TLx的低的低8位。位。计计数数时时,TLx溢溢出出后后向向THx进进位位,THx溢溢出出后后将将TFx置置位位,如如果果中中断断允允许许,CPU响响应应中中断断并并转转入入中中断断服服务务程程序序,由由内内部硬件清部硬件清TFx。TFx也可以由程序查询和清

16、零。也可以由程序查询和清零。方式方式2:定时常数自动重装载的:定时常数自动重装载的8位定时器位定时器/计数器计数器当当TMOD中中的的M11、M00时时,选选定定方方式式2工工作作。这这种种方方式式是是将将16位位计计数数寄寄存存器器分分为为两两个个8位位寄寄存存器器,组组成成一一个个可可重重载载的的8位位计计数数寄寄存存器器。方方式式2时时定定时时器器/计计数数器器T0、T1的的逻逻辑辑结结构构如如图图64所示。所示。在在方方式式2中中,TLx作作为为8位位计计数数寄寄存存器器,THx作作为为8位位计计数数常常数数寄存器。寄存器。当当TLx计计数数溢溢出出时时,一一方方面面将将TFx置置位位

17、,并并向向CPU申申请请中中断断;另一方面将另一方面将THx的内容重新装入的内容重新装入TLx中,继续计数。中,继续计数。根根据据对对TMOD寄寄存存器器中中M1和和M0的的设设定定,T0可可选选择择四四种种不不同同的的工工作作方方式式,而而T1只只具具有有三三种种工工作作方方式式(即即方方式式0、方方式式1和方式和方式2)。)。 方式方式0 0:1313位定时器位定时器/ /计数器计数器当当TMOD中中的的M10、M00时时,选选定定方方式式0工工作作。方方式式0时时的的结结构构如如图图62所所示示。这这种种方方式式下下,计计数数寄寄存存器器由由13位位组组成成,即即THx高高八八位位(作作

18、计计数数器器)和和TLx的的低低5位位(32分分频频的的定定标标器器)构构成成。TLx的高的高3位未用。位未用。计计数数时时,TLx的的低低5位位溢溢出出后后向向THx进进位位,THx溢溢出出后后将将TFx置置位,并向位,并向CPU申请中断。申请中断。6.2.2 6.2.2 定时器计数器定时器计数器T0T0、T1 T1 的工作方式的工作方式重新装入不影响重新装入不影响THx的内容。的内容。方式方式2适合于作为串行口波特率发生器使用。适合于作为串行口波特率发生器使用。方式方式3当当TMOD中中的的M1l、M01时时,选选定定方方式式3工工作作。这这种种方方式式是是是是将将T0分分为为一一个个8位

19、位定定时时器器计计数数器器和和一一个个8位位定定时时器器,TL0用用于于8位位定定时时器器计计数数器器,TH0用用于于8位位定定时时器器。方方式式3时时定定时时器器计计数数器器T0、T1逻辑结构分别如逻辑结构分别如图图65、图图66所示。所示。工作方式工作方式3下的定时器下的定时器/计数器计数器T0方方式式3时时,T0的的结结构构见见图图65所所示示。其其工工作作与与方方式式0时时相相同同,只只是是此此时时的的计计数数器器为为8位位计计数数器器TL0,它它占占用用了了T0的的GATE、INT0、启启动动停停止止控控制制位位TR0、T0引引脚脚(P3.4)以以及及计计数数溢溢出出标标志志位位TF

20、0和和T0的中断矢量的中断矢量(地址为地址为000BH)等。等。TH0所所构构成成的的定定时时器器只只能能作作为为定定时时器器用用,因因为为此此时时的的外外部部引引脚脚T0已已为为定定时时器器计计数数器器TL0所所占占用用。这这时时它它占占用用了了T1的的启启动动停停止止控控制制位位TR1、计计数数溢溢出出标标志志位位TF1及及T1中中断断矢矢量量(地地址址为为001BH)。T0方方式式3时时,T1的的结结构构如如图图66所所示示,T1只只可可选选方方式式0、1或或2。由由于于此此时时计计数数溢溢出出标标志志位位TF1及及T1中中断断矢矢量量(地地址址为为001BH)已已被被TH0所所占占用用

21、,所所以以T1仅仅能能作作为为波波特特率率发发生生器器或或其其它它不不用用中中断断的的地地方方。作作串串行行口口波波特特率率发发生生器器时时,T1的的计计数数输输出出直直接接去去串串行行口口,只只需需设设置置好好工工作作方方式式,串串行行口口波波特特率率发发生生器器自自动动开开始始运运行行,如要停止工作,只需向如要停止工作,只需向T1送一个设为工作方式送一个设为工作方式3的控制字即可。的控制字即可。80C52中中的的T2是是一一个个16位位的的、具具有有自自动动重重装装载载和和捕捕获获能能力力的的定定时时器器计计数数器器。在在T2的的内内部部,除除了了两两个个8位位计计数数器器TL2、TH2和

22、和控控制制寄寄存存器器T2CON及及T2MOD之之外外,还还设设置置有有捕捕获获寄寄存存器器RCAP2L(低低字字节节)和和RCAP2H(高高字字节节)。T2的的计计数数脉脉冲冲源源可可以以有有两两个个:一一个个是是内内部部机机器器周周期期,另另一一个个是是由由T2(P10)端端输输入入的的外外部部计计数数脉脉冲冲。T2象象T0、T1一一样样,既既可可用用做做定定时时器器,也也可可用用做做计计数数器器,由由T2CON中中的的C/T位位的的电电平平所所决决定定。T2有有3种种工工作作方方式式 自自动动重重装装载载、俘俘获获和和波波特特率率发发生生器器方方式式,由由T2CON中有关位决定。中有关位

23、决定。输输入入引引脚脚T2(P10)是是外外部部计计数数脉脉冲冲输输入入端端;输输入入引引脚脚T2EX(P11)是外部控制信号输入端。是外部控制信号输入端。6.3 6.3 定时器计数器定时器计数器T2T2 控制寄存器控制寄存器 T2CONT2控制寄存器控制寄存器T2CON是一个逐位定义的特殊功能寄存器,是一个逐位定义的特殊功能寄存器,其字节地址为其字节地址为C8HC8H,位地址为位地址为C8HC8HCFHCFH。其格式如下:其格式如下:位地址位地址 CFHCEHCDHCCHCBHCAHC9HC8H位功能位功能 TF2EXF2RCLKTCLKEXEN2TR2/T2CP/RL2TF2(T2CON7

24、)T2 T2 溢出标志。溢出标志。 定定时时器器T2T2溢溢出出时时置置位位,并并申申请请中中断断。只只能能靠靠软软件件清清除除。但但在在波波特特率率发发生生器器方方式式下下,也也即即RCLK1或或TCLK1时时,定定时时器器溢溢出出不不对对TF2TF2置位。置位。EXF2(T2CON6)T2外部标志。外部标志。当当EXEN21,且且T2EX引脚上出现负跳变而造成捕获或重装载时,引脚上出现负跳变而造成捕获或重装载时,6.3.1 6.3.1 定时器计数器定时器计数器T2T2中的特殊功能寄存器中的特殊功能寄存器EXF2置置位位,申申请请中中断断。这这时时若若已已允允许许T2中中断断,CPU将将响响

25、应应中中断,转向中断服务程序。断,转向中断服务程序。EXF2要靠软件来清除。要靠软件来清除。RCLK(T2CON5)接收时钟标志。接收时钟标志。靠靠软软件件置置位位或或清清除除,用用以以选选择择T2或或T1作作串串行行口口接接收收波波特特率率发发生生器器。RCLK1时时,用用T2溢溢出出脉脉冲冲作作为为串串行行口口的的接接收收时时钟钟;RCLK0时,用时,用T1的溢出脉冲作接收时钟。的溢出脉冲作接收时钟。TCLK(T2CON4)发送时钟标志。发送时钟标志。靠靠软软件件置置位位或或清清除除,用用以以选选择择T2或或T1作作串串行行口口发发送送波波特特率率发发生生器器。TCLKl时时,用用T2溢溢

26、出出脉脉冲冲作作为为串串行行口口的的发发送送时时钟钟;TCLK0时,用时,用T1的溢出脉冲作发送时钟。的溢出脉冲作发送时钟。EXEN2(T2CONT2CON3 3)T2T2外部允许标志。外部允许标志。 靠靠软软件件设设置置或或清清除除,以以允允许许或或禁禁止止用用外外部部信信号号来来触触发发捕捕获获或或重重装装载载操操作作。当当EXEN2EXEN2l l时时,若若T2T2未未用用作作串串行行口口的的波波特特率率发发生生器器,则则在在T2EXT2EX端端出出现现的的信信号号负负跳跳变变时时,将将造造成成T2T2捕捕获获或或重重装装载载,并并置置EXF2EXF2标标志志为为 1 1,请请求求中中断

27、断。EXEN2EXEN20 0时时,T2EXT2EX端端的的外外部部信信号号不起作用。不起作用。TR2(T2CONT2CON2 2)T2T2运行控制位。运行控制位。 靠靠软软件件设设置置或或清清除除,以以决决定定T2T2是是否否运运行行。TR2TR21 1,启启动动T2T2,否则停止。否则停止。 C/T2(T2CONT2CON1 1)T2T2的定时器方式或计数器方式选择位。的定时器方式或计数器方式选择位。 靠靠软软件件设设置置或或清清除除。T2T2有有计计数数和和定定时时两两种种功功能能, ,,由由控控制制位位C/T2C/T2决决定。定。C/T2C/T20 0时时,选选择择定定时时器器工工作作

28、方方式式。TH2TH2和和TL2TL2对对机机器器周周期期进进行行计计数数。每每个个机机器器周周期期使使TL2TL2寄寄存存器器的的值值增增1 1。计计数数脉脉冲冲的的频频率率为为1 11212振振荡荡器频率。器频率。 C CT2T21 1时时,选选择择计计数数器器工工作作方方式式,下下降降沿沿触触发发。计计数数脉脉冲冲自自T2T2(P1P10 0)引引脚脚输输入入,TH2TH2和和TL2TL2作作外外部部信信号号脉脉冲冲计计数数器器用用,每每当当外外部部脉脉冲冲负负跳跳变变时时,计计数数器器值值增增1 1。其其工工作作情情况况和和时时序序关关系系与与定定时时器器计计数数器器T0T0和和T1T

29、1的的完完全全一一样样,对对外外部部计计数数脉脉冲冲的的要要求求也也相相同同。在在每每个个机机器器周周期期的的S5P2期期间间,CPU采采样样引引脚脚的的输输入入电电平平。若若前前一一机机器器周周期期采采样样值值为为1,下下一一机机器器周周期期采采样样值值为为0,则则计计数数器器增增1,此此后后的的机机器器周周期期S3P1期期间间,新新的的计计数数值值装装入入计计数数器器。所所以以检检测测一一个个1到到0的的跳跳变变需需要要两两个个机机器器周周期期,故故外外部部脉脉冲冲频频率率不不超超过过振振荡荡器器频频率率的的1 12424。CPRL2(T2CON0)捕获重装载标志。捕获重装载标志。用用软软

30、件件设设置置或或清清除除。CPCPRL2RL2l l选选择择捕捕获获功功能能,这这时时若若EXEN2EXEN21 1,且且T2EXT2EX端端的的信信号号负负跳跳变变时时,发发生生捕捕获获操操作作。CPCPRL2RL20 0,选选择择重重装装载载功功能能,这这时时若若T2T2溢溢出出或或在在EXEN2EXEN21 1条条件件下下 T2EXT2EX端端信信号号负负跳跳变变,都都会会造造成成自自动动重重装装载载操操作作。当当RCLKRCLKl l或或TCLKTCLKl l时时,CPRL2RL2控控制制位位不不起起作作用用,T2 T2 被被强强制制工工作作于于重重装装载载方方式式。重重装装载载发发生

31、生于于T2T2溢出时,常用来作波特率发生器。溢出时,常用来作波特率发生器。 T2CONT2CON中中的的各各位位都都是是可可位位寻寻址址的的,因因此此所所有有标标志志或或控控制制位位都可以靠软件来设置或清除。都可以靠软件来设置或清除。T2T2控制寄存器控制寄存器T2CON的复位值的复位值=00000000B方式控制寄存器方式控制寄存器T2MOD方式控制寄存器方式控制寄存器T2MOD是是80C525458芯片新增添的、芯片新增添的、T2的方式控制寄存器,字节地址为的方式控制寄存器,字节地址为C9H。其格式如下:其格式如下:位地址位地址 D7D6D5D4D3D2D1D0位功能位功能 -T2OEDC

32、EN该寄存器定义了该寄存器定义了2位,它们的含义是:位,它们的含义是:T2OE(T2MODl)T2输出允许位。输出允许位。当当T2OE1时时,允允许许时时钟钟输输出出至至T2(P10)引引脚脚。这这一位仅对一位仅对80C5480C58有定义。有定义。DCEN(T2MOD0)向下计数允许位。向下计数允许位。当当DCENl时,允许时,允许T2向下向下(减减)计数,计数,当当DCEN0时,时,T2自动向上自动向上(增增)计数。计数。方式控制寄存器方式控制寄存器T2MOD复位值复位值00B数据寄存器数据寄存器TH2、TL2T2有一个有一个16位的数据寄存器,是由高位的数据寄存器,是由高8位寄存器位寄存

33、器TH2和低和低8位位寄存器寄存器TL2所组成。它们都只能字节寻址,相应的字节地址为所组成。它们都只能字节寻址,相应的字节地址为CDH和和CCH。这两个寄存器都是读写寄存器。这两个寄存器都是读写寄存器。复位后,所有这两个寄存器全部清零。复位后,所有这两个寄存器全部清零。 捕获寄存器捕获寄存器RCAP2HRCAP2H、RCAP2LRCAP2LT2中的捕获寄存器是一个中的捕获寄存器是一个16位的数据寄存器,由高位的数据寄存器,由高8位寄存器位寄存器RCAP2H和低和低8位寄存器位寄存器RCAP2L所组成。它们也都只能字节寻址,所组成。它们也都只能字节寻址,相应的字节地址为相应的字节地址为CBH和和

34、CAH。捕获寄存器捕获寄存器RCAP2H和和RCAP2L,用于捕获计数器用于捕获计数器TL2、TH2的计数状态,或用来预置计数初值的。的计数状态,或用来预置计数初值的。TH2、TL2和和RCAP2H、RCAP2L之间接有双向缓冲器(三态门)。之间接有双向缓冲器(三态门)。复位后,所有这两个寄存器全部清零。复位后,所有这两个寄存器全部清零。T2的工作方式用控制位的工作方式用控制位CPRL2(T2CON0)和和RCLKTCLK来选择。来选择。T2可能有三种工作方式(可能有三种工作方式(表表62):):捕获方式、自动重转载方式和波特率发生器方式。捕获方式、自动重转载方式和波特率发生器方式。捕获方式捕

35、获方式捕捕获获方方式式是是指指:在在一一定定条条件件下下,自自动动将将计计数数器器TH2和和TL2的的数数据据读读入入捕捕获获寄寄存存器器RCAP2H和和RCAP2L,亦亦即即TH2和和TL2内内容容的的捕捕获获是是通通过过捕捕获获寄寄存存器器RCAP2H和和RCAP2L来来实实现现的的。其其工工作原理可参见作原理可参见图图67。6.3.2 6.3.2 定时器计数器定时器计数器T2T2的工作方式的工作方式当当CPRL2l时时,选选择择捕捕获获方方式式。捕捕获获操操作作发发生生于于下下述述两两种种情情况下:况下:定定时时器器2的的寄寄存存器器TH2和和TL2溢溢出出时时,打打开开重重装装载载三三

36、态态缓缓冲冲器器,把把TH2和和TL2的的内内容容自自动动读读入入到到捕捕获获寄寄存存器器RCAP2H和和RCAP2L中。同时,溢出标志中。同时,溢出标志TF2置置1,申请中断。,申请中断。当当EXEN2l且且T2EX(P11)端端的的信信号号有有负负跳跳变变时时,将将发生捕获操作。同时标志发生捕获操作。同时标志EXF2置置1,申请中断。,申请中断。若若T2的的中中断断是是被被允允许许的的,则则无无论论发发生生TF2l还还是是EXF2l,CPU都都会会响响应应中中断断,此此中中断断向向量量的的地地址址为为002BH。响响应应中中断断后后,应应用用软软件件清清除除中中断断申申请请。TF2和和EX

37、F2都都是是直直接接可可寻寻址址位位,可可采采用用CLRTF2和和CLREXF2指令实现清除中断申请的功能。指令实现清除中断申请的功能。自动重装载方式自动重装载方式自自动动重重装装载载方方式式是是指指:在在一一定定条条件件下下,自自动动地地将将捕捕获获寄寄存存器器RCAP2H和和RCAP2L的数据装入计数器的数据装入计数器TH2和和TL2中。中。一一般般说说来来捕捕获获寄寄存存器器RCAP2H和和RCAP2L在在这这里里起起预预置置计数初值的功能。对计数初值的功能。对8XC52,其工作原理可参见其工作原理可参见图图68。当当CPRL20时,选择自动重装载方式。时,选择自动重装载方式。重装载操作

38、发生于下述两种情况下:重装载操作发生于下述两种情况下:T2的的寄寄存存器器TH2和和TL2溢溢出出时时,打打开开重重装装载载三三态态缓缓冲冲器器,把把捕捕获获寄寄存存器器RCAP2H和和RCAP2L的的内内容容自自动动装装载载到到TH2和和TL2中。同时,溢出标志中。同时,溢出标志TF2置置1,申请中断。,申请中断。当当EXEN21且且T2EX(P11)端端的的信信号号有有负负跳跳变变时时,将将发发生重装载操作。同时标志生重装载操作。同时标志EXF2置置1,申请中断。,申请中断。若若T2的的中中断断是是被被允允许许的的,则则无无论论发发生生TF21还还是是EXF21,CPU都都会会响响应应中中

39、断断,此此中中断断向向量量的的地地址址为为002BH。响响应应中中断断后后,应应用用软软件件撤撤除除中中断断申申请请。TF2和和EXF2都都是是直直接接可可寻寻址址位位,可可采用采用CLRTF2和和CLREXF2指令实现撤除中断申请的功能。指令实现撤除中断申请的功能。波特率发生器方式波特率发生器方式当当T2CON中中RCLK十十TCLK1时时,T2工工作作于于波波特特率率发发生生器器方方式式,即即其其溢溢出出脉脉冲冲用用做做串串行行口口的的时时钟钟。T2的的波波特特率率发发生生器器方方式式下下的的结结构构图图示示于于图图69中中。在在T2CON中中,RCLK选选择择串串行行通通信信接接收收波波

40、特特率率发发生生器器,TCLK选选择择发发送送波波特特率率发发生生器器,因因而而,发发送送和和接接收收的的波波特特率率可以不同。可以不同。此时,此时,T2的输入时钟可由内部时钟决定,也可由外部时钟决定。的输入时钟可由内部时钟决定,也可由外部时钟决定。若若CT20,选选用用内内部部时时钟钟,对对机机器器周周期期计计数数,计计数数脉脉冲冲的的频频率率为为112振荡器频率振荡器频率.若若C/T2C/T21,选选用用外外部部时时钟钟,该该时时钟钟由由T2(P10)端端输输入入,每每当当外外部部脉脉冲冲负负跳跳变变时时,计计数数器器值值增增l。外外部部脉脉冲冲频频率率不不超超过过振振荡荡器器频频率率的的

41、l24。由由于于脉脉冲冲溢溢出出时时,RCAP2H和和RCAP2L的的内内容容会会自自动动装装载载到到TH2和和TL2中中,故故波波特特率率的的值值还还决决定定于于RCAP2H和和RCAP2L装装载初值。载初值。RCLKTCLK还还用用于于选选择择T1还还是是T2作作串串行行通通信信的的波波特特率率发发生生器器。由由图图69可可看看出出,这这两两位位的的值值用用来来控控制制两两个个电电子子开开关关的的位位置置。值值为为0时时,选选用用T1做做波波特特率率发发生生器器;值值为为1时时,选选用用T2做做波波特率发生器。特率发生器。当当T2用用做做波波特特率率发发生生器器时时,TH2的的溢溢出出不不

42、使使TF2置置位位,不不产产生生中断。因而,当中断。因而,当T2用做波特率发生器时,没有必要禁止中断。用做波特率发生器时,没有必要禁止中断。当当T2用用做做波波特特率率发发生生器器时时,若若EXEN2置置1,则则T2EX端端的的信信号号产产生生负负跳跳变变时时,EXF2将将置置1,但但不不会会发发生生重重装装载载或或捕捕获获操操作作。这这时时,T2EX可以作为一个附加的外部中断源。可以作为一个附加的外部中断源。在在波波特特率率发发生生器器工工作作方方式式下下,在在 T2T2计计数数过过程程中中(即即 TR2TR2 1之之后)后),不能再读写不能再读写 TH2TH2和和TL2TL2的内容。的内容

43、。如如果果读读,则则读读出出的的结结果果不不会会精精确确(因因为为每每个个状状态态加加1 1);如如果果写写,则则会会影影响响T2T2的的溢溢出出而而使使波波特特率率不不稳稳定定。在在T2T2计计数数过过程程中中,可可以以读读出出但但不不能能改改写写RCAP2HRCAP2H和和RCAP2LRCAP2L的的内内容容。需需要要访访问问RCAP2HRCAP2H和和RCAP2LRCAP2L,应事先关闭定时器工作。应事先关闭定时器工作。监监视视定定时时器器T3有有时时俗俗称称看看门门狗狗(watchdog),它它的的作作用用是是强强迫单片微机进入复位状态,使之从硬件或软件故障中解脱出来。迫单片微机进入复

44、位状态,使之从硬件或软件故障中解脱出来。在在飞飞利利浦浦80C552中中,监监视视定定时时器器T3由由一一个个11位位的的分分频频器器和和8位定时器位定时器T3组成,如组成,如图图6一一10所示。所示。预预分分频频器器输输入入为为晶晶振振1/12的的信信号号,晶晶振振为为12MHz时时,输输入入为为1MHz,而而8位定时器位定时器T3每隔时间每隔时间t加加1:t122048/fosc当晶振为当晶振为12MHz时,时,t为为2ms。若若8位位定定时时器器溢溢出出,则则产产生生一一个个尖尖脉脉冲冲,它它将将复复位位8C552,同时在同时在RST引脚上也将产生引脚上也将产生1个正的复位尖脉冲。个正的

45、复位尖脉冲。6.4 6.4 监视定时器监视定时器( (看门狗看门狗) )T3 T3 T3由由外外部部引引脚脚/EW和和电电源源控控制制寄寄存存器器中中的的PCON4(WLE)和和PCONl(PD)控制。控制。EW看门狗定时器允许,低电平有效。看门狗定时器允许,低电平有效。EW0时时,允允许许看看门门狗狗定定时时器器,禁禁止止掉掉电电方方式式;EW1时时禁止看门狗定时器,允许掉电方式。禁止看门狗定时器,允许掉电方式。WLE(PCON4)看门狗定时器允许重装标志。看门狗定时器允许重装标志。若若WLE置置位位,定定时时器器T3只只能能被被软软件件装装入入,装装入入后后WLE自自动动清除。清除。定定时

46、时器器T3的的重重装装和和溢溢出出,产产生生复复位位的的时时间间间间隔隔,由由装装入入T3的的值决定,对于值决定,对于8C552,其监视间隔可编程为其监视间隔可编程为2ms至至2255ms。定定时时器器T3的的工工作作过过程程:在在T3溢溢出出时时,复复位位8XC552,并并产产生生复复位位脉脉冲冲输输出出至至复复位位引引脚脚RST。为为防防止止系系统统复复位位,必必须须在在定定时时器器T3溢溢出出前前,通通过过软软件件对对其其进进行行重重装装。如如果果发发生生软软件件或或硬硬件件故故障,将使软件对定时器障,将使软件对定时器T3重装失败,重装失败,从从而而T3溢溢出出导导致致复复位位信信号号的

47、的产产生生。用用这这样样的的方方法法可可以以在在软软件件失控时,恢复程序的正常运行。失控时,恢复程序的正常运行。首首先先要要确确定定系系统统能能在在不不正正常常状状态态下下维维持持多多久久,这这段段时时间间就就设设定定为为监监视视定定时时器器的的最最大大间间隔隔时时间间。因因为为T3是是加加1计计数数器器,T3中中装装入入0,则则监监视视时时间间间间隔隔最最长长,装装入入值值为为FFH时时,监监视视时时间间隔最短。间间隔最短。在在软软件件调调试试时时,可可以以把把EW接接高高电电平平以以禁禁止止看看门门狗狗工工作作,软软件件调调试试结结束束后后再再把把EW接接至至低低电电平平,通通过过人人为为

48、制制造造故故障障,观观察看门狗工作是否正常。察看门狗工作是否正常。下面一段程序显示了如何控制看门狗工作的。下面一段程序显示了如何控制看门狗工作的。例:例:watchdog使用的一段程序如下:使用的一段程序如下:T3EQU 0FFH;定时器定时器T3的地址的地址PCONEQU 87H;电源控制寄存器电源控制寄存器PCON的地址的地址WATCH_INTVEQU156;看门狗的时间间隔看门狗的时间间隔(2X100ms)插在用户程序中对看门狗需要重新装入的地方:插在用户程序中对看门狗需要重新装入的地方:LCALLWATCHDOG看门狗的服务子程序:看门狗的服务子程序:WATCHDOG:ORLPCON,

49、10H ;允许定时器允许定时器T3重装重装MOVT3,WATCHINTV;装载定时器装载定时器T3RET定时器计数器溢出率的计算定时器计数器溢出率的计算定定时时器器计计数数器器运运行行前前,在在其其中中预预先先置置入入的的常常数数,称称为为定定时时常常数数或或计计数数常常数数(TC)。由由于于计计数数器器是是加加1(向向上上)计计数数的,故而预先置入的常数均应为补码。的,故而预先置入的常数均应为补码。其中:其中:t定时时间。定时时间。Tc机器周期。机器周期。6.5 6.5 定时器定时器/ /计数器的应用编程计数器的应用编程6.5.1 6.5.1 定时器的应用定时器的应用Fosc晶体振荡器频率。

50、晶体振荡器频率。L计数器的长度。计数器的长度。对于对于T0及及T1:方式方式0L=132138192方式方式1L1621665536方式方式2L828256对于对于T2:L1621665536TC定时器计数器初值,即定时常数或计数常数。定时器计数器初值,即定时常数或计数常数。定时时间的倒数即为溢出率,即:定时时间的倒数即为溢出率,即:根根据据要要求求的的定定时时时时间间t、设设定定的的定定时时器器工工作作方方式式(确确定定L)及及晶晶体体振振荡荡频频率率fosc,可可计计算算出出TC值值(十十进进制制数数),再再将将其其转转换换成成二二进进制制数数TCB,然后再分别送入然后再分别送入THi、T

51、Li(对于对于T0,i0;对于对于T1,il)。)。对于定时器计数器对于定时器计数器T0、T1:方式方式0时:时:TCB=TCHTCL,TCH高高8位,位,TCL低低5位位MOVTHi,TCH;送高送高8位位MOVTLi,TCL ;送送低低5位位(高高3位为位为0)方式方式1时:时:TCB=TCHTCL,TCH高高8位,位,TCL低低8位位MOV THi,TCH;送高送高8位位MOV TLi,TCL ;送送低低8位。位。方式方式2时:时:TCB8位重装载位重装载MOVTHi,TCB;送高送高8位位MOVTLi,TCB;送送低低8位。位。对于定时器计数器对于定时器计数器T2:与与T0、T1的方式

52、的方式1相同相同例例1要求在要求在P10引脚上产生周期为引脚上产生周期为2ms的方波输出。的方波输出。已已知知晶晶体体振振荡荡器器的的频频率率为为fosc=6MHz。可可使使用用T0作作定定时时器器,设设为为方方式式0,设设定定lms的的定定时时,每每隔隔1ms使使P1.0引引脚脚上上的的电电平变反。平变反。(1)解:定时常数计算解:定时常数计算振振荡荡器器的的频频率率fosc6MHz,机机器器周周期期为为2s,方方式式0计计数数器器长度长度L13(2138192),定时时间定时时间t1ms0.001s定时常数:定时常数:TC为为76921E0CH,二进制数二进制数TCB00011110000

53、01100B,取取低低13位位,其其中中高高8位位TCHF0H,低低5位位为为TCL 0CH.计计 数数 长长 度度 为为 1E0CH=7692, 定定 时时 为为 (81927692)2s=0.001STMOD的设定(即控制字)的设定(即控制字)(2)编编程程ORG 0000HAJMP MAINORG 000BH;T0中断矢量中断矢量AJMPINQPORG 0030HMAIN:MOVTMOD,00H;写写控控制制字字,设设T0为为定定时时器器 ;方式;方式0 0 MOV TH0,0F0H ;写定时常数写定时常数( (定时定时1 1ms)ms) MOV TL0,0CHSETBTR0 ;启动启动

54、 T0 SETBET0 ;允许允许T0中断中断 SETBEA ;开放开放CPU中断中断 AJMP$;定时中断等待定时中断等待 ORG XXXXH ;T0T0中断服务程序中断服务程序 INQP:MOVTH0,0F0H ;重写定时常数重写定时常数 MOV TL0,0CHCPLP10 ;P10变反输出变反输出 RETI ;中断返回中断返回例例2 2使用使用T1T1的方式的方式1 1,设定,设定1 1msms的定时。同样,在的定时。同样,在P1P10 0引脚上引脚上产生周期为产生周期为2ms的方波输出。晶体振荡器的频率为的方波输出。晶体振荡器的频率为fosc6MHz。解:解:定时常数计算定时常数计算振

55、振荡荡器器的的频频率率fosc6MHz6106Hz,方方式式1计计数数器器长长度度L16,2L21665536定时时间定时时间t1ms0.001s定时常数定时常数定定时时常常数数TC转转换换成成二二进进制制TCB1111111000001100BFE0CH所以所以TCHFEH(高高8位),位),TCL0CH(低低8位)位)TMOD的设定(即控制字)的设定(即控制字)编编程程ORG0000HAJMPMAINORG 000BH;T0中断矢量地址中断矢量地址AJMPINQPORG 100H;主程序入口主程序入口MAIN:MOVTMOD,10H;写写控控制制字字,T1为为定定时时器器、;方式;方式1M

56、OV TH1,0FEH;写定时常数写定时常数,定时,定时1msMOV TL1,0CHSETBTR1;启动启动T1SETBET1;允许允许T1中断中断SETBEA;开放开放CPU中断中断AJMPORG 00XXH;中断服务程序中断服务程序INQP:MOVTH1,0FEH;重写定时常数重写定时常数MOVTL1,0CHCPLP10;P10变反输出变反输出RETI;中断返回中断返回例例3欲欲用用80C51产产生生两两个个方方波波,一一个个周周期期为为200s,另另一一个个周周期期为为400s,该该80C51同同时时使使用用串串行行口口,用用定定时时器器计计数数器器作作为为波特率发生器。波特率发生器。这

57、这时时T0采采用用方方式式3工工作作,其其中中,TL0产产生生200s定定时时,由由P10输输出出方方波波;TH0产产生生400s定定时时,由由Pl1输输出出方方波波;T1设设置置为为方方式式2作波特率发生器用。作波特率发生器用。focs9216MHz。定时常数计算定时常数计算TL0定时常数为定时常数为TCL0:tl0100s单位单位s,为十进数制数值。十六进制数值为为十进数制数值。十六进制数值为TCBL0B3H。TH0定时常数为定时常数为TCH0:定时时间为定时时间为th0200s单单位位s,为为十十进进制制数数值值。十十六六进进制制的的值值为为TCBH066H。TH1的波特率(详细计算见串

58、行口部分)的波特率(详细计算见串行口部分)设波特率为设波特率为2400,则定时常数为,则定时常数为TC2F6H编编程程ORG 0000HAJMP MAINORG 000BH ;TL0的中断入口的中断入口AJMPITL0ORG 00lBH;TH0的中断入口的中断入口AJMPITH0ORG0100HMAIN:MOVSP,60H;设栈指针设栈指针MOV TMOD,23H;设设T0为方式为方式3,TI为为2MOVTL0,0B3H;设设TL0初值初值(100s定时定时)MOV TH0,66H;设设TH0初值初值(200s定时定时)MOV TL1,0F6H ;设设TL1初初值值(波波特特率率为为2400)

59、MOVTH1,0F6H;设设TH1初值初值SETBTR0;启动启动TL0SETBTR1;启动启动TH0SETBET0;允许允许TL0中断中断SETBET1;允许允许TH0中断中断SETBEA;CPU中断开放中断开放AJMP ORG 0200HITL0:MOVTL0,0B3H;重装定时常数重装定时常数CPL P10;输出方波输出方波(200s)RETIITH0:MOVTH0,66H;重装定时常数重装定时常数CPLP11;输出方波输出方波(400s)RETI当当TMOD寄寄存存器器中中C/T位位设设置置为为“1”时时,定定时时器器/计计数数器器作作为为计计数数器器使使用用,可可对对来来自自单单片片

60、微微机机引引脚脚T0或或T1上上的的负负跳跳变变脉脉冲冲进进行行计数,计数溢出时可申请中断,也可查询溢出标志位计数,计数溢出时可申请中断,也可查询溢出标志位TFx。例例4假假如如一一个个用用户户系系统统已已使使用用了了二二个个外外部部中中断断源源,即即INT0和和,INT1,用用户户系系统统要要求求从从P1.0引引脚脚上上输输出出一一个个5KHz的的方方波波,并并要要求求采采用用定定时时器器/计计数数器器作作为为串串行行口口的的波波特特率率发发生生器器,另另外外还还需需要要再再增增加一个外部中断源。加一个外部中断源。为为了了不不增增加加其其他他硬硬件件开开销销,可可以以把把T0设设置置为为方方

61、式式3,这这时时可可把把单单片片微微机机的的引引脚脚T0作作为为外外部部中中断断源源,TL0设设置置为为计计数数器器,但但计计数数器器的的定定时时常常数数设设为为FFH,这这样样当当T0引引脚脚上上出出现现从从“1”至至“0”的的负负跳跳变变时,时,TL0计数溢出,申请中断,相当于一个边沿触发的外部中断源。计数溢出,申请中断,相当于一个边沿触发的外部中断源。6.5.2 6.5.2 计数器的应用计数器的应用在在T0方方式式3下下,TH0只只能能做做8位位定定时时器器,用用来来产产生生5KHz方方波波的的定定时时。TH0只只能能做做8位位定定时时器器,用用来来产产生生5KHz方方波波的的定定时时。

62、当当T0设设置置为为方方式式3之之后后,T1就就作作为为串串行行口口的的波波特特率率发发生生器器,设为方式设为方式2。由由P1.0引脚上输出引脚上输出5KH频率的方波,而方波周期为频率的方波,而方波周期为200s,则要求定时时间为则要求定时时间为100s,若采用若采用12MHz的晶体振荡器,则的晶体振荡器,则机器周期为机器周期为1s。计算时间常数:计算时间常数:(28TC)1s100sTC256100156编程:编程:ORG 0000HSJMP MAINORG 000BHAJMP TL0INT;TL0中断入口中断入口ORG 001BHAJMP TH0INT;TH0中断入口中断入口ORG 003

63、0HMAIN:MOV TMOD,#27H;设设T0为为方方式式3,TL0为为计计数数;器方式,;器方式,TH0为定时器方式,为定时器方式,T1作波特率发生器,方式作波特率发生器,方式2。MOV TH0,#156;TH0定时常数。定时常数。MOV TL0,#0FFH;TL0计数常数计数常数MOV TL1,#BAUD;BAUD根据波特率算出根据波特率算出;的时间常数。;的时间常数。MOV TH1,#BAUD;BAUDMOV TCON,#55H;置置TR0和和TR1为为“1”,启启;动;动TL0和和TH0。SETB ET0;允许允许TR0中断中断SETB ET1;允许允许TR1中断中断SETB EA

64、;允许允许CPU中断中断SJMP $;中断等待。中断等待。ORG 0100HTL0INT:MOV TL0,#0FFH;重置计数长度重置计数长度(中断处理中断处理)RETITH0INT:MOV TH0,#156;重置定时常数重置定时常数CPLP1.0;P1.0引脚输出方波引脚输出方波RETI门控位门控位GATE可用作对可用作对INTx引脚上的高电平持续时间进引脚上的高电平持续时间进行计量。当行计量。当GATE位设为位设为“1”,并设定时器,并设定时器/计数器启动位计数器启动位TRx为为“1”,这时定时器,这时定时器/计数器定时完全取决于计数器定时完全取决于INTx引脚,引脚,仅当仅当INTx引脚

65、电平为引脚电平为“1”时,定时器才工作,换另一角度看,时,定时器才工作,换另一角度看,定时器实际记录的时间就是相应定时器实际记录的时间就是相应INTx引脚上高电平的持续时间。引脚上高电平的持续时间。通过反相器,则可测得相应通过反相器,则可测得相应INTx引脚上低电平的持续时间。二引脚上低电平的持续时间。二个时间的和即为个时间的和即为INTx引脚上输入波形的周期,其倒数即为引脚上输入波形的周期,其倒数即为INTx引脚上输入波形的频率。还可算出占空比等参数。引脚上输入波形的频率。还可算出占空比等参数。例例5利用定时器计数器测定图利用定时器计数器测定图611(下页下页)所示波形的一个所示波形的一个周

66、期长度。周期长度。利利用用门门控控信信号号GATE启启动动定定时时器器的的方方法法。设设如如图图示示,T0为为定定时时器器,为为高高电电平平时时,启启动动定定时时器器;T1为为计计数数器器,T1的的电电平平由由1到到0,计数器计数。,计数器计数。6.5.3 6.5.3 门控位门控位GATEGATE的应用的应用P3.3(INT1)TR1置1T1开始计时TR1清零图图611 611 波形脉冲宽度测试原理波形脉冲宽度测试原理编程:编程:查询法查询法ORG 0000HSTART:MOV TMOD,#90H;设设置置T1为为定定时时器器,;方式;方式1,GATA位置位置“1”MOV TL1,#00H;置

67、为最大定时值置为最大定时值MOV TH1,#00HLP1:JBP3.3,LP1;P3.3为高电平,等待为高电平,等待SETB TR1;当当P3.3为低电平时,置为低电平时,置TR1位为位为“1”LP2: JNBP3.3,LP2;当当P3.3为低电平时,再等待为低电平时,再等待LP3: JBP3.3,LP3;当当P3.3为高电平时,为高电平时,T1开始定时计数开始定时计数CLRTR1;当当P3.3为为低低电电平平时时,高高电电平平脉脉宽宽定定;时计数结束;时计数结束SJMP $当当fosc12MHz时时,机机器器周周期期为为1s,本本方方案案最最大大被被测测脉脉冲冲宽宽度度为为65536s(65

68、.536ms)。由由于于靠靠软软件件进进行行启启动动和和停停止止计计数数,存存在在一定的测量误差。一定的测量误差。若若被被测测波波形形除除了了接接至至P3.3,另另外外同同时时通通过过一一个个反反相相器器接接至至P3.2(INT0),则则通通过过编编程程同同时时可可以以测测得得波波形形的的高高电电平平宽宽度度和和低低电电平平宽度。宽度。中断法中断法对对于于脉脉冲冲宽宽度度大大于于65.536ms的的脉脉冲冲,可可以以采采用用对对定定时时溢溢出出次次数数进进行行计计数数的的方方法法。这这样样,脉脉宽宽为为(定定时时溢溢出出时时间间溢溢出出次次数数)定定时时时时间间。利利用用定定时时器器/计计数数

69、器器来来测测定定脉脉冲冲周周期期的的方方法法参参见见图图6-12。(1)设设定定晶晶体体振振荡荡器器为为6MHz,机机器器周周期期Tc为为2s,定定时时器器/计计数器数器T0为方式为方式1,定时溢出时间为,定时溢出时间为100ms,则则T0定时时间常数为:(定时时间常数为:(TH0)3CH,(,(TL0)B0H因因为为外外部部脉脉冲冲同同时时接接至至T1的的输输入入引引脚脚T1,所所以以T1脚脚上上对对下下降降沿沿计计数数二二次次,即即为为外外部部脉脉冲冲的的一一个个周周期期时时间间。现现设设T1为为计计数数器器。计计数数值值为为2。当当计计数数值值为为1时时,启启动动定定时时器器;当当计计数

70、数值值为为2时时,中中断断计数器计数器T1,并停止定时器并停止定时器T0的定时;的定时;T1中断优先级设为高于定时器中断优先级设为高于定时器T0。计数初值为计数初值为FFFEH:(:(TH1)FFH,(,(TL0)FEH。(2)编编程程ORG 0000HSJMP MAINORG 000BH ;定时器定时器T0中断入口中断入口AJMP TIMEOORG 00IBH ;定时器定时器T1中断入口中断入口AJMPTIMEIORG 0030HMAIN:MOVR0,0;清清除除T0定定时时中中断断次次数数计计数数器器MOVTMOD, 59H; 设设T0为定时器、方式为定时器、方式1,;门控位;门控位GAT

71、E1,设设T1为计数器、方式为计数器、方式1MOVTH0,3CH;T0定时器初值定时器初值MOV TLO,0B0HMOV TH1,0FFH;T1计数器初值计数器初值MOV TL1,0FEHSETBTR0;启动启动T0定时器定时器SETBTR1;启动启动T1计数器计数器MOV IP,08H;T1中断优先级高于中断优先级高于T0SETBET1 ;允许允许T1中断中断SETBET0;允许允许T0中断中断SETBEA ;CPU开中断开中断SETB20H;设设20H为为T1计数中断标志计数中断标志LOOP:SETBF0;设用户标志设用户标志F0为为T0定时中断标志定时中断标志JBF0,$;T0定时未溢出

72、,等待定时未溢出,等待JB20H,LOOP ;判判T1计计数数溢溢出出,若若未未溢溢出出;则循环,否则结束;则循环,否则结束SJMP $ORG 0100HTIMEO:MOVTL0,0B0H;重置重置T0定时器初值定时器初值MOV TH0,3CHINC R0 ;T0定时溢出计数器加定时溢出计数器加1CPLF0;清除清除T0定时中断标志定时中断标志RETIORG 0200HTIMEI:CLRF0;清除清除T0定时中断标志定时中断标志CLR20H;清除清除T1计数中断标志计数中断标志CLRET0;禁止禁止T0、T1中断中断CLRET1CLREA;关中断关中断RETI可可测测的的最最大大周周期期长长度

73、度为为256100ms25.6s。若若周周期期大大于于25.6S,则不用则不用R0作计数器,改用作计数器,改用16位计数器即可。位计数器即可。6.5.4 6.5.4 运行中读定时器运行中读定时器/ /计数器计数器80C51可可以以随随时时读读写写计计数数寄寄存存器器TLx和和THx(x为为0或或1),比比如如用用于于实实时时显显示示计计数数值值等等。但但在在读读取取时时应应注注意意由由于于分分时时读读取取TLx和和THx而而带带来来的的特特殊殊性性。假假如如我我们们先先读读TLx,再再取取读读THx,由由于于这这时时定定时时器器/计计数数器器还还在在运运行行,如如果果在在读读THx之之前前刚刚

74、好好发发生生TLx溢溢出出向向THx进进位位的的情情况况,这这样样读读得得的的TLx值值就就不不正确了,同样,先读正确了,同样,先读THx后读后读TLx时也可能产生这种错误。时也可能产生这种错误。一一种种解解决决办办法法是是:先先读读THx,后后读读TLx,再再重重读读THx,若若二二次次读读得得的的THx值值是是一一样样的的,则则可可以以确确定定读读入入的的数数据据是是正正确确的;若二次读得的的;若二次读得的THx值不一致,则必须重读。值不一致,则必须重读。例例.飞读飞读RDTIME:MOV A,TH0;读读TH0MOV R0,TL0;读读TL0并存入并存入R0CJNE A,TH0,RDTI

75、ME ;再读再读TH0,与上次与上次;读入的;读入的TH0比较,若不等,重读比较,若不等,重读MOV R1,A;存存TH0在在R1中中RETEND图图61定时器定时器/计数器计数器T0、T1的内部结构框图的内部结构框图图图62方式方式0时,定时器时,定时器/计数器计数器T0、T1的逻辑结构图的逻辑结构图图图63方式方式1时,定时器时,定时器/计数器计数器T0、T1的逻辑结构图的逻辑结构图图图6464 方式方式2时定时器时定时器/计数器计数器T0、T1的结构简图的结构简图图图65定时器定时器/计数器计数器T0方式方式3时的逻辑结构图时的逻辑结构图图图66 66 定时器定时器/ /计数器计数器T0

76、T0方式方式3 3时,时,T1T1的逻辑结构图的逻辑结构图图图67 定时器定时器/计数器计数器T2的捕获方式的捕获方式图图6868定时器定时器/ /计数器计数器T2T2的自动重装载方式的自动重装载方式图图6969 定时器定时器/ /计数器计数器T2T2的波特率发生器方式的波特率发生器方式图图610610监视定时器监视定时器T3T3图图612 612 利用定时器利用定时器/ /计数器测脉冲周期计数器测脉冲周期表表61定时器定时器/计数器的工作方式计数器的工作方式M1M0 工作方式工作方式 计数器配置计数器配置00方式方式013位计数器位计数器01方式方式116位计数器位计数器10方式方式2自动重装载的自动重装载的8位计数器位计数器11方式方式3T0分为两个分为两个8位计数器,位计数器,T1停止停止计数计数表表62定时器定时器/计数器计数器T2的工作方式的工作方式RCLKTCLKCP/RL2TR2工工作作方方式式001自动重装载方式自动重装载方式011捕获方式捕获方式11波特率发生器方式波特率发生器方式0关闭关闭

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号