单片机中断服务教材.ppt

上传人:sccc 文档编号:4936868 上传时间:2023-05-24 格式:PPT 页数:18 大小:665.01KB
返回 下载 相关 举报
单片机中断服务教材.ppt_第1页
第1页 / 共18页
单片机中断服务教材.ppt_第2页
第2页 / 共18页
单片机中断服务教材.ppt_第3页
第3页 / 共18页
单片机中断服务教材.ppt_第4页
第4页 / 共18页
单片机中断服务教材.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《单片机中断服务教材.ppt》由会员分享,可在线阅读,更多相关《单片机中断服务教材.ppt(18页珍藏版)》请在三一办公上搜索。

1、第五章 中断系统,硅谷芯微 技术贡献网址:www.threeway.cc,本章重点:,中断的工作原理 中断如何配置 中断服务程序书写格式,中断是指在计算机执行过程中,当出现某种情况,如发生紧急事件或者其他突发事件时,由服务器对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行,而转去执行相应的处理程序,待处理程序执行完毕后,再返回来继续执行原来被中断的程序。,5.1 单片机的输入/输出方式 在单片机中,CPU与外设不断地进行信息的传输,通常有三种方式:5.1.1 程序控制方式 信息传送过程是在程序控制下进行。可以分为以下两种方式。无条件传送方式:当外设已准备就绪,那就不必查询外设的状

2、态而进行信息传输,称为无条件传送方式。此种信息传送方式只适用于简单的外设。如开关和数码段显示器等。条件查询传送方式:CPU通过执行程序不断读取并测试外部设备状态,如果输入设备处于准备好状态或输出设备为空闲状态时,则CPU执行传送信息指令。由于条件传送方式是CPU在不断查询外部设备的当前状态后才进行信息传送,所以也称为“查询式传送”。5.1.2 中断方式 外部设备与CPU之间以中断信号作为数据交换的控制信号。当外部设备需要与CPU进行数据交换时,由接口部件向CPU发出一个请求信号,CPU响应这一中断请求后,便可在中断服务程序中完成一个字节或一个字的信息交换。中断控制方式一般用低速外部设备与CPU

3、之间的信息交换。中断控制方式每操作一次,CPU要打断原来执行的程去执行一段中断服务程序,对速度较高的外部设备将会产生信息丢失,因此不能采用。,5.1.3 DMA方式 DMA控制方式主要用于存储器和外设之间直接传送。一般是数据块为单位传送数据的方式。当某一外部设备需要输入/输出一批数据时,向DMA控制器发出请求,DMA控制器接收到这一请求后,向CPU发出总线请求信号。CPU响应DMA的请求,把总线使用权赋给DMA控制器,外设利用DMA通道直接将数据写入存储器或将数据从存储器中读出,传送过程不需要CPU参与。当这批数据传送后,DMA控制器再向CPU发出“结束中断请求”,CPU响应这一中断请求,即可

4、收回总线使用权。采用DMA控制方式,CPU只需在数据传送结束时响应一次中断,减轻了CPU的负担,系统的速度会大大增加。,5.2 中断的基本概念 通常将CPU在正常情况下运行的程序称为“主程序”,把引起中断的设备或事件叫做“中断源”,由中断源向CPU发出的请求中断信号称为“中断请求信号”,CPU接收中断申请终止现行程序称而转去为服务对象服务称为“中断响应”,为对象服务的程序称为为“中断服务程序”(也称中断处理程序);现行程序中断的地方称为“断点”,为中断服务程序服务完毕后返回原来的程序称为“中断返回”,整个过程成为“中断”。对比一个生活中看书的例子帮助我们加深理解中断的过程。MSC-51单片机中

5、断结构如图:,5.2.1 MSC-51单片机中断源:对MCS-51单片机的中断系统用一句话讲叫:“五源中断,两级管理”5个中断源的符号、名称及产生的条件如下:INT0:外部中断0,由P32端口线引入,低电平或下跳沿引起。INT1:外部中断1,由P33端口线引入,低电平或下跳沿引起。T0:定时器计数器0中断,由T0计满回零引起。T1:定时器计数器l中断,由T1计满回零引起。TIRI:串行IO中断,串行端口完成一帧字符发送接收后引起。,由上图可见,外部中断有下跳沿引起和低电平引起的选择;串行中断有发送(TI)相接收(R1)的区别;各个中断源打开与否,受中断自身的允许位和总允许位的控制,并具有高优先

6、级和低优先级的选择。,5.2.2 中断控制寄存器 TCON为定时器/计数器T0和T1的控制器,同时也锁存T0和T1的溢出中断标志及外部中断0和1的中断标志以及触发方式控制位。如表:,IE1:外部中断1(P3.3)的中断请求标志。当检测到外部中断引脚1 上存在有效的中断请求信号时,由硬件使IE1置1。当CPU响应中断请求时,由硬件使IE1清0。IE0:外部中断0(P3.2)的中断请求标志,其含义与IE1类同。IT1:外部中断1的中断触发方式控制位。IT1=0时,外部中断1程控为电平触发方式。CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。若外部中断1请求为低电平,则使IE1置1

7、;若为高电平,则使IE1清0。IT1=1时,外部中断1程控为边沿触发方式。CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断1请求引脚为高电平,接着的下一个机器周期采样到为低电平,则使IE1置1。直到CPU响应该中断时,才由硬件使IE1清0。IT0:外部中断0的中断触发方式控制位。其含义与IT1类同。,中断允许寄存器IE各控制位的含义:EA中断允许总控制位。EA=0,屏蔽所有的中断请求;EA=1,CPU开放中断。对各中断源的中断请求是否允许,还要取决于各中断源的中断允许控制位的状态。ES串行口中断允许位。ES=0,禁

8、止串行口中断;ES=1,允许串行口中断。ET1定时器/计数器T1的溢出中断允许位。ET1=0,禁止T1中断;ET1=1,允许T1中断。EX1外部中断1的溢出中断允许位。EX1=0,禁止外部中断1中断;EX1=1,允许外部中断1中断。ET0定时器/计数器T0的溢出中断允许位。ET0=0,禁止T0中断;ET0=1,允许T0中断。EX0外部中断0的溢出中断允许位。EX0=0,禁止外部中断0中断;EX0=1,允许外部中断0中断。,5.2.3 中断允许寄存器,5.2.3中断优先级寄存器IP(如表),中断优先级寄存器IP各控制位的含义:PS串行口中断优先级控制位PT1定时器/计数器T1中断优先级控制位PX

9、1外部中断1中断优先级控制位PT0定时器/计数器T0中断优先级控制位PX0外部中断0中断优先级控制位 若某控制位为1,则相应的中断源规定为高级中断;反之,为0,则相应的中断源规定为低级中断。每个中断请求源均可编程为高优先级中断或低优先级中断。优先级又分为:逻辑优先级 物理优先级 INT0最高(可以中断嵌套,最多两级)T0 INT1 T1 UART最低,5.3.1 中断响应 从中断请求发生直到被响应,准备去执行中断服务程序,此过程即中断响应过程。中断响应过程一般包括如下几个阶段:1.中断采样 中断采样主要是针对外部中断请求信号进行的。由于内部中断请求都发生在芯片内部,可以直接查询特殊寄存器。在每

10、个机器周期的S5P2期间,各中断标志采样相应的中断源,并置位相应标志。2.中断查询查询到某中断标志为1,则按优先级的高低进行处理,即响应中断。由于中断请求是随机发生的,CPU无法预先得知,因此中断查询要在指令执行的每个机器周期中不停地重复执行。,5.3 中断整个流程 在MCS-51内部,系统要先对中断源进行采样,然后才进行响应。在每个机器周期的S5P2中顺序采样中断源。在下一个周期的S6按优先级顺序查询中断标志;如果中断标志为1,在接下来的机器周期S1期间按优先级进行中断处理。从中断请求发生直到被响应去执行中断服务程序,整个过程均在CPU的控制下有规律的进行。整个过程一般可以分为3个阶段:中断

11、响应、中断处理、中断返回。,3.中断响应 响应中断后,由硬件自动生成长调用指令“LCALL”,其格式为LCALL addr16,而addr16就是各中断源的中断矢量地址。如表所示:响应中段过程一般有两部分构成:首先将程序计数器PC的内容(即断点地址)压入堆栈。先低位地址,后高位地址,同时堆栈指针SP加2。其次将对应中断源的中断矢量地址装入程序计数器PC,去执行中断服务程序。,中断响应是有条件的,包含以下方面:1.中断源有中断请求 2.中断总允许位EA=1。3.发出中断请求的中断源的中断允许控制位为1。在满足以上条件的基础上,若有下列任何一种情况存在,硬件生成的长调用指令“LCALL”将被封锁。

12、1.CPU正在执行一个同级或高优先级的中断服务程序。2.正在执行的指令尚未执行完。3.正在执行中断返回指令RETI或者对寄存器IE、IP进行读/写的指令。CPU在执行完上述指令之后,要再执行一条指令,才能响应中断请求。对于实时性要求高的系统,还应该考虑中断响应的时间。,注意:中断服务程序的放置。各中断矢量区仅8个字节。通常是在中断矢量区中安排一条无条件转移指令,使程序执行转向在其它地址中存放的中断服务程序。,5.3.2 中断处理 当CPU响应中断时,将进行中断处理。首先:由硬件直接产生一个固定的地址,即矢量地址。由矢量地址指出每个中断源设备的中断服务程序的入口。此种方法通常称为矢量中断。其次:

13、执行中断服务程序。当CPU识别出某个中断源时,由硬件直接给出一个与该中断源相对应的矢量地址,从而转入各自中断服务程序。中断服务程序即CPU响应中断后,处理中断源请求事件的程序。从中断入口地址开始执行,直到返回指令(RETI)为止。此过程一般包括三部分内容:1.是保护现场。2.是处理中断源的请求。3.是恢复现场。所谓现场是指中断发生时单片微机中存储单元、寄存器、特殊功能寄存器中的数据或标志位等。例如A、B、Rn等。保护的方法可以有以下几种:1.通过堆栈操作指令PUSH direct。2.通过工作寄存器区的切换。3.通过单片微机内部存储器单元暂存。现场保护一般位于中断服务程序的前面。在结束中断服务

14、程序返回断点处之前要恢复现场。与保护现场的方法对应,多使用POP 指令。注意:保护和恢复遵循“从哪里来,回哪里去”的原则。,5.3.3 中断返回 中断返回是指中断服务完成后,CPU返回到原程序的断点,继续执行原来的程序。断返回通过执行中断返回指令RETI来实现,RETI指令的功能包括两个方面。首先将相应的优先级状态触发器置0,以开放同级别中断源的中断请求;其次,从堆栈区把断点地址取出,送回到程序计数器PC中。因此,不能用RET指令代替RETI指令。,ORG 0000H LJMP MAIN;上电,转向主程序 ORG 0003H;外部中断0入口地址 LJMP I_INT0;转向中断服务程序 ORG

15、 0030H;主程序MAIN:SETB EX0;允许外部中断0中断 SETB IT0;选择边沿触发方式 SETB EA;CPU开总中断允许位 SJMP$;无限执行这条语句,等待中断到来I_INT0:MOV A,#11111110B;初值赋给累加器A MOV P1,A;输出驱动LED发光 RETI;中断返回END,例:如下图为一完整程序,采用外部中断INT0,当产生中断信号时P1.0输出低电平。驱动LED共阳二极管发光。,5.4 课后练习5.4.1.编写流水灯加数码管程序,(主程序为流水灯每一秒向右移一位,循环移位,中断程序中断采用边沿触发方式,每产生一次中断,数码管数据加一,数据为09)。5.4.2.根据第一题将两个任务都用外部中断来完成。硬件电路不变。,谢谢大家,硅谷芯微 技术贡献,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号