单片机实验报告——中断
时间:2025-07-07
时间:2025-07-07
中断优先级控制及中断保护实验
一、实验目的
1、掌握单片机中断机制。
2、熟悉中断的应用和编程。
二、实验设备
统一电子开发平台。
三、实验要求
连接单片机最小系统和发光二极管阵列的电路并编写程序,学习单片机中断机制,及中断优先级和
中断保护的方法,使用独立式按键B 连接INT0(P3.2),按键F 连接INT1(P3.3),在平时状态下,发
光二极管行以200ms 的时间间隔,依次点亮。B 键按下时INT0 中断处理程序点亮P0.0 对应的发光管2
秒钟,其他发光管熄灭;F 键按下时P0.1 对应发光管点亮2 秒,其他发光管熄灭。 原理图:
四、源代码
;中断优先级控制及中断保护实验
;注意: J14 跳到8LED
; J15 跳到8LED
; J5 跳到1*4
; SW1 上的开关1 打开
; 按B 键控制INT0;按F 键控制INT1
ORG 0000H
AJMP MAIN ;跳至主程序。
ORG 03H ;外部中断0 中断向量地址。
AJMP INT0_SUB
ORG 13H ;外部中断1 中断向量地址。
AJMP INT1_SUB
ORG 0030H
MAIN:
MOV IE,#10000101B
MOV TCON,#00000101B
MOV IP,#01H;
MOV SP,#30H ;将堆栈移至30H。
NOP
START: MOV P1,#0FEH ;(注意16 进制数A--F 前要加0)
MOV A,P1
ACALL DELAY200MS ;调用延时子程序,以使观察LED 的状态 LOOP1: RR A
MOV P1,A
ACALL DELAY200MS ;调用延时子程序,以使观察LED 的状态 ACALL DELAY200MS
ACALL DELAY200MS
AJMP LOOP1
DELAY2S:
MOV R2,#0AH
DEL_1: ACALL DELAY200MS
DJNZ R2,DEL_1
RET
DELAY200MS:
;延迟200ms 子程序。
MOV R1,#014H
DEL_0: ACALL DELAY10MS
DJNZ R1,DEL_0
RET
DELAY10MS:
MOV R5,#0BH
DEL_2: MOV R3,#0EFH
DEL_3:
MOV R4,#09H
DJNZ R4,$
DJNZ R3,DEL_3
DJNZ R5,DEL_2
RET
;DELAY10MS 程序占用时钟周期为:[2+(2+4*9+4)*0XEF+4]*11=110484
;一个时钟周期是:T=1/11059200s,故延迟时间为:114084*T=9.990234375ms INT0_SUB:;1NT0 中断子程序。
CLR EA ;清除中断
ACALL DELAY10ms ;延迟10ms
JNB INT0,HAVEKEY0 ;确认有键
SETB EA ;开启全局中断
RETI
HAVEKEY0:
PUSH PSW ;保存寄存器数据。
PUSH ACC
SETB RS0 ;选择寄存器库1
CLR RS1 ;选择寄存器库1
SETB EA ;开启全局中断
MOV P1,#0FEH
ACALL DELAY2S
POP ACC ;取出保存寄存器数据。
POP PSW
RETI
INT1_SUB:
;1NT1 中断子程序。
CLR EA ;清除中断
ACALL DELAY10MS ;延迟
J NB INT1,HAVEKEY1 ;确认有键
SETB EA ;开启全局中断
RETI
HAVEKEY1:
PUSH PSW
PUSH ACC
SETB RS1
CLR RS0
SETB EA
MOV P1,#0FDH
ACALL DELAY2S
POP ACC
POP PSW
RETI
END
五、实验步骤
1.做实验前请将J14 和J15 跳到”8LED”位置,J5 跳到“1*4”位置
2.红色拨码开关打到ON 的位置SW1 上的”8LED Power”开关ON 打开
3. 输入源代码,进行调试。
下一篇:运输企业管理信息系统的设计与开发