//流水灯1s左移,采用定时器 中断方式 ,
ORG 0000H //有5个中断源,用哪一个?定时器T0已经决定T0中断
AJMP MAIN
ORG 000BH
AJMP D1
ORG 0030H
MAIN: MOV TMOD,#01H //定时器T0 工作方式1 2的16次方
MOV TH0,#3CH // 定时50ms 循环20次,实现定时1s
MOV TL0,#0B0H // 3CB0H=15536 12MHZ 50000 50ms 20次
MOV A,#01H // A=0000 0001B 第一个灯亮
MOV P1,A
MOV R7,#20
MOV IE,10000010B //开中断
SETB TR0 //开定时器T0
SJMP $ //原地踏步,等待中断
D1: MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R7,D2 //DJNZ减一不为0转移指令,进入循环
MOV R7,#20 //R7的值被改变了,要重新赋一次,以便于下一次循环。
RL A //R7已经循环20次,1s的时间已经够了,左移
MOV P1,A
D2: RETI
END