利用51单片机完成一系列中断的操作,检验中断相关知识。
题目重述
实验前准备:51单片机的实验连线图如下所示
1.编程实现无中断时,发光二极管常亮,有外部中断时左移。
2.完成以下功能及验证:
①编程实现无中断时,发光二极管常亮,有外部中断时左移,有外部中断时右移。
②验证中断查询的自然优先顺序(写出验证方法及结果)。
③通过IP寄存器设置优先级,验证中断的两个优先级结构(写出验证方法及结果)。
问题分析以及求解思路
待完善(请耐心等待)
程序代码
问题1代码
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP LIGHT
MAIN:CLR IT0
SETB EA
SETB EX0
L: MOV P2,#00H
LCALL DELAY
SJMP L
LIGHT:MOV P0,#01111111B
MOV R5,#9
PAO: MOV P2,P0
LCALL DELAY
MOV A,P0
RL A
MOV P0,A
DJNZ R5,PAO
RETI
DELAY:MOV R6,#0FFH
DELAY1:MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,DELAY1
RET
END
问题2代码
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP LLIGHT
ORG 0013H
AJMP RLIGHT
MAIN:CLR IT0
SETB EA
SETB EX0
CLR IT1
SETB EX1
SETB PX1 设置高优先级
L: MOV P2,#00H
LCALL DELAY
SJMP L
RLIGHT:MOV R0,#01111111B
MOV R5,#9
PAO: MOV P2,R0
LCALL DELAY
MOV A,R0
RL A
MOV R0,A
DJNZ R5,PAO
RETI
LLIGHT:MOV R1,#11111110B
MOV R3,#9
RPAO: MOV P2,R1
LCALL DELAY
MOV A,R1
RR A
MOV R1,A
DJNZ R3,RPAO
RETI
DELAY:MOV R6,#0FFH
DELAY1:MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,DELAY1
RET
END