查看單個文章
舊 2008-05-11, 07:58 PM   #1
gjo3x06nk4
註冊會員
 
gjo3x06nk4 的頭像
榮譽勳章
UID - 295634
在線等級: 級別:8 | 在線時長:106小時 | 升級還需:11小時級別:8 | 在線時長:106小時 | 升級還需:11小時級別:8 | 在線時長:106小時 | 升級還需:11小時
註冊日期: 2008-03-10
文章: 133
精華: 0
現金: 99 金幣
資產: 919 金幣
預設 (MCS-51)89C52的一些程式問題!?



--------------------
閱讀本主題的最佳解答
--------------------


http://img237.imageshack.us/img237/320/002no2.jpg


;主程式
;
;
ORG 0000H
AJMP MAIN
;
ORG 0003H ;INT0中斷服務副程式起始處
AJMP INT0_INT
;
ORG 0013H ;INT1中斷服務副程式起始處
AJMP INT1_INT
;
MAIN: MOV SP,#30H
MOV TCON,#00000000B ;設定INT0及INT1為低準為觸發
MOV IP,#00000001B ;INT0設定為高優先權
SETB EA ;致能所有的中斷
SETB EX0 ;起始INT0中斷
SETB INT0 ;將INT0設為輸入端
SETB EX1 ;起始INT1
SETB INT1 ;將INT1設為輸入端
;
MOV A,#00000000B
LOOP: MOV P1,A
ACALL DELAY
CPL A
AJMP LOOP
;
;
;
INT0_INT: PUSH A
PUSH PSW
CLR RS1
SETB RS0
MOV R2,#07
MOV A,#11111100B
LEFT: MOV P1,A
ACALL DELAY
RL A
DJNZ R2,LEFT
POP PSW
POP A
RETI
;
;
;
INT1_INT: PUSH A
PUSH PSW
SETB RS1
CLR RS0
MOV R2,#07
MOV A,#01111111B
RIGHT: MOV P1,A
ACALL DELAY
RR A
DJNZ R2,RIGHT
POP PSW
POP A
RETI
;
;
;
DELAY: MOV R0,#248
DEL1: MOV R1,#200
DEL2: DJNZ R1,DEL2
DJNZ R0,DEL1
RET
;
END

現在我的動作要求為
一個七段顯示器
利用外部中斷INT0,INT1
INT0中斷執行 1 -> 2 -> 3 ->.......-> 9 優先數較低
INT1中斷執行 9 -> 8 -> 7 ->.......-> 1 優先數較高
主程式中斷執行閃爍
因此必須將8個LED燈改為七段顯示器
但程式部分就不太清楚該如何改
試過一些方法及書籍都不得其解
因接觸不深效果有限
煩請高手能舉手之勞幫解
敝人也會繼續試試
多謝幫忙
gjo3x06nk4 目前離線  
送花文章: 258, 收花文章: 118 篇, 收花: 436 次
回覆時引用此帖