第6章中断系统与定时计数器模块概要

上传人:今*** 文档编号:107614016 上传时间:2019-10-20 格式:PPT 页数:53 大小:895.50KB
返回 下载 相关 举报
第6章中断系统与定时计数器模块概要_第1页
第1页 / 共53页
第6章中断系统与定时计数器模块概要_第2页
第2页 / 共53页
第6章中断系统与定时计数器模块概要_第3页
第3页 / 共53页
第6章中断系统与定时计数器模块概要_第4页
第4页 / 共53页
第6章中断系统与定时计数器模块概要_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《第6章中断系统与定时计数器模块概要》由会员分享,可在线阅读,更多相关《第6章中断系统与定时计数器模块概要(53页珍藏版)》请在金锄头文库上搜索。

1、第6章 中断系统与定时计数器模块,中断是51单片机程序运行的一种方式。计算机在执行正常程序的过程中,当出现某些紧急情况、异常事件或其他请求时,处理器暂时中断正在运行的程序,转而执行紧急情况或其他请求的操作处理。处理完成以后,处理器回到被中断程序的断点处继续执行,这个过程称为中断。,6.1.1 中断概述,在CPU与外设之间的传送数据时,根据外设本身工作速度的差异,通常有四种不同的控制方式:无条件传送方式、查询方式、中断方式和DMA方式。 1、中断定义和作用,6.1 中断的概念及中断系统,外设要求CPU为其服务,可在CPU工作的中间打断它,要求CPU及时服务的一种数据交换方式。 优点:外设服务及时

2、,CPU效率高,可用于实时控制中 缺点:多级中断发生时易丢数据,2、中断源:引起中断的原因或是能发出中断申请的来源。 (1)外部设备中断源 外部设备主要为微型计算机输入和输出数据,故它是最原始和最广泛的中断源。 (2)控制对象中断源 在计算机用作实时控制时,被控对象常常被用作中断源,用于产生中断请求信号,要求CPU及时采集系统的控制参量、越限参数以及要求发送和接收的数据。 (3)故障中断源 故障中断源是产生故障信息的源泉,把它作为中断源是要CPU以中断方式对已发生的故障进行分析处理。 (4)定时脉冲中断源 定时脉冲中断源又称为定时器中断源,实际上是一种定时脉冲电路或定时器。,3、中断的分类:

3、1)屏蔽中断:有时直接称为中断,是最常见的一种中断方式。 “屏蔽”实际是一种工作方式,指可以通过指令来设置使CPU或者允许接受屏蔽的中断申请,或者不接受这种申请。 屏蔽中断是一种CPU可用指令将中断屏蔽,从而不与受理的中断申请。,2)非屏蔽中断:是CPU必须要处理的一种中断,并不可以用指令将这种中断申请屏蔽掉。 一般一些紧急的情况,如掉电中断申请,就可安排这种中断方式,以保证紧急情况下一定能得到处理。 并不是所有的微处理器都有这种中断,MCS-51的中断系统就没有非屏蔽中断。 3)软件中断:可以由程序员编写相应的中断指令使CPU响应中断,CPU只要执行这种指令就可以转入相应中断服务程序执行,以

4、完成相应的中断功能。,4、中断嵌套 中断嵌套的条件:只有中断级别比已经在服务的中断源级别更高的中断源,才可以打断现在的中断服务。 中断嵌套深度:中断过程再嵌套中断的层次,是中断系统的性能指标之一,5中断系统的功能,中断系统的功能通常有如下几条: (1)进行中断优先权排队 (2)实现中断嵌套 (3)自动响应中断 (4)实现中断返回,6.1.2 中断系统 1、MCS-51的中断源和中断标志 引起中断原因的设备或部件,或是发出中断请求信号的源泉,称为中断源。51单片机51子系列具有5个中断源(52子系列有6个中断源),分别是外部中断两个、定时中断两个和串行中断一个,即: 外部中断0-INT0,由P3

5、.2提供, 外部中断1INT1,由P3.3提供, T0溢出中断; 由片内定时/计数器0提供 T1溢出中断; 由片内定时/计数器1提供 串行口中断RI/TI; 由片内串行口提供,8051系统在检测或收到申请以后,会将检测的结果存放于TCON和SCON寄存器中,即使某些它们的中断标志位置位。 中断标志位的设置由硬件自动完成,只要检测到中断申请,响应的标志位就会置位。然后8051系统就通过检测这些中断标志位来决定是否有相应的中断申请。若某个中断位被置位,就认为存在着相应的中断申请,需要进行中断响应。 注意:在中断处理结束之后,必须使中断标志复位,以便可以接收新的中断申请,但复位并不都是自动完成的,使

6、用者必须用指令来清除不能自动复位的中断标志。,TCON寄存器可以用来存放外部中断和定时/计数器中断的中断标志; 可以用来选择是外部中断请求是电平方式还是边沿方式; 还可作为定时器控制寄存器。,IE0:为外部中断INT0的请求标志位。当INT0引脚上出现中断请求信号(低电平或脉冲下降沿)时,硬件自动将IE0置“1”(硬件复位),产生中断请求标志。 IT0:外部中断INT0触发方式控制位。由软件来置“1”或清“0”,以控制外部中断 INT0的触发方式。 当IT0=1 时,外部中断INT0为边沿触发。 即外部中断INT0出现下降沿时, 触发IE0,使其为“1”; 当IT0=0时,外部中断INT0为电

7、平触发。即外部中断INT0出现低电平时,触 发IE0,使其为“1”。,IT1:选择外部中断请求1为边沿触发方式的控制位, 与IT0类似。 IE1:外部边沿触发中断1请求标志,和IE0类似。 外部中断输入信号和中断申请标志IEx及外部中断申 请触发方式控制位ITx三者关系如图6-2所示。,TR0:定时/计数器0的运行控制位,由软件置位/清除来控制其开启/关闭。 TF0:定时计数器0的溢出中断申请标志,在启动T0计数后,定时计数器0从初值开始加1计数,当最高位产生溢出时,由硬件置位TF0,向CPU申请中断,CPU响应TF0中断时清零该标志位,TF0也可以用软件清零(查询方式)。 TR1:定时计数器

8、1的运行控制位。由软件置位清除来控制其开启关闭。 TF1:定时计数器1的溢出中断申请标志,与TF0类似。,SCON的低二位锁存串行口的接收中断和发送中断标志(80C51复位后,SCON被清0),,TI或者RI被置位,CPU就认为存在串行口中断申请。 TI:串行口发送中断标志,当发送完一帧数据后置位,必须用软件清除; RI:串行口接受中断标志,当接收完一帧数据后置位,必须用软件清除。,2、 中断的控制,MCS-51可通过指令使IE的某些位置“1”或者置“0”来控制中断的开和关。 IE在特殊功能寄存器中,字节地址A8H,位地址分别是A8HAFH。IE对于中断的开放或关闭实现两级控制,即:控制CPU

9、对中断源总的开放或禁止,以及每个中断源是否允许中断。其格式如下图所示:,CPU中断允许控制位,串行口中断允许位,T1的溢出中断允许位,T0的溢出中断允许位,外部中断1中断允许位,外部中断0中断允许位,中断优先级别由中断优先级寄存器IP来管理。,串行口中断优先级控制位,定时/计数器中断优先级控制位,外部中断优先级控制位,外部中断优先级控制位,定时/计数器中断优先级控制位,单片机复位后,IE和IP均被清0。用户可根据自己的需要来置位或清零。整个中断系统结构如图6-4所示。,80C51单片机对中断优先级的处理原则如下。 (1)不同级的中断源同时申请中断时,首先响应优先级别最高的中断请求。 (2)正在

10、进行的低优先级中断服务,能被高优先级中断请求所中断。 (3)正在进行的中断过程不能被新的同级或低优先级的中断请求中断。 (4)同一级的中断源同时申请中断时:事先预定。 (5)对于同一优先级,单片机对其中断次序如表6-5所示。,3. 中断响应 1)中断响应的条件: 无同级或高级正在服务。 现行指令执行到最后一个机器周期且已结束。 若现行指令为RETI或需访问特殊功能寄存器IE或IP的指令时,执行完该指令且其紧接着的指令也已执行完。 2)CPU不是在任何情况下都对中断请求予以响应,而且不同的情况下对中断响应的时间也是不同的。 若系统中只有一个中断源,则响应时间在38个机器周期之间。,3)中断响应任

11、务 中断系统硬件自动完成下列任务,以实现响应: 将相应触发器置1(以阻断后来的同级或低级的中断请求)。 执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈保护,再将相应的中断服务的入口地址送入。 80C51中断源的中断服务入口地址是由硬件设计人员规定好的,如下表6-6所示。,在编写中断服务程序时应注意如下问题。 (1)在中断服务程序中,用户应注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中的信息。 (2)若要在执行当前中断程序时禁止更高优先级中断,可以先用软件关闭CPU中断或禁止某中断源中断,在中断返回前再开放中断。,4、中断响应的时间,响应时间-从查询中断请求标志位到转向中

12、断服务入口地址所需的机器周期数。 中断的响应时间在一般情况下不考虑,但在某些精确的定时场合,则需对基本时间进行估计,以保证准确的定时控制。 (1)最快响应时间(最短时间) 以外部中断的电平触发为最快。 当CPU查询中断标志的周期正好是执行一条指令的最后一个机器周期,则不需等待就可进行响应,那么,从查询中断请求信号到中断服务程序需要三个机器周期: 1个周期(查询)2个周期(长调用LCALL) (2)最长时间 若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令(周期数最长的指令)发生, 则最长为8个周期: 2个周期执行当前指令(其中含有1个周期查询)4个周期乘除指令2个周期长调用

13、8个周期。 一般可认为响应时间在三至八个机器周期之间。 若来的是同级或者低级中断的申请,那么就得等当前的中断结束后才能响应,那么时间就更长了。,5、 中断请求的撤除,来了申请,就得响应,响应时TCON和SCON的相应位置1,响应之后,就得撤除,否则连续响应。 中断响应后, 可通过硬件使标志位TF0和TF1自动复0: 如定时器0,当给它装进一个数后,定时器0自动加1计数,溢出后,TF0=1,产生中断请求,CPU接到这个请求后,转去服务前,从硬件上时它们自动归零。也可以用户自己加上:CLR TF0 对于外中断IE0、IE1,响应后,有的自动归零,有的不能归零: 8051的外部中断有两种触发方式:电

14、平和边沿方式。则: 脉冲边沿型:一见到有脉冲,CPU就将它们写成1,响应后,脉冲边沿也结束了,将它们改写成0,问题不大; 低电平型的,响应后改写成0,由于单片机没有信号通知外设结束中断申请,外部低电平并不撤消,又填为1,相当于又来了新的中断申请,所以必须由用户自行解决: 3. 对于串行口的中断申请标志TI和RI,中断系统不予自动撤除,因为这两个标志在中断响应之后还要用作判断是接收还是发送操作的标志位,所以在使用完毕后用指令来使之复位,,6、MCS-51中断系统的初始化,MCS-51 中断系统由若干个SFR管理,故中断系统的初始化就是对这些寄存器的各控制位的赋值,以完成如下操作: 开中断 确定各

15、中断源的优先级 若为外部中断,则规定是电平触发还是边沿中断 例:规定外部中断0为电平方式,高优先级,其中断有关的初始化程序为: SETB EA SETB EX0 SETB PX0 CLR IT0 如果用字节操作指令: MOV IE,#81H ORL IP,#01H ANL TCON,#0FEH,7.中断服务函数 在C51中,编译器提供定义特定8051系列成员的寄存器头文件。8051的头文件为reg51.h。中断的C语言编程可如下所示: # include /*52单片机头文件,一般不要改动,里面包含特殊功能寄存器的定义*/ void service_int1() interrupt2 ,当有中

16、断请求时,程序运行转移到标记有“interrupt”关键字的函数内进行相关中断的处理。中断请求的处理过程是以函数的方式来实现的,即中断服务函数,它的格式如下: void 函数名(void) interrupt 中断号 using 工作组 中断服务函数内容; ,# include # include /*可使用其中定义的宏来访问绝对地址,包括CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD*/ # define uchar unsigned char /*将unsigned char定义为uchar,简化输写,提高编程速度*/ # define PP5 XBYTE0x00F0 /*打印机地址*/ void printw(uchar *p) interrupt0 /*打印字符串中断函数*/ p+; while(*p != /0

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

当前位置:首页 > 高等教育 > 大学课件

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