LED BIT P1.0 ;LED 赋于 P1.0
ORG 00H ;下一条指令地址
AJMP MAIN ;转主程序MIAN
ORG 0BH ;定时中断T0入口地址
AJMP T0INT ;转定时子程序
ORG 30H ;MAIN标号地址
MAIN:
MOV TMOD,#01H ;定时器工作方式1,16位计数器
MOV TH0,#3CH ;定时常数初值3CB0H,为50ms
MOV TL0,#0B0H
SETB EA ;开总中断
SETB ET0 ;允许定时器T0中断
SETB TR0 ;允许定时器T0计数
MOV R0,#10 ;中断次数
AJMP $ ;原地踏步,等待中断到来
T0INT: ;T0中断子程序
MOV TH0,#3CH ;重赋初值
MOV TL0,#0B0H
DJNZ R0,RTI ;R0减1,未到0 ,转到RTI: RETI 。
MOV R0,#10 ;R0为0,重新赋值10 。此时时间刚好为50msX10=0.5s
CPL LED ;P1.0取反。即LED每0.5秒亮或灭一次。
RTI:
RETI ;跳出中断子程序 ,返回AJMP $继续等待下一次中断。
END ;程序结束