片机的中断系统及仿真.ppt

上传人:牧羊曲112 文档编号:6588943 上传时间:2023-11-15 格式:PPT 页数:46 大小:482.50KB
返回 下载 相关 举报
片机的中断系统及仿真.ppt_第1页
第1页 / 共46页
片机的中断系统及仿真.ppt_第2页
第2页 / 共46页
片机的中断系统及仿真.ppt_第3页
第3页 / 共46页
片机的中断系统及仿真.ppt_第4页
第4页 / 共46页
片机的中断系统及仿真.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《片机的中断系统及仿真.ppt》由会员分享,可在线阅读,更多相关《片机的中断系统及仿真.ppt(46页珍藏版)》请在三一办公上搜索。

1、5 单片机的中断系统及仿真,2,教学目的,理解中断的概念理解中断系统的结构和类型掌握中断系统的中断响应过程掌握外部中断的使用,3,本章内容,中断的概念中断系统的内部结构和控制寄存器中断系统的响应过程中断仿真实例,5.1 中断系统结构,中断概述中断系统结构与中断控制,5,CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。,5.1 中断系统概述,中断概述,6,中断系统结构,5.1 中断系统概述,执行主程序0,

2、主程序,继续执行主程序7,断点,中断请求1,中断响应3,执行中断处理程序4,中断返回6,断点保护2,断点恢复5,RETI,中断服务子程序,7,引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。,中断系统结构,5.1 中断系统概述,8,随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;实时响应。CPU

3、能够及时处理应用系统的随机事件,系统的实时性大大增强;可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。,中断系统的优点,5.1 中断系统概述,9,AT89C51的中断系统有6个中断源,2个优先级,可实现二级中断嵌套。,89C52的中断系统的结构,5.1 中断系统概述,10,AT89C52的中断系统有8个中断源,2个优先级,可实现二级中断嵌套。,89C52的中断系统的结构,5.1 中断系统概述,11,/INT0(P3.2)外中断0。可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.

4、1)硬件置1,向CPU申请中断。/INT1(P3.3)外中断1。可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)硬件置1,向CPU申请中断。T0中断(TF0 TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,硬件置位TF0,并向CPU申请中断。,5.1 中断系统概述,12,T1中断(TF1 TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。串行口中断:RI(SCON.0)或TI(SCON.1),串行口中断

5、请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。T2中断(TF2 T2CON.7),片内定时/计数器T2溢出中断请求标志,当定时/计时器T2发生溢出时,置位TF2,并向CPU申请中断。,5.1 中断系统概述,13,IT0(TCON.0),外部中断0触发方式控制位。当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。IE0(TCON.1),外部中断0中断请求标志位。IT1(TCON.2),外部中断1触发方式控制位。IE1(TCON.3),外部中断1中断请求标志位。TF0(TCON.5),定时/计数器T0溢出中断请求

6、标志位。TF1(TCON.7),定时/计数器T1溢出中断请求标志位。,定时器控制寄存器TCON,5.1 中断系统概述,14,TF1,TF0,IE1,IE0在有中断请求时硬件自动置“1”,其中,TF1,TF0在中断被响应后硬件自动清零。IE1,IE0在外部中断为跳变触发方式时,被响应后由硬件自动清零,若为电平触发方式,响应后不会自动清零。,定时器控制寄存器TCON,5.1 中断系统概述,15,IE0和IE1类似,IT0和IT1类似以IT1为例:IT1=1(软件置1)时,则外部中断为跳变触发方式。在每个机器周期采样/INT1(P3.3)的输入电平,若一个周期内为高电平,下一个周期为低,则硬件置IE

7、1为“1”,提出中断申请;IT1=0时,则/INT1为电平触发,即是通过检测P3.3的输入电平(低电平)来触发的,此时IE1由硬件置1。即只要输入到/INT1的外部中断源为低电平,且IT1=0,则/INT1就已经向CPU提出中断申请,它应始终保持低电平,直到中断被响应,且应在中断返回前变回高电平,否则会再次中断。,5.1 中断系统概述,16,外部中断触发方式,若外部信号为一个频率信号,要求每个频率均有中断,外部中断应定义为跳变式触发。若外部中断要求为低电平时申请中断,则外部中断应定义为低电平触发方式。在电平触发方式中,CPU响应中断时,不会消除IE1标志。注意:低电平持续时间中断服务程序执行时

8、间 否则会再次引发中断。,5.1 中断系统概述,17,若外部中断定义为电平触发方式,中断标志位的状态随CPU在每个机器周期采样到的外部中断输入引脚的电平变化而变化,这样能提高CPU对外部中断请求的响应速度。但外部中断源若有请求,必须把有效的低电平保持到请求获得响应时为止,不然就会漏掉;而在中断服务程序结束之前,中断源又必须撤消其有效的低电平,否则中断返回之后将再次产生中断。电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外部中断请求源的情况。例如,并行接口芯片8255的中断请求线在接受读或写操作后即被复位,因此,以其去请求电平触发方式的中断比较方便。,外部中断电平触发方式,5.1

9、 中断系统概述,18,若外部中断定义为边沿触发方式,在相继连续的两次采样中,一个周期采样到外部中断输入为高电平,下一个周期采样到为低电平,则在IE0或IE1中将锁存一个逻辑1。即便是CPU暂时不能响应,中断申请标志也不会丢失,直到CPU响应此中断时才清零。这样,为保证下降沿能被可靠地采样到,外中断引脚上的高低电平(负脉冲的宽度)均至少要保持一个机器周期(若晶振为12MHz时,为1微秒)。边沿触发方式适合于以负脉冲形式输入的外部中断请求,如ADC0809的转换结束标志信号EOC为正脉冲,经反相后就可以作为89C52的中断输入。,外部中断边沿触发方式,5.1 中断系统概述,19,定时器2控制寄存器

10、,TF2:定时/计数器2溢出中断请求标志位。当定时/计数器2计数产生溢出信号时,由内部硬件置位TF2,向CPU申请中断,通过软件复位。EXF2:定时/计数器2外部中断请求标志位。若由引脚T2EX上的下降沿引起“捕获”或“重新再装入”且EXEN2位为1,则置位标志位EXF2,向CPU请求中断,中断响应后,必须由软件复位。,5.1 中断系统概述,20,定时器2控制寄存器,RCLK:串行口接收时钟标志位。当RCLK位为1时,串行通信端使用定时/计数器2的回0溢出信号作为串行通信方式1和3的接收时钟;当RCLK位为0时使用定时/计数器1的回0溢出信号作为接收时钟。TCLK:串行口发送时钟标志位。当TC

11、LK位为1时,串行通信端使用定时/计数器2的回0溢出信号作为串行通信方式1和3的发送时钟;当TCLK位为0时使用定时/计数器1的回0溢出信号作为发送时钟。EXEN2:定时/计数器2外部采样允许标志位。当EXEN2位为1时,如果定时/计数器2不是正工作在串行通信端口的时钟,则在T2EX引脚(P1.1)上的负跳变将触发“捕获”或再装入操作;当EXEN2为0时,在T2EX引脚上的负跳变对定时/计数器2不起作用。,5.1 中断系统概述,21,TR2:定时/计数器2启/停控制位。当软件置位TR2时,启动定时/计数器2开始计数,复位TR2为0时则停止计数。C/T2:定时/计数器2的定时或计数模式选择位。当

12、设置C/T2位为1时,选择对外部事件计数模式;复位为0时,则选择内部定时模式。CP/RL2:定时/计数器2捕获再装入模式选择位。当设置CP/RL2位为1时,如果EXEN2为1时,则在T2EX(P1.1)引脚上的负跳变将触发捕获操作;复位为0时,如果EXEN2位为1,则定时/计数器2计满回零溢出或T2EX引脚上的负跳变都将引起自动再装入操作;当RCLK位为1或TCLK位为1时,CP/RL2标志位不起作用。定时/计数器2的计满回零溢出时,将迫使定时/计数器2自动进行再装入操作。,5.1 中断系统概述,22,RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬

13、件置位RI。同样,RI必须由软件清除。TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。,串行控制寄存器SCON,5.1 中断系统概述,23,CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。,EX0(IE.0),外部中断0允许位;ET0(IE.1),定时/计数器T0中断允许位;EX1(IE.2),外部中断0允许位;ET1(IE.3),定时/计数器T1中断允许位;ES(IE.4),串行口中断允许位;EA(IE.7),

14、CPU中断允许(总允许)位。ET2(IE.5),T2中断控制位52系列才有,中断允许控制寄存器 IE,5.1 中断系统概述,ET2,24,89C52单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的。,PX0(IP.0),外部中断0优先级设定位,1为高,0为低;PT0(IP.1),定时/计数器T0优先级设定位;PX1(IP.2),外部中断1优先级设定位;PT1(IP.3),定时/计数器T1优先级设定位;PS(IP.4),串行口优先级设定位;PT2(IP.5),定时/计数器T2优先级设定位。,中断优先级控制寄存器IE,5.1

15、 中断系统概述,5.2 中断响应过程,中断响应中断服务程序扩展外部中断的应用使用中断函数注意的问题,26,CPU执行程序过程中,在每个机器周期的S5P2期间,中断系统对各个中断源进行采样。这些采样值在下一个机器周期内按优先级和内部顺序被依次查询。如果某个中断标志在上一个机器周期的S5P2时被置成了1,那么它将于现在的查询周期中及时被发现。接着CPU便执行一条由中断系统提供的硬件LCALL指令,转向被称作中断向量的特定地址单元,进入相应的中断服务程序。,中断采样,5.2 中断响应过程,27,中断采样,5.2 中断响应过程,28,中断查询,若查询到中断标志为1,则按优先级的高低进行处理,即响应中断

16、。AT89C52的中断请求都汇集在TCON、T2CON和SCON 3个特殊功能寄存器中。而CPU则在下一个机器周期的S6期间按优先级的顺序查询各中断标志,先查询高级中断,再查询低级中断,同级中断按内部中断优先级序列进行查询。如果查询到中断标志位为1,则表明有中断请求产生,接着从相邻的下一个机器周期的S1状态开始进行响应。由于中断请求是随机发生的,CPU无法预先得知,因此中断查询要在指令执行的每个机器周期中不停地重复执行。,5.2 中断响应过程,29,中断响应,一、中断响应条件 中断源有中断请求;此中断源的中断允许位为1;CPU开中断(即EA=1)。同时满足时CPU才有可能响应中断。,5.2 中

17、断响应过程,30,CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。同级n个中断源同时来到时,依据查询规则:/INT0,T0,/INT1,T1,串行口,T2。正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能被高优先级中断请求所中断。为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。,89C52的优先级的三条原则,5.2 中断响应过程,31,遇以下任一条件,硬件将受阻,中断响应

18、被封锁:CPU正在处理同级或高优先级中断;当前查询的机器周期不是所执行指令的最后一个机器周期。即在完成所执行指令前,不会响应中断,从而保证指令在执行过程中不被打断;正在执行的指令为RETI或任何访问IE或IP寄存器的指令。即只有在这些指令后面至少再执行一条指令时才能接受中断请求。中断查询在每个机器周期中重复执行。若由于上述条件的阻碍中断未能得到响应,当条件消失时该中断标志却已不再有效,那么该中断将不被响应。就是说,中断标志曾经有效,但未获响应,查询过程在下个机器周期将重新进行。,中断响应被封锁条件,5.2 中断响应过程,32,89C52的中断优先权顺序,同一优先级中的中断申请不止一个时,则有中

19、断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:,5.2 中断响应过程,33,从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。(1)最快响应时间 以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周期:1个周期(查询)2个周期(长调用LCALL)(2)最长时间若当前指令是RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期:2个周期执行当前指令(其中含有1个周期查询)4个周期乘除指令2个周期长调用8个周期。,中断响应时间,5.2 中断响应过程,34,将相应的优先级状态触发器置1(以阻断后来的同级

20、或低级的中断请求)。根据中断源类别,在硬件控制下内部自动形成LCALL指令,即把程序计数器PC的内容压入堆栈保存(但不自动保存PSW内容),再将相应的中断服务程序的入口地址送入PC。程序转向该中断的矢量地址,以转至中断服务程序对应的入口地址,执行中断服务程序。中断响应过程的前两步是由中断系统内部自动完成的,而中断服务程序则要由用户编写程序来完成。,中断响应过程,5.2 中断响应过程,35,中断服务,响应后从中断服务程序的第一条指令开始到返回指令 过程如下:关中断-保护现场-开中断-中断服务-关中断-恢复现场-开中断-中断返回-断点地址由堆栈弹入PC 保护现场:主程序用到的,中断服务程序也要用到

21、的寄存器都要保护起来,如PSW、工作寄存器、专用寄存器保护现场和恢复现场时,为不使现场信息受到破坏,则应关中断,使CPU暂不响应其他中断.,5.2 中断响应过程,36,中断请求撤销,CPU响应中断请求,转向中断服务程序执行,在其执行中断返回指令(RETI)之前,中断请求信号必须撤除,否则将会再一次引起中断而出错。中断请求撤除的方式有三种:1.由单片微机内部硬件自动复位。对于T0、T1 的溢出中断和采用跳变触发方式的外部中断请求,在CPU响应中断后,由内部硬件自动清除中断标志TF0和TF1、IE0和IE1,而自动撤除中断请求。,5.2 中断响应过程,37,2采用软件清除中断请求 对于串行中断请求

22、和定时/计数器2的溢出和捕获中断请求,在CPU响应中断后,必须在中断服务程序中通过软件清除RI、TI、TF2和EXF2这些中断标志,才能撤除中断,即硬件置位,软件清除。3软硬件结合的方法对中断请求的撤除 采用电平触发方式的外部中断请求,中断撤销是自动的,但中断请求信号的低电平可能继续存在,在以后机器周期采样时又会把已清零的IE0、IE1标志重新置1,再次申请中断。为保证在CPU中断响应后、执行返回指令前,撤除中断请求,应该采取措施保证在中断响应后把中断请求信号从低电平强制变为高电平。,5.2 中断响应过程,38,中断服务程序的最后一条指令必须是RETIRETI指令的具体功能是:将中断响应时压入

23、堆栈保存的断点地址从栈顶弹出送回PC,CPU从原来中断的地方继续执行程序;将相应中断优先级状态触发器清0,通知中断系统,中断服务程序已执行完毕。注意,不能用RET指令代替RETI指令。在中断服务程序中PUSH指令与POP指令必须成对使用,否则不能正确返回断点,。,中断返回,5.2 中断响应过程,39,复位是单片机最优先的中断中断入口地址处安排一条跳转指令,以跳到用户的服务程序入口,中断服务程序也应放在0030H后。在主程序开始对中断进行初始化中断时硬件自动保护断点,但不自动保护现场,软件人员要保护现场,恢复现场。,5.2 中断响应过程,40,中断服务程序,C51编译器支持在C源程序中直接开发中

24、断程序函数定义语法如下:void 函数名()interrupt n(using m)其中:n的对应关系为 0:外部中断0;1:定时器/计数器0 2:外部中断1;3:定时器/计数器1 4:串行口中断;5:定时器/计数器2 m取值:03,寄存器组编号,5.2 中断响应过程,41,扩展外部中断的应用,定时器/计数器用于外部中断源的扩展用8051的定时器/计数器作为计数器使用时,计数输入端T1(T0)发生负跳变将使计数器加1。利用此特性,适当处理计数初值,就可以把计数输入端T1(T0)作为外部中断请求输入端。,5.2 中断响应过程,42,使用中断函数注意的问题,1在设计时,要注意的是哪些功能应该放在中断程序中,哪些功能应该放在程序中。2中断函数不能传递参数。3中断函数没有返回值。4中断函数调用其他函数,要保证使用相同的寄存器组,否则出错。5中断函数使用浮点运算要保存浮点寄存器的状态。,5.2 中断响应过程,5.3 中断系统实例与仿真,外部中断0实例仿真外部中断不同触发方式下的仿真流水灯的仿真两位计数数码管仿真,44,两位计数数码管的仿真,5.3 中断系统实例与仿真,45,程序流程图,5.3 中断系统实例与仿真,46,本章小结,本章详细讲述了中断系统的基本概念和中断类型,重点介绍了AT89C52单片机的中断系统及与中断有关的各种控制寄存器。详细讲述了AT89C52单片机对中断的响应过程。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号