单片机第5章 中断系统

上传人:子 文档编号:51971942 上传时间:2018-08-17 格式:PPT 页数:47 大小:809.50KB
返回 下载 相关 举报
单片机第5章 中断系统_第1页
第1页 / 共47页
单片机第5章 中断系统_第2页
第2页 / 共47页
单片机第5章 中断系统_第3页
第3页 / 共47页
单片机第5章 中断系统_第4页
第4页 / 共47页
单片机第5章 中断系统_第5页
第5页 / 共47页
点击查看更多>>
资源描述

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

1、1第5章 AT89S51单片机的 中断系统12现实生活中某人等一个的电话,在电话来之前,他可怎么安排自己的时间?3某人等一个的电话,在电话来之前,他可怎么安排自己的时间?一直坐在电话旁边等电话干其他事情,当电话铃响后, 放下手头工作接电话中断查询正 在 做 某 事继续 干没 干完 的事电话铃 响了接 电 话挂电话对未做完 的事标好 记号走到电话 机旁边回到刚才 干某事的 地方中断请求中断响应中断返回55.2.1 中断请求源由图5-2可见,AT89S51中断系统共有5个中断请求源:(1) 外部中断请求0,中断请求信号由 引脚输入,中断请求标志为IE0。(2) 外部中断请求1,中断请求信号由 引脚

2、输入,中断请求标志为IE1。(3)定时器/计数器T0计数溢出发出的中断请求,中断请求标志为TF0。(4)定时器/计数器T1计数溢出发出的中断请求,中断请求标志为TF1。(5)串行口中断请求,中断请求标志为发送中断TI或接收中断RI。56 6图图5-2 AT89S51的中断系统结统结 构示意图图75.2.2 中断请求标志寄存器5个中断请求源的中断请求标志分别由TCON和SCON的相应位锁存。1. TCON寄存器为定时器/计数器的控制寄存器,字节地址为88H,可位寻址。特殊功能寄存器TCON的格式如图5-3所示。7图图5-3 特殊功能寄存器TCON的格式8TCON各标志位功能如下:(1)TF1定时

3、器/计数器T1的溢出中断请求标志位。当T1计数产生溢出时,由硬件使TF1置“1”,向CPU申请中断。CPU响应TF1中断时,TF1标志由硬件自动清“0”,TF1也可由软件清“0”。(2)TF0定时器/计数器T0的溢出中断请求标志位,功能与TF1类似。(3)IE1外部中断请求1的中断请求标志位。(4)IE0外部中断请求0中断请求标志位,功能与IE1类似。(5)IT1选择外部中断请求1为跳沿触发还是电平触发。89IT1=0,电平触发方式,引脚 上低电平有效,并把IE1置“1”。转向中断服务程序时,由硬件自动把IE1清“0”。IT1=1,跳沿触发方式,加到引脚 上的外部中断请求输入信号电平从高到低的

4、负跳变有效,并把IE1置“1”。转向中断服务程序时,由硬件自动把IE1清“0”。(6)IT0选择外部中断请求0为跳沿触发方式还是电平触发方式,其意义与IT1类似。AT89S51复位后,TCON被清“0”,5个中断源的中断请求标志均为0。TR1(D6位)、TR0(D4位)这2位与中断系统无关,将在第6章定时器/计数器中介绍。9102. SCON寄存器串行口控制寄存器,字节地址为98H,可位寻址。低二位锁存串行口的发送中断和接收中断的中断请求标 志TI和RI,格式如图5-4所示。图5-4 SCON中的中断请求标志位各标志位的功能: (1)TI串行口的发送中断请求标志位。每发送完一帧串行数据后,TI

5、自动置“1”。TI标志必须由软件清“0”。1011(2)RI串行口接收中断请求标志位。串行口接收完一个串行数据帧,硬件自动使RI中断请求标志置“1”。必须在中断服务程序中用指令对RI清“0”。 5.3 中断允许与中断优先级的控制中断允许控制由中断允许寄存器IE控制。中断优先级控制由中断优先级寄存器IP控制。5.3.1 中断允许寄存器IEAT89S51的对各中断源的开放或屏蔽,是由中断允许寄存器IE控制的。IE字节地址为A8H,可位寻址,格式如图5-5所示。1112图5-5 中断允许寄存器IE的格式IE对中断的开放和关闭实现两级控制。有一个总的开关中断控制位EA(IE.7位),EA=0时,所有的

6、中断请求被屏蔽;EA=1时,开放中断,但5个中断源的中断请求是否允许,还要由IE中的低5位所对应的5个中断请求允许控制位的状态来决定(图5-5)。1213IE中各位功能如下:(1)EA中断允许总开关控制位。EA=0,所有的中断请求被屏蔽。EA=1,所有的中断请求被开放。(2)ES串行口中断允许位。ES=0,禁止串行口中断。ES=1,允许串行口中断。(3)ET1定时器/计数器T1的溢出中断允许位。ET1=0,禁止T1溢出中断。ET1=1,允许T1溢出中断。(4)EX1外部中断1中断允许位。1314EX1=0,禁止外部中断1中断。EX1=1,允许外部中断1中断。(5)ET0定时器/计数器T0的溢出

7、中断允许位。ET0=0,禁止T0溢出中断。ET0=1,允许T0溢出中断。(6)EX0外部中断0中断允许位。EX0=0,禁止外部中断0中断。EX0=1,允许外部中断0中断。15AT89S51复位以后,IE被清“0”,所有中断请求被禁止。IE中与各个中断源相应的位可用指令置“1”或清“0”。若使某一个中断源被允许中断,除了IE相应的位被置“1”外,还必须使EA位置“1”。改变IE的内容,可由位操作指令来实现(即SETB bit;CLR bit),也可用字节操作指令实现。1516【例5-1】 若允许片内2个定时器/计数器中断,并禁止其他中断源的中断请求,请编写设置IE的相应程序段。(1)用位操作指令

8、CLRES;禁止串行口中断 CLREX0;禁止外部中断0中断 CLREX1;禁止外部中断1中断 SETBET0;允许定时器/计数器T0中断 SETBET1;允许定时器/计数器T1中断 SETBEA ;总中断开关位开放(2)用字节操作指令MOV IE,#8AH上述两段程序对IE的设置是相同的。16175.3.2 中断优先级寄存器IPAT89S51的中断请求源有两个中断优先级,由软件分别设置为高优先级中断或低优先级中断,可实现:两级中断嵌套AT89S51正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断服务程序。两级中断嵌套的过程如图5-6所

9、示。171818图5-6 两级中断嵌套的过程19各中断源的中断优先级关系,可归纳为两条基本规则:(1)低优先级可被高优先级中断,高优先级不能低优先级中断。如果某一中断源被设置为高优先级中断,则不能被任何其他的中断源的中断请求所中断。(2)任何一种中断一旦得到响应,不会再被它的同级中断源所中断。中断优先级寄存器IP,其字节地址为B8H,可位寻址。只要用程序改变其内容,可进行各中断源中断优先级的设置,IP寄存器的格式如图5-7所示。1920图5-7 IP寄存器的格式中断优先级寄存器IP各位的含义如下:(1)PS串行口中断优先级控制位1:高优先级0:低优先级(2)PT1定时器T1中断优先级控制位1:

10、高优先级0:低优先级2021(3)PX1外部中断1中断优先级控制位 1:高优先级 0:低优先级 (4)PT0定时器T0中断优先级控制位 1:高优先级 0:低优先级 (5)PX0外部中断0中断优先级控制位 1:高优先级 0:低优先级中断优先级控制寄存器IP用位操作指令或字节操作指令可更新IP的内容,以改变中断优先级。AT89S51复位以后,IP的内容为0,各个中断源均为低优先级中断。2122AT89S51的中断系统有两个不可寻址的“优先级激活触发器。一个指示某高优先级的中断正在执行,所有后来的中断均被阻止;另一个触发器指示某低优先级的中断正在执行,所有同级的中断都被阻止,但不阻断高优先级的中断请

11、求。在同时收到几个同优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。这相当于在同一个优先级内,还同时存在另一个辅助优先级结构,其查询顺序见表5-1。2223表5-1 同级中断的查询次序由此可见,各中断源在同一个优先级的条件下,外部中断0的中断优先权最高,串行口中断优先权最低。2324【例5-2】 IP寄存器初始化,AT89S51的两个外中断请求为高优先级,其他中断请求为低优先级。(1)用位操作指令SETB PX0;外中断0设置为高优先级SETB PX1;外中断1设置为高优先级CLR PS;串行口设置为低优先级CLR PT0;定时器/计数器T0为低优先级CLR PT1;定

12、时器/计数器T1为低优先级 (2)用字节操作指令MOV IP,#05H24255.4 响应中断请求的条件中断请求被响应,必须满足以下必要条件:(1)总中断允许开关接通,即IE寄存器中的中断总允许位EA=1。(2)该中断源发出中断请求,即对应的中断请求标志为“1”。(3)该中断源的中断允许位EA=1,即该中断被允许。(4)无同级或更高级中断正在被服务。当CPU查询到有效的中断请求时,在满足上述条件时,紧接着就进行中断响应。2526中断响应的过程:首先由硬件自动生成一条长调用指令“LCALL addr16”。就是程序存储区中相应的中断入口地址。例如,对于外部中断1的响应,硬件自动生成的长调用指令为

13、LCALL 0013H首先将程序计数器PC的内容压入堆栈以保护断点,再将中断入口地址装入PC,使程序转向响应中断请求的中断入口地址。各中断源服务程序的入口地址,如表5-2所示。2627表5-2 中断入口地址表 两个中断入口间只相隔8字节,难以安放一个完整的中断服务程序。因此,通常在中断入口地址处放置一条无条件转移指令,使程序执行转向中断服务程序入口。2728中断响应是有条件的,当遇到下列三种情况之一时,中断响应被封锁:(1)CPU正在处理同级或更高优先级的中断。(2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。只有在当前指令执行完毕后,才能进行中断响应,以确保当前指令执行的完整性。

14、(3)正在执行的指令是RETI或是访问IE或IP的指令。因为按照AT89S51中断系统的规定,在执行完这些指令后,需要再执行完一条指令,才能响应新的中断请求。如果存在上述三种情况之一,CPU将丢弃中断查询结果,不能对中断进行响应。28295.5 外部中断的响应时间使用外部中断时,需考虑从外部中断请求到转向中断入口地址所需的时间。外部中断的最短响应时间为3个机器周期。其中中断请求标志位查询占1个机器周期,而这个机器周期恰好处于指令的最后一个机器周期。在这个机器周期结束后,中断即 被响应,CPU接着执行一条硬件子程序调用指令LCALL到相中断服务程序入口,需要2个机器周期。外部中断响应的最长时间为

15、8个机器周期。在CPU进行中断标志查询时,刚好才开始执行RETI或访问IE或IP的指令,需执行完指令再继续执行一条指令后,才响应中断。2930执行RETI或访问IE或IP的指令,最长需要2个机器周期。接着再执行一条指令,最长指令(乘法指令MUL和除法指令DIV)来算,也只有4个机器周期。再加上硬件子程序调用指令LCALL的执行,需要2个机器周期,所以,外部中断响应的最长时间为8个机器周期。如果已经在处理同级或更高级中断,外部中断请求的响应时间取决于正在执行的中断服务程序的处理时间,这种情况下,响应时间就无法计算了。这样,在一个单一中断的系统里,AT89S51单片机对外部中断请求的响应时间总是在

16、38个机器周期之间。30315.6 外部中断的触发方式选择两种触发方式:电平触发方式和跳沿触发方式。5.6.1 电平触发方式外部中断申请触发器的状态随着CPU在每个机器周期采样到的外部中断输入引脚的电平变化而变化。在中断服务程序返回之前,外中断请求输入必须无效(即外部中断请求输入已由低电平变为高电平),否则会再次响应中断。所以本方式适合于外部中断以低电平输入且中断服务程序能清除外部中断请求源(即外中断输入电平又变为高电平)的情况。31325.6.2 跳沿触发方式外部中断申请触发器能锁存外部中断输入线上的负跳变。即使不能响应,中断请求标志不丢失。相继连续两次采样,一个机器周期为高,下一个机器周 期采样为低,则中断申请触发器置1,直到CPU响应此中断时,才清0。输入的负脉冲宽度至少保持12个时钟周期,才能被采样到。适合于以负脉冲形式输入的

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

当前位置:首页 > 生活休闲 > 科普知识

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