天津大学微机原理第5章中断系统

上传人:我** 文档编号:114181346 上传时间:2019-11-10 格式:PPT 页数:22 大小:963.01KB
返回 下载 相关 举报
天津大学微机原理第5章中断系统_第1页
第1页 / 共22页
天津大学微机原理第5章中断系统_第2页
第2页 / 共22页
天津大学微机原理第5章中断系统_第3页
第3页 / 共22页
天津大学微机原理第5章中断系统_第4页
第4页 / 共22页
天津大学微机原理第5章中断系统_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《天津大学微机原理第5章中断系统》由会员分享,可在线阅读,更多相关《天津大学微机原理第5章中断系统(22页珍藏版)》请在金锄头文库上搜索。

1、一、中断的基本概念 1生活中的中断现象 什么是中断,我们从一个生活中的例子引入。你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。 仔细研究一下生活中的中断,对于我们学习单片机的中断也很有好处。 第一、什么可以引起中断,生活中很多事件可以引起中断:有人按了门铃了,电话铃响了,你的闹钟闹响了,你烧的水开了.等等诸如此类的事件,我们把可以引起中断的称之为中断源。 第二、中断的嵌套与优先级处理:设想一下,我们正在看书,电话铃响了,同时又有人按了门铃,你该先做那样呢?如果你正是在等

2、一个很重要的电话,你一般不会去理会门铃的,而反之,你正在等一个重要的客人,则可能就不会去理会电话了。这里存在一个优先级的问题, 第三、中断的响应过程:当有事件产生,进入中断之前我们必须先记住现在看书的第几页了,或拿一个书签放在当前页的位置,然后去处理不同的事情(因为处理完了,我们还要回来继续看书):电话铃响我们要到放电话的地方去,门铃响我们要到门那边去,也说是不同的中断,我们要在不同的地点处理,而这个地点通常还是固定的。中断入口问题,2计算机系统中的中断 计算机系统的“中断”是指中央处理器CPU正在处理某件事情的时候,发生了异常事件(如定时器溢出等)产生一个中断请求信号,请求CPU迅速去处理。

3、CPU暂时中断当前的工作,转入处理所发生的事件,处理完以后,再回到原来被中断的地方继续原来的工作,这样的过程称为中断,实现这种功能的部件称为中断系统,产生中断的部件或设备称为中断源。 一个计算机系统一般有多个中断请求源。当多个中断源同时向CPU请求中断时,就存在CPU优先响应哪一个中断请求源的问题。一般根据中断源(所发生的事件)的轻重缓急,规定中断源的优先级,CPU优先响应中断优先级高的中断源请求。 当CPU正在处理一个中断请求时,又发生了另外的中断请求,如果CPU能暂时中止对原中断的处理,转去处理优先级更高的中断请求,待处理完以后,再继续处理原来的中断事件,这样的过程称为中断嵌套。 这样的中

4、断系统称为多级中断系统。而没有中断嵌套功能的系统称为单级中断系统。,第五章 中断系统 1 微机的输入/输出方式,在信息处理的过程中,微机经常要与外部设备交换信息,称为输入(读外设)与输出(写外设)。信息的传送方式有以下几种: 一无条件传送方式: 外设在任何时刻均处于“准备好”的状态,CPU可随时用指令读写外设。 例1 从PB端口输入8个开关S0S7的状态: LDA PTBD 例2 用PB端口控制8个LED灯的点亮(低电平点亮)。 MOV #$0F,PTBD ;点亮高4位LED,二查询传送方式(条件传送方式) 外设用一位“状态信息”表明其是否处于“准备好”状态,CPU每次访问外设时必须先读入状态

5、信息(查询),确认“准备好”之后,才能对其进行读写。 例1输入某8位AD转换器的转换结果。设AD的数据线 接到PB.7PB.0,“转换结束”信号接到PA.0(1表示转换结束),“启动AD”信号接到PA.1(从01为启动) BCLR 1,PTAD BSET 1,PTAD ;启动AD WAIT: BRCLR 0,PTAD,WAIT ;查询 LDA PTBD ;读AD,例2向打印机输出一个C字符。打印机数据线接PB口,“忙” 信号接到PA.0(1表示忙),“写”信号接到PA.1(01为写入) WAIT: BRSET 0,PTAD,WAIT ;查询 MOV #C, PTBD ;CPB BCLR 1,P

6、TAD BSET 1,PTAD ;发“写”脉冲 *当外设的准备时间为已知时,也可用延时代替查询。 如已知AD转换时间最大为1ms,则读AD的程序中可用JSR D1ms(延迟1ms子程)代替WAIT: BRCLR 0,PTAD,WAIT 查询式传送的优点:通用性强,硬件结构简单。 缺点:查询时占用CPU,效率低。,三、中断传送方式: 当外设准备好数据传送时,用一个信号“通知”CPU(1.中断源),CPU接到此信号后(2.中断申请) ,若满足一定的条件(受理),则暂时“中断”当前程序的执行(3.中断响应),转向为外设服务的子程序(4.中断服务),服务完毕后返回主程序继续执行。(5.中断返回) 上述

7、整个过程称为中断,实现中断功能的硬件结构称为中断系统。 中断源:提出中断申请的外设 I/0设备(键盘,打印机,AD、DA等) 硬件故障。例:电源掉电。 实时时钟:定时检测、定时控制。 调试程序时设置的中断源(单步运行等) 中断技术的功能特点: 分时操作:CPU与外设可各自工作,提高了CPU的效率。 实时处理:可及时响应外设要求的服务。 故障处理:可及时处理各种软硬件故障。,中断优先权 优先权排队:多个中断源同时提中断时,按其优先 权的高低,优先响应高级中断。 软件优先权排队:CPU接到中断申请时,用指令逐个查询各中断源(优先级高的先被查询)按顺序服务。 硬件优先权排队:中断系统硬件中规定了各中

8、断源的优先级,级别高者优先响应。 中断嵌套:CPU为某中断源服务时,又出现了一个优先级更高的中断申请,CPU则中止当前中断服务,转向高级中断服务,完毕后再返回原中断服务。 四直接存贮器存取(DMA)方式 CPU“让出”总线(AB、DB、CB均为高阻状态),由专用的DMA控制器“接管”总线,控制外设与存贮器之间直接传送数据(不通过CPU,无需指令)。适用于 大批量数据传送(如硬盘与RAM之间) 外设速度很高(如高速AD) (3). 需协处理器,2.HCS08的中断系统,1、堆栈结构与中断响应过程; 2、中断入口; 3、寄存器以及汇编与c语言中断使用方法; 4、应用案例,堆栈结构,中断响应过程 C

9、PU每执行完一条指令,如果条件码寄存器CCR中的中断屏蔽位I=0,按中断优先级次序查询所有的中断标志位,如果查到允许的中断请求源标志为“1”,则响应该中断请求。中断过程如下: CPU寄存器PCL、PCH、X、A、CCR依次进栈; 置位中断屏蔽位I(关中); 从所响应的中断请求源相对应的中断向量地址中取出中断向量(即中断服务程序入口地址)送入PC; CPU从中断入口地址开始执行中断服务程序,直至碰到返回指令RTI为止,RTI指令从堆栈中依次弹出CCR、A、X、PCH、PCL,使CPU回到原来被 中断地方继续执行原来的的程序; CPU响应中断执行中断服务程序时,I=1,因此不能响应其他中断请求。如

10、果需要,在执行中断服务程序过程中执行清零I(CLI)指令,就可以响应其他中断请求以实现中断嵌套。 进入中断I一定为1,如果要中断嵌套,需自己写CLI开中断。 出中断时要CLI吗? 中断处理在任何时候都能及时吗?,1中断入口,1中断入口,1中断入口,寄存器以及汇编与c语言中断使用方法,从入口可以看出,中断被很多外设所使用,只是控制、初始化以及状态寄存器的功能与定义不同而已,6、系统初始化,IRQSC,IRQ管脚的使用,6、系统初始化,SRTISC,RTI的使用,6、系统初始化,SRTISC,RTI的使用,中断入口使用方法,1、在C语言中: interrupt 2 void IRQ_ISR(voi

11、d) /Insert your code here; IRQSC_IRQACK = 1; / clear IRQF ,RTI与IRQ的案例,3 中断程序举例,一主程序 起始地址的设置 ORG $E000 MAIN: 主程序首指令安排在$E000H处。 中断初始化:根据所用的中断源及优先权顺序,设置相应的的内容,通过清除I标志,全局允许中断。 二中断服务子程 存放地址:中断子程入口严格按入口地址要求设置,通过伪指令 ORG 入口地址 DC.W 中断子程序标号 关联中断服务程序与入口地址,不用的中断可以跳转到空操作子程里。,注意事项 保护现场(解决与主程争用寄存器,特别注意H的 保护)。 及时清除

12、硬件不能自动清除的中断请求标志位 注意堆栈的平衡,应以RTI指令结束。 注意入口、出口参数的传送。,三程序实例 例1用PB.4PB.7 输入4个开关的状态,PB.0PB.3输出驱动4个LED,要求每中断一次(用IRQ边沿触发),读入PB.4PB.7的状态,依次控制PB.0PB.3 LED点亮(输入为1时点亮) 程序: ORG $E000 MAIN: LDHX #$260 TXS MOV #$0F,PTBDD LDA #2 STA SOPT1 ; 禁止 COP、STOP and RST MOV #$16,IRQSC ;允许IRQ管脚,允许IRQ中断,下降沿触发 CLI HERE: BRA HER

13、E ;等待中断 ;中断服务子程 INSER: LDA PTBD NSA STA PTBD ;驱动LED MOV #$16,IRQSC ; 清除标志 RTI ;中断返回 ORG $FFFA DC.W INSER END 为什么没压栈,为什么没出栈,为什么没对H进行进栈和出栈操作?,QG8,PB.7,PB.6,PB.5,PB.4,PB.3,PB.2,PB.1,PB.0,IRQ,例2(外中断的扩展) 四个故障源(0 1为有故障)通过或非门接到IRQ ,每当有故障产生时点亮相应的LED。 ORG $E000 MAIN: LDHX #$260 TXS LDA #2 STA SOPT1 MOV #$AA,

14、PTBDD MOV #$55,PTBD ;设输入,LED均熄灭 MOV #$16,IRQSC CLI HERE: BRA HERE ;等待中断 ;中断服务子程 INSER: BRCLR 0,PTBD,L1 ;查询中断源 BSET 1,PTBD ;点亮相应LED L1: BRCLR 2,PTBD,L2 BSET 3,PTBD L2: BRCLR 4,PTBD,L3 BSET 5,PTBD L3: BRCLR 6,PTBD,L4 RTI BSET 7,PTBD ORG $FFFA L4: MOV #$16,IRQSC DC.W INSER,IRQ,PB.7,PB.6,PB.5,PB.4,PB.3,PB.2,PB.1,PB.0,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号