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