(最大定时131ms)
2)定时常数的设定:
TC=216-100ms/2μs =15536=3CB0H
即:TH0应装3CH,TL0应装B0H。
3)中断管理: 允许T0中断,开放总中断
即:IE应装10000010B。
4)启动定时器T0: SETB TR0
5)设置软件计数器初值:(如使用R7)
即R7应装0AH
6)动态停机:SJMP $
主程序如下:
MAIN:MOV TMOD,#01H;设定T0为方式1
MOV TH0,#3CH;装入定时常数高8位
MOV TL0,#0B0H;装入定时常数低8位 MOV IE,#82H;开放T0中断 SETB TR0 ;启动T0 MOV R7,#0AH ;设置软件计数器
SJMP $
(2)中断服务程序
任务: 1)恢复T0常数;
2)软件计数器减1;
3)判断软件计数器是否为0。为0时,改变P1.0状态,并恢复软件计数器初值;不为0时中断返回。
程序如下:
T0INT: MOV TL0,#0B0H ;恢复定时常数
MOV TH0,#3CH ;
DJNZ R7,NEXT
CPL P1.0
MOV R7,#0AH
NEXT: RETI
完整程序如下:
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP TOINT
ORG 0030H
MAIN: MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H MOV IE,#82H
SETB TR0
MOV R7,#0AH
SJMP $