标题: 单片机外部中断通过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://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |