看板Programming
标 题Re: [问题] 有人可以帮我检查程式(mcs8051)哪里出错了?
发信站元智大学风之塔 (Tue Jun 20 09:02:01 2006)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ncu!news.yzu!bbs.yzu
进入中断後,离开中断,好像没有清除中断旗标,
回到程式後又马上中断,永无止境的呼叫中断...
中断的过程~~有更改 R3 的值,但没有用到 delay 函数??
※ 引述《[email protected] (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 )