標(biāo)題: 新手求助!中斷返回不了 怎么辦,急!。! [打印本頁(yè)]

作者: 聶小刀    時(shí)間: 2014-6-5 13:02
標(biāo)題: 新手求助!中斷返回不了 怎么辦,急。。。
ORG 0000H
        AJMP MAIN
        ORG 0003H
        AJMP JINGJI
        ORG 0030H


MAIN:        MOV SP,#80H
        SETB EX0
        SETB IT0
        SETB EA
        MOV P0,#00H
        MOV P1,#00H
        MOV P2,#00H
        MOV R7,#30
        MOV P1,#3EH
        MOV B,#10
        MOV R5,#0
        ACALL INTR
        MOV R7,#29

LOOP:        ACALL YANSHI
        ACALL INTR
        DEC R7
        CJNE R7,#9,LOOP
        ACALL HUANDENG
        MOV R7,#30

LOOP4:        MOV P1,#0E3H
        ACALL INTR
        ACALL YANSHI
        DEC R7
        CJNE R7,#10,LOOP4
        ACALL HUANDENG1
        AJMP MAIN

INTR:        MOV A,R7
        DIV AB
        MOV DPTR,#TAB
        MOVC A,@A+DPTR
        MOV P2,A
        MOV A,B
        MOVC A,@A+DPTR
        MOV P0,A
        MOV B,#10
        RET

YANSHI:        MOV R3,#10
LOOP3:        MOV R2,#100
LOOP2:        MOV R1,#250
LOOP1:        NOP
        NOP
        DJNZ R1,LOOP1
        DJNZ R2,LOOP2
        DJNZ R3,LOOP3
        RET

HUANDENG:MOV P1,#0DEH
        ACALL YANSHI
        DEC R7
        ACALL INTR
        MOV P1,#0FEH
        ACALL YANSHI
        DEC R7
        ACALL INTR
        INC R5
        CJNE R5,#5,HUANDENG
        MOV R5,#0
        RET

HUANDENG1:MOV P1,#0EDH
        ACALL YANSHI
        DEC R7
        ACALL INTR
        MOV P1,#0EFH
        ACALL YANSHI
        DEC R7
        ACALL INTR
        INC R5
        CJNE R5,#5,HUANDENG1
        MOV R5,#0
        RET

JINGJI:        PUSH P1
        PUSH ACC
        PUSH P0
        PUSH P2
        MOV R4,#10
        MOV P0,#0C0H
        MOV P2,#0C0H
        MOV P1,#0EEH
LL:        MOV A,R4
        DIV AB
        MOV DPTR,#TAB
        MOVC A,@A+DPTR
        MOV P2,A
        MOV A,B
        MOVC A,@A+DPTR
        MOV P0,A
        MOV B,#10
        ACALL YANSHI
        DEC R4
        CJNE A,#0,LL
        POP P2
        POP P0
        POP ACC
        POP P1
        RETI

TAB:  DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
        END
       
       
       

360截圖20140605130148194.jpg (61.22 KB, 下載次數(shù): 110)

360截圖20140605130148194.jpg

作者: ahshmj    時(shí)間: 2014-6-5 14:53
你的程序有不少的問題。首先外部中斷0需要設(shè)置工作方式,下跳沿觸發(fā)?低電平觸發(fā)?其次你是用的是51系列的,還是52系列的?如果是51系列的,棧底就不能設(shè)置到80H。
最重要的是中斷程序里面的控制流程的語(yǔ)句:          CJNE A,#0,LL ,程序里面的 acc 不可能為 “0”,所以跳不出循環(huán),就一直執(zhí)行不完中斷程序。
你按下面的改,試一試。

JINGJI:
        PUSH P1
        PUSH ACC
        PUSH P0
        PUSH P2
                push 04
        MOV R4,#10
        MOV P0,#0C0H
        MOV P2,#0C0H
        MOV P1,#0EEH
LL:
;        MOV A,R4
        DIV AB
        MOV DPTR,#TAB
        MOVC A,@A+DPTR
        MOV P2,A
        MOV A,B
        MOVC A,@A+DPTR
        MOV P0,A
        MOV B,#10
        ACALL YANSHI
        djnz r4, ll
;        DEC R4
;        CJNE A,#0,LL
        pop 04
        POP P2
        POP P0
        POP ACC
        POP P1
        RETI
作者: 劃過星空    時(shí)間: 2015-12-9 09:17
中斷缺少RETI




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1