標(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)
下載附件
2014-6-5 13:02 上傳
作者:
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