十二,t c
例 1 设单片机晶振频率为 6 MHz,计算单片机定时器的最小定时时间和最大定时时间。
机器周期:T= 12÷6 MHz= 2μs
最小定时时间:Tmin= 2μs
最大定时时间:Tmax=216× 2=131072μs=131ms
例 2 设单片机晶振频率为 6 MHz,要求定时器T0产生100ms的定时,试确定计数初值及TMOD的内容。
采用方式1
机器周期:T= 12÷6 MHz= 2μs
脉冲计数:C= 100ms/2μs =5 ×104
则计数初值: TC= 216- 5 ×104 =15536
=3CB0H
TMOD: T0 M1M0 =01,C/T=0,GATE=0
T1可任意设置
TMOD= 0000001
1) 方式 0 的应用
例 1 利用定时器输出周期为 2 ms的方波, 设单片机晶振频率为 6 MHz。 选用定时器 /计数器T0 作定时器, 输出为P1.0 引脚, 2 ms 的方波可由间隔 1 ms的高低电平相间而成, 因而只要每隔 1 ms对 P1.0 取反一次即可得到这个方波。
定时 1 ms的初值:
因为 机器周期=12÷6 MHz= 2 μs
所以 1 ms内T0 需要计数N次:
N= 1 ms÷2 μs = 500
使用方式 0 的 13 位计数器即可, T0 的初值X为:
X=M-N=8192-500=7692=1E0CH
(0001 1110 0000 1100)
但是, 因为 13 位计数器中, 低 8 位 TL0 只使用了 5 位, 其余码均计入高 8 位TH0 的初值, 则 T0 的初值调整为
(000 1111 0000 01100)
TH0=0F0H, TL0=0CH
TMOD初始化: TMOD=00000000B=00H
(GATE=0, C/T=0, M1=0, M0=0)
TCON初始化: 启动TR0=1
IE初始化: 开放中断EA=1, 定时器T0 中断允许ET0=1
程序清单如下:
ORG 0000H
AJMP START; 复位入口
ORG 000BH
AJMP T0INT ; T0中断入口
ORG 0030H