交通灯,加入急救车信号,急救车信号用外部中断0实现

2019-07-15 20:15发布

ORG 0000H
LJMP MAIN
ORG 0003H        //外部中断0,作为急救车信号,当p3.2按钮按下,即有急救车信号
LJMP INTO
ORG 000BH
LJMP INTR0
ORG 1000H
MAIN:
         MOV P3,#0FFH
         MOV TMOD,#01H
         MOV TH0,#3CH
         MOV TL0,#0B0H
         MOV IE,#83H
         SETB TR0
BEGIN:
         MOV P1,#11101110B          //东西红灯亮
     MOV P0,#11101110B          //南北红灯亮
         
HERE:SJMP HERE                          //等待中断
INTR0:
         MOV R0,30H
         MOV R1,31H
         PUSH ACC
         PUSH PSW
         MOV TH0,#3CH
         MOV TL0,#0B0H
         INC R0
         MOV 30H,R0
         CJNE R0,#20,RETURN
         MOV R0,#00
         MOV 30H,R0
         INC R1
         MOV 31H,R1
LOOP:
         
         CJNE R1,#3,L1
         MOV P1,#10111011B          //东西绿灯亮
         MOV P0,#11101110B          //南北红灯亮
                       
L1:        CJNE R1,#13,L2
        MOV P1,#11011101B          //东西黄灯亮

L2:        CJNE R1,#14,L3
        MOV P1,#11111111B          //东西黄灯灭
L3:        CJNE R1,#15,L4
        MOV P1,#11011101B          //东西黄灯亮

L4:        CJNE R1,#16,L5
        MOV P1,#11111111B          //东西黄灯灭
L5:        CJNE R1,#17,L6
        MOV P1,#11011101B          //东西黄灯亮

L6:        CJNE R1,#18,L7
        MOV P1,#11111111B          //东西黄灯灭

        MOV P1,#11101110B           //东西红灯亮
        MOV P0,#10111011B           //南北绿灯亮

L7:        CJNE R1,#29,L8
        MOV P0,#11011101B          //南北黄灯亮

L8:        CJNE R1,#30,L9
        MOV P0,#11111111B          //南北黄灯灭
L9:        CJNE R1,#31,L10
        MOV P0,#11011101B          //南北黄灯亮

L10:CJNE R1,#32,L11
        MOV P0,#11111111B          //南北黄灯灭
L11:CJNE R1,#33,L12
        MOV P0,#11011101B          //南北黄灯亮

L12:CJNE R1,#34,RETURN
        MOV P0,#11111111B          //南北黄灯灭
        MOV R1,#3
        MOV 31H,R1
        LJMP LOOP       
return:
        POP ACC
        POP PSW
        REti
INTO:
        CLR TR0
        PUSH PSW
        PUSH ACC
        MOV P1,#11101110B          //东西红灯亮
    MOV P0,#11101110B          //南北红灯亮
        ACALL DELAY
        POP PSW
        POP ACC
        SETB TR0
        RETI
DELAY:MOV R7,#04
D2:   MOV R6,#250
D3:   MOV R5,#250
      DJNZ R5,$
          DJNZ R6,D3
          DJNZ R7,D2
          RET
END
现在出现的问题是:按下按钮进入中断,定时器0关闭,红灯亮起,然后开启定时器,返回,但是返回不到原来的状态,比如原来是绿灯亮,但是返回直接到红灯亮

交通灯.zip 下载积分: 积分 -1 分
78.45 KB, 下载次数: 14, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。