定时器计数器应用

上传人:公**** 文档编号:587448083 上传时间:2024-09-06 格式:PPT 页数:30 大小:440.54KB
返回 下载 相关 举报
定时器计数器应用_第1页
第1页 / 共30页
定时器计数器应用_第2页
第2页 / 共30页
定时器计数器应用_第3页
第3页 / 共30页
定时器计数器应用_第4页
第4页 / 共30页
定时器计数器应用_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《定时器计数器应用》由会员分享,可在线阅读,更多相关《定时器计数器应用(30页珍藏版)》请在金锄头文库上搜索。

1、第第6章章 定时器定时器/计数器应计数器应用用定时器定时器定时器定时器/ /计数计数计数计数器的控制器的控制器的控制器的控制定时器定时器/计数器计数器的工作方式的工作方式知识点:知识点:定时器定时器定时器定时器/ /计数计数计数计数器的初值的设器的初值的设器的初值的设器的初值的设置置置置定时器工作原定时器工作原理理 在实际工作、生活中,许多控制离不开时间。尤其是在实际工作、生活中,许多控制离不开时间。尤其是定时控制更是以时间为核心,如家用的洗衣机中的洗涤、定时控制更是以时间为核心,如家用的洗衣机中的洗涤、脱水都是定时的。脱水都是定时的。 单片机又是如何完成定时的呢?单片机又是如何完成定时的呢?

2、 通过前面的学习,通过前面的学习,当晶振频率一定时,单片机当晶振频率一定时,单片机的机器周期相应固定,如晶振频率为的机器周期相应固定,如晶振频率为12MHE12MHE时单片机的机时单片机的机器周期为器周期为1s1s。单片机对其机器周期进行计数便可以实现。单片机对其机器周期进行计数便可以实现定时。如计数值为定时。如计数值为10001000则定时则定时1ms1ms、如计数值为、如计数值为10000001000000则则定时定时1s1s,以此类推。,以此类推。 本章要解决的是单片机如何完成对机器周期进本章要解决的是单片机如何完成对机器周期进行计数。行计数。问题的提出振荡器振荡器12加加1计数器计数器

3、TFX起停起停控制信号控制信号CT=0CT=1中断中断TX端端 MCS-51MCS-51单片片机机片片内内有有两两个个1616位位的的定定时器器计数数器器,定定时器器0(T0)0(T0)和和定定时器器1(T1)1(T1)。它它们均均可可用用作作定定时控制、延控制、延时以及以及对外部事件的外部事件的计数及数及检测。 当外部晶体振当外部晶体振荡器为荡器为12MHz时,时,它提供它提供(输出输出) 12MHz的脉冲。的脉冲。 经过除以经过除以12变成变成1MHz的脉冲的脉冲记住:此时脉冲的周期记住:此时脉冲的周期为为11MHz= 1s 当当CT=0时,开关接时,开关接通通 在起停控制在起停控制信号中

4、信号中“起起”信号信号作用下开关接通作用下开关接通加加1计数器对计数器对1MHz的脉冲进行的脉冲进行自动计数,直至计自动计数,直至计数器计满数器计满当计数器计满时,当计数器计满时,自动将自动将TFX置置“1”,作为向单,作为向单片机中断请求信号。片机中断请求信号。当当CT=1时,开时,开关向下接通,关向下接通,TX端的外部信号至此端的外部信号至此 在起停控制在起停控制信号中信号中“起起”信号信号作用下开关接通作用下开关接通加加1计数器对计数器对1MHz的脉冲进行的脉冲进行自动计数,直至计自动计数,直至计数器计满数器计满当计数器计满时,当计数器计满时,自动将自动将TFX置置“1”,作为向单,作为

5、向单片机中断请求信号。片机中断请求信号。由此可见:定时器计数器的核心是一个加由此可见:定时器计数器的核心是一个加1 1计数器。计数器。 1616位的定时器计数器分别由两个位的定时器计数器分别由两个8 8位的专用寄存位的专用寄存器组成,即器组成,即T0T0由由TH0TH0和和TL0TL0构成,构成,T1T1由由THlTHl和和TLlTLl构成。构成。0000000000000000TH0TL0TH0TL00000000100000000T0输入输入 TL0TL0、TL1TL1、TH0TH0、TH1TH1的地址顺序依次是的地址顺序依次是8AH8AH、8BH8BH、8CH8CH、8DH8DH。这些。

6、这些寄存器用来存放定时或计数初值,每个定时器都可以由软件设置成定时工作寄存器用来存放定时或计数初值,每个定时器都可以由软件设置成定时工作方式或计数工作方式。方式或计数工作方式。 定时器计数器可工作在定时方式或计数方式,由方式寄存器定时器计数器可工作在定时方式或计数方式,由方式寄存器TMODTMOD确确定,由控制寄存器定,由控制寄存器TCONTCON控制。控制。 注意:注意:1 1、当定时器工作在计数方式时,外部输人信号是加到、当定时器工作在计数方式时,外部输人信号是加到T0(P3T0(P34)4)或或T1(P3T1(P35)5)端。端。 一个外部输入信号的下降沿触发加一个外部输入信号的下降沿触

7、发加1 1计数器加计数器加1 1,直至计满溢出。,直至计满溢出。 外部输入信号的高电平与低电平保持时间均需大于一个机器周期。外部输入信号的高电平与低电平保持时间均需大于一个机器周期。 2 2、当定时、当定时/ /计数器工作在定时方式时,加计数器工作在定时方式时,加1 1计数器每一个机器周期加计数器每一个机器周期加1 1,直,直至计满溢出。至计满溢出。 一旦定时器计数器被设置成某种工作方式后,它就会按设定的工一旦定时器计数器被设置成某种工作方式后,它就会按设定的工作方式独立运行,不再占用作方式独立运行,不再占用CPUCPU的操作时间,直到加的操作时间,直到加1 1计数器计满溢出,计数器计满溢出,

8、才向才向CPUCPU申请中断。申请中断。 定时器计数器是一种可编程的部件,在定时器计数器是一种可编程的部件,在其工作之前必须做三件事:其工作之前必须做三件事:1、将方式字写入、将方式字写入TMOD2、将计数初值写入相应计数器、将计数初值写入相应计数器 这个过程称为定时器计数器的初始化这个过程称为定时器计数器的初始化3、将控制字写入、将控制字写入TCON定时器计数器工作定时器计数器工作方式及控制方式及控制 TMODTMOD用于控制用于控制T0T0和和T1T1的工作方式,其各位定义如下:的工作方式,其各位定义如下: 工作方式寄存器工作方式寄存器TMOD TCONTCON用于控制定时器的启动、停止以

9、及标明定时器的用于控制定时器的启动、停止以及标明定时器的溢出和中断情况。各位的含义如下:溢出和中断情况。各位的含义如下:控制寄存器控制寄存器TCONTCON TMODTMOD中的中的M1M1、M0M0具有具有4 4种组合,从而构成了定种组合,从而构成了定时器计数器的时器计数器的4 4种工作方式,这种工作方式,这4 4种工作方式除种工作方式除了方式了方式3 3以外,其它以外,其它3 3种工作方式的基本原理都是种工作方式的基本原理都是一样的。一样的。 下面分别介绍下面分别介绍4 4种工作方式的特点及工作情况。种工作方式的特点及工作情况。定时器计数器的工作方式定时器计数器的工作方式 在单片机中在单片

10、机中定时定时计数的原理是对其寄存器的内容完成对计数的原理是对其寄存器的内容完成对机器周期机器周期外部脉冲进行外部脉冲进行+1+1计数直至溢出。为了获取计数直至溢出。为了获取不同时间不同时间不同脉冲个数,不同脉冲个数,只要对寄存器预先写入一个数据就可以实现。这个数据称为只要对寄存器预先写入一个数据就可以实现。这个数据称为初值初值。工作方式工作方式0 0X200MLN其中:其中:200ML:最大值:最大值N:计数值:计数值X: 初值初值 方式方式0:16位的计数器位的计数器(THO和和TL0)只用只用了了13位构成位构成13位定时器计数器。位定时器计数器。 TL0的高的高3位未用,当位未用,当TL

11、0的低的低5位计满位计满时,向时,向TH0进位,而进位,而TH0溢出后对中断标志溢出后对中断标志位位TF0置置1,并向,并向CPU申请中断。申请中断。 1313位计数器位计数器: : 最大计数值为最大计数值为8192(8192(相当相当200ML) ) 定时值t(相当N ,但t 是时间单位) 初值(相当X ) 即:t/机器周期机器周期+初值初值= 81928192 t=(T0初值初值)机器周期机器周期1、初值、初值根据上式可知:初值根据上式可知:初值= - - t/机器周期机器周期例如:定时值为例如:定时值为5000ss,机器周期为,机器周期为1 1s 初值初值=8192-5000/=8192

12、-5000/s=3192=0000110001111000B将初值写入将初值写入T0寄存器的方法是寄存器的方法是:高高8位写入位写入01100011TH0,低,低5位位11000写入写入TL0例如:要求计满例如:要求计满129129个外部脉冲后溢出中断,则个外部脉冲后溢出中断,则计数初值为计数初值为8192-129=8063=1F7FH8192-129=8063=1F7FH 即即TLO=1FHTLO=1FH、TH0=FBHTH0=FBH 又如:已知单片机的机器周期为又如:已知单片机的机器周期为1s1s,要,要求定时值到达求定时值到达5000s5000s时溢出中断,则定时初值时溢出中断,则定时初

13、值为为8192-8192-(5000s5000sss) = 3192=0C78H= 3192=0C78H 即即TLO=18HTLO=18H、TH0=63HTH0=63H2 2、控制、控制 T0工作在方式工作在方式1的逻辑结构如下图所示。的逻辑结构如下图所示。由图可见,它与工作方式由图可见,它与工作方式0的差别仅在于工的差别仅在于工作方式作方式1是以是以16位计数器参加计数,且定时位计数器参加计数,且定时时间为:时间为:t=(216T0初值初值)机器周期机器周期即:即:初值初值= 216t/机器周期机器周期工作方式工作方式1 1 T0T0在工作方式在工作方式2 2的逻辑结构如下图所示。的逻辑结构

14、如下图所示。工作方式工作方式2 2 定时器定时器/计数器构成一个能重复置初值的计数器构成一个能重复置初值的8位计位计数器。数器。 在工作方式在工作方式0、工作方式、工作方式1中,若用于重复定中,若用于重复定时计数,则每次计满溢出后,计数器变为全时计数,则每次计满溢出后,计数器变为全0,故,故还得重新装入初值。还得重新装入初值。 而工作方式而工作方式2可在计数器计满溢出时自动装入可在计数器计满溢出时自动装入初值,工作方式初值,工作方式2把把16位的计数器拆成两个位的计数器拆成两个8位计位计数器。数器。TL0用作用作8位计数器,位计数器,TH0用来保存初值,用来保存初值,每当每当TL0计满溢出时,

15、可自动将计满溢出时,可自动将TH0的初值再装入的初值再装入TL0中。工作方式中。工作方式2的定时时间为:的定时时间为: t=(28T0初值)初值)机器周期机器周期即:即:初值初值=256- t/机器周期机器周期 工作方式工作方式3 3的逻辑结构图如下图所示。的逻辑结构图如下图所示。工作方式工作方式3 3 该工作方式只适用于定时器计数器该工作方式只适用于定时器计数器T0。T0在工作方式在工作方式3被拆成两个相互独立的计数器,其中,被拆成两个相互独立的计数器,其中,TL0使用原使用原T0的各控制位、引脚和中断源的各控制位、引脚和中断源CT 、GATE、TR0、INT0 和和TF0; 而而TH0则只

16、能作为定时器使用,但它占用则只能作为定时器使用,但它占用T1的的TR1和和TF1,即占用了,即占用了T1的中断标志和运行控的中断标志和运行控制位。制位。 一般在系统需增加一个额外的一般在系统需增加一个额外的8位定时器时,位定时器时,可设置为工作方式可设置为工作方式3,此时,此时,T1虽仍可定义为工虽仍可定义为工作方式作方式0、工作方式、工作方式1和工作方式和工作方式2,但只能用在不,但只能用在不需中断控制的场合。需中断控制的场合。1、要求计满要求计满20002000个外部脉冲后溢出中断,方式个外部脉冲后溢出中断,方式0 0,求,求计数初值的计数初值的TL0=TL0=?、?、TH0=TH0=?2

17、 2、已知单片机的机器周期为、已知单片机的机器周期为1s1s,要求定时值到达,要求定时值到达7000s7000s时溢出中断,定时、方式时溢出中断,定时、方式1 1,求定时初值的,求定时初值的TL0=TL0=?、?、TH0=TH0=?3、T0方式方式1,定时值,定时值5ms,TH0=?、?、TL0=?4、T1方式方式2,定时值,定时值250s,TH1=?、?、TL1=?TH0=C1TL0=10TH0=E4TL0=A8TH0=ECTL0=78TH0=06TL0=06 应用定时器应用定时器/ /计数器时应注意两点:一是初始计数器时应注意两点:一是初始化(写入控制字),二是对初值的计算。化(写入控制字

18、),二是对初值的计算。 初始化步骤为:初始化步骤为:向向TMODTMOD写工作方式控制字。写工作方式控制字。向计数器向计数器TLTL、THTH装入初始值。装入初始值。置置TR=1TR=1,启动计数。,启动计数。置置ET=1ET=1,允许定时器计数器中断,允许定时器计数器中断( (若需要时若需要时) )。置置EA=1EA=1,CPUCPU开中断开中断( (若需要时若需要时) )。定时器定时器/ /计数器应用举例计数器应用举例 例如:设例如:设T0T0为工作方式为工作方式1 1,设置为定时状态,定时时间,设置为定时状态,定时时间为为2ms2ms,每当,每当2ms2ms到,申请中断,在中断服务程序中

19、将到,申请中断,在中断服务程序中将P1.0P1.0的内容取反送出的内容取反送出( (假设晶振为假设晶振为6MHz)6MHz)。 解:已知晶振频率为解:已知晶振频率为6MHz6MHz,机器周期,机器周期=2s=2s 下面先计算下面先计算2ms2ms定时的定时的TOTO初始值初始值 当当T0T0工作在方式工作在方式1 1时时 TOTO初始值初始值=2=21616- -定时时间机器周期定时时间机器周期 =2=21616-2ms-2ms 2s 2s 2 216162 21010-3-31010-6-6=65536-1000=64536 =FC18H=65536-1000=64536 =FC18H。 即

20、:即:TH0=FCHTH0=FCH、TL0=18HTL0=18H由于题目要求由于题目要求T0工作在方式工作在方式1,所以,所以TMOD=01H编程如下编程如下: :ORG 0000H ;AJMP MAIN ;转主程序主程序ORG 000BH ;INT: MOV TL0,#18H ;T0中断服中断服务程序程序 MOV TH0,#0FCH ;重;重设计数初数初值 CPL P1.0 ; 输出取反出取反 RETI ;MAIN:MOV SP,#63H ;置堆;置堆栈指指针 MOV TMOD,#01H ;T0初始化初始化 MOV TL0;#18H ; MOV TH0;#0FCH; SETB TR0 ;启;

21、启动T0计数数 SETB ET0 ;允;允许T0中断中断 SETB EA ;CPU开中断开中断RLL: SJMP RLL ;等待;等待 END主程序与中断服务程序的关系 中断程序 主程序MAIN返回 中断响应中断服务程序入口地址RETIORG 000BH INT: MOV TL0,#18H MOV TH0,#0FCH CPL P1.0 RETI MAIN:MOV SP,#63H MOV TMOD,#01H MOV TL0;#18H MOV TH0;#0FCH SETB TR0 SETB ET0 SETB EA RLL: SJMP RLL END 又例如:当又例如:当GATE=1GATE=1时,

22、时,TR0=1TR0=1时,只有时,只有INTO INTO 引脚上出现高电平时,引脚上出现高电平时,T0T0才被允许计数。试利用才被允许计数。试利用这一功能测试这一功能测试INTOINTO引脚上的正脉冲的宽度(机器引脚上的正脉冲的宽度(机器周期数)。周期数)。 设外部待测脉冲由设外部待测脉冲由INTOINTO(P3.2P3.2)输入,)输入,T0T0工作工作在在方式方式1 1,设置为,设置为定时状态定时状态,GATEGATE置为置为“1 1”,测,测试时,在试时,在INTOINTO端为端为“0 0”时置时置TR0TR0为为“1 1”,当,当INTO INTO 端变为端变为“1 1”时启动计数;

23、时启动计数;INTOINTO端再次变为端再次变为“0 0”时停止计数,此时的计数值就是被测正脉冲的宽时停止计数,此时的计数值就是被测正脉冲的宽度。度。编程思路:编程思路:在此期间对机器周期进行计数在此期间对机器周期进行计数根据题意:根据题意:T0T0工作在方式工作在方式1 1、定时状态、定时状态、INT0=“1”INT0=“1”期间对机器周期进行计数。期间对机器周期进行计数。 于是,确定方式字如下:于是,确定方式字如下:即即TMOD=09HTMOD=09H。并在。并在INT0=0INT0=0期间置期间置TR0=1TR0=1TR0=1、INT0=1时开时开始计数始计数TR0=0、INT0=0时停

24、时停止计数止计数编程如下:编程如下: ORG 0000HORG 0000H MOV TMOD MOV TMOD,#09H #09H ;T0T0工作方式工作方式1 1定时,定时,GATE=1GATE=1 MOV TL0 MOV TL0,#00H #00H ; MOV TH0MOV TH0,#00H #00H ;RLL1RLL1:JB P3.2JB P3.2,RLL1 RLL1 ;等待;等待P3.2P3.2变低变低 SETB TR0 SETB TR0 ;启动;启动T0T0RLL2RLL2:JNB P3.2JNB P3.2,RLL2 RLL2 ;等待;等待P3.2P3.2变高变高RLL3RLL3:J

25、B P3.2JB P3.2,RLL3 RLL3 ;等待;等待P3.2P3.2再变低再变低 CLR TR0 CLR TR0 ;T0T0停止计数停止计数 MOV AMOV A,TL0 TL0 ;存放计数值;存放计数值 MOV BMOV B,TH0TH0 SJMP SJMP 1、设设T0T0为工作方式为工作方式0 0,设置为定时状态,定时时间为,设置为定时状态,定时时间为0.5ms0.5ms,每当,每当0.5ms0.5ms到,申请到,申请中断,在中断服务程序中将中断,在中断服务程序中将P1.7P1.7的内容取反送出的内容取反送出( (假设晶振为假设晶振为12MHz)12MHz)。请编写。请编写该方案

26、的程序该方案的程序. .ORG 0000H ;AJMP MAIN ;转主程序;转主程序ORG 000BH ;INT: MOV TL0,#0CH ;T0中断服务程序中断服务程序 MOV TH0,#0F0H ;重设计数初值;重设计数初值 CPL P1.7 ; 输出取反输出取反 RETI ;MAIN:MOV SP,#63H ;置堆栈指针;置堆栈指针 MOV TMOD,#00H ;T0初始化初始化 MOV TL0;#0CH ; MOV TH0;#0F0H; SETB TR0 ;启动;启动T0计数计数 SETB ET0 ;允许;允许T0中断中断 SETB EA ;CPU开中断开中断RLL: SJMP RLL ;等待;等待 END

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

最新文档


当前位置:首页 > 大杂烩/其它

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