资源描述:
《定时器计数器一定时器计数器的功能定时器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章定时器计数器一、定时器计数器的功能:1.定时器的功能:定时发出脉冲信号,向CPU申请中断,其定时间隔的长短及起始控制的时间均可由程序控制。例如某机械零件的热处理工艺曲线为:温度开始定时保温5分钟淬火清洗开始定时回火3小时空冷实际控制可以由单片机定时发出信号控制自动完成整个工艺过程。12.计数功能:对外界发生的事件计数,当达到程序规定的计数值时,输出一脉冲信号,申请中断。例如一啤酒生产线,如下图所示计数24瓶光电信号24瓶装完申请中断转入中断服务程序装箱输送带2二.8031单片机的定时器计数器控制8031片内有两个16位定时器计数器,称为T0
2、,T1,与其有关的特殊功能寄存器SFR有:1.方式控制字TMODT1T0GATEC/TM1M0GATEC/TM1M0字节地址89HGATE:门控位C/T:1计数M1M0:00方式00定时01方式110方式211方式332.定时器控制寄存器TCON字节地址88H可位寻址TF1TR1TF0TR0IE1IT1IE0IT0对T1控制与中断有关下章介绍TR0置1则启动中断响应后自动清0T0溢出中断标志例MOVTMOD#06H00000110门控位为0T1方式0T0方式2定时功能计数功能只要用SETBTR0,SETBTR1即可启动T0T1开始工作。43.控制
3、定时器计数器长度的寄存器TL0TH0TL1TH1用于存放计数初值,它是加1计数器,溢出中断。它们的字节地址是:TH1(8位)TL1(8位)TH0(8位)TL0(8位)8DH8BH8CH8AH控制定时器计数器时,计数长度可分别选择8位,16位,13位,与工作方式有关。注意它是加1计数器,例如选择8位计数器,最大可存255,如果置入初值250,则计数6次即溢出中断。5三.8031单片机定时器计数器的四种工作方式:以T0为例1.方式013位计数器TH0高8位TL0低5位TL0高3位无用①讨论定时方式选择T0方式0定时,TMOD的低4位为:00006例如
4、:要求从P1.0脚发出周期为2ms的方波只要选T0定时间隔1ms求反P1.0即可满足。定时工作方式中令计数器加1的周期是每个机器周期加1,即每隔12/f加110高电平1ms低电平1ms7设定时器时间常数为X则有(213-X)×(12/f)=1ms设f=6MHZ(213-X)×(12/6×106)=1×10-3X=8192-500=76927692=1E0CH0001111000001100B1111000000001100TH0=F0HTL0=0CH即共加500次,每次耗费2μs,共耗费时间1ms8②讨论计数方式:例如前述的啤酒生产线,计数24瓶
5、中断转入装箱程序。选T1方式0计数,TMOD的高4位为:0100初始常数X的计算:213-X=24X=8192-24=81688168=1FE8H0001111111101000B1111111100001000TH1=FFHTL1=08H加24次即溢出中断。程序如下:9ORG0000HAJMPMAINORG000BHAJMPIT0PORG001BHAJMPIT1PMAIN:MOVSP,#60HMOVTMOD,#40H;T0方式0定时,T1方式0计数MOVTH0,#0F0HMOVTL0,#0CH;T0定时1ms时间常数MOVTH1,#0FFHMO
6、VTL1,#08H;T1计数24次初始常数10SETBTR0;启动T0开始定时SETBTR1;启动T1开始计数SETBEA;允许CPU中断SETBET0;允许T0中断SETBET1;允许T1中断HERE:AJMPHERE;等待IT0P:MOVTH0,#0F0H;重装时间常数MOVTL0,#0CHCPLP1.0;P1.0求反,输出方波RETIIT1P:略112.方式116位计数器方式1与方式0唯一的区别是计数器是16位,即TL8位,TH8位,因此,计算时间常数的公式中213应改为216,上述程序如改用方式1,则常数计算为:定时(216-X)×(12
7、/f)=1×10-3解之X=FE0CH即TH0=FEH,TL0=0CH计数216-X=24解之X=FFE8H即TH1=FFH,TL0=E8H程序中的TMOD赋值相应改为方式1123.方式28位计数器,能自动重装时间常数,定时准确TL0作为8位计数器,当TL0计数溢出中断时,在置1溢出中断标志TF0的同时,自动将TH0中所装的原初始常数送TL0,使TL0从原初始常数开始重新计数。初始化时在TL0、TH0中装入同样的初始常数,TH0即记忆了该初始常数,因此在中断服务程序中不必重装时间常数,省去了重装时间常数的时间,因此定时准确。时间常数计算公式为:定
8、时(28–X)×12/f=定时间隔计数28–X=计数次数134.方式3三个8位定时器计数器方式3只适用于T0TL0作为8位定时器计数器,