|
這是本人自己寫的代碼,本意是無中斷到來時單片機(jī)控制#1 數(shù)碼管循環(huán)顯示 0~F,時間間隔為 0.5s;外中斷 0 (INT0)和外中斷 1(INT1)分別接開關(guān) K1 和 K2,其中 INT1 為高優(yōu)先級, INT0 為低優(yōu)先級。按下 K1 時#1 數(shù)碼管停止顯示,#2 數(shù)碼管靜態(tài)顯示片外 RAM 地址為 1000H單元的低 4位數(shù)值;按下 K2 時#3數(shù)碼管靜態(tài)顯示片外 RAM地址為 1000H單元的高 4位數(shù)值。但是仿真后的結(jié)果卻是按下k1數(shù)碼管顯示的是F,按下k2數(shù)碼管全滅了。實在不知道到底哪里有問題。代碼和仿真圖如下,急求解答。
QQ圖片20181213201754.png (49.95 KB, 下載次數(shù): 43)
下載附件
2018-12-13 20:25 上傳
單片機(jī)匯編語言源碼:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0INT
ORG 0013H
LJMP INT1INT
ORG 0040H
MAIN:
MOV SP,#6FH
SETB PX1
SETB IT1
SETB EX1
CLR PX0
SETB IT0
SETB EX0
SETB EA
MOV 00H,#00
ACALL DISPLAY
LOOP:ACALL DELAY
ACALL DISPLAY
MOV A,00H
SUBB A,#0FH
JNC OUT
INC 00H
AJMP LOOP
OUT:AJMP MAIN
DISPLAY:MOV A,00H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
RET
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DELAY:
MOV R7,#50
DEL:
MOV R6,#20
DE:
MOV R5,#248
DJNZ R5,$
DJNZ R6,DE
DJNZ R7,DEL
RET
INT0INT:
MOV A,#7FH
MOV DPTR,#1000H
MOVX @DPTR,A
MOVX A,@DPTR
ANL A,#0FH
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
AJMP $
INT1INT:
MOV A,#7FH
MOV DPTR,#1000H
MOVX @DPTR,A
ANL A,#0F0H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
CLR EA
AJMP $
END
//////////////////////////////////////////////
|
|