Re: [問題] 有人可以幫我檢查程式(mcs8051)哪裡出錯了?
進入中斷後,離開中斷,好像沒有清除中斷旗標,
回到程式後又馬上中斷,永無止境的呼叫中斷...
中斷的過程~~有更改 R3 的值,但沒有用到 delay 函數??
※ 引述《bor1228.bbs@ptt.cc (NAMI NAMI)》之銘言:
> 我寫的是用七段顯示器00上數到60的計數器數到59時會歸00不在上數然後LED會開始閃爍
> 。
> 我是用INT0做外部中斷做為啟動上數用 當我還沒按INT0時七段顯示器會顯示00
> 按以後會開始上數。
> 程式沒錯誤可是輸出到應用板上卻沒效果只會一值顯示00按INT0沒反應請高手幫我檢查
> ~謝謝
> =============以下是程式
> ORG 00H
> JMP BEGIN
> ORG 03H
> JMP INTT0
> ORG 30H
> BEGIN:
> MOV SP,#60H
> MOV IE,#81H
> MOV R3,#00H
> BLOOP:
> MOV A,R3
> XRL A,#00H
> JNZ BL1
> CALL START0
> JMP BL0
> BL1:
> CALL START1
> BL0:
> JMP BLOOP
> INTT0:
> CLR EX0
> PUSH ACC
> INC R3
> MOV A,R3
> XRL A,#02H
> JNZ IN1
> MOV R3,#00H
> IN1:
> JNB p3.2,in1
> SETB ex0
> POP ACC
> RETI
> START0:
> MOV R2,#00H
> MOV A,R2
> ANL A,#0F0H
> ORL A,#80H
> MOV P0,A
> MOV A,R2
> ANL A,#0F0H
> SWAP A
> ORL A,#90H
> MOV P0,A
> RET
> START1:
> MOV R2,#00H
> MOV R5,#39
> L1:
> MOV A,R2
> ANL A,#0F0H
> ORL A,#80H
> MOV P0,A
> CALL DELAY
> MOV A,R2
> ANL A,#0F0H
> SWAP A
> ORL A,#90H
> MOV P0,A
> CALL DELAY
> DJNZ R5,L1
> MOV A,R2
> ADD A,#01H
> DA A
> CJNE A,#60,L2
> MOV R2,#00H
> CALL L3
> JMP START0
> L2:
> mov R2,A
> JMP L1
> L3:
> MOV P1,#00H
> CALL DELAY_264mS
> CALL DELAY_264mS
> CALL DELAY_264mS
> MOV P1,#0FFH
> CALL DELAY_264mS
> CALL DELAY_264mS
> CALL DELAY_264mS
> RET
> DELAY:
> MOV R7,#25
> D1:
> MOV R6,#00H
> DJNZ R6,$
> DJNZ R7,D1
> RET
> DELAY_264mS:
> MOV R4,#02H
> D2: CALL DELAY
> DJNZ R4,D2
> RET
> END
--
※ Origin: 元智大學 風之塔 <bbs.yzu.edu.tw>
※ From : 61-224-83-47.dynamic.hinet.net
※ X-Info: Re: [問題] 有人可以幫我檢查程式(mcs8051)哪裡出錯了?
※ X-Sign: 129EI89KiMSw097SH93U (06/06/20 9:02:01 )
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章