




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章第五章 MCS-51的定时器的定时器/计数器计数器 两个可编程的定时器两个可编程的定时器/计数器计数器T1、T0。两种工作模式:两种工作模式:(1)计数器工作模式)计数器工作模式(2)定时器工作模式)定时器工作模式4种工作方式种工作方式(方式方式0-方式方式3)。5.1 定时器定时器/计数器的结构计数器的结构TMOD:选择定时器选择定时器/计数器计数器T0、T1的工作模式的工作模式 和工作方式和工作方式 TCON: 控制控制T0、T1的启动和停止计数,同时包含的启动和停止计数,同时包含 了了T0、T1的状态。的状态。单片机复位时,两个寄存器的所有位都被清单片机复位时,两个寄存器的所有位都
2、被清0。 5.1.1 工作方式控制寄存器工作方式控制寄存器TMOD TMOD 8位分为两组,高位分为两组,高4位控制位控制T1,低低4位控制位控制T0。(1) GATE门控位门控位 0:以运行控制位以运行控制位TRX(X=0,1)来启动定时器来启动定时器/计计 数器运行。数器运行。1:用外中断引脚用外中断引脚(INT0*或或INT1*)上的高电平来启动上的高电平来启动定时器定时器/计数器运行。计数器运行。(2) M1、M0工作方式选择位工作方式选择位 M1 M0 工工 作作 方方 式式 0 0 方式方式0,13位定时器位定时器/计数器。计数器。 0 1方式方式1,16位定时器位定时器/计数器。
3、计数器。 1 0 方式方式2,8位常数自动重新装载位常数自动重新装载 1 1 方式方式3,仅适用于,仅适用于T0,T0分成两个分成两个8位定时位定时/ 计数器,计数器,T1停止计数。停止计数。(3) C/T* 计数器模式和定时器模式选择位计数器模式和定时器模式选择位 0:定时器模式。:定时器模式。 1:计数器模式。计数器模式。 5.1.2 定时器定时器/计数器控制寄存器计数器控制寄存器TCON 低低4位与外部中断有关,已介绍。高位与外部中断有关,已介绍。高4位的功能如下:位的功能如下: (1) TF1、TF0计数溢出标志位计数溢出标志位 (2) TR1、TR0计数运行控制位计数运行控制位 1:
4、启动定时器:启动定时器/计数器工作计数器工作 0:停止定时器:停止定时器/计数器工作计数器工作 5.2 定时器定时器/计数器的计数器的4种工作方式种工作方式 5.2.1 方式方式0 M1、M0为为00 ,定时器,定时器/计数器的框图:计数器的框图: 为为13位的计数器位的计数器 ,C/T* 位控制的电子开关决定了定时位控制的电子开关决定了定时器器/计数器的工作模式。计数器的工作模式。 0:电子开关打在上面,为定时器工作模式;:电子开关打在上面,为定时器工作模式; 1:电子开关打在下面,为计数器工作模式,计数脉冲为:电子开关打在下面,为计数器工作模式,计数脉冲为P3.4、P3.5引脚上的外部输入
5、脉冲,当引脚上发生负跳变时,引脚上的外部输入脉冲,当引脚上发生负跳变时,计数器加计数器加1。 GATE位的状态决定定时器位的状态决定定时器/计数器运行控制取决于计数器运行控制取决于TRX一个条件还是一个条件还是TRX和引脚这两个条件。和引脚这两个条件。 (1)0:A点是否计数点是否计数,仅取决于仅取决于TRX的状态。的状态。 (2)1:B点电位由点电位由INTX*的输入电平和的输入电平和TRX的状态这两个的状态这两个条件来确定。计数器是否计数是由条件来确定。计数器是否计数是由TRX和和INTX*二个条件二个条件来控制的。来控制的。5.2.2 方式方式1 M1、M0为为01,16位的计数器。位的
6、计数器。 5.2.3 方式方式2 M1、M0=10 ,计数满后自动装入计数初值。,计数满后自动装入计数初值。 方式方式2为自动恢复初值的(初值自动装入)为自动恢复初值的(初值自动装入)8位定位定时器时器/计数器,计数器,TLX作为常数缓冲器,当作为常数缓冲器,当TLX计数溢计数溢出时,在置出时,在置“1”溢出标志溢出标志TFX的同时,还自动的将的同时,还自动的将THX中的初值送至中的初值送至TLX,使使TLX从初值开始重新计数。从初值开始重新计数。定时器定时器/计数器的方式计数器的方式2工作过程如图工作过程如图4-5所示所示(X=0,1)。 方式方式2可省去用户软件中重装初值的程序。可省去用户
7、软件中重装初值的程序。精确的确定定时时间。精确的确定定时时间。5.2.4 方式方式3 增加一个附加的增加一个附加的8位定时器位定时器/计数器,从而使计数器,从而使MCS-51具具有有3个定时器个定时器/计数器。计数器。 只适用于定时器只适用于定时器/计数器计数器T0 ,T1不能工作在方式不能工作在方式3。T1方式方式3时相当于时相当于TR1=0,停止计数(此时停止计数(此时T1可用来作串行可用来作串行口波特率产生器)。口波特率产生器)。1工作方式工作方式3下的下的T0 T0分为两个独立的分为两个独立的8位计数器位计数器: TL0和和TH0 。TL0使用使用T0的状态控制位的状态控制位C/T*、
8、GATE、TR0、,、,而而TH0被固定为被固定为一个一个8位定时器(不能作外部计数模式),并使用定时器位定时器(不能作外部计数模式),并使用定时器T1的状态控制位的状态控制位TR1和和TF1,同时占用定时器同时占用定时器T1的中断请的中断请求源求源TF1。 2T0工作在方式工作在方式3下下T1的各种工作方式的各种工作方式 当当T1用作串行口的波特率发生器时,用作串行口的波特率发生器时, T0才工作才工作在方式在方式3。T0处于方式处于方式3时,时, T1可定为方式可定为方式0、方式、方式1和方式和方式2,用来作为串行口的波特率发生器,或不,用来作为串行口的波特率发生器,或不需要中断的场合。需
9、要中断的场合。(1)T1工作在方式工作在方式0 (2) T1工作在方式工作在方式1 (3) T1工作在方式工作在方式2 5.3 定时器定时器/计数器对输入信号的要求计数器对输入信号的要求 外部输入的计数脉冲的最高频率为系统振荡器外部输入的计数脉冲的最高频率为系统振荡器频率的频率的1/24,例如选用,例如选用12MHz频率的晶体,则可输频率的晶体,则可输入入500KHz的外部脉冲。的外部脉冲。 对于外部输入信号的占空比并没有什么限制,对于外部输入信号的占空比并没有什么限制,但为了确保某一给定的电平在变化之前能被采样一但为了确保某一给定的电平在变化之前能被采样一次,则这一电平至少要保持一个机器周期
10、。图中次,则这一电平至少要保持一个机器周期。图中Tcy为机器周期。为机器周期。5.4 定时器定时器/计数器的编程和应用计数器的编程和应用 4种工作方式中,方式种工作方式中,方式0与方式与方式1基本相同,由于方基本相同,由于方式式0是为兼容是为兼容MCS-48而设,其计数初值计算复杂,在而设,其计数初值计算复杂,在实际应用中,一般不用方式实际应用中,一般不用方式0,而采用方式,而采用方式1。5.4.1 方式方式1应用应用 例例5-1 假设系统时钟频率采用假设系统时钟频率采用6MHz,要在要在P1.0上输出一上输出一个周期为个周期为2ms的方波,如图所示。的方波,如图所示。 方波的周期用方波的周期
11、用T0来确定,让来确定,让T0每隔每隔1ms计数溢出计数溢出1次,即次,即T0每隔每隔1ms产生一次中断,产生一次中断,CPU相应中断后,在相应中断后,在中断服务程序中对中断服务程序中对P1.0取反。取反。 (1) 计算初值计算初值 设:需要装入设:需要装入T0的初值为的初值为X,则有则有:(216-X)210-6=110-3 216-X=500 X=65036 X化为化为16进制,即进制,即X=FE0CH=1111111000001100B。 T0的初值为:的初值为: TH0=0FEH TL0=0CH (2) 初始化程序设计初始化程序设计 包括定时器初始化和中断系统初始化,主要是包括定时器初
12、始化和中断系统初始化,主要是对寄存器对寄存器IP、IE、TCON、TMOD的相应位进行正的相应位进行正确的设置,将计数初值送入定时器中。确的设置,将计数初值送入定时器中。 (3) 程序设计程序设计 中断服务程序除了完成要求的产生方波这一工作中断服务程序除了完成要求的产生方波这一工作之外,还要注意将计数初值重新装入定时器中,为之外,还要注意将计数初值重新装入定时器中,为下一次产生中断作准备。下一次产生中断作准备。 参考程序:参考程序: ORG 0000HRESET: AJMP MAIN ;转主程序转主程序 ORG 000BH ;T0的中断入口的中断入口 AJMP IT0P ;转转T0中断处理程序
13、中断处理程序IT0P ORG 0100H MAIN: MOV SP,#60H ;设堆栈指针设堆栈指针 MOV TMOD, #01H ;设置设置T0为方式为方式1 ACALL PT0M0 ;调用子程序调用子程序PT0M0HERE: AJMP HERE ;自身跳转自身跳转PT0M0: MOV TL0,#0CH ;初始化程序,设置初始化程序,设置T0初值初值 MOV TH0,#0FEH SETB TR0 ;启动启动T0 SETB ET0 ;允许允许T0中断中断 SETB EA ;CPU开中断开中断 RETITOP: MOV TL0,#0CH ;T0中断服务子程序,中断服务子程序,T0置初值置初值 M
14、OV TH0,#0FEH CPL P1.0 ;P1.0的状态取反的状态取反 RETI查询方式的参考程序查询方式的参考程序: MOV TMOD,#01H ;设置设置T0为方式为方式1 SETB TR0 ;接通接通T0LOOP: MOV TH0, #0FEH ;T0置初值置初值 MOV TL0, # 0CHLOOP1: JNB TF0, LOOP1 ;查询查询TF0标志标志 CLR TF0 ;T0溢出,清溢出,清TF0标志标志 CPL P1.0 ;P1.0的状态求反的状态求反 SJMP LOOP 例例5-2 假设系统时钟为假设系统时钟为6MHz,编写定时器编写定时器T0产生产生1秒定时的程秒定时的
15、程序。序。 (1)定时器)定时器T0工作方式的确定工作方式的确定 因定时时间较长,采用哪一种工作方式?由定时器各种工因定时时间较长,采用哪一种工作方式?由定时器各种工作方式的特性,可计算出:作方式的特性,可计算出: 方式方式0最长可定时最长可定时16.384ms; 方式方式1最长可定时最长可定时131.072ms; 方式方式2最长可定时最长可定时512 s。 选方式选方式1,每隔,每隔100ms中断一次,中断中断一次,中断10次为次为1s。 (2)计算计数初值)计算计数初值 因为:因为:(216-X)210-6 = 10-1 所以:所以:X=15536=3CB0H 因此:因此:TH0=3CH,
16、TL0=B0H (3)10次计数的实现次计数的实现 对于中断对于中断10次计数,可使次计数,可使T0工作在计数方式,工作在计数方式,也可用循环程序的方法实现。本例采用循环程序也可用循环程序的方法实现。本例采用循环程序法。法。(4)程序设计)程序设计 ORG 0000HRESET: LJMP MAIN ;上电,转主程序入口上电,转主程序入口MAIN ORG 000BH ;T0的中断入口的中断入口 LJMP IT0P;转转T0中断处理程序中断处理程序IT0P ORG 1000H MAIN: MOV SP,#60H ;设堆栈指针设堆栈指针 MOV B,#0AH ;设循环次数设循环次数10次次 MOV
17、 TMOD,#01H ;设设T0工作在方式工作在方式1 MOV TL0,#0B0H ;给给T0设初值设初值 MOV TH0,#3CH SETB TR0 ;启动启动T0 SETB ET0 ;允许允许T0中断中断 SETB EA ;CPU开放中断开放中断 HERE: SJMP HERE ;等待中断等待中断 ITOP: MOV TL0,#0B0H ;T0中断子程序,重装初值中断子程序,重装初值 MOV TH0,#3CH ; DJNZ B,LOOP CLR TR0 ;1s定时时间到,停止定时时间到,停止T0工作工作 LOOP: RETI 5.4.2 方式方式2的应用的应用 省去程序中重装初值的指令,并
18、可产生相当精确的定时时省去程序中重装初值的指令,并可产生相当精确的定时时间。间。 例例5-3 当当T0(P3.4)引脚上发生负跳变时,从引脚上发生负跳变时,从P1.0引脚上引脚上输出一个周期为输出一个周期为1ms的方波的方波,如图所示。(系统时钟为如图所示。(系统时钟为6MHz)(1)工作方式选择)工作方式选择 T0为方式为方式1计数,初值计数,初值 0FFFFH,即外部计数输入端即外部计数输入端T0(P3.4)发生一发生一次负跳变时,次负跳变时,T0加加1且溢出,溢出标志且溢出,溢出标志TF0置置“1”,发中断请求。在进入,发中断请求。在进入T0中断程序后,把中断程序后,把F0标志置标志置“
19、1”,说明,说明T0引脚上已接收了负跳变信号。引脚上已接收了负跳变信号。T1定定义为方式义为方式2定时。在定时。在T0引脚产生一次负跳变后,启动引脚产生一次负跳变后,启动T1每每500 s产生一次中产生一次中断,在中断服务程序中对断,在中断服务程序中对P1.0求反,使求反,使P1.0产生周期产生周期1ms的方波。的方波。(2)计算)计算T1初值初值 设设T1的初值为的初值为X: 则则 (28-X)210-6=510-4 X=28-250=6=06H(3)程序设计程序设计 ORG 0000H RESET: LJMP MAIN ;复位入口转主程序复位入口转主程序 ORG 000BH JMP IT0
20、P ;转转T0中断服务程序中断服务程序 ORG 001BH LJMP IT1P ;转转T1中断服务程序中断服务程序 ORG 0100HMAIN: MOV SP,#60H ACALL PT0M2 ;调用对调用对T0,T1初始化子程序初始化子程序LOOP: MOV C,F0 ;T0产生过中断了吗,产生过中产生过中断了吗,产生过中 断,则断,则F0=1 JNC LOOP ;T0没有产生过中断,则跳到没有产生过中断,则跳到 LOOP,等待等待T0中断中断 SETB TR1 ;启动启动T1 SETB ET1 ;允许允许T1中断中断HERE: AJMP HERE PT0M2: MOV TMOD,#25H
21、;初始化,初始化,T1为方式为方式2定定 时,时,T0 为方式为方式1计数计数 MOV TL0,#0FFH ;T0置初值置初值 MOV TH0,#0FFH SETB TR0 ;启动启动T0 SETB ET0 ;允许允许T0中断中断 MOV TL1,#06H ;T1置初值置初值 MOV TH1,#06H CLR F0 ;把把T0已发生中断标志已发生中断标志F0清清0 SETB EA RET IT0P: CLR TR0 ;T0中断服务程序,停止中断服务程序,停止T0计数计数 SETB F0 ;建立产生中断标志建立产生中断标志 RETIIT1P: CPL P1.0 ;T1中断服务,中断服务,P1.0
22、位取反位取反 RETI 在在T1定时中断服务程序定时中断服务程序IT1P中,由于方式中,由于方式2是初值可以自是初值可以自动重新装载的,省去了动重新装载的,省去了T1中断服务程序中重新装入初值中断服务程序中重新装入初值06H的指令。的指令。 例例5-4: 利用定时器利用定时器T1的方式的方式2对外部信号计数,要求每计满对外部信号计数,要求每计满100个数,将个数,将P1.0取反。取反。 本例是方式本例是方式2计数模式的应用。计数模式的应用。 (1)选择工作方式)选择工作方式 外部信号由外部信号由T1(P3.5) 脚输入脚输入,每发生一次负跳变计数器加每发生一次负跳变计数器加1,每输入,每输入1
23、00个脉冲,计数器产生溢出中断,在中断服务程个脉冲,计数器产生溢出中断,在中断服务程序中将序中将P1.0取反一次。取反一次。 T1工作在方式工作在方式2的控制字为的控制字为TMOD=60H。不使用不使用T0时,时,TMOD的低的低4位可任取,但不能使位可任取,但不能使T0进入方式进入方式3,这里取全,这里取全0。(2)计算)计算T1的初值的初值X=28-100=156=9CH 因此,因此,TL1的初值为的初值为9CH,重装初值寄存器重装初值寄存器TH1=9CH(3)程序设计程序设计 ORG 0000HLJMP MAINORG 001BH ;T1中断服务程序入口中断服务程序入口 CPL P1.0
24、 ;P1.0位取反位取反 RETI ORG 0100HMAIN: MOV TMOD,#60H ;设设T1为方式为方式2计数计数 MOV TL0,#9CH ;T0置初值置初值 MOV TH0,#9CH SETB TR1 ;启动启动T1HERE: AJMP HERE5.4.3 方式方式3的应用的应用 T0工作在方式工作在方式3时,时,TL0和和TH0被分成两个独立的被分成两个独立的8位定位定时器时器/计数器。其中,计数器。其中,TL0可作为可作为8位的定时器位的定时器/计数器;而计数器;而TH0只能作为只能作为8位的定时器。位的定时器。 当当T1用作串行口波特率发生器时,用作串行口波特率发生器时,
25、T0才设置为方式才设置为方式3。此时,。此时,常把常把T1设置为方式设置为方式2,用作波特率发生器。,用作波特率发生器。 例例5-5 假设某假设某MCS-51应用系统的两个外中断源已被占用,设置应用系统的两个外中断源已被占用,设置T1工作在方式工作在方式2,作波特率发生器用。现要求增加一个外部中断源,作波特率发生器用。现要求增加一个外部中断源,并控制并控制P1.0引脚输出一个引脚输出一个5kHz的方波。设系统时钟为的方波。设系统时钟为6MHz。(1)选择工作方式)选择工作方式 设置设置TL0工作在方式工作在方式3计数,把计数,把T0引脚(引脚(P3.4)作附加的外作附加的外中断输入端,中断输入
26、端,TL0初值设为初值设为0FFH,当检测到当检测到T0引脚电平出现负引脚电平出现负跳变时,跳变时,TL0溢出,申请中断,这相当于跳沿触发的外部中断源。溢出,申请中断,这相当于跳沿触发的外部中断源。TH0为为8位方式位方式3定时模式,定时控制定时模式,定时控制P1.0输出输出5kHz的方波信号。的方波信号。如图所示。如图所示。 (2)初值计算)初值计算 TL0的初值设为的初值设为0FFH。 5kHz的方波的周期为的方波的周期为200 s,因此因此TH0的定时时的定时时间为间为100 s。TH0初值初值X计算如下:计算如下: (28-X)210-6=110-4 X=28-50=206=CEH(3
27、)程序设计)程序设计 ORG 0000H LJMP MAIN ORG 000BH ;T0中断入口中断入口 LJMP TL0INT ;跳跳T0中断服务程序中断服务程序 ORG 001BH ;在在T1方式方式3时,时,TH0占用占用T1的中断的中断 LJMP TH0INT ;跳跳TH0中断服务程序中断服务程序 ORG 0100HMAIN:MOV TMOD,#27H ;T0方式方式3计数,计数,T1方式方式2定时定时 MOV TL0,#0FFH ;置置TL0初值初值 MOV TH0,#0CEH ;置;置TH0初值初值 MOV TL1,#dataL ;data为波特率常数为波特率常数 MOV TH1,
28、#dataH MOV TCON,#15H;启动启动T0 MOV IE,#9FH ;允许允许T0中断中断 TL0INT:MOV TL0,#0FFH;TL0中断服务程序,中断服务程序,TL0重新装入初值重新装入初值 CLR TR0 SETB TR1 中断处理中断处理 RETI TH0INT:MOV TH0,#0CEH ;TH0中断服务程序,中断服务程序,TH0重新装入初值重新装入初值 CPL P1.0 ;P1.0位取反输出位取反输出 RETI 5.4.4 门控制位门控制位GATE的应用的应用测量脉冲宽度测量脉冲宽度 介绍门控制位介绍门控制位GATE1的应用。的应用。GATE1可使定时可使定时器器/
29、计数器计数器T1的启动计数受的启动计数受INT1*的控制,可测量引的控制,可测量引脚脚INT1*(P3.3)上正脉冲的宽度(机器周期数)。上正脉冲的宽度(机器周期数)。参考程序:参考程序: ORG 0000HRESET: AJMP MAIN ;复位入口转主程序复位入口转主程序 ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#90H ;T1为方式为方式1定时控制字定时控制字 MOV TL1,#00H MOV TH1,#00H LOOP: JB P3.3,LOOP ;等待等待INT1*低低 SETB TR1 ;如果如果INT1*为低,启动为低,启动T1 LOOP1: JNB P3.3,LOOP1;等待等待INT1*升高升高 LOOP2: JB P3.3,LOOP2 ;等待等待INT1*降低降低 CLR TR1;停止停止T1计数计数 MOV A,TL1;T1计数值送计数值送A将将A中的中的T1计数计数值送显示缓冲区值送显示缓冲区 转换成显示的代码转换成显示的代码 LOOP3: LCALL DIR ;调用显示子程序调用显示子程序DIR(略)显示略)显示T1计数值计数值 AJMP LOOP3 ; 执行程序,使执行程序,使INT1*引脚上出现的正脉冲宽度以机器周引脚上出现的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西崇左市人民检察院公开招聘机关文员4人考前自测高频考点模拟试题及一套参考答案详解
- 2025年甘肃省定西市临洮县中铺镇选聘摩云村文书考前自测高频考点模拟试题有完整答案详解
- 2025年宁波余姚市卫生健康事业单位公开招聘卫生技术人员179人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025湖北交投集团部分中层管理岗位竞聘上岗20人考前自测高频考点模拟试题及答案详解(全优)
- 2025广东佛山市南海区狮山镇镇属企业工作人员招聘1人模拟试卷含答案详解
- 2025河南陆军第八十三集团军医院招聘34人模拟试卷及完整答案详解一套
- 2025黑龙江哈尔滨市巴彦县公安局招聘警务辅助人员32人模拟试卷及答案详解(考点梳理)
- 2025年浙江大学医学院附属儿童医院招聘眼科劳务派遣特检1人考前自测高频考点模拟试题带答案详解
- 2025江西吉安市永新县面向社会招聘城市社区专职网格员37人模拟试卷及答案详解(历年真题)
- 2025黑龙江哈尔滨市松北区卫生健康局招聘乡村医生10人模拟试卷附答案详解
- (2025年标准)学生癫痫免责协议书
- 电商企业客服流失的问题及解决对策研究
- 血常规及凝血功能解读
- 2025-2026学年人教版(2024)初中生物八年级上册(全册)教学设计(附目录)
- 2025年华为自动化控制试题
- (2025年)江苏省南通市辅警协警笔试笔试模拟考试试题含答案
- 盲人推拿培训教程课件
- 学堂在线 生活英语听说 章节测试答案
- 抗菌药物合理应用培训
- T/CCSAS 023-2022危险化学品企业紧急切断阀设置和使用规范
- 《财税基础(AI+慕课版)》全套教学课件
评论
0/150
提交评论