预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共37页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

本章介绍的主要内容 ★中断的基本概念 ★中断的系统结构 ★中断的响应过程 ★中断的的应用编程在CPU和外设交换信息时,存在着快速CPU和慢速外设间的矛盾,机器内部有时也可能出现突发事件,为此,计算机中通常采用中断技术。 中断 CPU和外设并行工作,当外设数据准备好(或有某种突发事件发生)时向CPU提出请求,CPU暂停正在执行的程序转而为该外设服务(或处理紧急事件),处理完毕再回到原断点继续执行原程序。 中断源 引起中断的原因,中断申请的来源,称为中断源,可以是I/O设备、故障、时钟、调试中人为设置。中断优先级 当有多个中断源同时向CPU申请中断时,CPU优先响应最需紧急处理的中断请求,处理完毕再响应优先级别较低的,这种预先安排的响应次序。 中断的嵌套 在中断系统中,高优先级的中断请求能中断正在进行的较低级的中断源处理。 中断系统 能实现中断功能并能对中断进行管理的硬件和软件称为中断系统。 本章将讨论MCS51系列单片机的中断系统。中断请求是在执行程序的过程中的随机发生的,中断系统要解决的问题是: 1)CPU在不断的执行指令中,是如何检测到随机发生的中断请求? 2)如何使中断的双方(CPU方和中断源方)均能人为控制,允许中断或禁止中断。 3)由于中断产生的随机性,不可能在程序中安排调子程序指令或转移指令,那么如何实现正确的转移,以便为该中断源服务呢? 4)中断源有多个,而CPU只有一个,当有多个中断源同时有中断请求时,用户怎么控制CPU按照自己的需要安排响应次序? 5)中断服务完毕,如何正确地返回到原断点处?8XX51有5个中断源,3个在片内,2个在片外,它们在程序存贮器中有固定的中断入口地址,当CPU响应中断时,硬件自动形成这些地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套; 8XX51有5个中断源,其符号、名称、产生条件及中断服务程序的入口地址如表6.1。EA:中断总控开关,是CPU是否响应中断的前提。 EA=1,CPU开中断; EA=0,CPU关中断。 ES:串行口中断允许位, ES=1,允许串行口发送/接收中断; ES=0,禁止串行口中断。 ET1:定时器T1中断允许位, ET1=1,允许T1计数溢出中断; ET1=0,禁止T1中断。ET0:定时器T0中断允许位, ET0=1,允许T1计数溢出中断; ET0=0,禁止T0中断。 EX1:外部中断INT1允许位, EX1=1,允许INT1中断; EX1=0,禁止INT1中断。 EX0:外部中断INT0允许位, EX0=1,允许INT0中断; EX0=0,禁止INT0中断。INT0 方式 下沿/低电平----MCS51系列单片机的中断结构可以用图6.1示。6.2中断响应过程N1)中断请求、中断响应过程由硬件完成。 2)中断服务程序应根据需要进行编写。程序中要注意保护现场和恢复现场。 3)中断返回是通过执行一条RETI中断返回指令,使堆栈中被压入的断点地址送PC,从而返回主程序的断点继续执行主程序。 另外RETI还有恢复优先级状态触发器的作用,因此不能以RET指令代替“RETI”指令。若某个中断源通过编程设置,处于被打开的状态,并满足中断响应的条件,然而下面三种情况单片机不响应此中断: ①当前正在执行的那条指令没执行完; ②当前响应了同级或高级中断; ③正在操作IE、IP中断控制寄存器或执行RETI指令。在正常的情况下,从中断请求信号有效开始,到中断得到响应,通常需要3个机器周期到8个机器周期。二、中断请求的撤除 CPU响应中断后,应撤除该中断请求标志,否则会再次中断。 1)对定时计数器T0、T1的溢出中断,CPU响应中断后,硬件自动清除中断请求标志TF0和TF1。 2)对边沿触发的外部中断INT1和INT0,CPU响应中断后硬件自动清除中断请求标志IE0和IE1。 3)对电平触发的外部中断,CPU在响应中断时也不会自动清除中断标志,因此,在CPU响应中断后应立即撤除INT1或INT0的低电平信号。 4)对于串行口中断,CPU响应中断后,没有用硬件清除中断请求标志TI、RI,即这些中断标志不会自动清除,必须用软件清除,这是在编串行通信中断服务中应该注意的。6.3中断的汇编语言程序和C语言程序设计一、汇编语言中断程序的设计例1.在图6.3中P1.4~P1.7接有四个发光二极管,P1.0~P1.3接有四个开关,消抖电路用于产生中断请求信号,当消抖电路的开关来回拔动一次将产生一个下降沿信号,通过INT0向CPU申请中断,要求:初时发光二极管全黑,每中断一次,P1.0~P1.3所接的开关状态反映到发光二极管上,且要求开关断开的对应发光二极管亮,电路和现象如下:×、ORG0000H AJMPMAIN ORG0003H;INT0中断入口 AJMP