定时器0 在工作方式2 下,跟其在工作方式 1 下的工作方式类似,主要区别是在这种工
作方式下,定时器/计数器是八位的定时器/计数器,只有低 8 位参与计数,而高 8 位不参与
计数,只是用作预置数的存放,计数范围是0-255,当计数溢出时,系统会自动将预置数装
入低八位的计数器,这些都是硬件自动完成的,不需要在程序中进行操作。这种工作方式的
好处是在进入中断的时候就可以直接进行计数,不需要对定时器进行赋初值。
使用定时器0 的工作方式2 步骤如下:
1) 设置定时器的工作状态时定时器还是计数器;
2) 设置定时器的工作方式;
3) 为定时器设置初值,这个决定了定时器的溢出间隔,即定时时间;
4) 使能定时器中断;
5) 开启定时器/计数器的运行控制位;
6) 使能全局中断;
7) 编写中断函数;
其中,这些步骤的使用方法同在工作方式 1 下都是一样的,只是在 TMOD 寄存器中需
要将M0M1 分别设置为01 以使其工作在方式2,另外TH0,TL0 两个寄存器的赋值也是不一 样
的,在工作方式 1 下,计数范围是65536,在 11.0592MHZ 的情况下,单计数周期最长定
时范围是71.11 毫秒,而在工作方式 2 下,计数范围是256,在 11.0592MHZ 的情况下,单
计数周期最长定时范围是0.277 毫秒。
其他的使用同工作方式 1。
|