第7章 MCS51的中断控制系统.ppt

上传人:文库蛋蛋多 文档编号:2217567 上传时间:2023-02-01 格式:PPT 页数:48 大小:3.18MB
返回 下载 相关 举报
第7章 MCS51的中断控制系统.ppt_第1页
第1页 / 共48页
第7章 MCS51的中断控制系统.ppt_第2页
第2页 / 共48页
第7章 MCS51的中断控制系统.ppt_第3页
第3页 / 共48页
第7章 MCS51的中断控制系统.ppt_第4页
第4页 / 共48页
第7章 MCS51的中断控制系统.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《第7章 MCS51的中断控制系统.ppt》由会员分享,可在线阅读,更多相关《第7章 MCS51的中断控制系统.ppt(48页珍藏版)》请在三一办公上搜索。

1、第7章 MCS-51的中断控制系统本章定位知识提高 71 中断的相关概念 72 MCS-51单片机中断系统结构 721 中断请求源与中断源寄存器TCON、SCON 722 中断控制与中断控制寄存器IE、IP 73 中断的处理过程 731 中断响应 732 中断服务 733 中断返回 74 多外部中断源系统设计 741 用定时器计数器扩展外部中断源 742 中断和查询结合的方法 743 用优先权编码器扩展外部中断源 75 中断系统的程序设计与应用实例,第7章 MCS-51的中断控制系统实时测控,单片机能及时地响应和处理单片机外 部事件或内部事件所提出的中断请求。7.1 中断的相关概念CPU正在执

2、行程序时,单片机外部或内部发生的某一事件,请求CPU迅速去处理。CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。处理完该事件后,再回到原来被中止的地方,继续原来的工作,这称为中断。CPU处理事件的过程,称为CPU的中断响应过程。,对事件的整个处理过程,称为中断处 理(或中断服)。,能够实现中断处理功能的部件称为中断系统;产生中断的请求源称为中断请求源。中断源向CPU提出的处理请求,称为中断请求(或中断申请)。进入中断保护现场中断处理恢复现场 中断返回中断方式优点:大大地提高了CPU的工作效率。7.2 MCS-51中断系统的结构有5个中断请求源,两个中断优先级,可两级嵌套。中断系

3、统结构示意图如下图所示。,7.2.1 中断请求源 及 TCON 和 SCON五个中断请求源:(1)INT0*外部中断请求0,由引脚INT0*输入,中断请求标志为IE0。(2)INT1*外部中断请求1,由引脚INT1*输入,中断请求标志为IE1。(3)定时器/计数器T0溢出中断请求,中断请求标志为TF0。(4)定时器/计数器T1溢出中断请求,中断请求标志为TF1。(5)串行口中断请求,中断请求标志为TI或RI。由特殊功能寄存器TCON和SCON的相应位锁存。,1.TCON为定时器/计数器的控制寄存器,字节地址为88H。包含:(1)T0和T1的溢出中断请求标志位TF1和TF0(2)外部中断请求标志

4、位IE1与IE0。格式如下所示:各标志位的功能:(1)IT0选择外部中断请求0为跳沿触发方式还是电平触发方式:IT0=0,为电平触发方式。,IT0=1,为跳沿触发方式。可由软件置“1”或清“0”。(2)IE0外部中断请求0的中断请求标志位。IE0=0,无中断请求。IE0=1,外部中断0有中断请求。当CPU响应该中断,转向中断服务程序时,由硬件清“0”IE0。(3)IT1外部中断请求1为跳沿触发方式还是电平触发方式,意义与IT0类似。(4)IE1外部中断请求1的中断请求标志位,意义与IE0类似。,(5)TF0T0溢出中断请求标志位。T0计数后,溢出时,由硬件置“1”TF0,向CPU申请中断,CP

5、U响应TF0中断时,硬件自动清“0”TF0,TF0也可由软件清0。(6)TF1T1的溢出中断请求标志位,功能和TF0类似。TR1、TR0 2个位与中断无关。当MCS-51复位后,TCON被清0,则CPU关中断,所有中断请求被禁止。,2.SCON为串行口控制寄存器,字节地址为98H。串行口的发送中断和接收中断的中断请求标志TI和RI,格式如下:各标志位的功能:(1)TI发送中断请求标志位。串口每发送完一帧串行数据后,硬件自动置“1”TI。必须在中断服务程序中用软件对TI标志清“0”。,(2)RI接收中断请求标志位。串口接收完一个数据帧,硬件自动置“1”RI标志。必须在中断服务程序中用软件对RI标

6、志清“0”。7.2.2 中断控制 和 IE IP1.中断允许寄存器IE CPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE控制。字节地址为A8H,可位寻址。格式如下:,IE对中断的开放和关闭为两级控制 总的开关中断控制位EA(IE.7位):EA=0,所有中断请求被屏蔽。EA=1,CPU开放中断,但五个中断源的中断请求是否允许,还要由IE中的5个中断请求允许控制位决定。IE中各位的功能如下:(1)EA:中断允许总控制位0:CPU屏蔽所有的中断请求(CPU关中断);1:CPU开放所有中断(CPU开中断)。,(2)ES:串行口中断允许位0:禁止串行口中断;1:允许串行口中断。(3)ET1:定时器

7、/计数器T1的溢出中断允许位0:禁止T1溢出中断;1:允许T1溢出中断。(4)EX1:外部中断1中断允许位0:禁止外部中断1中断;1:允许外部中断1中断。,(5)ET0:定时器/计数器T0的溢出中断允许位0:禁止T0溢出中断;1:允许T0溢出中断。(6)EX0:外部中断0中断允许位。0:禁止外部中断0中断;1:允许外部中断0中断。MCS-51复位后,IE清0,所有中断请求被禁止。若使某一个中断源被允许中断,除了IE相应的位的被置“1”,还必须使EA位=1。,改变IE的内容,可由位操作指令来实现,即:SETB bit;CLR bit。例7-补1 若允许片内2个定时器/计数器中断,禁止其它中断源的

8、中断请求。编写设置IE的相应程序段(1)用位操作指令来编写如下程序段:CLR ES;禁止串行口中断 CLR EX1;禁止外部中断1中断CLR EX0;禁止外部中断0中断,SETB ET0;允许定时器/计数器T0中断 SETB ET1;允许定时器/计数器T1中断 SETB EA;CPU开中断(2)用字节操作指令来编写:MOV IE,#8AH或者用:MOV 0A8H,#8AH;A8H为IE寄存器字节地址2.中断优先级寄存器IP两个中断优先级,可实现两级中断嵌套。如图7-2示。,可归纳为下面两条基本规则:(1)低优先级可被高优先级中断,反之则不能。(2)同级中断不会被它的同级中断源所中断。,若CPU

9、正在执行高优先级的中断,则不能被任何中断源所中断。中断优先级寄存器IP,其字节地址为B8H。IP各个位的含义:(1)PS串行口中断优先级控制位1:高优先级中断;0:低优先级中断。,(2)PT1定时器T1中断优先级控制位1:高优先级中断;0:低优先级中断。(3)PX1外部中断1中断优先级控制位1:高优先级中断;0:低优先级中断。(4)PT0定时器T0中断优先级控制位1:高优先级中断;0:低优先级中断。,(5)PX0外部中断0中断优先级控制位1:高优先级中断;0:低优先级中断。由软件可改变各中断源的中断优先级。MCS-51的中断系统有两个不可寻址的“优先级激活触发器”:一个用来指示某高优先级的中断

10、正在执行,所有后来的中断均被阻止。,另一个用来指示某低优先级的中断正在执行,所有同级中断都被阻止,但不阻断高优先级的中断请求。在同时收到几个同一优先级的中断请求时,优先响应哪一个中断,取决于内部的查询顺序。查询顺序如下:表7-1 中断源 同级内的中断顺序外部中断0最先T0溢出中断外部中断1T1溢出中断串行口中断最后,例7-补2 设置IP寄存器的初始值,使2个外中断请求为高优先级,其它中断请求为低优先级。(1)用位操作指令 SETB PX0;2个外中断为高优先级 SETB PX1 CLR PS;串口为低优先级中断CLR PT0;2个定时器/计数器低优先级中断CLR PT1,(2)用字节操作指令

11、MOV IP,#05H或:MOV 0B8H,#05H;B8H为IP寄存器的字节地址 7.3 中断的处理过程7.3.1 中断响应1.中断响应条件 一个中断请求被响应,需满足以下必要条件:(1)IE寄存器中的中断总允许位EA=1。(2)该中断源发出中断请求,即该中断源对应的中 断请求标志为“1”。,(3)该中断源的中断允许位=1,即该中断没有被屏 蔽。(4)无同级或更高级中断正在被服务。2.中断响应过程:首先由硬件自动生成一条长调用指令:LCALL addr16接着就由CPU执行该指令,将PC的内容压入堆栈以保护断点,再将中断入口地址装入PC。各中断源服务程序的入口地址固定,如下所示:,中断源 入

12、口地址 外部中断0 0003H 定时器/计数器T0 000BH外部中断1 0013H 定时器/计数器T1001BH串行口中断0023H中断响应是有条件的,遇到下列三种情况之一时,中断响应被封锁:(1)CPU正在处理同级的或更高优先级的中断。,(2)所查询的机器周期不是所当前正在执行指令的最后一个机器周期。只有在当前指令执行完毕后,才能进行中断响应。(3)正在执行的指令是RETI或是访问IE或IP的指令。需要再去执行完一条指令,才能响应新的中断请求。如果存在上述三种情况之一,CPU将丢弃中断查询结果,不能对中断进行响应。3.外部中断的响应时间-记住结论即可外部中断的最短的响应时间为3个机器周期:

13、,(1)中断请求标志位查询占1个机器周期。(2)子程序调用指令LCALL转到相应的中断服务程序入口,需2个机器周期。外部中断响应的最长的响应时间为8个机器周期:(1)发生在CPU进行中断标志查询时,刚好是开始执行RETI或是访问IE或IP的指令,则需把当前指令执行完再继续执行一条指令后,才能响应中断,最长需2个机器周期。(2)接着再执行一条指令,按最长指令(乘法指令,MUL和除法指令DIV)来算,也只有4个机器周期。(3)加上硬件子程序调用指令LCALL的执行,需要2个机器周期。所以,外部中断响应最长时间为8个机器周期。如果已在处理同级或更高级中断,响应时间无法计算。在一个单一中断的系统里,M

14、CS-51单片机对外部中断请求的响应的时间总是在38个机器周期之间。,7.3.2 中断服务 保护断点 一段特殊的“子程序”7.3.3 中断返回 入栈与出栈的配合 请求服务,返回前撤销中断请求否则重复中断。补充:外部中断的触发方式选择两种触发方式:电平触发方式和跳沿触发方式。7补1 电平触发方式CPU在每个机器周期采样到的外部中断输入线的电平。在中断服务程序返回之前,外部中断请求输入必须无效(即变为高电平),否则CPU返回主程序后会再次响应中断。适于外中断以低电平输入且中断服务程序能清除外部中断请求(即外部中断输入电平又变为高电平)的情况。,7补2 跳沿触发方式 连续两次采样,一个机器周期采样到

15、外部中断输入为高,下一个机器周期采样为低,则置“1”中断请求标志,直到CPU响应此中断时,该标志才清0。这样不会丢失中断,但输入的负脉冲宽度至少保持1个机器周期。*中断请求的撤消 定时+外部+串行1定时器/计数器中断请求的撤消 中断请求被响应后。硬件会自动清TF0或TF1。2外部中断请求的撤消,(1)跳沿方式外部中断请求的撤消是自动撤消的。(2)电平方式外部中断请求的撤消:除了标志位清“0”之外,还需在中断响应后把中断请求信号引脚从低电平强制改变为高电平,如图7-4所示。只要P1.0端输出一个负脉冲就可以使D触发器置“1”,从而撤消了低电平的中断请求信号。,所需的负脉冲可增加如下两条指令得到:

16、SETB P1.O;P1.0为“1”CLR P1.0;P1.0为“0”电平方式的外部中断请求信号的完全撤消,是通过软硬件相结合的方法来实现的。3串行口中断请求的撤消响应串行口的中断后,CPU无法知道是接收中断还是发送中断,还需测试这两个中断标志位的状态,以判定是接收操作还是发送操作,然后才能清除。所以串行口中断请求的撤消只能用软件清除CLR TI;清TI标志位CLR RI;清RI标志位,7.4 多外部中断源系统设计 7.4.3 优先权编码 自学 两个外部中断请求源往往不够用。7.4.1 用定时器/计数器扩展外部中断源定时器/计数器选为计数器工作模式,T0(或T1)引脚上发生负跳变时,T0(或T

17、1)计数器加1,利用该特性,可以把T0(或T1)引脚作为外部中断请求输入引脚,计数器初值设为FFH,TF0(或TF1)作为外部中断请求标志。,ORG 0000HAJMP MAIN;跳到初始化程序 MAIN:MOV TMOD,#06H;设置T0的工作方式MOV TL0,#0FFH;设置计数器初值 MOV TH0,#0FFH SETB TR0;启动T0,开始计数 SETB ET0;允许T0中断 SETB EA;CPU开中断,当连接在P3.4(T0引脚)的电平发生负跳变时,TL0加1,产生溢出,置“1”TF0,向CPU发出中断请求,同时TH0的内容0FFH送TL0,即TL0恢复初值0FFH。7.4.

18、2 中断和查询结合的方法最高级别中断请求源IR0接INT0*输入端,其余的外部中断请求源IR1IR4用“线或”的办法连到MCS-51的另一个外中断源输入端,同时还连到P1口。5个外部中断源的排队顺序依此为:IR0IR4。,外部中断INT1的中断服务程序INT1:PUSH PSW;保护现场 PUSH AMOV P1,#0FFHJB P1.0,IR1;P1.0高,IR1有请求JB P1.1,IR2;P1.1高,IR2有请求JB P1.2,IR3;P1.2高,IR3有请求 JB P1.3,IR4;P1.3高,IR4有请求 INTIR:POP A;恢复现场 POP PSW RETI;中断返回,IR1:

19、IR1的中断处理程序 AJMP INTIR;IR2:IR2的中断处理程序 AJMP INTIR;IR3:IR3的中断处理程序 AJMP INTIR;IR4:IR4的中断处理程序 AJMP INTIR;,7.5 中断系统的程序设计与应用实例补充、中断服务程序设计需进行的任务 基本任务:(1)设置中断允许控制寄存器IE。(2)设置中断优先级寄存器IP。(3)对外中断源,是采用电平触发还是跳沿触发。(4)编写中断服务程序,处理中断请求。前2条一般放在主程序的初始化程序段中。,例7-1 使用单片机外部中断0。设外部中断0优先级别为低优先级,当产生中断请求时,对寄存器R2进行加1操作,试编写相应的实现程

20、序。中断请求边沿触发,请求信号自动撤销。写程序时,只需要初始化及RETI即可。程序:,例7-2 使用单片机外部中断1。设外部设备在准备好时输出低电平,采用电平方式将外部中断通知给单片机,单片机向外部设备发送10个数据,数据首地址位于片内40H处。当外部设备可以接受数据时输出电平。对电平方式外部中断请求需要引入撤销电路。程序:,例7-4 利用定时器中断。按照图5-9连接的硬件电路。编写中断程序使发光二极管LED每1s变化一次,实现秒表闪烁(设晶振频率=6MHz)。,例7-6 用8751单片机设计一个航标灯控制器。当黑夜降临时,航标灯自动启动亮2s,灭2s,闪闪发光,指明航向。当白天到来时,航标灯自动熄灭,不再发光。在INT0引脚申请的外部中断处理过程中,用软件查询INTT0引脚,这种用法比较灵活。此外,这里选用了两种中断:外部中断与内部定时器/计数器中断,并将定时器/计数器中断设为最高优先级的中断。,8751,由于定时间隔比较长,本例采用定时和软件计数相结合的方法。若定时间隔选为10ms,计数次数为200次,总的定时就是2s。设时钟频率为12MHz,定时器/计数器T1选择工作方式1,为16位计数器。初值TH1=0DBH,TL1=0F0H.,

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号