首页 第四章 中断系统

第四章 中断系统

举报
开通vip

第四章 中断系统nullnull第4章 中断系统 4.1 中断的概述  4.2 8051中断 4.3 中断控制 4.4 中断编程实例 null4.1 中 断 的 概 述 4.1.1. I/O控制方式 1 查询方式:当数据未送出到外设时,CPU一直查询外设状态,CPU占用率高 2 中断方式 3 DMA方式 :直接存储器存取,用于外设与CPU之间有大量数据传送的场合 null4.1 中 断 的 概 述 1. 中断 中断是指计算机在执行某一程序的...

第四章 中断系统
nullnull第4章 中断系统 4.1 中断的概述  4.2 8051中断 4.3 中断控制 4.4 中断编程实例 null4.1 中 断 的 概 述 4.1.1. I/O控制方式 1 查询方式:当数据未送出到外设时,CPU一直查询外设状态,CPU占用率高 2 中断方式 3 DMA方式 :直接存储器存取,用于外设与CPU之间有大量数据传送的场合 null4.1 中 断 的 概 述 1. 中断 中断是指计算机在执行某一程序的过程中, 由于计算机系统内、 外的某种原因, 而必须中止原程序的执行, 转去执行相应的处理程序, 待处理结束之后, 再回来继续执行被中止的原程序的过程。  中断的主要功能中断的主要功能实现CPU与外设的速度匹配 实现实时控制 实现故障的及时发现和处理 实现人机交互 null采用了中断技术后的计算机, 可以解决CPU与外设之间速度匹配的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 , 使计算机可以及时处理系统中许多随机的参数和信息, 同时, 它也提高了计算机处理故障与应变的能力。 “中断”与“查询”相比: 执行效率↑ 实时性 ↑null 4.2.1. 中断源 中断源是指在计算机系统中可以向CPU发出中断请求的来源。 通常有I/O设备、实时控制系统中的随机参数和信息故障源等。 4.2 8051中断 null 4.2.1. 中断源(5个) 1 外中断(2个) 2 定时器溢出中断(2个) 3串行口中断 (1个)4.2 8051中断 null4.2.1 中断源 8051 中 断 源null1. 定时器控制寄存器TCON的格式(88H ) (MSB)(LSB)IT0:外部中断0触发方式选择位 0:低电平触发 1: 负跳变触发 IE0:外部中断0中断请求标志 IT1、IE1 类似 IT0、IE0 TR0:定时/计数器0运行控制位 0:停止 1:运行 TF1:定时/计数器0中断请求标志位 TR1、TF1 类似 TR0、TF0null2. 特殊功能寄存器SCON的格式(98H) SM0和SM1:串行口工作方式选择位 SM2:多机通信使能位 REN: 串口接收允许位 TB8:发送数据位8 RB8:接收数据位8 TI: 串行口发送中断请求标志 RI: 串行口接收中断请求标志 MSBLSBnull 4.2.2. 中断优先级 中断优先级越高, 则响应优先权就越高。当CPU正在执行中断服务程序时, 又有中断优先级更高的中断申请产生, 这时CPU就会暂停当前的中断服务转而处理高级中断申请, 待高级中断处理程序完毕再返回原中断程序断点处继续执行, 这一过程称为“中断嵌套”。 null中断标志(Flag) IE0:外部中断0中断标志 TF0:定时器/计数器0中断标志 IE1:外部中断1中断标志 TF1:定时器/计数器1中断标志 TI/RI:串行口发送/接收中断标志null4.2.2 中断系统硬件结构 MCS - 51中断系统结构框图 null中断控制寄存器 1. 中断允许控制 MCS - 51单片机有 5个(8052有 6个)中断源, 为了使每个中断源都能独立地被允许或禁止, 以便用户能灵活使用, CPU内部在每个中断信号的通道中设置了一个中断允许触发器, 它控制CPU能否响应中断。只有对应的中断允许触发器被使能(置“1”),相应的中断才能得到响应。 nullEX0:外部中断0允许位 ET0:定时器/计数器0中断允许位 EX1:外部中断1允许位 ET1:定时器/计数器1中断允许位 ES : 串行口中断允许位 EA :中断总允许位(MSB)(LSB)中断允许控制寄存器IE (0A8H)null2. 中断优先级控制寄存器IP(0B8H) (MSB)(LSB)PX0:外部中断0允许位 PT0:定时器/计数器0中断允许位 PX1:外部中断1允许位 PT1:定时器/计数器1中断允许位 PS : 串行口中断允许位 null 当两个以上的中断源同时提出申请时,CPU到底相应哪个中断呢? 中断响应遵循两条规则: (1)低优先级中断可以被高优先级中断所中断,反之不能; (2)一种中断(不论哪个优先级)一旦得到响应,与它同级的中断不能再中断它。优先级的控制原则null同级内第二优先级次序 当同时收到处于同一优先级的多个中断请求时,哪一个中断能得到响应,取决于“内部查询次序”,相当于在每个优先级中,还有一个“内部优先级”,如下表所示:null 中断响应的一般过程 (1) 在每条指令结束后, 系统都自动检测中断请求信号, 如果有中断请求,且CPU处于开中断状态下, 则响应中断。  (2) 保护现场, 在保护现场前, 一般要关中断, 以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。 null (3) 中断服务, 即为相应的中断源服务。 (4) 恢复现场, 用堆栈指令将保护在堆栈中的数据弹出来, 在恢复现场前要关中断, 以防止现场被破坏。在恢复现场后应及时开中断。  (5) 返回, 此时 CPU将推入到堆栈的断点地址弹回到程序计数器, 从而使CPU继续执行刚才被中断的程序。 中断处理过程中断处理过程中断响应的条件: 1 有中断源发出中断请求 2 中断总允许位EA=1 3 申请中断的中断源允许null中断响应的阻断条件 在EA=1且相应的中断允许位也为1的情况下,检测到的最高级的中断请求将会得到相应。但此时如果发生下列三种情况中的任何一种,中断响应的过程将被阻断: (1) 同级或高优先级的中断已在进行中;  (2) 当前的机器周期还不是正在执行指令的最后一个机器周期(换言之, 正在执行的指令完成前, 任何中断请求都得不到响应);  (3) 正在执行的是一条 RETI 或者访问特殊功能寄存器 IE或 IP的指令(换言之, 在 RETI或读写 IE或 IP之后, 不会马上响应中断请求, 而至少执行一条其它指令之后才会响应)。 null 当上述阻断条件存在时,中断不能被相应,且丢弃查询结果。若阻断条件结束时,中断标志已经消失,则这个被拖延了的中断请求可能不会再得到响应。 中断响应的撤除中断响应的撤除外中断: 1 下降沿触发方式:响应后硬件撤销相应位 2 低电平触发方式:硬件撤销,不过要注意外电路的电平控制 定时器中断:硬件撤销 串行中断:程序清除 null1、80C51有几个中断源?各中断标志是如何产生的?又是如何复位的?CPU响应各中断时,其中断入口地址是多少? 2、外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有何不同?怎样设定?null5.2.3 中断响应 The interrupt request flags are sampled in each machine cycle. The sampled flags are polled during the following machine cycle. If one of the flags was in a set condition in the preceding cycle, the polling cycle will find it and the interrupt controller will cause the CPU to branch to the vector address of the appropriate service routine by generating an internal LCALL. null中断标志检测与响应过程nullnull2. 单片机一旦响应中断请求, 由硬件完成以下功能:  (1) 根据响应的中断源的中断优先级, 使相应的优先级状态触发器置 1;  (2) 执行硬件中断服务子程序调用, 并把当前程序计数器PC的内容压入堆栈;  (3) 清除相应的中断请求标志位(串行口中断请求标 志 RI和 TI除外);  (4) 把被响应的中断源所对应的中断服务程序的入口 地址(中断矢量)送入PC, 从而转入相应的中断服务程序。 null 中断响应过程,相当于执行了一条隐含的调用指令(或称隐指令)LCALL。 例如当TF0被置1且得到中断响应时,CPU就自动的执行一条隐指令“LCALL 000BH”。 应当注意,在中断服务子程序的调用过程中,仅仅保存了PC的信息,其余的现场信息(如寄存器的值等)都要由编程人员通过软件来进行保护。null表 5.3 中断服务程序入口地址表 null 例如, 现有外部中断 1 提出申请, 且主程序中有R0、 R1、 DPTR、累加器A需保护, 则编制程序应为: ORG 0000H  AJMP MAIN ORG 0013H LJMP INT1 … ORG 0100H MAIN: …; 主程序 … ORG 1000H nullINT1: PUSH ACC ; 中断服务程序 PUSH DPH;若有更高级中断, PUSH DPL;应先关闭EA PUSH R0 ;待现场保护完成后 PUSH R1 ;再打开EA POP R1 ;恢复现场时相同 POP R0 POP DPL POP DPH POP ACC RETI …null 编程中应注意:  (1) 在 0000H放一条跳转到主程序的跳转指令, 这是因为 MCS-51单片机复位后, PC的内容变为 0000H, 程序从 0000H 开始执行, 紧接着 0003H是中断程序入口地址, 故在此中间只能插入一条转移指令;  (2) 响应中断时, 先自动执行一条隐指令“LCALL 0013H”, 而 0013H至 001BH(定时器 1 溢出中断入口地址)之间可利用的存储单元不够, 故放一条无条件转移指令。  (3) 在中断服务程序的末尾, 必须安排一条中断返回指令RETI, 使程序自动返回主程序。 null5.3 中断系统的应用 例 1 单步操作的中断实现。 把一个外部中断(设为INT0])设置为电平激活方式。其中断服务程序的末尾写上如下几条指令:  JNB P3.2, $ ; 在INT0变高前,原地等待(死循环) JB P3.2, $; 在 INT0变低前,原地等待(死循环) RETI ; 返回并执行一条指令 null 现在,若INT0保持低电平, 且允许INT0中断, 则CPU就进入外部中断 0 服务程序, 由于有上述几条指令, 它就会停在 JNB处, 原地等待。当INT0 端出现一个正脉冲(由低到高, 再到低)时, 程序就会往下执行, 执行RETI后, 将返回主程序, 往下执行一条指令, 然后又立即响应中断,以等待INT0端出现的下一个正脉冲。 这样在INT0端每出现一个正脉冲, 主程序就执行一条指令, 实现了单步执行的目的, 要注意的是, 这个正脉冲的高电平持续时间不小于 2 个周期, 以确保 CPU能采集到高电平值。 null 例 2 多中断源。 MCS - 51 单片机有两个外部中断输入端, 当有 2 个以上中断源时, 它的中断输入端就不够了。此时, 可以将定时器/计数器作为外部中断源使用,也可以采用中断与查询相结合的方法来实现。 可以使每个中断源都接在同一个外部中断输入端上, 同时利用输入口线作为多中断源情况下各中断源的识别线。null 图 5.6 多中断源 nullORG 0003H  LJMP INT0 … INT0: PUSH PSW PUSH ACC JB P0.7, DV1 JB P0.6, DV2 JB P0.5, DV3 JB P0.4, DV4 GOBACK: POP ACC POP PSW RETI DV1: … ; 装置1中断服务程序 … null AJMP GOBACK DV2: … ; 装置2中断服务程序 … AJMP GOBACK DV3: … ; 装置3中断服务程序 … AJMP GOBACK DV4: … ; 装置4中断服务程序 … AJMP GOBACK
本文档为【第四章 中断系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_931786
暂无简介~
格式:ppt
大小:667KB
软件:PowerPoint
页数:0
分类:理学
上传时间:2011-02-27
浏览量:22