START:MOV R1,#0 ;秒计数器清0
MOV R2,#0 ;分计数器清0
MOV R3,#0 ;时计数器清0
MOV R4,#0 ;500 S计数器清0
MOV R5,#0 ;100ms计数器清0
MOV TMOD,#02H;置T0定时器方式2
MOV TL0,#06H ;置T0定时初值500 S
MOV TH0,#06H ;用于自动恢复定时初值
【例】因外中断INT0、INT1已被占用,试利用定时/计数器T0扩展成 外中断。
解:利用定时/计数器T0扩展成外中断时须有两个条件:一是外 部触发脉冲从P3.4输入(下降沿有效);二是将定时/计数器 设置成计数临界状态,即定时初值为FFH,再来一个脉冲即 能溢出触发中断。
编程如下:
ORG 0000H
INT0 触发 方式
IT0 88H
TCON低4位与外中断 INT0 、INT1有关,已在中断中叙述。
高4位与定时/计数器T0、T1有关。 ⑴ TF1:定时/计数器T1溢出标志。 ⑵ TF0:定时/计数器T0溢出标志。 ⑶ TR1:定时/计数器T1运行控制位。TR1=1,T1运行;TR1=0,T1停。⑷ TR0:定时/计数器 T0运行控制位。TR0=1,T0运行;TR0=0,T0停。 TCON的字节地址为88H,每一位有位地址,均可位操作。
在方式2,则应在中断服务程序中重装定时初值。
【例】试用T1方式2编制程序,在P1.0引脚输出周期为400S 的脉冲方波,已知fosc=12MHZ。
解:1) 计算定时初值 T1初值=28-200s/1s=256–200=56=38H TH1=38H;TL1=38H
2)设置TMOD:
0 0 10 0000 B=20H