C51的定时器计数器.ppt
《C51的定时器计数器.ppt》由会员分享,可在线阅读,更多相关《C51的定时器计数器.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 89 89C51C51定时定时/计数器计数器 定时定时/计数器控制寄存器计数器控制寄存器 定时定时/计数器工作方式计数器工作方式 定时定时/计数器的应用计数器的应用第第6 6章章 89C5189C51的定时器的定时器/计数器计数器 定时定时/计数器是单片机系统一个重要的部计数器是单片机系统一个重要的部件,其工作方式灵活、编程简单、使用方便,件,其工作方式灵活、编程简单、使用方便,可用来实现可用来实现定时控制定时控制、延时延时、频率测量频率测量、脉宽脉宽测量测量、信号发生信号发生、信号检测信号检测等。此外,定时等。此外,定时/计数器还可作为串行通信中波特率发生器。计数器还可作为串行通信中波特率
2、发生器。89C5189C51有有两个可编程的定时器两个可编程的定时器/计数器计数器T1T1、T0T0。2 2种种工作模式工作模式:(1 1)计数器计数器工作模式工作模式(2 2)定时器定时器工作模式工作模式4 4种种工作方式工作方式(方式方式0-0-方式方式3)3)。6.1 6.1 定时器定时器/计数器的结构计数器的结构TMODTMOD:选择定时器选择定时器/计数器计数器T0T0、T1T1的工作模式和工作方式。的工作模式和工作方式。TCONTCON:控制控制T0T0、T1T1的启动和停止计数,同时包含了的启动和停止计数,同时包含了T0T0、T1T1的状态。的状态。定时器定时器:对片内机器时钟对
3、片内机器时钟(周期方波周期方波)进行计数进行计数计数器计数器:对对TxTx引脚引脚输入的负脉冲进行计数输入的负脉冲进行计数8989C51C51单片机内部有单片机内部有两个定时两个定时/计数器计数器T0T0和和T1T1,其核心其核心是计数器,基本功能是是计数器,基本功能是加加1 1。对外部事件脉冲(对外部事件脉冲(下降沿下降沿)计数,是计数器;对片)计数,是计数器;对片内内机周脉冲计数机周脉冲计数,是定时器。,是定时器。计数器由计数器由二个二个8 8位计数器位计数器组成。组成。定时时间和计数值可以编程设定,其方法是在计数器定时时间和计数值可以编程设定,其方法是在计数器内设置一个初值,然后内设置一
4、个初值,然后加加1 1计满后溢出计满后溢出。调整计数器调整计数器初值,可调整从初值,可调整从初值初值到到计满溢出计满溢出的数值,即调整了定的数值,即调整了定时时间和计数值。时时间和计数值。定时定时/计数器作为计数器时,外部事件脉冲必须从规计数器作为计数器时,外部事件脉冲必须从规定的引脚输入。且外部脉冲的最高频率不能超过时钟定的引脚输入。且外部脉冲的最高频率不能超过时钟频率的频率的1/241/24。6.1.1 6.1.1 工作方式控制寄存器工作方式控制寄存器TMODTMOD高高4 4位控制位控制T1T1低低4 4位控制位控制T0T0门控门控位位计数计数/定时定时方式选择方式选择工作方式工作方式选
5、择选择门控门控位位计数计数/定时定时方式选择方式选择工作方式工作方式选择选择G GC/TC/TM1M1M0M0G GC/TC/TM1M1M0M0TMODTMOD用于设定定时用于设定定时/计数器的工作方式计数器的工作方式低低4 4位位用于控制用于控制T0T0,高高4 4位位用于控制用于控制T1T1。M1M0 M1M0 工作方式选择位工作方式选择位M1M0M1M0工作方式工作方式功能功能0000方式方式0 01313位计数器位计数器0101方式方式1 11616位计数器位计数器1010方式方式2 2两个两个8 8位计数器,初值自动装入位计数器,初值自动装入1111方式方式3 3两个两个8 8位计数
6、器,仅适用位计数器,仅适用T0T0 C/T C/T 计数计数/定时方式选择位定时方式选择位 C/T=1,C/T=1,计数计数工作方式工作方式,对外部事件脉冲计数对外部事件脉冲计数,用作计数器。用作计数器。C/T=0,C/T=0,定时定时工作方式工作方式,对片内机周脉冲计数对片内机周脉冲计数,用作定时器。用作定时器。GATE GATE 门控位门控位 GATE=0GATE=0,运行只受运行只受TCONTCON中运行控制位中运行控制位TR0/TR1TR0/TR1的控制。的控制。GATE=1GATE=1,运行同时受运行同时受TR0/TR1TR0/TR1和外中断输入信号的双重控制。和外中断输入信号的双重
7、控制。只有当只有当INT0/INT1=1INT0/INT1=1且且TR0/TR1=1,T0/T1TR0/TR1=1,T0/T1才能运行。才能运行。TMODTMOD字节地址字节地址8989H,H,不能位操作不能位操作,设置设置TMODTMOD须用字节操作指令。须用字节操作指令。6.1.2 6.1.2 定时器定时器/计数器控制寄存器计数器控制寄存器TCONTCONTCONTCON低低4 4位与外中断位与外中断 、有关,已在中断中叙述。有关,已在中断中叙述。高高4 4位与定时位与定时/计数器计数器T0T0、T1T1有关。有关。TF1:TF1:定时定时/计数器计数器T1T1溢出标志。溢出标志。TF0:
8、TF0:定时定时/计数器计数器T0T0溢出标志。溢出标志。TR1:TR1:定时定时/计数器计数器T1T1运行控制位。运行控制位。TR1=1,T1TR1=1,T1运行运行;TR1=0,T1TR1=0,T1停。停。TR0:TR0:定时定时/计数器计数器T0T0运行控制位。运行控制位。TR0=1,T0TR0=1,T0运行运行;TR0=0,T0TR0=0,T0停。停。TCONTCON的字节地址为的字节地址为8888H H,每一位有位地址,均可位操作。每一位有位地址,均可位操作。TCONTCONT1T1中断中断标志标志T1T1运行运行标志标志T0T0中断中断标志标志T0T0运行运行标志标志INT1INT
9、1中断中断标志标志INT1INT1触发触发方式方式INT0INT0中断中断标志标志INT0INT0触发触发方式方式位名称位名称TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0位地址位地址8 8FHFH8 8EHEH8 8DHDH8 8CHCH8 8BHBH8 8AHAH8989H H8888H H6.2 6.2 定时器定时器/计数器的计数器的4 4种工作方式种工作方式 工作方式工作方式0 0 1313位位计数器,由计数器,由TL0TL0低低5 5位和位和TH0 8TH0 8位组成,位组成,TL0TL0低低5 5位计数满位计数满时不向时不向TL0T
10、L0第第6 6位进位,而是向位进位,而是向TH0TH0进位,进位,1313位计满溢出,位计满溢出,TF0TF0置置“1”“1”。最大计数值最大计数值2 21313=8192=8192。工作方式工作方式1 1 1616位位计数器,计数器,最大计数值为最大计数值为2 21616=65536=65536。当。当fosc=12MHZ,fosc=12MHZ,最最大定时大定时65536 65536 S S,而用方式而用方式0 0最大定时时间为最大定时时间为8192 8192 S.S.工作方式工作方式2 2 8 8位位计数器,计数器,仅用仅用TL0TL0计数计数,最大计数值为最大计数值为2 28 8=256
11、=256,计满溢,计满溢出后,一方面进位出后,一方面进位TF0TF0,使溢出标志使溢出标志TF0=1TF0=1;另一方面,使原另一方面,使原来装在来装在TH0TH0中的中的初值初值装入装入TL0TL0。优点:定时初值可自动恢复优点:定时初值可自动恢复,TH0TH0中存放初值中存放初值;缺点:计数范缺点:计数范围小。围小。适用于需要重复定时适用于需要重复定时,而定时范围不大的应用场合。,而定时范围不大的应用场合。工作方式工作方式3 3 方式方式3 3仅适用于仅适用于T0T0,T1T1无方式无方式3 3。T0T0方式方式3 3 在方式在方式3 3情况下情况下,T0T0被拆成二个独立的被拆成二个独立
12、的8 8位计数器位计数器TH0TH0、TL0TL0。TL0TL0可以为定时可以为定时/计数器;计数器;TH0TH0只能作为只能作为8 8位定时器。位定时器。TL0TL0使用使用T0T0原有的控制寄存器资源原有的控制寄存器资源:TF0,TR0,GATE,C/T,INT0,TF0,TR0,GATE,C/T,INT0,组成一个组成一个8 8位的定时位的定时/计数器;计数器;TH0TH0借用借用T1T1的中断溢出标志的中断溢出标志TF1,TF1,运行控制开关运行控制开关TR1,TR1,只能只能对片内机周脉冲计数对片内机周脉冲计数,组成另一个组成另一个8 8位定时器位定时器(不能用作计数器不能用作计数器
13、)。T0T0方式方式3 3情况下的情况下的T1T1 T1 T1由于其由于其TF1TF1、TR1TR1被被T0T0的的TH0TH0占用,计数器溢出时,只能占用,计数器溢出时,只能将输出信号送至串行口,即将输出信号送至串行口,即用作串行口波特率发生器用作串行口波特率发生器。6.3 6.3 计数器模式对输入信号的要求计数器模式对输入信号的要求 外部计数脉冲的最高频率为系统振荡器频率的外部计数脉冲的最高频率为系统振荡器频率的1/241/24,例如例如选选用用6 6MHzMHz频率的晶体,则可输入频率的晶体,则可输入250250KHzKHz的外部脉冲。选用的外部脉冲。选用1212MHzMHz频率的晶体,
14、则可输入频率的晶体,则可输入500500KHzKHz的外部脉冲。的外部脉冲。输入信号的高、低电平至少要保持一个机器周期。输入信号的高、低电平至少要保持一个机器周期。如如图图6-16-12 2所示,图中所示,图中TcyTcy为机器周期。为机器周期。图图6-126-126.4 6.4 定时器定时器/计数器的编程和应用计数器的编程和应用 4 4种工作方式中,种工作方式中,方式方式0 0与方式与方式1 1基本相同,由于方式基本相同,由于方式0 0是为是为兼容兼容MCS-48MCS-48而设,而设,初值计算复杂初值计算复杂,在实际应用中,在实际应用中,一般不一般不用方式用方式0 0,而采用方式,而采用方
15、式1 1。其中其中:N N与工作方式有关与工作方式有关:方式方式0 0时时,N=N=1313;方式方式1 1时时,N=N=1616;方式方式2 2、3 3时时,N=N=8 8。机周时间与主振频率有关机周时间与主振频率有关:机周时间机周时间=12/=12/foscfosc fosc=fosc=12MHZ12MHZ时时,1 1机周机周=1 1 S S;fosc=fosc=6MHZ6MHZ 时时,1 1机周机周=2 2 S S。计算定时计算定时/计数初值计数初值8 89C519C51定时定时/计数初值计算公式:计数初值计算公式:解:解:工作方式工作方式0 0:2 21313500500 S/2S/2
16、 S=8192-250=7942=1F06HS=8192-250=7942=1F06H 1F06H 1F06H化成二进制:化成二进制:1 1F06H=0001 1111 0000 0110BF06H=0001 1111 0000 0110B=000 =000 1111100011111000 0011000110 B B其中:其中:低低5 5位位0011000110前添加前添加3 3位位000000送入送入TL0TL0 TL0=000 TL0=000 0011000110B=06HB=06H;高高8 8位位1111100011111000B B送入送入TH0TH0 TH0=TH0=111110
17、0011111000B=F8HB=F8H。【计算定时计算定时/计数初值计数初值】已知晶振已知晶振6 6MHzMHz,msms,试分别试分别求出求出T0T0工作于方式工作于方式0 0、方式、方式1 1、方式、方式2 2、方式、方式3 3时的定时时的定时初值。初值。工作方式工作方式1 1:T0T0初值初值=2=21616-500-500 s s/2/2 s s=65536250=65286=FF06H=65536250=65286=FF06H TH0=FFH TH0=FFH;TL0=06HTL0=06H。工作方式工作方式2 2:T0T0初值初值=2=28 8-500-500 s s/2/2 s s
18、=256-250=6=256-250=6 TH0=06H TH0=06H;TL0=06HTL0=06H。工作方式工作方式3 3:T0T0方式方式3 3时,被拆成两个时,被拆成两个8 8位定时器,定时初值可分别位定时器,定时初值可分别计算,计算方法同方式计算,计算方法同方式2 2。两个定时初值一个装入。两个定时初值一个装入TL0TL0,另一个装入另一个装入TH0TH0。因此:因此:TH0=06HTH0=06H;TL0=06HTL0=06H。从上例中看到,从上例中看到,方式方式0 0时计算定时时计算定时初值比较麻烦初值比较麻烦,根据,根据公式计算出数值后,还要变换一下,容易出错,不如直接用公式计算
19、出数值后,还要变换一下,容易出错,不如直接用方式方式1 1,且方式,且方式0 0计数范围比方式计数范围比方式1 1小,小,方式方式0 0完全可以用方式完全可以用方式1 1代替,方式代替,方式0 0与方式与方式1 1相比,无任何优点相比,无任何优点。定时定时/计数器应用步骤计数器应用步骤 合理选择定时合理选择定时/计数器计数器工作方式工作方式 计算定时计算定时/计数器定时计数器定时初值初值(按上述公式计算按上述公式计算)编制应用程序编制应用程序 定时定时/计数器的初始化计数器的初始化 包括定义包括定义TMODTMOD、写入定时初值、设置中断系统、启写入定时初值、设置中断系统、启动定时动定时/计数
20、器运行等。计数器运行等。正确编制定时正确编制定时/计数器中断服务程序计数器中断服务程序 注意注意是否需要重装是否需要重装定时初值,若需要连续反复使用定时初值,若需要连续反复使用原定时时间,且未工作在方式原定时时间,且未工作在方式2 2,则应在中断服务程序,则应在中断服务程序中重装定时初值。中重装定时初值。6.4.1 6.4.1 方式方式1 1应用应用 例例6-16-1 假设系统时钟频率采用假设系统时钟频率采用6 6MHzMHz,要在上输出一个周期为要在上输出一个周期为2 2msms的方波,如的方波,如图图6-136-13所示。所示。方波的周期用方波的周期用T0T0来确定,让来确定,让T0T0每
21、隔每隔1 1msms计数溢出计数溢出1 1次次(每每1 1msms产生一次中断产生一次中断),CPUCPU响应中断后,在中断服务程序中对取响应中断后,在中断服务程序中对取反。反。(1)(1)计算初值计算初值X X 设初值为设初值为X X,则有则有:(2(21616-X)210X)210-6-6=110=110-3-3 2 21616-X=500 X=65036-X=500 X=65036 X X化为化为1616进制,即进制,即 所以,所以,T0T0的初值为的初值为:TH0=0TH0=0FEHFEH TL0=TL0=0CH0CH(2)(2)初始化程序设计初始化程序设计 对寄存器对寄存器IPIP、
22、IEIE、TCONTCON、TMODTMOD的相应位进行正确设置,的相应位进行正确设置,将计数初值送入定时器中。将计数初值送入定时器中。(3)(3)程序设计程序设计 中断服务程序除产生方波外,还要注意将计数初值重新装入中断服务程序除产生方波外,还要注意将计数初值重新装入定时器中,为下一次中断作准备。参考程序:定时器中,为下一次中断作准备。参考程序:ORG 0000HORG 0000HRESET:AJMP MAIN RESET:AJMP MAIN ;转主程序转主程序 ORG 000BHORG 000BH ;T0T0的中断入口的中断入口 AJMP IT0P AJMP IT0P;转转T0T0中断处理
23、程序中断处理程序IT0PIT0P ORG 0100HORG 0100HMAIN:MOV SP,#60H MAIN:MOV SP,#60H ;设堆栈指针设堆栈指针 MOV TMOD,#01HMOV TMOD,#01H;设置设置T0T0为方式为方式1 1 ACALL PT0M0ACALL PT0M0 ;调用子程序调用子程序PT0M0PT0M0HERE:AJMP HEREHERE:AJMP HERE ;自身跳转自身跳转PT0M0:MOV TL0,#0CHPT0M0:MOV TL0,#0CH;T0T0中断服务程序,中断服务程序,T0T0重新置初值重新置初值 MOV TH0,#0FEH MOV TH0,
24、#0FEH SETB TR0 SETB TR0 ;启动启动T0T0 SETB ET0 SETB ET0 ;允许允许T0T0中断中断 SETB EA SETB EA ;CPUCPU开中断开中断 RETRETITOP:MOV TL0,#0CH ITOP:MOV TL0,#0CH ;T0T0中断服务子程序,中断服务子程序,T0T0置初值置初值 MOV TH0,#0FEHMOV TH0,#0FEH的状态取反的状态取反 RETIRETI查询方式查询方式的参考程序的参考程序:MOV TMOD,#01H MOV TMOD,#01H ;设置设置T0T0为方式为方式1 1LOOP:LOOP:SETB TR0SE
25、TB TR0 ;接通接通T0T0 MOV TH0,#0FEH MOV TH0,#0FEH ;T0T0置初值置初值 MOV TL0,#0CH MOV TL0,#0CHLOOP1LOOP1:JNB JNB TF0TF0,LOOP1 ,LOOP1 ;查询查询TF0TF0标志标志 CLR TR0 CLR TR0 ;T0T0溢出,关闭溢出,关闭T0T0的状态求反的状态求反 SJMP LOOP SJMP LOOP TCONTCONT1T1中断中断标志标志T1T1运行运行标志标志T0T0中断中断标志标志T0T0运行运行标志标志INT1INT1中断中断标志标志INT1INT1触发触发方式方式INT0INT0中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C51 定时器 计数器
限制150内