第五章 定时器计数器_第1页
第五章 定时器计数器_第2页
第五章 定时器计数器_第3页
第五章 定时器计数器_第4页
第五章 定时器计数器_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 5.2 5.2 定时器定时器/ /计数器计数器 定时器的结构及工作原理定时器的结构及工作原理 定时器的控制定时器的控制 定时器的工作模式及其应用定时器的工作模式及其应用 第五章第五章 MCS-51MCS-51单片机的内部资源及应用单片机的内部资源及应用实现定时一般有多种方法:实现定时一般有多种方法:1. 1. 利用软件实现(延时程序)利用软件实现(延时程序) 优点:优点:简单,控制方便;简单,控制方便; 缺点:缺点:CPUCPU效率低。效率低。2. 2. 外部硬件实现:单稳态定时器、计数定时器外部硬件实现:单稳态定时器、计数定时器 优点:优点:CPUCPU效率高;效率高; 缺点:缺点:修改参

2、数麻烦。修改参数麻烦。3. 3. 利用计数器实现利用计数器实现计数器计数器溢出溢出1us8位位256us输入脉冲输入脉冲预置数预置数 定时器计数器作用主要包括定时器计数器作用主要包括产生各种时标间隔、记录外产生各种时标间隔、记录外部事件部事件的数量等,是单片机中最常用、最基本的部件之一。的数量等,是单片机中最常用、最基本的部件之一。机器周期机器周期 定时器定时器/ /计数器计数器单片机单片机T0T0外来脉冲外来脉冲定时功能定时功能计数功能计数功能定时器定时器/ /计数器计数器 功能示意图功能示意图 5.2.1 5.2.1 定时器定时器/ /计数器的基本结构计数器的基本结构 MCS-51MCS-

3、51单片机有二个定时器单片机有二个定时器/ /计数器,每个定时器计数器,每个定时器/ /计数器计数器由几个专用寄存器组成。由几个专用寄存器组成。定时器定时器T0T0定时器定时器T1T1数据寄存器数据寄存器(16(16位)位)TH0 TL0TH0 TL0TH1 TL1TH1 TL18CH 8AH8CH 8AH8DH 8BH8DH 8BH方式寄存器方式寄存器TMOD(89HTMOD(89H)低四位低四位TMOD(89HTMOD(89H)高四位高四位控制寄存器控制寄存器* *TCON(88H)TCON(88H)TCON(88H)TCON(88H)定时器定时器/ /计数器的结构如图所示。计数器的结构如

4、图所示。定时器定时器/ /计数器的基本结构框图计数器的基本结构框图5.2.2 5.2.2 定时器定时器/ /计数器的工作原理计数器的工作原理定时器定时器/ /计数器结构原理图计数器结构原理图 TRx TRx:启动位:启动位GATEGATE:门控制位:门控制位 :定时:定时/ /计数控制位计数控制位T TC/C/x=0,1x=0,1Y=2,3Y=2,3Z=4,5Z=4,5 一、对外部输入信号的计数功能一、对外部输入信号的计数功能 当当T0T0或或T1T1设置为计数工作方式时,计数器对来自输入引设置为计数工作方式时,计数器对来自输入引脚脚P3.4(T0)P3.4(T0)和和P3.5(T1)P3.5

5、(T1)的外部信号计数。的外部信号计数。 若前一个机器周期采样值为若前一个机器周期采样值为1 1,后一个机器周期采样值为,后一个机器周期采样值为0 0,则计数器加,则计数器加1 1。所以计数器计数的频率最高为所以计数器计数的频率最高为foscfosc的的1/241/24。计数计数计数计数计数计数T TH H11个机器周期个机器周期T TL L11个机器周期个机器周期计数信号计数信号二二. . 定时功能定时功能 定时器定时器/ /计数器的定时功能也是通过计数实现的,它的计计数器的定时功能也是通过计数实现的,它的计数脉冲是由单片机的片内振荡器输出经数脉冲是由单片机的片内振荡器输出经1212分频后产

6、生的信号,分频后产生的信号,即为即为对机器周期计数对机器周期计数。例如:例如:晶振频率晶振频率=12MHz=12MHz机器周期机器周期=1us=1us, 计数计数1 1次次=1us=1us,计数频为计数频为=1MHz=1MHz。计数器计数器定时器定时器计数脉冲计数脉冲外部信号下降沿外部信号下降沿T0T0对应对应P3.4P3.4T1T1对应对应P3.5P3.5内部信号内部信号( (片内振荡器片内振荡器) )计数频率计数频率f ffmax=fosc/24fmax=fosc/24f=f=机器周期机器周期定时器定时器/ /计数器的比较计数器的比较 定时器定时器/ /计数器的控制主要是通过以下几个寄存计

7、数器的控制主要是通过以下几个寄存器实现的:器实现的: TCONTCON - - 定时器定时器/ /计数器控制寄存器计数器控制寄存器 TMODTMOD - - 定时器定时器/ /计数器工作方式控制寄存器计数器工作方式控制寄存器 IEIE - - 中断允许控制寄存器中断允许控制寄存器5.2.3 5.2.3 定时器的控制定时器的控制 一、一、 定定时器时器/ /计数器的工作方式寄存器计数器的工作方式寄存器TMODTMOD 定时器定时器/ /计数器是一种可编程部件,在工作之前必须由软件计数器是一种可编程部件,在工作之前必须由软件设定它的工作方式,即对设定它的工作方式,即对工作方式寄存器工作方式寄存器T

8、MODTMOD中每位进行设定。中每位进行设定。(M1(M1、M0)M0):设置定时器设置定时器/ /计数器的工作方式;计数器的工作方式; (C/ ) (C/ ):定时器定时器/ /计数器选择位,置计数器选择位,置0 0时作定时器用;时作定时器用; (GATE) (GATE):设置定时器设置定时器/ /计数器的启动方式。计数器的启动方式。TTMOD(89H)TMOD(89H) TMOD TMOD不能位寻址。上电复位时,不能位寻址。上电复位时,TMODTMOD所有位均为零。所有位均为零。工作方式寄存器工作方式寄存器TMODTMOD的作用:的作用: 、M1M1和和M0M0工作方式控制位工作方式控制位

9、 M0M0和和M1M1为工作方式控制位,确定为工作方式控制位,确定4 4种工作方式,如表种工作方式,如表7-17-1所示。所示。M1 M0 M1 M0 方式方式说说 明明0 00 00 01313位定时器位定时器/ /计数器计数器(TH(TH的的8 8位和位和TLTL的低的低5 5位位) ) 0 10 11 11616位定时器位定时器/ /计数器计数器 1 01 02 2自动重装入初值的自动重装入初值的8 8位计数器位计数器 1 11 13 3T0T0分成两个独立的分成两个独立的8 8位计数器位计数器, T1, T1在在方式方式3 3时停止工作时停止工作 、定时器、定时器/ /计数器方式选择位

10、计数器方式选择位 1. =0 1. =0 选择定时方式。在定时方式中,选择定时方式。在定时方式中,以振荡输出时钟脉以振荡输出时钟脉冲的冲的1212分频信号作为定时的计数信号分频信号作为定时的计数信号,也就是每一个机器也就是每一个机器周期定时器加周期定时器加“1”1”,若晶振为,若晶振为12MHz12MHz,则定时器的计数频,则定时器的计数频率为率为1MHz1MHz。2. =1 2. =1 选择计数功能。在计数方式中,选择计数功能。在计数方式中,采用外部引脚采用外部引脚T0(P3.4)T0(P3.4)、T1(P3.5)T1(P3.5)的输入脉冲作为计数脉冲的输入脉冲作为计数脉冲, , 当外部输当

11、外部输入脉冲发生入脉冲发生1 1到到0 0的负跳变时,计数器加的负跳变时,计数器加1 1,最高计数频率,最高计数频率为时钟频率的为时钟频率的1/241/24。T TC C/ /T TC C/ /T TC C/ /计数计数 C/ =0 C/ =0 定时;定时; C/ =1 C/ =1 对外计数。对外计数。定时:定时:fosc/12 =1/(12/fosc)=1/T (fosc/12 =1/(12/fosc)=1/T (机器周期机器周期) )N个方波个方波 T计数:脉冲不等间隔计数:脉冲不等间隔定时:定时: 波形等间隔,次数已定,时间波形等间隔,次数已定,时间确定确定, , 即对机器周期进行计数。

12、即对机器周期进行计数。 定时时间为定时时间为 N*T计数:计数: 每个下降沿计数一次每个下降沿计数一次, ,确认一次确认一次负跳变需两个机器周期,所以,计负跳变需两个机器周期,所以,计数频率最高为数频率最高为fosc / 24。 TT 、GATEGATE启动门控位启动门控位1. GATE=0 1. GATE=0 时时 只要用软件使只要用软件使TR0TR0(或(或TR1TR1)置)置1 1就能启动定时器就能启动定时器T0T0(或(或T1T1)2. GATE=1 2. GATE=1 时时 只有在只有在INT0INT0(或(或INT1INT1)引脚为高电平的情况下,且由软件)引脚为高电平的情况下,且

13、由软件使使TR0TR0(或(或TR1TR1)置)置1 1时,才能启动定时器时,才能启动定时器T0T0(或(或T1T1)工作。)工作。x=0,1x=0,1Y=2,3Y=2,3二、二、 定时器定时器/ /计数器的控制寄存器计数器的控制寄存器TCONTCON 控制寄存器控制寄存器TCONTCON的作用:的作用:1 1、通过设置、通过设置TCONTCON中的某些位来实现启动或停止定时器中的某些位来实现启动或停止定时器/ /计数计数 器的运行(计数);器的运行(计数);2 2、当定时器、当定时器/ /计数器计满溢出,或有外部中断请求时,计数器计满溢出,或有外部中断请求时,TCONTCON 能标明溢出和中

14、断情况。能标明溢出和中断情况。控制寄存器控制寄存器TCON(88H)TCON(88H)TF1TF1:定时器:定时器T1T1溢出标志位溢出标志位 当定时器当定时器T1T1溢出时,由硬件自动使溢出时,由硬件自动使TF1TF1置置1 1,并向,并向CPUCPU申请中断。申请中断。CPUCPU响应中断后,由硬件自动对响应中断后,由硬件自动对TF1TF1清清零。零。TF1TF1也可以用软件清零。也可以用软件清零。TR1TR1:定时器:定时器T1T1运行控制位运行控制位 可由软件置可由软件置1 1(或清零)来启动(或关闭)定时(或清零)来启动(或关闭)定时器器T1T1,使定时器,使定时器T1T1开始计数。

15、开始计数。用指令:用指令: SETB TR1SETB TR1 或或 CLR TR1 (CLR TR1 (置置1 1或清或清0 0)TF1TF1TR1TR1TF0TF0 TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0控制寄存器控制寄存器TCON(88H)TCON(88H)TF0TF0:定时器:定时器T0T0溢出标志位。其功能与溢出标志位。其功能与TF1TF1相同。相同。TR0TR0:定时器:定时器T0T0运行控制位。其功能与运行控制位。其功能与TR1TR1相同。相同。IE1IE1:外部中断:外部中断1 1请求标志位。请求标志位。IT1IT1:外部中断:外部中断1 1触发方式控制位。

16、触发方式控制位。IE0IE0:外部中断:外部中断0 0请求标志位。请求标志位。IT0IT0:外部中断:外部中断0 0触发方式控制位。触发方式控制位。 IE1IE1、IT1IT1、IE0IE0、IT0IT0这这4 4位已在第位已在第5 5章讲述。章讲述。 可以对控制寄存器进行位寻址。可以对控制寄存器进行位寻址。TF1TF1TR1TR1TF0TF0 TR0TR0IE1IE1IT1IT1IE0IE0IT0IT05.2.4 5.2.4 定时器的工作模式及其应用定时器的工作模式及其应用一、一、 工作模式工作模式0 0及应用及应用。M0=0, M1=0 、工作原理、工作原理 1、在方式在方式0 0下,下,

17、T0T0和和T1T1工作在工作在1313位的定时位的定时/ /计数器方式,计数器方式,由由THTH的高的高8 8位位和和TLTL的低的低5 5位位组成。组成。 2 2、当、当T0T0的的1313位计数器加到全部为位计数器加到全部为1 1以后,再加以后,再加1 1就产生就产生溢出,这时置溢出,这时置TCONTCON的的TF0TF0为为1 1,同时把计数器全部变,同时把计数器全部变0 0,然,然后从后从0 0开始继续计数。开始继续计数。TH0=0FFHTH0=0FFHTL0=1FHTL0=1FHTF0=0TF0=011111111111111111111111111+1+1TH0=00HTH0=0

18、0HTL0=00HTL0=00HTF0=1TF0=1M0=0, M1=0 x=0,1x=0,1Y=2,3Y=2,3Z=4,5Z=4,5 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH LJMP T0INT LJMP T0INT MAIN: SETB ET0 MAIN: SETB ET0 SETB EA SETB EA SETB TR0 SETB TR0 LOOP: LOOP: LJMP LOOP LJMP LOOP T0INT: CPL P1.0 T0INT: CPL P1.0 MOV TL0,MOV TL0,0CH0CH

19、 MOV TH0, MOV TH0,0F0H0F0H RETI RETI对于对于T0T0初值非零时初值非零时2 2、当、当 = 0 = 0 时,工作方式为定时器,时,工作方式为定时器, 定时时间定时时间 = = (2(213 13 -T0-T0初值初值)x12x)x12x时钟周期时钟周期 定时范围:定时范围:1 1工作周期工作周期 81928192工作周期工作周期 1 1、当、当 = 1 = 1 时,工作方式为计数器,时,工作方式为计数器, 计数数值计数数值 = = (2(21313 - T0 - T0初值初值) ) 计数值范围:计数值范围:1 181928192(2 213 13 = 819

20、2= 8192)TH0=0FFHTH0=0FFHTL0=01FHTL0=01FH 、工作模式、工作模式0 0时计数和定时范围时计数和定时范围TH0=00HTH0=00HTL0=00HTL0=00H加加1 1溢出;溢出;加加81928192溢出。溢出。T TC/C/T TC/C/ 如果单片机的晶振选为如果单片机的晶振选为6.00MHz6.00MHz,则最长和最小定时,则最长和最小定时时间分别为:时间分别为:最小定时时间(最小定时时间((TH0)(TH0)0FFH0FFH,(TL0)(TL0)0FFH0FFH):): 8192-(8192-1)8192-(8192-1)1/61/61010-6-6

21、12 = 212 = 21010-6-6(s) (s) = 2(us) = 2(us)最长定时时间(最长定时时间((TH0)(TH0)00H00H,(TL0)(TL0)00H00H):): (8192-0)(8192-0)1/61/61010-6-612 = 1638412 = 163841010-6-6(s) (s) = 16384(us) = 16384(us) 例:例:设定时器设定时器T0T0选择工作模式选择工作模式0 0,求最长定时时间,求最长定时时间,如果要实现定时时间为如果要实现定时时间为1ms1ms,fosc=3MHzfosc=3MHz。试确定。试确定T0T0的初值。的初值。 解

22、:解:(1) (1) 求最长定时时间求最长定时时间 当当T0T0处于工作模式处于工作模式0 0时,加时,加1 1计数器为计数器为1313位。位。T0T0最大定最大定时时间对应于时时间对应于1313位计数器位计数器T0T0的各位全为的各位全为0 0,即,即: : (TH0) (TH0)00H00H,(TL0)(TL0)00H00H。 最长定时时间为:最长定时时间为: Tmax =(2Tmax =(213130)x12x(100)x12x(10-6-6/3)= 32.768ms/3)= 32.768ms(2) (2) 确定确定T0T0的初值的初值 定时时间定时时间=(2=(213 13 T0T0初

23、值初值)x12x)x12x晶振周期晶振周期 则:则:T0T0初值初值= =2 21313(1ms/4us)=8192(1ms/4us)=8192250=7942250=7942 化成二进制化成二进制 用除用除2 2取余数法,得到的余数即为二进制数各位的数码,取余数法,得到的余数即为二进制数各位的数码,按余数的逆序排列。按余数的逆序排列。 转化成二进制为:转化成二进制为:1111100000110B1111100000110B 按照低按照低5 5位,高位,高8 8位拆开:位拆开: T0T0的低的低5 5位:位:TL0 = 00110B = 06HTL0 = 00110B = 06H T0 T0的

24、高的高8 8位:位:TH0 = 11111000B = F8HTH0 = 11111000B = F8H 例:例:利用定时器输出周期为利用定时器输出周期为2ms2ms的方波的方波, , 输出为输出为P1.0P1.0引脚。引脚。设单片机晶振频率为设单片机晶振频率为3MHz3MHz。 解:解:2ms2ms的方波是由间隔的方波是由间隔1ms1ms的高低电平相间而成,因而只的高低电平相间而成,因而只要每隔要每隔1ms1ms对对P1.0P1.0取反一次即可得到所需的方波。取反一次即可得到所需的方波。 因为:因为:机器周期机器周期 = 12= 123MHz = 4us3MHz = 4us 所以,所以,1m

25、s1ms内内T0T0计数的次数:计数的次数:N=1msN=1ms4us=250 4us=250 由此可知由此可知: : 使用方式使用方式0 0时的时的1313位计数器即可。位计数器即可。1ms1ms T0T0的初值:的初值:X=2X=213 13 -250 = 7942-250 = 7942转化成二进制转化成二进制:TH0=0F8HTH0=0F8H,TL0=06HTL0=06H TMODTMOD初始化:初始化:TMOD=00000000B=00HTMOD=00000000B=00H (GATE=0GATE=0,C/T=0C/T=0,M1=0M1=0,M0=0M0=0) TCONTCON初始化初

26、始化:启动:启动TR0=1TR0=1 IEIE初始化初始化:开放:开放EA=1EA=1,定时器,定时器T0T0中断允许中断允许ET0=1ET0=1设计考虑:设计考虑:选用定时选用定时/ /计数器计数器T0T0作定时器作定时器程序清单如下程序清单如下: : ORG 0000H ORG 0000H AJMP START AJMP START ORG 000BH ORG 000BH AJMP TOINT AJMP TOINT ORG 0050H ORG 0050HSTART: MOV SP, START: MOV SP, 60H60H MOV TH0, MOV TH0, 0F8H0F8H MOV T

27、L0, MOV TL0, 06H06H MOV TMOD, MOV TMOD, 00H00H SETB TR0 ; SETB TR0 ; 启动启动T0 T0 SETB ET0 SETB ET0 SETB EA SETB EA MAIN: MAIN: AJMP MAIN AJMP MAIN TOINT: CPL P1.0 TOINT: CPL P1.0 MOV TL0, MOV TL0, 06H06H MOV TH0, MOV TH0, 0F8H0F8H; ; 上面两指令赋上面两指令赋T0T0初值初值 RETIRETI END END 、工作原理、工作原理 方式方式1 1和方式和方式0 0的工作

28、原理相同,唯一不同的是的工作原理相同,唯一不同的是T0T0和和T1T1工作在方式工作在方式1 1时是时是1616位的计数位的计数/ /定时器。定时器。 在方式在方式1 1时,时,1616位的初值分为高字节和低字节,分别位的初值分为高字节和低字节,分别送入送入THTH和和TLTL。二、工作模式二、工作模式1 1及应用及应用M0=1,M1=0M0=1,M1=0TH0=0FFHTH0=0FFHTL0=0FFHTL0=0FFHTF0=0TF0=011111111111111111111111111111111+1+1TH0=00HTH0=00HTL0=00HTL0=00HTF0=1TF0=1x=0,1

29、x=0,1Y=2,3Y=2,3Z=4,5Z=4,52 2、当、当 =0=0时,工作方式为定时器,时,工作方式为定时器, 定时时间定时时间 = = (2(216 16 -T0-T0初值初值)x12x)x12x晶振周期晶振周期 定时范围:定时范围:1 1工作周期工作周期 6553665536工作周期工作周期 1 1、当、当 =1=1时,工作方式为计数器,时,工作方式为计数器, 计数数值计数数值 = = (2(21616 -T0 -T0初值初值) ) 计数范围:计数范围:1 16553665536(2 216 16 = 65536= 65536)TH0=0FFHTH0=0FFHTL0=0FFHTL0

30、=0FFH 、工作模式、工作模式1 1时计数和定时范围时计数和定时范围TH0=00HTH0=00HTL0=00HTL0=00H加加1 1溢出;溢出;加加6553665536溢出。溢出。T TC C/ /T TC C/ / 如果单片机的晶振频率选为如果单片机的晶振频率选为6.00MHz6.00MHz,则,则最长和最小定最长和最小定时时间分别为:时时间分别为:最小定时时间为:最小定时时间为: 65536-(65536-1)65536-(65536-1)1/61/61010-6-612 12 = 2 = 21010-6-6(s) = 2(us)(s) = 2(us)最长定时时间为:最长定时时间为:

31、(65536-0)(65536-0)1/61/61010-6-612 = 13107212 = 1310721010-6-6(s) (s) = 131072(us) = 131072(us)。 例:例:已知某生产线的传送带上不断地有产品单向传送已知某生产线的传送带上不断地有产品单向传送, , 产产品之间有较大间隔。使用光电开关统计一定时间内的产品个品之间有较大间隔。使用光电开关统计一定时间内的产品个数。假定红灯数。假定红灯1 1灭时停止统计,红灯亮灭时停止统计,红灯亮1 1时才在上次统计结果时才在上次统计结果的基础上继续统计,试用单片机定时器的基础上继续统计,试用单片机定时器/ /计数器计数器

32、T1T1的方式的方式1 1完完成该项产品的计数任务。成该项产品的计数任务。 (1) (1) 初始化初始化: : TMOD=11010000B=0D0HTMOD=11010000B=0D0H (GATE=1, C/T=1, M0M1=01GATE=1, C/T=1, M0M1=01) TCON=00000000B=00HTCON=00000000B=00H(2) T1(2) T1在方式在方式1 1时,溢出产生中断,且计数器回零,故在中断时,溢出产生中断,且计数器回零,故在中断服务程序中,需用服务程序中,需用R0R0计数中断次数,以保护累积计数结果。计数中断次数,以保护累积计数结果。(3) (3)

33、 启动启动T1T1计数,开计数,开T1T1中断。中断。设计考虑:设计考虑:程序清单如下程序清单如下: ORG 0000H ORG 0000H AJMP STARTAJMP STARTORG 001BHORG 001BHAJMP T1INT AJMP T1INT ORG 0100HORG 0100HSTART: MOV SP,START: MOV SP,60H 60H MOV TCON, MOV TCON,00H00H MOV TMOD, MOV TMOD,0D0H0D0H MOV TH1, MOV TH1,00H;T100H;T1初值初值 MOV TL1,MOV TL1,00H00HMOV R

34、0, MOV R0, 00H00HMOV P3, MOV P3, 28H28HSETB TR1;SETB TR1;启动启动T1T1SETB ET1;SETB ET1;开开T1T1中断中断SETB EASETB EA;开总中断;开总中断 MAIN: ACALL DISPMAIN: ACALL DISP SJMP MAIN SJMP MAIN T1INT: INC R0 T1INT: INC R0 RETI RETI DISP: DISP: RET RET三、三、 工作模式工作模式2 2及应用及应用M0=0,M1=1M0=0,M1=1 、工作原理、工作原理1 1、1616位计数器拆成位计数器拆成T

35、LxTLx和和THxTHx两个部分两个部分 TLxTLx:作为计数器;:作为计数器; THxTHx:用来保存计数初值。:用来保存计数初值。 在程序初始化时,由软件赋予同样的初值。在程序初始化时,由软件赋予同样的初值。2 2、当当TLxTLx计数溢出,计数溢出,THxTHx中的初值由硬件自动装入中的初值由硬件自动装入TLxTLx继续计数。继续计数。M0=0, M1=11 1、用于计数工作方式时:、用于计数工作方式时: 计数数值计数数值 = (2= (28 8 - T0- T0初值初值) ) 计数范围:计数范围:1 1256256(2 28 8 = 256 = 256)2 2、用于定时工作方式时:

36、、用于定时工作方式时: 定时时间定时时间 = (2= (28 8 -T0 -T0初值初值)x12x)x12x晶振周期晶振周期 定时范围:定时范围:1 1工作周期工作周期 256256工作周期工作周期优点:优点:模式模式2 2可省去软件重装常数的语句,定时时间精确,特可省去软件重装常数的语句,定时时间精确,特 别适用于作串行口波特率发生器。别适用于作串行口波特率发生器。 、工作模式、工作模式2 2时计数和定时范围时计数和定时范围波特率波特率=2=2smodsmod x( x(定时器定时器/ /计数器计数器1 1溢出速率)溢出速率)/32 /32 溢出速率溢出速率= =(计数速率)(计数速率)/2

37、56(TH1)/256(TH1) 当当C/T = 0 C/T = 0 时,计数速率时,计数速率=fosc/12=fosc/12 例:例:利用定时器利用定时器T1T1的模式的模式2 2对外部信号计数。要求每计满对外部信号计数。要求每计满150150次,将次,将P1.0P1.0端取反。端取反。 解:解:(1) (1) 选择模式:选择模式: T1T1计数工作方式为模式计数工作方式为模式2 2时:时: TMODTMOD01100000B=60H01100000B=60H ( (不考虑不考虑T0T0的情况的情况) ) (2) (2) 计算计算T1T1的计数初值:的计数初值: X X2 28 8-150-

38、150256-150=106=6AH256-150=106=6AH 因此,因此,TL1TL1的初值为的初值为6AH6AH,重装初值寄存器,重装初值寄存器TH1TH1初值为初值为6AH6AH。编程分析:编程分析: 外部信号由外部信号由T1(P3.5)T1(P3.5)引脚输入,每发生一次负跳变计数引脚输入,每发生一次负跳变计数器加器加1 1,每输入,每输入150150个脉冲,计数器发生溢出中断,中断服务个脉冲,计数器发生溢出中断,中断服务程序将程序将P1.0P1.0取反一次。取反一次。 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 001BH ; ORG

39、001BH ; 中断服务程序入口中断服务程序入口 CPL P1.0CPL P1.0RETIRETI ORG 0100H ORG 0100HMAINMAIN:MOV TMODMOV TMOD,#60H ;#60H ;置置T1T1为模式为模式2 2计数工作方式计数工作方式MOV TL1MOV TL1,#6AH ; #6AH ; 赋初值赋初值MOV TH1MOV TH1,#6AH#6AH MOV IEMOV IE,#88H ; #88H ; 定时器定时器T1T1开中断开中断 SETB TR1 SETB TR1 ; ; 启动计数器启动计数器 HEREHERE:SJMP HERE SJMP HERE ;

40、 ; 等待中断等待中断方式方式2 2与方式与方式0 0、1 1的区别的区别方式方式 0 0、1 1方式方式 2 2计数方式计数方式THXTHX和和TLXTLX整体计数整体计数TLXTLX计数计数,THX,THX保存初值保存初值计数溢出计数溢出溢出后计数器为全溢出后计数器为全0 0自动加载计数初值自动加载计数初值循环设定循环设定软件循环设置初值软件循环设置初值增加编增加编程难度程难度自动重装载功能自动重装载功能计时精度计时精度计时精度差计时精度差计时精确计时精确( (用于波特率)用于波特率)计时长度计时长度计时长度长计时长度长计时长度短计时长度短四、工作模式四、工作模式3 3及应用及应用M0=1

41、,M1=1M0=1,M1=1 、工作原理、工作原理1 1、T0T0的的TL0TL0使用原使用原T0T0的各控制位的各控制位(C/T(C/T,GATE, TR0)GATE, TR0),中断,中断源源TF0TF0和和INT0(P3.2)INT0(P3.2)引脚,其功能和操作与模式引脚,其功能和操作与模式0 0和模式和模式1 1相同相同-可以工作在定时器方式或计数器方式。可以工作在定时器方式或计数器方式。 只有只有T0T0能工作在工作模式能工作在工作模式3 3,而且分成,而且分成TL0TL0和和TH0TH0两个独两个独立的立的8 8位计数器。位计数器。M0=1,M1=1M0=1,M1=1TL0TL0

42、使用原使用原T0T0的所有资源的所有资源 2 2、T0T0的的TH0TH0只可作简单的内部定时功能,它占用只可作简单的内部定时功能,它占用T1T1的的控制位控制位TR1TR1和中断标志位和中断标志位TF1TF1,同时也占用了,同时也占用了T1T1的中断源。的中断源。 3 3、T1T1可定义在工作方式可定义在工作方式0 0、方式、方式1 1和方式和方式2 2。但只能用在不需。但只能用在不需要中断控制的场合。要中断控制的场合。 工作方式工作方式3 3特别适用于有串行通信,而又需要两个独立特别适用于有串行通信,而又需要两个独立的计数器的系统。的计数器的系统。1 1、用于计数工作方式时:、用于计数工作

43、方式时: 计数数值计数数值 = (2= (28 8 - T0- T0初值初值) ) 计数范围:计数范围:1 1256256(2 28 8 = 256 = 256)2 2、用于定时工作方式时:、用于定时工作方式时: 定时时间定时时间 = (2= (28 8 -T0 -T0初值初值) )x12xx12x晶振周期晶振周期 定时范围:定时范围:1 1工作周期工作周期 256256工作周期工作周期 、T0T0在工作模式在工作模式3 3时计数和定时范围时计数和定时范围在定时器在定时器T0T0用作模式用作模式3 3时,时,T1T1仍可设置为模式仍可设置为模式0 02 2。 例:例:假设在一个用户系统中,已使

44、用了两个外部中断源,假设在一个用户系统中,已使用了两个外部中断源,并置定时器并置定时器T1T1于方式于方式2 2,作串行口波特率发生器用,现要求,作串行口波特率发生器用,现要求再增加一个外部中断源再增加一个外部中断源, , 并由并由P1.0P1.0口输出一个口输出一个5KHz5KHz的方波的方波( (假设晶振频率为假设晶振频率为6MHz)6MHz)。 8051INT0INT1外部中断源外部中断源0外部中断源外部中断源1解:分析解:分析 可把可把T0T0置于工作方式置于工作方式3 3,利用外部引脚利用外部引脚T0T0端作附加的外部端作附加的外部中断输入端,把中断输入端,把TL0TL0预置为预置为0FFH0FFH,这样在这样在T0T0端出现由端出现由1 1至至0 0的负跳变的负跳变时,时,TL0TL0立即溢出,申请中断,立即溢出,申请中断,相当于边沿激活的外部中断源。相当于边沿激活的外部中断源。外部中断源外部中断源2 在方式在方式3 3下下,TH0,TH0总是作总是作8 8位定时器用位定时器用, ,可以靠它来控制由可以靠它来控制由P1.0P1.0输出的输出的5kHz5kHz方波。方波。 由由P1.0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论