51有2个定时器,T0 T1,向上计数的。
TMOD 的低四位是T0部分,高四位是T1部分
TCON 是控制寄存器,主要控制 TFx 溢出标志,TRX 启动标志,
(三)TIMER0
12MHZ,1us一个机器周期。模式0为13位计数,也就是 2^13 = 8124,所以自由运行的一个周期应该为
8.124MS,实际测得 8.2MS。
CLR TR0
MOV TMOD,#0
SETB TR0
LOOP:
JNB TF0,LOOP
CLR TF0
CPL P1.0
JMP LOOP
模式1:
MOV TMOD,#1
其他不变,变为16位定时器,计算的溢出时间为 2^16 = 65535,也就是 65.535ms ,实测为 65.6ms
模式2:
备份的8位定时器,THX 为备份,TLX为计数
MAIN:
CALL SYSTEM_INIT
CLR TR0
MOV TMOD,#2H
MOV TH0,#80H
MOV TL0,#80H
SETB TR0
LOOP:
JNB TF0,LOOP
CLR TF0
CPL P1.0
JMP LOOP
8位定时器的溢出时间为 256us,自动恢复为 80H 为一半,实际结果符合,为 128us
对于T1 只是改了个 T0 就好了