ORG 0000H
LJMP MAIN
ORG 0003H
LJMP START
ORG 0013H
LJMP STOP
ORG 0100H
MAIN:MOV P1, #00H ;信号灯全灭
MOV IP, #04H ;设置INT1非为高优先级中断
SETB EX0 ;开INT0非中断
SETB EA ;开CPU中断
SJMP $ ;等待
ORG 0200
START:CLR EX0 ;关INT0非中断
SETB EX1 ;开INT1中断
MOV P1, #21H ;A线放行,B线禁止
LCALL D20S ;调20s延时子程序
MOV P1, #11H ;A线警告,B线禁止
LCALL D5S ;调5s延时子程序
MOV P1, #0CH ;A线禁止,B线放行
LCALL D20S ;调20s延时子程序
MOV P1, #0AH ;A线禁止,B线警告
LCALL D5S ;调5s延时子程序
AJMP START ;循环
ORG 0300H
STOP: CLR EX1 ;关INT1非中断
POP 7CH ;使中断返回到主程序等待处
POP 7DH
SETB EX0 ;开INT0非中断
RETI
ORG 0400H
D20S: MOV R1, #04H ;延时20s子程序
D20S1: MOV R2, #0FFH
D20S2: MOV R3, #0FFH
D20S3: NOP
NOP
NOP
DJNZ R3, D20S3
DJNZ R2, D20S2
DJNZ R1, D20S1
RET
ORG 0500H
D5S: MOV R5, #06H ;延时子5s子程序
D5S1: MOV R6, #0FFH
D5S2: MOV R7, #0FFH
D5S3: NOP
NOP
NOP
DJNZ R7, D5S3
DJNZ R6, D5S2
DJNZ R5, D5S1
RET
END
为什么POP 7CH
POP 7DH
可以使中断返回到主程序等待处??
帮帮忙,谢谢!! |