51单片机定时器

来源:互联网 发布:剑三高冷道姑捏脸数据 编辑:程序博客网 时间:2024/05/21 10:36

详见:http://wenku.baidu.com/view/918d323067ec102de2bd89d3.html

1  定时器的TMODTCON寄存器

        工作方式寄存器TMOD用于设置定时器的工作模式和工作方式
        控制寄存器TCON:用于启动和停止定时器的计数,并控制定时器的状态;
        
        
        
2  定时器的工作方式
        方式0
        方式1
        方式2
        方式3
两种工作模式:
(1)计数器工作模式
就是对外部事件进行计数。计数脉冲来自相应的外部输入引脚T0(P3.4)或T1(P3.5)。当输入信号发生由1至0的负跳变(下降沿)时,计数器(TH0,TL0或TH1,TL1)的值增1。计数的最高频率一般为振荡频率的1/24Why?
(2)定时器工作模式
也是通过计数实现的。计数脉冲来自内部时钟脉冲每个机器周期计数值增1,每个机器周期=12个振荡周期,因此计数频率为振荡频率的1/12。所以时时间=计数值×机器周期
4种工作方式(方式0-方式3)
n当设置了定时器的工作方式并启动定时器工作后,定时器就按被设定好的工作方式独立工作,不再占用CPU只有在计数器计满溢出时才向CPU申请中断,占用CPU
nMCS-51的定时器T0有4种工作方式:
   即:方式0,方式1,方式2,方式3
   nMCS-51的定时器T13种工作方式:
   即:方式0,方式1,方式2
   方式0:
nC/T=0时,为定时工作模式,开关接到振荡器的12频器输出上,计数器对机器周期脉冲计数。其定时时间为:
(213-初值)×振荡周期×12
例如:若晶振频率为12MHz,则最长的定时时间为(213-0)×(1/12)×12us=8.191ms
nC/T=1时,为计数工作模式,开关与外部引脚T1(P3.5)接通,计数器对来自外部引脚的输入脉冲计数。当外部信号发生负跳变时计数器加1
   方式1:
n其定时时间为:
(216-初值)×振荡周期×12
例如:若晶振频率为12MHz,则最长的定时时间为
(216-0)×(1/12)×12us=65.536ms
   方式2:
M1M0=10,为自动恢复初值的8计数器。
优点:
THx作为常数缓冲器,当TLx计数溢出时,在置1溢出标志TFx的同时,还自动的将THx中的初值送至TLx,使TLx从初值开始重新计数。
方式0和方式1用于循环重复定时或计数时,在每次计数器挤满溢出后,计数器复0。若要进行新一轮的计数,就得重新装入计数初值。这样一来不仅造成编程麻烦,而且影响定时精度。而方式2有初值自动装入的功能,避免了这个缺点,可实现精确的定时
缺点:
只有8位计数器,定时时间短、计数范围小。其定时时间为:
 (28-初值)×振荡周期×12
若晶振频率为12MHz,则最长的定时时间为
(28-0)×(1/12)×12us=0.256ms
   方式3:
只适用于定时器/计数器T0T1不能工作在方式3
如果将T1置为方式3,则相当于TR1=0,停止计数 (此时T1可用来作串行口波特率产生器)
T0在方式3时被拆成两个独立的8位计数器:TH0TL0
n8位计数器TL0使用T0的状态控制位C/T*GATETR0INT0,它既可以工作在定时方式,也可以工作在计数方式
n8位定时器TH0被固定为一个8位定时器(不能作外部计数模式)并使用定时器T1的状态控制位TR1,同时占用定时器T1的中断请求源TF1。此时,定时器TH0的启动或停止只受TR1控制
TR1=1时,启动TH0的计数; TR1=0时,停止TH0的计数

   
原创粉丝点击