;启动入口
ORG 0000H ;复位启动
LJMP START ;
ORG 000BH ;T0中断
LJMP T0INT ;
ORG 0100H ;
LJMP START ;
;
;主控程序
START: MOV SP,#80H ;初始堆栈值
MOV TMOD,#01H ;定时器0工作于方式1,50毫秒@12.000MHz
MOV TH0,#03CH ;定时器0定时时间=50mS
MOV TL0,#0B0H ;设置定时初值
MOV P1,#0FEH ;
MOV YSJS,#4 ;4*50mS=200mS
SETB ET0 ;允许定时器0中断
SETB EA ;开总中断
SETB TR0 ;定时器0启动,开始定时
JMP $ ;死循环等待中断
;
;定时器0中断服务程序
T0INT: PUSH PSW ;保护现场
PUSH ACC ;
;
DJNZ YSJS,QT0 ;
MOV YSJS,#4 ;4*50mS=200mS
MOV A,P1 ;
RL A ;
MOV P1,A ;
;
QT0: MOV TH0,#03CH ;定时器0定时时间=50mS
MOV TL0,#0B0H ;
POP ACC ;恢复现场
POP PSW ;
RETI ;
;
YSJS EQU 30H ;
END ;
;P1 输出低电平时,LED 发光
ORG 0000H
MOV A, #127
LP:
MOV P1, A
RR A
MOV R5, #5
DJNZ R7, $
DJNZ R6, $ - 2
DJNZ R5, $ - 4
JMP LP
END