单片机的中断

上传人:jiups****uk12 文档编号:45500472 上传时间:2018-06-17 格式:PPT 页数:31 大小:677KB
返回 下载 相关 举报
单片机的中断_第1页
第1页 / 共31页
单片机的中断_第2页
第2页 / 共31页
单片机的中断_第3页
第3页 / 共31页
单片机的中断_第4页
第4页 / 共31页
单片机的中断_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《单片机的中断》由会员分享,可在线阅读,更多相关《单片机的中断(31页珍藏版)》请在金锄头文库上搜索。

1、第5章 MCS - 51单片机的中断 第5章 MCS - 51单片机的中断 5.1 中断的概述5.2 MCS-51中断系统5.3 中断系统的应用 第5章 MCS - 51单片机的中断 5.1 中 断 的 概 述 1. 中断中断是指计算机在执行某一程序的过程中, 由于计算机系统内、 外的某种原因, 而必须中止原程序的执行, 转去执行相应的处理程序, 待处理结束之后, 再回来继续执行被中止的原程序的过程。 采用了中断技术后的计算机, 可以解决CPU与外设之间速度匹配的问题, 使计算机可以及时处理系统中许多随机的参数和信息, 同时, 它也提高了计算机处理故障与应变的能力。第5章 MCS - 51单片

2、机的中断 2. 中断源中断源是指在计算机系统中可以向CPU发出中断请求 的来源。 通常有I/O设备、实时控制系统中的随机参数 和信息故障源等。3. 中断优先级中断优先级越高, 则响应优先权就越高。当CPU正在 执行中断服务程序时, 又有中断优先级更高的中断申请 产生, 这时CPU就会暂停当前的中断服务转而处理高级 中断申请, 待高级中断处理程序完毕再返回原中断程序 断点处继续执行, 这一过程称为“中断嵌套”。第5章 MCS - 51单片机的中断 4. 中断响应的一般过程(1)在每条指令结束后, 系统都自动检测中断请求信号, 如果有中断请求,且CPU处于开中断状态下, 则响应中断,将返回地址压入

3、堆栈。(2) 保护现场, 在保护现场前, 一般要关中断, 以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。 (3)中断服务, 即为相应的中断源服务。第5章 MCS - 51单片机的中断 (4) 恢复现场, 用堆栈指令将保护在堆栈中的数据弹出来, 在恢复现场前要关中断, 以防止现场被破坏。在恢复现场后应及时开中断。(5) 返回, 此时 CPU将推入到堆栈的断点地址弹回到程序计数器, 从而使CPU继续执行刚才被中断的程序。 第5章 MCS - 51单片机的中断 5.2 MCS-51中断系统图5.1 MCS - 51中断系统结构框图 第5章 MCS - 51单片机的中断 5

4、.2.1 中断源 表 5.1 8051 中 断 源第5章 MCS - 51单片机的中断 中断标志(Flag)IE0:外部中断0中断标志TF0:定时器/计数器0中断标志IE1:外部中断1中断标志TF1:定时器/计数器1中断标志TI:串行口发送中断标志RI:串行口接收中断标志第5章 MCS - 51单片机的中断 1. 定时器控制寄存器TCON的格式(88H ) TF1TR1TF0TR0IE1IT1IE0IT0 (MSB)(LSB)IT0:外部中断0触发方式选择位 0:低电平触发 1:负跳变触发IE0:外部中断0中断请求标志IT1、IE1 类似 IT0、IE0TR0:定时/计数器0运行控制位 0:停

5、止 1:运行TF1:定时/计数器0中断请求标志位TR1、TF1 类似 TR0、TF0第5章 MCS - 51单片机的中断 2. 特殊功能寄存器SCON的格式(98H) SM0和SM1:串行口工作方式选择位 SM2:多机通信使能位 REN: 接收允许位 TB8:发送数据位8 RB8:接收数据位8 TI: 串行口发送中断请求标志 RI: 串行口接收中断请求标志 SM0SM1SM2RENTB0RB0TIRIMSBLSB第5章 MCS - 51单片机的中断 5.2.2 中断控制 1. 中断允许控制MCS - 51单片机有5个(8052有6个)中断源, 为了使每个中断源都能独立地被允许或禁止, 以便用户

6、能灵活使用, CPU内部在每个中断信号的通道中设置了一个中断允许触发器, 它控制CPU能否响应中断。只有对应的中断允许触发器被使能(置“1”),相应的中断才能得到相应。 第5章 MCS - 51单片机的中断 EX0:外部中断0允许位 ET0:定时器/计数器0中断允许位 EX1:外部中断1允许位 ET1:定时器/计数器1中断允许位 ES : 串行口中断允许位 EA :中断总允许位EAESET 1EX 1ET 0EX 0(MSB)(LSB)中断允许控制寄存器IE (0A8H)第5章 MCS - 51单片机的中断 2. 中断优先级控制寄存器IP(0B8H) PSPT 1PX 1PT 0PX 0(MS

7、B)(LSB)PX0:外部中断0允许位 PT0:定时器/计数器0中断允许位 PX1:外部中断1允许位 PT1:定时器/计数器1中断允许位 PS :串行口中断允许位第5章 MCS - 51单片机的中断 当两个以上的中断源同时提出申请时,CPU到底相 应哪个中断呢?中断响应遵循两条规则:(1)低优先级中断可以被高优先级中断所中断 ,反之不能;(2)一种中断(不论哪个优先级)一旦得到响 应,与它同级的中断不能再中断它。第5章 MCS - 51单片机的中断 表5.2 同级内第二优先级次序 当同时收到处于同一优先级的多个中断请求时 ,哪一个中断能得到响应,取决于“内部查询次序 ”,相当于在每个优先级中,

8、还有一个“内部优先 级”,如下表所示:第5章 MCS - 51单片机的中断 例1: 某软件中对寄存器IE、 IP设置如下:MOV IE, 8FH;10001111BMOV IP, 06H;00000110B如果此时5个中断源同时提出申请,系统响应哪一个例2: 某软件中对寄存器IE、 IP设置如下:MOV IE, 9FH;10001111BMOV IP, 0EH;00001110B如果此时5个中断源同时提出申请,系统响应哪一个例3: 某软件中: IE=1FH, IP=1FH,如果此时5个中断源 同时提出申请,系统响应哪一个第5章 MCS - 51单片机的中断 5.2.3 中断响应的阻断条件在EA

9、1且相应的中断允许位也为1的情况下, 检测到的最高级的中断请求将会得到相应。但此时 如果发生下列三种情况中的任何一种,中断响应的 过程将被阻断: (1) 同级或高优先级的中断已在进行中; (2) 当前的机器周期还不是正在执行指令的最后 一个机器周期(换言之, 正在执行的指令完成前, 任何中断请求都得不到响应); (3) 正在执行的是一条RETI 或者访问特殊功能 寄存器IE或IP的指令(换言之, 在RETI或读写IE 或IP之后, 不会马上响应中断请求, 而至少执行一 条其它指令之后才会响应)。 第5章 MCS - 51单片机的中断 当上述阻断条件存在时,中断不能被相应,且丢弃 查询结果。若阻

10、断条件结束时,中断标志已经消失,则 这个被拖延了的中断请求可能不会再得到响应。在单一外部中断的系统里(即不考虑上述阻断条件 中断的第一个条件),外部中断响应时间总是在38个 机器周期之间。第5章 MCS - 51单片机的中断 2. 单片机一旦响应中断请求, 由硬件完成以下功能 : (1) 根据响应的中断源的中断优先级, 使相应的 优先级状态触发器置1; (2) 执行硬件中断服务子程序调用, 并把当前程序 计数器PC的内容压入堆栈; (3) 清除相应的中断请求标志位(串行口中断请求志RI和TI除外); (4) 把被响应的中断源所对应的中断服务程序的入地址(中断矢量)送入PC, 从而转入相应的中断

11、服 务程序。 第5章 MCS - 51单片机的中断 中断响应过程,相当于执行了一条隐含的调 用指令(或称隐指令)LCALL。例如当TF0被置1且得到中断响应时,CPU就 自动的执行一条隐指令“LCALL 000BH”。应当注意,在中断服务子程序的调用过程中 ,仅仅保存了PC的信息,其余的现场信息(如寄 存器的值等)都要由编程人员通过软件来进行保 护。第5章 MCS - 51单片机的中断 表5.3 中断服务程序入口地址表 第5章 MCS - 51单片机的中断 例如, 现有外部中断1提出申请, 且主程序中有R0、R1、DPTR、累加器A需保护, 则编制程序应为: ORG 0000H AJMP MA

12、INORG 0013HLJMP INT1ORG 0100HMAIN: ; 主程序ORG 1000H 第5章 MCS - 51单片机的中断 INT1: PUSH ACC ; 中断服务程序PUSH DPH;若有更高级中断,PUSH DPL;应先关闭EAPUSH R0 ;待现场保护完成后PUSH R1 ;再打开EAPOP R1 ;恢复现场时相同POP R0POP DPLPOP DPHPOP ACCRETI 第5章 MCS - 51单片机的中断 编程中应注意: (1)在 0000H放一条跳转到主程序的跳转指令, 这是因为MCS-51单片机复位后, PC的内容变为0000H, 程序从0000H 开始执行

13、, 紧接着0003H是中断程序入口地址, 故在此中间只能插入一条转移指令; (2)响应中断时, 先自动执行一条隐指令“LCALL 0013H”, 而0013H至001BH(定时器1溢出中断入口地址)之间可利用的存储单元不够, 故放一条无条件转移指令。 (3) 在中断服务程序的末尾, 必须安排一条中断返回指令RETI, 使程序自动返回主程序。 第5章 MCS - 51单片机的中断 5.3 中断系统的应用 例 1 单步操作的中断实现,电路如图所示,要求每按一下开 关,主程序执行一条指令。ORG 0000HLJMP MAINORG 0003HLJMP INTIORG 0100H MAIN:CLR I

14、T0 ; INT0设置为低电平触发方式SETB EASETB EX0(主程序) INTI: JNB P3.2, $ ; 在INT0变高前,原地等待(死循环)JB P3.2, $ ; 在 INT0变低前,原地等待(死循环)RETI ; 返回并执行一条指令END 第5章 MCS - 51单片机的中断 现在,若INT0保持低电平, 且允许INT0中断, 则CPU就进入外部中断0服务程序, 由于有上述几条指令, 它就会停在JNB处原地等待。当INT0端出现一个正脉冲(由低到高, 再到低)时, 程序就会往下执行, 执行RETI后, 将返回主程序, 往下执行一条指令, 然后又立即响应中断,以等待INT0端

15、出现的下一个正脉冲。 这样在INT0端每出现一个正脉冲, 主程序就执行一条指令, 实现了单步执行的目的, 要注意的是, 这个正脉冲的高电平持续时间不小于2个周期, 以确保 CPU能采集到高电平值。 第5章 MCS - 51单片机的中断 外中断的中断服务程序编程总结:程序框架:在0000H单元放一条长跳转指令到主程 序,绕开中断服务程序入口,在中断服务程序入口放 一条长跳转指令转入中断服务程序。初始化工作:在主程序开始部分对中断进行初始化(1)设置中断触发方式(IT0或IT1)(2)置EA=1,开放CPU中断(3)置EX0=1(或EX1=1),开放外中断(4)中断优先级控制字写入IP(可选) 第

16、5章 MCS - 51单片机的中断 例 2 多中断源。MCS-51单片机有两个外部中断输入端, 当有2 个以上中断源时, 它的中断输入端就不够了。此时, 可以将定时器/计数器作为外部中断源使用,也可以采用中断与查询相结合的方法来实现。 可以使每个中断源都接在同一个外部中断输入端上, 同时利用输入口线作为多中断源情况下各中断源的识别线。第5章 MCS - 51单片机的中断 图 5.6 多中断源 第5章 MCS - 51单片机的中断 ORG 0003H LJMP INT01(主程序)INT01: PUSH PSWPUSH ACCJB P0.7, DV1JB P0.6, DV2JB P0.5, DV3JB P0.4, DV4 GOBACK: POP ACCPOP PSWRETIDV1: ; 装置1中断服务

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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