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

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

中断优先级控制及中断保护

学生:何绍金

学号:201203870408

专业班级:自动化1202

指导老师:杨东勇

2014年12月

一、实验目的

1、掌握单片机中断机制。

2、熟悉中断的应用和编程。

二、实验设备

统一电子开发平台。

三、实验要求

连接单片机最小系统和发光二极管阵列的电路并编写程序,学习单片机中断机制,及中断优先级和中断保护的方法,使用独立式按键B 连接INT0(P3.2),按键F 连接INT1(P3.3),在平时状态下,发光二极管行以200ms 的时间间隔,依次点亮。B 键按下时INT0 中断处理程序点亮P0.0 对应的发光管2秒钟,其他发光管熄灭;F 键按下时P0.1 对应发光管点亮2秒,其他发光管熄灭。

四、实验原理

实验板8051芯片有四级中断优先级的14个中断源。通过几个寄存器来设置4级中断。通过IE, IP, IPH,AUXIE,AUXIP, AUXIPH, XICON和TCON。

1.中断源

表1列出了所有的中断源,使能位被允许,中断请求时硬件会产生一个中断请求标志。当然,总中断使能位EA( IE 寄存器)必须使能。中断请求位能由软件置1或清零, 这和硬件置1或清零结果相同。同理,中断可以由软件产生或取消中断向量地址表示中断服务程序的入口地址。

2. 与中断相关的寄存器

下面是中断过程中的相关特殊功能寄存器IE(地址A8H, 中断使能寄存器, 复位值=0x00,0000B)

EA: 总中断使能位. EA = 0, 禁止所有中断. EA = 1, 使能所有中断

ET2: 定时器2 中断使能.

ES: 串口中断使能

ET1: 定时器1 中断使能

EX1: 外部中断1 使能.

ET0: 定时器0 中断使能EX0: 外部中断0 使能.

IP (地址B8H,中断优先级寄存器, 复位值=xx00,0000B)

PT2: 定时器2 中断优先级位.

PS: 串口中断优先级位.

PT1: 定时器1 中断优先级位.

PX1: 外部中断1 优先级位.

PT0: 定时器0 中断优先级位.

PX0: 外部中断0 优先级位.

IPH (地址B7H, 中断优先级高位寄存器, 复位值=0000,0000B)

PX3H: 外部中断3 优先级位, H.

PX2H: 外部中断2 优先级位, H.

PT2H: 定时器2 中断优先级位, H.

PSH: 串口中断优先级位, H.

PT1H: 定时器1 中断优先级位, H.

PX1H: 外部中断1 优先级位, H.

PT0H: 定时器0 中断优先级位, H.

PX0H: 外部中断0 优先级位, H.

AUXIE (地址ADH, 辅助中断使能寄存器, 复位值=xx00,0000B)

EKB: 键盘中断使能位.

ES2: UART2 中断使能位.

EBD: 欠压检测中断使能位.

EPCA: PCA 中断使能位.

EADC: ADC 中断使能位.

ESPI: SPI 中断使能位.

AUXIP (地址AEH,辅助中断优先级寄存器, 复位值=xx00,0000B)

PKB: 键盘中断优先级位.

PS2: UART2 中断优先级位.

PBD: 欠压检测中断优先级位.

PPCA: PCA 中断优先级位.

PADC: ADC 中断优先级位.

PSPI: SPI 中断优先级位.

AUXIPH (地址AFH, 辅助中断优先级高位寄存器, 复位值=xx00,0000B)

PKBH: 键盘中断优先级位, H

PS2H: UART2 中断优先级位,H

PBDH: 欠压监测中断优先级位,H.

PPCAH: PCA 中断1 优先级位, H.

PADCH: ADC 中断优先级位,H.

PSPIH: SPI 中断0 优先级位, H.

XICON (地址C0H, 外部中断控制寄存器, 复位值=0000,0000B)

PX3: 外部中断3 优先级位.

EX3: 外部中断3 使能位.

IE3: 外部中断3 中断标志.

IT3: 外部中断3 类型控制位. 1: 边沿触发; 0: 电平触发.

PX2: 外部中断2 优先级位.

EX2: 外部中断2 使能位.

IE2: 外部中断2 中断标志.

IT2: 外部中断2 类型控制位. 1: 边沿触发; 0: 电平触发.

TCON (地址88H, 定时/计数器控制寄存器, 复位值=0000,0000B)

IE1: 外部中断1 请求标志. 外部中断1 由边沿或电平触发(由IT1设置)硬件置标志.

IT1: 外部中断1 类型控制位. 软件选择下降沿/低电平触发外部中断1.

IE0: 外部中断0 请求标志. 外部中断0 由边沿或电平触发(由IT0设置)硬件置标志.

IT0: 外部中断0 类型控制位. 软件选择下降沿/低电平触发外部中断0.

3.中断使能

通过设置寄存器IE, AUXIE 和XICON能对每个中断进行使能和禁止操作.需注

意IE中有个总中断允许位EA.EA 置‘1’所有中断的使能和禁止由单独的设置位决定. EA被清‘0’, 所有中断被禁止.

4.中断优先级

中断优先级设置和80C51相同, 除了有四级中断优先级比80C51多两级.优先级位(参见表19-1) 决定每个中断的优先级.

表2, 外部中断0 中断优先级设置, 通过不同的设置组合决定中断优先级.

表2. 外部中断0 的四级优先级

5.中断响应

每个机器周期都会采样中断标志位. 如果没有下列阻止条件. 前一个指令周期中产生中断标志位置位,接下来的指令周期中将以LCALL调用中断服务程序,下列几种情况将LCALL指令锁定:

1. 另一个高优先级的中断正在处理.

2. 当前机器周期不是正在执行的指令的最后一个机器周期.

3. 正在执行指令RETI 或正在写和中断相关的寄存器( IE或IP寄存器).

6.外部中断

外部中断源包括/INT0, /INT1, /INT2 和/INT3, 外部中断能被任意的低电平触发或下降沿触发, 通过设置寄存器TCON 和XICON中的位IT0, IT1, IT2和IT3. ITx= 0, INTx管脚被拉低将触发中断。ITx = 1,INTx管脚上的下降沿将触发中断。中断被触发后将置位TCON、XICON中的IE0、IE1、IE2 、IE3。如果中断被激活这些标志在进入中断服务程序后被硬件清除。如果中断是电平触发,外中断源必须有效,直到中断被响应,在执行完中断服务程序前,此有效中断必须被清除。

7.单步运行

80C51的中断结构允许使用很少的软件开销来实现单步运行.如前所述,在正在执行相同或更高优先级的中断的时候中断请求是不会被响应的,直到运行完当前中断服务程序后至少再执行一条以上的指令.因而, 如果一个中断服务程序正在执行,这不能被其他中断重入, 直到当前中断服程序被执行完后至少再执行一条以上的指令. 下面是一个电平触发的外部中断(e.g., INT0)的使用实例.代码如下:JNB P3.2,$ ;等待直到INT0变高JB P3.2,$ ;等待直到INT0 变低RETI ;服务序结束并执行一条指令当前INT0引脚(P3.2)保持低状态,CPU进入外部中断0服务程序等待INT0的引脚上有脉冲产生(从低到高再到低).然后执行RETI指令, 跳回被中断的程序执行一条指令,然后再次进入外部中断0 中断服务程序等待引脚P3.2上再次产生一个脉冲.这样就是在引脚P3.2上每产生一个脉冲程序步进一条指令,这样就实现了单步操

8.原理图

相关文档
最新文档