標題: 單片機外部中斷通過INT1和INT0輸入(匯編程序) [打印本頁]
作者: lnuonuo 時間: 2018-12-15 16:51
標題: 單片機外部中斷通過INT1和INT0輸入(匯編程序)
在主程序中通過P1口在數碼管循環顯示十六進制數0~F(或倒序顯示十進制數9~0);外部中斷通過INT1和INT0輸入,由按鍵輸入,下降沿有效,INT1為高優先級,INT0為普通優先級,在INT0中斷服務程序中在P2口實現閃爍燈功能,閃爍十遍后結束,在INT1中斷服務程序中在P0口顯示自己的學號。要求演示高優先級可中斷低優先級,而低優先級不能中斷高優先級的效果。
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP IT0P
ORG 0013H
AJMP IT1P
ORG 0100H
MAIN:MOV P0,#0
MOV SP,#5FH
SETB EX0
SETB EX1
SETB IT0
SETB IT1
SETB EA
CLR PX0
SETB PX1
g1:mov r0,#0
mov r1,#16
g2:mov dptr,#table
mov a,r0
movc a,@a+dptr
inc r0
mov p1,a
mov r7,#5
g3:mov r6,#100
g4:mov r5,#250
g5:nop
nop
djnz r5,g5
djnz r6,g4
djnz r7,g3
djnz r1,g2
sjmp g1
IT0P: PUSH ACC
PUSH PSW
PUSH DPL
PUSH DPH
setb RS0
MOV R1,#5
LOOP:MOV A,#0FFH
MOV P2,A
MOV R7,#10
DELAY1:MOV R6,#50
DELAY2:MOV R5,#250
DELAY3:NOP
NOP
DJNZ R5,DELAY3
DJNZ R6,DELAY2
DJNZ R7,DELAY1
MOV A,#0H
MOV P2,A
MOV R7,#10
DELAY7:MOV R6,#50
DELAY8:MOV R5,#250
DELAY9:NOP
NOP
DJNZ R5,DELAY9
DJNZ R6,DELAY8
DJNZ R7,DELAY7
DJNZ R1,LOOP
POP DPH
POP DPL
POP PSW
POP ACC
RETI
IT1P:PUSH ACC
PUSH PSW
PUSH DPL
PUSH DPH
setb RS1
L1:mov r0,#0
mov r1,#10
L2:mov dptr,#table1
mov a,r0
movc a,@a+dptr
inc r0
mov p0,a
mov r7,#5
L3:mov r6,#100
L4:mov r5,#250
L5:nop
nop
djnzr5,L5
djnzr6,L4
djnzr7,L3
djnzr1,L2
POP DPH
POP DPL
POP PSW
POP ACC
MOVP0,#0
RETI
table1: db 5bh,3fh,06h,7dh,5bh,
06h,4fh,07h,4fh,5bh
table:db 3fh,06h,5bh,4fh,66h,6dh,7dh,
07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h
EN
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |