中断优先级控制及中断保护实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中断优先级控制及中断保护实验报告

-自动化1003 徐磊201003120325

一、电路原理图

工作原理:USB 线连接开发板,电源开关S1 打到usb 位置;J5 跳针跳到1*4 位置,按键B 对应INT0 (P3.2), 按键F 连接INT1 (P3.3),在平时状态下,发光二极管行以600ms 的时间间隔,依次点亮。B 键按下时INT0 中断处理程序点亮LED4 对应的发光管2 秒钟,其他发光管熄灭;F 键按下时LED5 对应发光管点亮 2 秒,其他发光管熄灭。

二、程序清单

ORG 0000H

AJMP MAIN 跳至主程序

ORG 03H 外部中断0中断向量地址

AJMP INT0_SUB

ORG 13H 外部中断1中断向量地址

AJMP INT1_SUB

ORG 0030H

MAIN:

MOV IE,#10000101B 使能INT0,INT1

MOV TCON,#00000101B 设INT0,INT1负缘触发

MOV IP,#01H 中断0优先

MOV SP,#30H 将堆栈移至30H

START:

MOV P1,#0FEH

MOV A,P1

ACALL DELAY200MS 调用延时子程序,以使观察LED的状态LOOP1:

RR A

MOV P1,A

ACALL DELAY200MS

ACALL DELAY200MS

ACALL DELAY200MS

AJMP LOOP1

DELAY2S: 延时2S子程序

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: 延时10MS子程序

MOV R5,#0BH

DEL_2:

MOV R3,#0EFH

DEL_3:

MOV R4,#09H

DJNZ R4,$

DJNZ R3,DEL_3

DJNZ R5,DEL_2

RET

INT0_SUB:

CLR EA 清除中断

ACALL DELAY10MS 延时10ms

JNB INT0,HA VEKEY0 确认有键

SETB EA 开启全局中断

RETI

HA VEKEY0:

PUSH PSW 保存寄存器数据

PUSH ACC

SETB RS0 选择寄存器组1

CLR RS1

SETB EA 开启全局中断

MOV P1,#0FEH

ACALL DELAY2S

POP ACC

POP PSW 取出保存寄存器数据

RETI

INT1_SUB:

CLR EA 清楚中断

ACALL DELAY10MS 延时10ms

JNB INT1,HA VEKEY1 确认有键

SETB EA 开启全局中断

RETI

HA VEKEY1:

PUSH PSW 保存寄存器数据

PUSH ACC

SETB RS1 选择寄存器组2

CLR RS0

SETB EA 开启全局中断

MOV P1,#0FDH

ACALL DELAY2S

POP ACC

POP PSW 取出保存寄存器数据

RETI

END

三、分析51单片机的中断运行机制,它具有哪些中断,对应的中断矢量地址是什么?中断使能位是什么?

1、中断运行机制:当MCS-C51单片机的CPU正在处理某件事情的时候,单片机外部或内部发生的某一时间请求CPU立即去处理,于是,CPU暂时中止当前的工作,转到终端服务处理程序处理所发生的事件。中断服务处理程序处理完该事件后,再回到原来被中止的地方,继续原来的工作。

2、具有7个中断:

(1)00H 复位:当9 脚RESET 为高电平,CPU 会跳至地址00H 处开始执行程序,亦即程序一定要从地

址00H 开始写起。

(2)03H(外部中断0):当INT0 引脚由高电位变至低电位时,CPU 会接受外部中断0,并跳至地址03H

处去执行中断子程序。

(3)0BH(计时/计数器0 中断):当CPU 接受计时/计数器0 中断置位而产生中断要求时,会跳至地址0BH

处去执行中断子程序。

(4)13H(外部中断1):当INTl 引脚由高电位变至低电位时,CPU 会接受外部中断1,并跳至地址13H

处去执行中断子程序。

(5)1BH(计时/计数器1 中断):当CPU 接受计时/计数器1 中断置位而产生中断要求时,会跳至地址1BH 刻去执行中断子程序。

(6)23H(串行中断1):当串行端口传送数据或接收数据完毕时,CPU 会接受串行中断,并跳至地址23H

处去执行中断子程序。

(7)2BH(计时/计数器2 中断):当CPU 接受计时/计数器2 产生中断要求时,会跳至地址2BH 处去执行中断子程序。此中断仅8052 系列才有。

3、中断使能位:8051 针对中断提供两层使能,第一层为EA 全局使能控制,第二层为分别控制EX0,ET0、EXl、ETl、ES、ET2。当8051 在初始状态时,寄存器的各个中断使能位都预设为“0”,即所有中断都禁止,故欲允许中断时,应先使能相对应的中断。

四、各中断源的硬件优先级的顺序是怎么样的?哪个寄存器能控制单片机中断源的优先级?怎么控制?

1、8051 对于各种中断优先权采用双层结构,首先对于优先权可由中断优先权寄存器(Interrupt Priority IP)设定该中断为高优先权或低优先权,高优先权可以中断低优先权,但是当优先权相同时(都为高优先权或低优先权),则由内部的轮询顺序决定哪一个中断被接受,轮询次序如图1所示:

2、IP 寄存器:PS PT1 PX1 PT0 PX0

PX0,PX1:外部中断0,1 的中断优先级控制;1->高优先级,0->低优先级。

PT0,PT1:定时器/计数器0,1 的中断优先级控制;

PS:串行口中断优先级控制。

P 中对应位全为零时,CPU 按照片内硬件优先级来顺序响应中断:

相关文档
最新文档