单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元7

上传人:E**** 文档编号:89472000 上传时间:2019-05-25 格式:PPT 页数:22 大小:672KB
返回 下载 相关 举报
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元7_第1页
第1页 / 共22页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元7_第2页
第2页 / 共22页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元7_第3页
第3页 / 共22页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元7_第4页
第4页 / 共22页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元7_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元7》由会员分享,可在线阅读,更多相关《单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元7(22页珍藏版)》请在金锄头文库上搜索。

1、单元7 80C51单片机的中断,学习目的: 掌握80C51的中断系统,熟悉中断的响应过程和程序编写。 重点难点: 中断系统、中断系统的应用。 外语词汇:Interrupt(中断)、Flag(标志)、Enable(使能)。 单片机中断功能可以提高CPU的效率;可以实现实时处理,以满足实时控制要求;可以及时处理故障,提高单片机的可靠性。,7.1中断的定义与处理过程,7.1.1 中断定义,中断是CPU在执行现行程序的过程中,发生随机事件和特殊请求时,使CPU中止现行程序的执行,而转去执行随机事件或特殊请求的处理程序,待处理完毕后,再返回被中止的程序继续执行的过程。日常生活中的例子和中断关系见表7-1

2、,表7-1可以帮助理解中断。,表7-1 日常生活中的例子和中断关系,1.中断系统的几个概念 (1)中断源 对于中断系统来说,引起中断的事件称为中断源。 (2)中断请求 由中断源向CPU所发出的请求中断的信号称为中断请求信号。 (3)中断断点 CPU中止现行程序执行的位置称为中断断点。 (4)中断现场 中断断点处的程序位置称为中断现场。 (5)中断响应 CPU接受中断请求而中止现行程序,转去为中断源服务称为中断响应。 (6)中断返回 由中断服务程序返回到原来程序的过程称为中断返回。 (7)保护现场与恢复现场 在中断系统中,对中断断点的保护是CPU在响应中断时自动完成的,中断服务完成时执行中断返回

3、指令而得到恢复;对于中断断点处其他数据的保护与恢复是通过在中断服务程序中采用堆栈操作指令PUSH及POP来实现的,这种操作通常称为保护现场与恢复现场。,2.中断执行过程 中断执行过程如图7-1所示。,图7-1 中断执行过程,7.1.2 中断的处理过程 中断处理过程包括中断响应、执行中断服务程序及中断返回。中断处理过程如图7-2所示。,图7-2 中断处理过程,1.中断响应 中断响应的基本条件: 1)有中断源提出中断请求。 2)中断总允许位EA=1,即CPU开放中断。 3)申请中断的中断源的中断允许位为1,即没有被屏蔽。 80C51中断响应过程:当前PC值送堆栈,也就是将CPU本来要取用的指令地址

4、暂存到堆栈中保护起来,以便中断结束时,CPU能找到原来程序的断点处,继续执行下去。这一过程是中断系统自动完成。响应中断后,根据该中断优先级的高低,自动将单片机内部的高优先级触发器或低优先级触发器置1,并关中断保护断点(入栈),进入中断处理程序。 2.执行中断服务程序 在中断响应后,计算机调用的子程序称为中断服务程序。这是专门为外部设备或其他内部部件中断源服务的程序段。 3.中断返回 计算机在中断响应时执行到RETI指令时,立即结束中断并从堆栈中自动取出在中断响应时压入的PC当前值,从而使CPU返回原程序中断点继续进行下去。,7.2 80C51系列单片机的中断系统,7.2.1 中断源,80C51

5、系列单片机中不同型号芯片的中断源数量是不同的,最基本的80C51单片机有5个中断源,分为两类,一类是外部中断源,另一类是内部中断源。 1.外部中断源 外部中断源是指由中断请求输入线引入的中断。51单片机有两条中断请求输入线,分别是P3.2(INT0)和P3.3 (INT1)。P3.2引入的中断称为外部中断0,P3.3引入的中断称为外部中断1。 外部中断0:当单片机采样到引脚P3.2出现低电平或下降沿时,产生中断请求。 外部中断1:当单片机采样到引脚P3.3出现低电平或下降沿时,产生中断请求。 2.内部中断源 内部中断源是指单片机内部的部件引起的中断。51单片机内部有两个定时/计数器和一个串口,

6、它们都能引起中断,称为内部中断源。 定时/计数器T0:当定时/计数器T0发生溢出时,产生中断请求。 定时/计数器T1:当定时/计数器T1发生溢出时,产生中断请求。 串口:单片机通过串口完成接收或发送1字节数据时,产生中断请求。,对于80C51单片机的5个独立中断源,有相应的中断服务程序,这些程序有固定的存放位置。在51系统中,中断服务程序的入口(向量)地址是不可自选的,其入口地址由系统统一规定。好比5扇门的锁需要5把钥匙才能打开一样,搞错了就不可能打开对应的门。中断源的入口地址见表7-2。,7.2.2 中断源的入口地址,表7-2 中断源的入口地址,7.3中断寄存器的设置,80C51单片机的中断

7、系统结构图如图7-3所示。,图7-3 80C51单片机的中断系统结构图,由图7-3可知,所有的中断发生之后都要产生相应的中断请求标志位,这些标志位分别放在特殊功能寄存器TCON和SCON里。每一个中断请求信号需经过中断允许寄存器IE和中断优先权寄存器IP的控制才能够得到单片机的响应。即中断控制实质上是对4个特殊功能寄存器TCON、SCON、IE、IP进行管理和控制。只要按照控制要求对这些寄存器的相应位进行设置(设置为0或1),就能完成对中断的有效管理和控制。,7.3.1定时器计数器控制寄存器TCON,80C51中断标志位集中安排在定时器计数器控制寄存器TCON及SCON中,TCON属于特殊功能

8、寄存器,其字节映像地址为88H,可位寻址,它除了控制定时器计数器T0、Tl的溢出中断外,还控制着两个外部中断源的触发方式和锁存两个外部中断源的中断请求标志。其格式如下:,TCON寄存器各位的含义如下: IT0:外部中断INT0的中断触发方式选择位。当IT0位清为0时,外部中断INTO为电平触发方式。在这种触发方式中,当采样到低电平时,表明外部中断0有中断产生。 当IT0位置为1时,外部中断INT0为边沿触发方式。在这种触发方式中,如果在INT0(P32) 检测到信号有由高到低的负跳变,表明外部中断0有中断产生。,IE0:外部中断INT0的中断请求标志位。当IE0位为0时,表示外部中断源INT0

9、没有向CPU请求中断;当IE0位为l时,表示外部中断INTO正在向CPU请求中断,且当CPU响应该中断时由硬件自动对IE0进行清0。 IT1:外部中断INT1的中断触发方式选择位。功能与IT0相同。 IEl:外部中断INT1的中断请求标志位。功能与IE0相同。 TR0:定时器计数器T0的启动标志位。当TR0位为0时,不允许T0计数工作;当TRO位为l时,允许T0定时或计数工作。 TF0:定时器计数器T0的溢出中断请求标志位。在定时器计数器T0被允许计数后,当产生计数溢出时由硬件自动将TF0位置为1,通过TF0位向CPU申请中断。当TF0位为0时,表示T0未计数或计数未产生溢出。 TRl:定时器

10、计数器Tl的启动标志位。功能与TR0相同。 TFl:定时器计数器Tl的溢出中断请求标志位。功能与TF0相同。,7.3.2串口控制寄存器SCON,SCON为串口控制寄存器,其字节映像地址为98H,也可以进行位寻址。串口的接收和发送数据中断请求标志位(R1、TI)被锁存在串口控制寄存器SCON中,其格式如下:,SCON寄存器各位的含义如下: RI:串口接收中断请求标志位。当串行以一定方式接收数据时,每接收完一帧数据,由硬件自动将Rl位置为1。而Rl位的清0必须由用户用指令来完成。 TI:串口发送中断请求标志位。当串口以一定方式发送数据时,每发送完一帧数据,由硬件自动将Tl位置为l。而Tl位的清0也

11、必须由用户用指令来完成。 注意:在中断系统中,将串口的接收中断Rl和发送中断Tl经逻辑或运算后作为内部的一个中断源。当CPU响应串口的中断请求时,CPU并不清楚是由接收中断产生的中断请求还是由发送中断产生的中断请求,所以用户在编写串口的中断服务程序时,在程序中必须识别是RI还是Tl产生的中断请求,从而执行相应的中断服务程序。 SCON其他位的功能和作用与串行通信有关,将在后面章节中介绍。,7.3.3中断允许控制寄存器IE,80C51单片机没有专门的开中断和关中断指令,中断的开放和关闭是通过中断允许寄存器IE进行两级控制的。所谓的两级控制是指由一个中断允许控制总位EA,配合各中断源的中断允许控制

12、位共同实现对中断请求的控制。IE的字节映像地址为0A8H,既可以按字节寻址,也可以按位寻址。当单片机复位时,IE被清为0。 IE的格式如下:,1.中断允许总控制位EA EA=0,中断总禁止,禁止所有中断。 EA=1,中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位进行设里。 2.外部中断允许拉制位EX0(EX1) EX0(EX1)=0,禁止外中断。 EX0(EX1)=l,允许外中断。,3.定时计数中断允许控制位ET1和ET2 ET0(ET1)=0,禁止定时(或计数)中断。 ET0(ET1)=1,允许定时(或计数)中断。 4.串行中断允许控制位ES ES=0,禁止串行中断。 ES=

13、1,允许串行中断。 比如要开放INTl和Tl的溢出中断,屏蔽其他中断,则对应的中断允许控制字为:l0001100B,即8CH。只要将这个结果送入IE中,中断系统就按所设置的结果来管理这些中断源。可以对IE按字节操作,也可以按位操作。 按字节操作形式 按位操作形式 SETB EXl MOV IE,#8CH SETB ETl SETB EA,80C51系列单片机对所有中断设置了两个优先权,每一个中断请求源都可以编程设置为高优先权中断或低优先权中断,从而实现二级中断嵌套。为了实现对中断优先权的管理,在80C51内部提供了一个中断优先级寄存器IP,其字节地址为088H,既可以按字节形式访问,又可以按位

14、的形式访问。其格式如下:,7.3.4中断优先级控制寄存器IP,PT0:定时中断0优先级设定位。 PX1:外部中断1优先级设定位。 PX0:外部中断0优先级设定位。 PT1:定时中断1优先级设定位。 PS:串行中断优先级设定位。 为“0”的位优先级为低;为“1“的位优先级为高。,比如要将T0定义为高优先级,使CPU优先响应其中断,其他中断均定义为低优先级,对应的优先级控制字为O0000010B,即02H。只要将这个控制字送入P中,CPU就优先响应TO产生的溢出中断,并将其他中断按低优先级中断处理。具体操作形式如下: 按字节操作形式 按位操作形式 MOV IP,#02H SETB PT0 如果同级

15、的多个中断请求同时出现,则按CPU查询次序确定那个中断请求被响应。其查询次序如下: 外部中断0、定时中断0外部中断1、定时中断1、串行中断。,7.4中断程序编写,中断程序的结构通常分为主程序和中断服务程序两大部分。 1.主程序的编写 (1)主程序的起始地址 80C51系列单片机复位后,(PC)=0000H,而0003H002BH分别为各中断源的入口地址,所以编程时应在0000H处写一条跳转指令(一般为长跳转指令),使CPU在执行程序时,从0000H跳过各中断源的入口地址。主程序则是以跳转的目标地址为起始地址开始编写。,(2)主程序的初始化内容 所谓初始化,即对将要用到的80C51系列单片机片内

16、部件或扩展芯片进行初始工作状态设定。80C51单片机复位后,特殊功能寄存器IE、IP的内容均为00H,所以应对IE、IP进行初始化编程,以开放CPU中断,允许某些中断源中断和设置中断优先级。 2.中断服务程序 当CPU接收到中断请求信号并予以响应后,CPU把当前的PC值压入堆栈中进行保护,而转入相应的中断服务程序入口处执行。80C51系列单片机的中断系统对5个中断源分别规定了各自的入口地址,但是这些入口地址相距很近(8B),如果中断服务程序的指令代码少于8B,则可从规定的中断服务程序入口地址开始,直接编写中断服务程序;若中断服务程序的指令代码大于8B,则可在相应的入口地址处写一条跳转指令,以跳转指令的目标地址作为中断服务程序的起始地址进行编程。 例7-1 如图7-4所示,开关S每扳动一次,就产生一个外部中断请求。经P1.3P1.0读入开关S0S3的状态,取反后再由P1.7P1.4输出,驱动相应的发光二极管。,图7-4 例7-1电路图,程序清单如下: ORG 0000H STAR: AJMP MAIN ORG 0003H AJMP EXTR OR

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

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

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