《定时器计数器 (2)2PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《定时器计数器 (2)2PPT讲稿.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、定时器计数器第1页,共27页,编辑于2022年,星期六6.16.1定时器定时器定时器定时器/计数器的功能计数器的功能计数器的功能计数器的功能(1)定时功能定时功能定时功能定时功能(启动定时器工作后启动定时器工作后启动定时器工作后启动定时器工作后,每隔一个每隔一个每隔一个每隔一个机器周期机器周期机器周期机器周期加一加一加一加一)定定时时发发出出脉脉冲冲信信号号,向向CPU申申请请中中断断,其其定定时时间间隔隔的的长长短短及及起起始始控制的时间均可由程序控制。控制的时间均可由程序控制。例如某机械零件的热处理工艺曲线为:例如某机械零件的热处理工艺曲线为:温度温度开始定时开始定时保温保温5分钟分钟淬火
2、淬火清洗清洗开始定时开始定时回火回火3小时小时空冷空冷实际控制可以实际控制可以由单片机定时发出由单片机定时发出信号控制自动完成信号控制自动完成整个工艺过程。整个工艺过程。第2页,共27页,编辑于2022年,星期六(2 2)计数功能计数功能计数功能计数功能:(启动定时器工作后启动定时器工作后启动定时器工作后启动定时器工作后,每来每来每来每来一个脉冲一个脉冲一个脉冲一个脉冲加一加一加一加一)对对外外界界发发生生的的事事件件脉脉冲冲(Tx输输入入端端)进进行行计计数数,当当达达到到程程序序规规定定的计数值时,输出一脉冲信号,申请中断。的计数值时,输出一脉冲信号,申请中断。例如一啤酒生产线,如下图所示
3、例如一啤酒生产线,如下图所示:计数计数24瓶瓶光电信号检测光电信号检测24瓶装完申请中断瓶装完申请中断转入中断服务程序装箱转入中断服务程序装箱输送带输送带发射装置发射装置发射装置发射装置T0、T1输入端输入端:P3.4和和P3.5第3页,共27页,编辑于2022年,星期六6.28031单片机的定时器计数器控制单片机的定时器计数器控制8031片内有两个片内有两个16位定时器计数器,称为位定时器计数器,称为T0,T1,与其有,与其有关的特殊功能寄存器关的特殊功能寄存器SFR有:有:(1 1)方式控制字)方式控制字)方式控制字)方式控制字 TMODTMODT1T0GATEC/TM1M0GATEC/T
4、M1M0字节地址字节地址89HGATEGATE:门门控控位位,为为1时时,要要求求INTi引引脚脚高高电电平平,且且TRx=1时时,才才计计数;为数;为0时,只需时,只需TRx=1,即选通定时器,即选通定时器/计数器。计数器。C/TC/T:1计数计数;0定时定时M1M0M1M0:00方式方式0;01方式方式1;10方式方式2;11方式方式313位计数器位计数器;16位计数器;位计数器;自动再装入的自动再装入的8位计数器;位计数器;将将T0分成分成2个个8位计数器,位计数器,T1无效(停止计数)无效(停止计数)第4页,共27页,编辑于2022年,星期六(2 2)定时器控制寄存器)定时器控制寄存器
5、)定时器控制寄存器)定时器控制寄存器 TCONTCON字节地址字节地址88H可位寻址可位寻址TF1TR1TF0TR0IE1IT1IE0IT0对对T1控制控制对对T0控制控制与外部中断相关,已经介绍与外部中断相关,已经介绍TRx置置1,则,则启动启动定时器工作,定时器工作,TFx为为1,定时器,定时器x溢出溢出。例例MOVTMOD,#06H00000110门控位为门控位为0T1方式方式0T0方式方式2定时功能定时功能计数功能计数功能只要用只要用SETBTR0,SETBTR1即可启动即可启动T0T1开始工作。开始工作。不同方式不同方式不同方式不同方式清除不同清除不同清除不同清除不同第5页,共27页
6、,编辑于2022年,星期六(3 3)定时器初值寄存器)定时器初值寄存器)定时器初值寄存器)定时器初值寄存器TL0TH0TL1TH1用用于于存存放放计计数数初初值值,具具有有自自动动加加1功功能能,加加满满后后溢溢出出它它们们的的字字节节地址是地址是:TH1(8TH1(8位位位位)TL1(8)TL1(8位位位位)TH0(8TH0(8位位位位)TL0(8)TL0(8位位位位)8DH8BH8DH8BH8CH8AH8CH8AH控控制制定定时时器器/计计数数器器工工作作方方式式,计计数数长长度度可可分分别别选选择择8位,位,16位,位,13位。位。注注意意它它是是加加1计计数数器器,例例如如选选择择8位
7、位计计数数器器,最最大大可可存存255,如果置入初值,如果置入初值250,则计数,则计数6次即溢出中断。次即溢出中断。第6页,共27页,编辑于2022年,星期六6.3定时器计数器的四种工作方式(以定时器计数器的四种工作方式(以T0为例)为例)(1 1)方式)方式)方式)方式0 013位计数器位计数器(无自动重装入功能)无自动重装入功能)13位计数值,放在位计数值,放在TLx中的低中的低5位和位和THx中的中的8位,构成位,构成13位计数器。位计数器。讨论定时方式讨论定时方式讨论定时方式讨论定时方式 选择选择T0方式方式0定时,定时,TMOD的低的低4位为:位为:0000计数初值计算公式:计数初
8、值计算公式:计数初值计算公式:计数初值计算公式:N=(2N=(2nnt/T)t/T)n:n:为位数,为位数,为位数,为位数,t:t:定时时间,定时时间,定时时间,定时时间,T:T:机器周期时间。机器周期时间。机器周期时间。机器周期时间。第7页,共27页,编辑于2022年,星期六例例如如:要要求求从从P1.0脚脚发发出出周周期期为为2ms的的方方波波,只只要要选选T0定定时时间间隔隔1ms,求求反反P1.0即可满足。即可满足。定时工作方式中定时工作方式中,令计数器加令计数器加1的周期是每个的周期是每个机器周期加机器周期加1,10高电平高电平1ms低电平低电平1ms第8页,共27页,编辑于2022
9、年,星期六设定时器时间常数为设定时器时间常数为N设设f=6MHZ,则有机器周期,则有机器周期T=2usN=2N=21313-1000/2-1000/2N=8192-500=76927692=1E0CH7692=1E0CH0001111000001100B1111000000001100TH0=F0HTL0=0CH即共加即共加500次,每次耗费次,每次耗费2s,共耗费时间,共耗费时间1ms程序如下:程序如下:N=(2N=(2n nt/T)t/T)第9页,共27页,编辑于2022年,星期六 ORG 0000HORG 0000HORG 0000HORG 0000H LJMP MAIN LJMP MA
10、IN LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH ORG 000BH ORG 000BH LJMP DS0 LJMP DS0 LJMP DS0 LJMP DS0 ORG 1000H ORG 1000H ORG 1000H ORG 1000HMAINMAINMAINMAIN:MOV SP,#30H:MOV SP,#30H:MOV SP,#30H:MOV SP,#30H MOV TMOD,#00H MOV TMOD,#00H MOV TMOD,#00H MOV TMOD,#00H ;T0;T0;T0;T0方式方式方式方式0 0 0 0定时定时定时定时 MOV T
11、H0MOV TH0MOV TH0MOV TH0,#0F0H#0F0H#0F0H#0F0H MOV TL0 MOV TL0 MOV TL0 MOV TL0,#0CH#0CH#0CH#0CH ;T0T0T0T0定时定时定时定时1ms1ms1ms1ms时间常数时间常数时间常数时间常数 SETB TR0 SETB TR0 SETB TR0 SETB TR0 ;启动;启动;启动;启动T0T0T0T0开始定时开始定时开始定时开始定时 SETB EA SETB EA SETB EA SETB EA ;允许;允许;允许;允许CPUCPUCPUCPU中断中断中断中断 SETB ET0 SETB ET0 SETB
12、 ET0 SETB ET0 ;允许;允许;允许;允许T0T0T0T0中断中断中断中断 HERE:AJMP HEREHERE:AJMP HEREHERE:AJMP HEREHERE:AJMP HERE DS0DS0DS0DS0:MOV TH0MOV TH0MOV TH0MOV TH0,#0F0H#0F0H#0F0H#0F0H ;重装时间常数;重装时间常数;重装时间常数;重装时间常数 MOV TL0MOV TL0MOV TL0MOV TL0,#0CH#0CH#0CH#0CH CPL P1.0CPL P1.0CPL P1.0CPL P1.0 ;P1.0;P1.0;P1.0;P1.0求反求反求反求反,
13、输出方波输出方波输出方波输出方波 RETIRETIRETIRETI第10页,共27页,编辑于2022年,星期六讨论计数方式:讨论计数方式:如前述啤酒生产线,计数如前述啤酒生产线,计数24瓶中断转入装箱程序瓶中断转入装箱程序选选T1方式方式0计数,计数,TMOD的高的高4位为位为:0100初始常数初始常数X的计算的计算:213-X=24X=8192-24=81688168=1FE8H8168=1FE8H0001111111101000B111111111111111100001000TH1=FFHTL1=08H加加24次即溢出中断。程序如下次即溢出中断。程序如下:第11页,共27页,编辑于202
14、2年,星期六ORG 0000HORG 0000HORG 0000HORG 0000H LJMP MAIN LJMP MAIN LJMP MAIN LJMP MAIN ORG 001BH ORG 001BH ORG 001BH ORG 001BH LJMP DS1 LJMP DS1 LJMP DS1 LJMP DS1 ORG1000HORG1000H MAIN:MOV SP,#60H MAIN:MOV SP,#60H MAIN:MOV SP,#60H MAIN:MOV SP,#60H MOV TMOD,#40H MOV TMOD,#40H MOV TMOD,#40H MOV TMOD,#40H
15、;T1;T1;T1;T1方式方式方式方式0 0 0 0计数计数计数计数 MOV TH1MOV TH1MOV TH1MOV TH1,#0FFH#0FFH#0FFH#0FFH MOV TL1 MOV TL1 MOV TL1 MOV TL1,#08H#08H#08H#08H ;T1T1T1T1计数计数计数计数24242424次初始常数次初始常数次初始常数次初始常数 SETBTR1SETBTR1;启动;启动;启动;启动T1T1开始开始开始开始 计数计数计数计数 SETB EA SETB EA SETB EA SETB EA ;允许;允许;允许;允许CPUCPUCPUCPU中断中断中断中断 SETB E
16、T1 SETB ET1 SETB ET1 SETB ET1 ;允许;允许;允许;允许T1T1T1T1中断中断中断中断HEREHEREHEREHERE:AJMP HEREAJMP HEREAJMP HEREAJMP HERE ;等待;等待;等待;等待 DS1:DS1:DS1:DS1:略;装箱指令,并重新设置计数初值略;装箱指令,并重新设置计数初值略;装箱指令,并重新设置计数初值略;装箱指令,并重新设置计数初值 RETIRETIRETIRETI第12页,共27页,编辑于2022年,星期六(2)方式)方式116位计数器(位计数器(定时时间最长定时时间最长)方方式式1与与方方式式0唯唯一一的的区区别别
17、是是计计数数器器是是16位位,即即TL8位位,TH8位位,因因此此,计计算算时时间间常常数数的的公公式式中中213应应改改为为216,上上述述2个例题如改用方式个例题如改用方式1,则常数计算为:,则常数计算为:例题例题1:定时定时(216-X)(12/f)=110-3解之解之X=FE0CH即即TH0=FEH,TL0=0CH例题例题2:计数计数216-X=24解之解之X=FFE8H即即TH1=FFH,TL0=E8H程序中的程序中的TMOD赋值相应改为方式赋值相应改为方式1。N=(2N=(2n nt/T)t/T)定时数定时数*机器周期机器周期=定时时间定时时间第13页,共27页,编辑于2022年,
18、星期六(3)方式)方式28位计数器,位计数器,能自动重装,定时准确能自动重装,定时准确TL0/TL1作作为为8位位计计数数器器,当当TL0/TL1计计数数溢溢出出中中断断时时,在在置置1溢溢出出中中断断标标志志TF0的的同同时时,自自动动将将TH0中中所所装装的的原原初始常数送初始常数送TL0,使,使TL0从原初始数开始重新计数。从原初始数开始重新计数。TH0/TH1作作为为初初值值寄寄存存器器用用,因因此此在在中中断断响响应应后后不不必必重重装装时时间间常常数数,省省去去了了重重装装时时间间常常数数的的时时间间,因因此此定定时时准准确。确。设置初始值时,要同时送设置初始值时,要同时送THx和
19、和TLx。时间常数计算公式为:时间常数计算公式为:定时:定时:(28X)12/f=定时间隔定时间隔计数:计数:28X=计数次数计数次数第14页,共27页,编辑于2022年,星期六注意:定时注意:定时/计数器工作在方式计数器工作在方式2时考虑如下问题时考虑如下问题(1 1)只给)只给)只给)只给THxTHx赋初值赋初值赋初值赋初值(2 2)只给)只给)只给)只给TLxTLx赋初值赋初值赋初值赋初值(3 3)同时给)同时给)同时给)同时给THxTHx、TLxTLx赋初值赋初值赋初值赋初值问启动定时器工作后出现什么情况?问启动定时器工作后出现什么情况?问启动定时器工作后出现什么情况?问启动定时器工作
20、后出现什么情况?第15页,共27页,编辑于2022年,星期六(4)方式)方式3方式方式3只适用于只适用于T0TL0作作为为8位位定定时时器器/计计数数器器,使使用用T0的的C/T、GATE、TR0、TF0,可定时可定时可定时可定时亦亦亦亦可计数可计数可计数可计数,外部计数脉冲从,外部计数脉冲从T0引脚输入,引脚输入,TR0置置1启动。启动。TH0可可单单独独用用作作8位位定定时时器器,不不不不能能能能用用用用作作作作外外外外部部部部计计计计数数数数。置置1TR1即即可可启启动动,溢溢出出中中断断时时,将将TF1置置1,即即它它占占占占用用用用了了了了T1T1的的启启动动位位和和中中断断源源。(
21、TL0和和TH0作作为为2个个定定时时器器了了,侵侵占占了了T1的的启启动动位位和和中中断断源源);看看TCON寄存器。寄存器。TH1、TL1当当定定时时器器T0定定义义为为工工作作方方式式3时时,定定时时器器T1常常用用作作串串行行口口的的波波特特率率发发生生器器,T1仍仍可可选选择择方方式式0、1、2,用用TL1、TH1分分别别作作为为13、16、8位位计计数数器器,可可以以改改变变不不同同的的波波特特率率范范围围。此此时时的的T1不能使用中断源不能使用中断源。第16页,共27页,编辑于2022年,星期六例:例:按下述要求,编写按下述要求,编写8051定时器计数器定时器计数器初始化初始化初
22、始化初始化程序段程序段(1)用用T0计数外界事件计数外界事件192次申请中断次申请中断(2)用用T1定时定时50ms申请中断,设晶振频率申请中断,设晶振频率f=6MHZ分析:分析:分析:分析:TMOD=14HTMOD=14H00010001 01000100BB设定设定设定设定T0T0:方式:方式:方式:方式0 0计数,计数,计数,计数,T1T1:方式:方式:方式:方式1 1定时定时定时定时T0计数初始常数计数初始常数213X=192X=8192192=80008000=1F40H=00000011111010111110100000000000BTH0=FAHTL0=00HTH0=FAHTL
23、0=00HT1定时初始常数定时初始常数(216X)(12/f)=5010-3X=65536-25103=40536=9E58HTH1=9EHTL1=58HTH1=9EHTL1=58H第17页,共27页,编辑于2022年,星期六程序段如下:程序段如下:程序段如下:程序段如下:MOVSP,#60H;建立堆栈建立堆栈MOVTMOD,#14H;T0方式方式0计数,计数,T1方式方式1定时定时MOVTL0,#00H;T0计数计数192次初始常数次初始常数MOVTH0,#0FAHMOVTL1,#58H;T1定时定时50ms时间常数时间常数MOVTH1,#9EHSETBTR0;启动启动T0开始计数开始计数S
24、ETBTR1;启动启动T1开始定时开始定时SETBEA;以下以下3条指令条指令开中断开中断SETBET0SETBET1第18页,共27页,编辑于2022年,星期六6.46.4关于定时器的小结与补充:关于定时器的小结与补充:关于定时器的小结与补充:关于定时器的小结与补充:6.4.1定时定时/计数两种功能计数两种功能:8051有有T1、T0两个定时两个定时/计数器,具有定时计数器,具有定时/计数两种功能。计数两种功能。C/T=0C/T=0选择选择定时定时功能,此时计数器加功能,此时计数器加1频率为频率为一个机器周期一个机器周期加加1,即即每隔每隔12/f秒加秒加1。C/T=1C/T=1选择选择计数
25、计数功能,此时计数器加功能,此时计数器加1频率频率由外部输入的脉冲频率由外部输入的脉冲频率决定决定,信号由,信号由T0和和T1(8051的的14脚和脚和15脚)输入,脚)输入,当当T0或或T1引脚输入引脚输入一个脉冲信号时,相应的计数器加一个脉冲信号时,相应的计数器加1,该脉冲信号该脉冲信号该脉冲信号该脉冲信号不一定等间隔,不一定等间隔,不一定等间隔,不一定等间隔,与与与与外部事件的外部事件的外部事件的外部事件的发生频率相关发生频率相关发生频率相关发生频率相关。定时和计数的主要区别是令定时和计数的主要区别是令定时和计数的主要区别是令定时和计数的主要区别是令计数器加计数器加计数器加计数器加1 1
26、的脉冲信号的脉冲信号的脉冲信号的脉冲信号来源不同。来源不同。来源不同。来源不同。第19页,共27页,编辑于2022年,星期六振荡器振荡器TH1TL1TF1中断中断&GATEINT1TR1控制控制12T1端端与门与门或门或门计数脉冲信号选择及门控端的作用计数脉冲信号选择及门控端的作用C CT T第20页,共27页,编辑于2022年,星期六6.4.2计数初值计数初值N的计算公式的计算公式:定时:定时:定时:定时:(2nN)(12/f)=定时间隔定时间隔t;或者或者:N=(2nt/T)计数:计数:计数:计数:2nN=计数次数计数次数式中的式中的n,由工作方式决定,当分别选择工作方式分别为,由工作方式
27、决定,当分别选择工作方式分别为0、1、2、3时,时,n=13n=13、1616、8 8、8 8式中的式中的式中的式中的f f为外接晶振频率,单位为为外接晶振频率,单位为为外接晶振频率,单位为为外接晶振频率,单位为 MHMHZ Z第21页,共27页,编辑于2022年,星期六6.4.36.4.3定时间隔和计数的范围:以定时间隔和计数的范围:以定时间隔和计数的范围:以定时间隔和计数的范围:以6MHZ6MHZ晶振为例晶振为例晶振为例晶振为例方式方式方式方式013013位计数器位计数器位计数器位计数器(无自动重装入)无自动重装入)无自动重装入)无自动重装入)定时范围:定时范围:(2 2163841638
28、4)ss初值为初值为0时,时,16384计数范围:计数范围:18192方式方式方式方式116116位计数器位计数器位计数器位计数器(无自动重装入)无自动重装入)无自动重装入)无自动重装入)定时范围:定时范围:(2 2131072131072)ss计数范围计数范围:165536方式方式方式方式2 2和方式和方式和方式和方式3838位计数器(其中方式位计数器(其中方式位计数器(其中方式位计数器(其中方式2 2具有自动重转入功能)具有自动重转入功能)具有自动重转入功能)具有自动重转入功能)定时范围:定时范围:(2 2512512)ss计数范围:计数范围:1256总结:总结:总结:总结:方式方式方式方
29、式1 1定时时间最长,最大可为定时时间最长,最大可为定时时间最长,最大可为定时时间最长,最大可为131ms131ms左右;左右;左右;左右;方式方式方式方式2 2定时精度最高。定时精度最高。定时精度最高。定时精度最高。第22页,共27页,编辑于2022年,星期六6.4.46.4.4扩大定时间隔的方法扩大定时间隔的方法扩大定时间隔的方法扩大定时间隔的方法:例:例:例:例:要求用一台单片机控制要求用一台单片机控制10台加热炉,每隔台加热炉,每隔10秒钟进行一秒钟进行一次温度测量。则需要定时次温度测量。则需要定时10秒。设秒。设f=6MHZ,选用,选用T0。分析:分析:分析:分析:可选择定时可选择定
30、时100mS中断,当中断中断,当中断100次时,可达到次时,可达到10秒。秒。计算定时计算定时100mS100mS的时间常数的时间常数X,只能选择方式只能选择方式只能选择方式只能选择方式1 1。(2nX)(12/f)=定时间隔定时间隔(216X)210-6=10010-3X=3CB0HX=3CB0H即即TH0=3CHTL0=B0H程序如下:程序如下:程序如下:程序如下:第23页,共27页,编辑于2022年,星期六ORG0000HLJMPSTARTORG000BHLJMPDS0ORG1000HSTART:MOVSP,#30HMOVTMOD,#01H;T0方式方式1定时定时MOVTH0,#3CHM
31、OVTL0,#0B0H;定时定时100mS时间常数时间常数MOVR0,#0;中断次数计数单元清零中断次数计数单元清零SETBTR0;启动启动T0SETBEA;允许允许CPU中断中断SETBET0;允许;允许T0中断中断SJMP$;以下以下CPU可执行主程序可执行主程序第24页,共27页,编辑于2022年,星期六T0中断服务程序:中断服务程序:DS0:MOVTH0,#3CHMOVTL0,#0B0H;重装重装100mS时间常数时间常数INCR0;中断次数计数加中断次数计数加1CJNER0,#100,RETN;到到10秒了吗?秒了吗?MOVR0,#0;10秒已到,清中断计数秒已到,清中断计数LCAL
32、LCYPID;调温度控制程序调温度控制程序RETN:RETI亦可采用亦可采用亦可采用亦可采用DJNZDJNZ指令,只需把指令,只需把指令,只需把指令,只需把R0R0的初值改为的初值改为的初值改为的初值改为100100即可。即可。即可。即可。第25页,共27页,编辑于2022年,星期六综合应用实例:综合应用实例:试利用试利用试利用试利用定时器定时器定时器定时器0 0设计一秒表,只考虑秒设计一秒表,只考虑秒设计一秒表,只考虑秒设计一秒表,只考虑秒十位和个位十位和个位十位和个位十位和个位,十位存于十位存于十位存于十位存于51H51H,个位存于,个位存于,个位存于,个位存于50H50H,大于,大于,大
33、于,大于9999秒后从秒后从秒后从秒后从0000秒秒秒秒重新开重新开重新开重新开始计数始计数始计数始计数。请根据上述要求编写相应的程序。请根据上述要求编写相应的程序。请根据上述要求编写相应的程序。请根据上述要求编写相应的程序。定时器定时器定时器定时器0 0关键:关键:关键:关键:1s1s后,(后,(后,(后,(50H50H)内容加)内容加)内容加)内容加1 1,进位到,进位到,进位到,进位到1010后,高位放在后,高位放在后,高位放在后,高位放在(51H51H)内;)内;)内;)内;1s1s如何实现?如何实现?如何实现?如何实现?100ms*10=1s100ms*10=1s或或或或10ms*100=1s10ms*100=1s选择定时器方式选择定时器方式选择定时器方式选择定时器方式0 0或方式或方式或方式或方式1 1第26页,共27页,编辑于2022年,星期六复习要点定时器与计数器的区别计数方式,外部管脚信号来源工作方式控制寄存器TMOD启/停与中断控制寄存器TCON定时/计数的工作方式(0,1,2,3)初值如何设置与计算初始化程序编写第27页,共27页,编辑于2022年,星期六
限制150内