第5章第三讲中断系统

上传人:飞*** 文档编号:51515747 上传时间:2018-08-14 格式:PPT 页数:44 大小:2.45MB
返回 下载 相关 举报
第5章第三讲中断系统_第1页
第1页 / 共44页
第5章第三讲中断系统_第2页
第2页 / 共44页
第5章第三讲中断系统_第3页
第3页 / 共44页
第5章第三讲中断系统_第4页
第4页 / 共44页
第5章第三讲中断系统_第5页
第5页 / 共44页
点击查看更多>>
资源描述

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

1、第5章 中断系统 12本章主要内容n中断的概念和应用nAT89S51中断系统结构n与中断相关的SFR及中断控制nC51中断函数编程举例中断概念类比 看电视中断处理中断请求实际生活中断返回电话铃响接听电话看电视主程序计算机事件发生事件处理主程序图5.1 中断概念示意图 4l具有 5 个中断源(52子系 列为6个,多一个定时器中断)l中断向量:是程序存储器 的一个地址,表明一个中 断的服务程序从这里开始 存放。中断源中断向量外部中断 00003H定时器0中断000BH外部中断 10013H定时器1中断001BH串行中断0023H中断源与中断向量589S51的中断系统有5个中断源,2个优先级,可实现

2、二级中断嵌套 。89S51中断系统统的结结构及中断控制6外部中断源(2个 ):INT0由P3.2 端口线引入,低电 平或下降沿引起。INT1由P3.3 端口线引入,低电 平或下降沿引起。这两个外部中断 源标志和它们的触 发方式控制位由特 殊功能寄存器 TCON的低4位控 制。内部中断源(3个):T0定时器/计数器0中断,由T0溢出引 起。T1定时器/计数器1中断,由T1溢出引 起。TI/RI串行I/O中断,串行端口完成一帧 字符发送/接收后引起。这3个内部中断源的控制位分别锁存在特殊 功能寄存器TCON和SCON中单片机原理及其接口技术主目录上一页下一页结 束表5.1 TCON的结构、位名称、

3、位地址和功能位编码位名称TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 位地址8FH 8EH 8DH 8CH 8BH 8AH 89H 88H功 能 T1中断标志位T1启停控制位T0中断标志位TCON.0/INT1中断 标志位/INT0中断 标志位/INT1触发 方式位/INT0触发 方式位T0启停控制位TCON.1TCON.2TCON.3TCON.4TCON.5TCON.6TCON.7单片机原理及其接口技术主目录上一页下一页结 束表 5.2 SCON的结构、位名称、位地址和功能 位编码位名称SM0 SM1 SM2 REN TB8 RB8 TI RI 位地址9FH 9EH 9DH

4、 9CH 9BH 9AH 99H 98H功 能 SCON.0串行发送中断 标志位串行接收 中断标志 位SCON.1SCON.2SCON.3SCON.4SCON.5SCON.6SCON.7单片机原理及其接口技术主目录上一页下一页结 束如果我们要设置允许外中断1,定时器1 中断允许 ,其它不允许,则IE 可以是位编码IE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0位名称 EA ET2 ES ET1 EX1ET0 EX0 位地址 AFH ADH ACH ABH AAH A9H A8H功 能 0 10 0 1 1 0 0即8CH,当然,我们也可以用位操作 来实现它。单片机原理及其接口技

5、术主目录上一页下一页结 束位编码IP.7IP.6IP.5IP.4IP.3IP.2IP.1IP.0位名称 PS PT1 PX1PT0 PX0 位地址 BCH BBH BAH B9H B8H功 能保留位保留位保留位0 0 1 1 0例:设有如下要求,将T0、外中断1 设为高优先级, 其它为低优先级,求IP 的值。 IP 的首3 位没用,可任意取值,设为000,后面根据 要求写就可以了IP 的值就是06H。11例:在上例中,如果5 个中断请求同时发生,求中断响应的次序。响应次序为:定时器0外中断1外中断0 定时器1串行中断。(1) 先高后低;(2) 事先规定;(3) 停低转高;(4) 高不理低。 单

6、片机中断优先级原则:单片机原理及其接口技术主目录上一页下一页结 束成于大气 信达天下执行主 程序主程序继续执行 主程序断点中断请求中断响应执行 中断 处理 程序中断返回中断处理过程 单片机原理及其接口技术主目录上一页下一页结 束2.中断响应-条件同时满足以下4个条件时,才可能响应中断。(1)有中断请求;(2) 对应中断允许位为1;(3) 开中断(即EA=1)。(4) 当前一条指令执行完。 TF1TF0IE1IT1IE0IT0EAET2ESET1EX1ET0EX0TCONTIRISCONIEPSPT1PX1PT0PX0IPB8HA8H98H88H单片机原理及其接口技术主目录上一页下一页结 束2.

7、中断响应-条件不响应中断的条件 (满足之一)(1) 正在执行同级或高优先级的中断服务程序; (2) 不是指令的最后一个机器周期; (该条指令没有执行完)(3) 执行RETI 或 读写 IE/IP指令期间不能响应, 或不是其后面一条指令的最后一个机器周期。(即如果是RETI或读写IP/IE指令后,需再执行一条指令后才能响应中断) ;(4) 软件封锁(EA0)16中断处理过程实现中断响应和中断返回CPU中断响应过程如下:首先,将断点处的PC值(即下一条应执行指令的地址)推入堆栈保留下来,这称为保护断点,由硬件自动执行。然后,将有关的寄存器内容和标志位状态推入堆栈保留下来,这称为保护现场 ,由用户自

8、己编程完成。 保护断点和现场后即可执行中断服务程序,执行完毕,CPU由中断服务程序返回主程序。2.中断响应-过程17中断返回过程如下:首先恢复原保留寄存器的内容和标志位的状态,这称为恢复现场,由用户编程完成。然后,再加返回指令RETI,RETI指令的功能是恢复PC值,使CPU返回断点,这称为恢复断点。恢复现场和断点后,CPU将继续执行原主程序,中断响应过程到此为止。实现中断响应和中断返回单片机原理及其接口技术主目录上一页下一页结 束表5.6 MCS-51中断入口地址表中断源中断程序入口地址 INT00003H定时器T0000BH INT10013H 定时器T1001BH 串行口中断0023HO

9、RG 0013H LJMP WBZD1一般在入口地址处放置一条跳转指令,转到相应的中断 服务程序入口处。如对外部中断1的中断响应:单片机原理及其接口技术主目录上一页下一页结 束中断服务流程中断服务流程 (1)关中断 (2)保存断点 (3)保护现场 (4)转入相应的中断服务程序 (5)恢复现场 (6)开中断 (7)中断返回203. 中断响应时间最短响应时间为3个机器周期。第一机器周期:查询中断标志状态;第二、三机器周期:保护断点及跳转。最长响应时间为8个机器周期。若正在执行RETI等指令需1个机器周期。下一条指令最长需4个机器周期(如乘法指令)。响应中断需3个机器周期。中断响中断响应时间应时间应

10、时间应时间 :用从外部中断请请求有效(标标志位置“1”)到转转向中断区入口地址所需的机器周期数来计计算。单片机原理及其接口技术主目录上一页下一页结 束4. 中断请求的撤除中断源发出中断请求后,相应的中断请求标志位自动置“1”,而CPU响应中断后 ,必须及时清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起 死循环出错。单片机原理及其接口技术主目录上一页下一页结 束中断请求的撤除 (1)CPU响应中断后,TF0(T0中断标志位)和TF1由 硬件自动清0。(2)CPU响应中断后,在边沿触发方式下,IE0(外部中 断INT0请求标志位)和IE1由硬件自动清零;在电平触发 方式下,不能

11、自动自动清零IE0和IE1。所以在中断返回前 必须撤出INT0和INT1引脚的低电平,否则就会出现一次 中断被CPU多次响应。 (3)串口中断中,CPU响应中断后,TI(串行口发送中 断请求标志位)和RI(接收中断请求标志位)必须由软件 清零。 (4)单片机复位后,TCON,SCON给位清零。单片机原理及其接口技术主目录上一页下一页结 束5 中断返回注意: (1)不能用RET指令代替RETI指令。 (2)中断服务程序中PUSH与POP须成对使用 。MCS-51响应中断后,自动执行中断服务程序。在中断服务程序中,只要遇到RETI指令(不论在什么位置),单片机就结束本次中断服务,返回原程序。因此,

12、在中断服务程序的最后必 须有一条RETI指令,用于中断返回。24函数类型 函数名(形式参数表)interrupt nusing m 关键字interrupt后面的n是中断号,n的取值范围为 0 4。编译器从 8*n3处产生中断向量。执行该程序时,这个地址会传 个程序计数器PCm为单片机工作寄存器组(又称通用寄存器组)编号, 共四组,取值为0,1,2,3 using m? CPU正在处理某个事件,突然另外一个事件需要处理,于是进入中断后,而你不想将现在执行的程序的各寄存器状态入栈,那么可以把这个中断程序放入另一个寄存器组,如切换到1组,然后退出中断时,再切回到0组(原来的程序在0组)。25单片机

13、原理及其接口技术主目录上一页下一页结 束5.9 C51编程举例(1)开中断和允许中断源中断;(2)确定各中断源的优先级;(3)若是外部中断,则应规 定是电平触发还是边沿触发。在中断服务程序编程时,首先要对中断系统进行初始化,也就是对几个特殊功能寄存器的有关控制位进行赋值。具体来说, 就是要完成下列工作:单片机原理及其接口技术主目录上一页下一页结 束例1:若规定外部中断0为电平触发方式,高优先级,试写出有关的初始化程序。解:一般可采用位来实现:PX0 =1;外中断0定为高优先级IT0 =0 ;电平触发EX0 =0;允许外中断0中断EA =1 ;开中断 TF1TF0IE1IT1IE0IT0EAET

14、2ESET1EX1ET0EX0TCONTIRISCONIEPSPT1PX1PT0PX0IPB8HA8H98H88H【例5-1】在51单片机的P1口上接有8只LED。在外部中断0输入引脚P3.2(INT0*)引脚接有一只按钮开关K1。程序要求将外部中断0设置为负跳沿触发。在程序启动时,P1口上的8只LED亮。按一次按钮开关K1,使引脚接地,产生一个负跳沿触发的外中断0中断请求,在中断服务程序中,让低4位的LED和高4位的LED交替闪烁。具体电路如图5-9所示。2829图5-9 控制8只LED交替闪烁的电路参考程序如下: #include void Delay(unsigned int i)/*延

15、时函数Delay( ),i为形式参数,不 能赋初值*/ unsigned int j; for(;i 0;i-) for(j=0;j void Delay(unsigned int i)/*延时函数Delay( ),i为形式参 数,不能赋初值*/ unsigned int j; for(;i 0;i-) for(j=0;j void Delay(unsigned int i)/*延时函数Delay( )*/ unsigned int j; for(;i 0;i-) for(j=0;j125;j+) ;/*空函数*/ void main( )/*主函数*/ 38unsigned char play 9=0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf ,0xbf,0x7f;/*定义流水灯的显示数据*/ unsigned char a; for(;) for(a=0;a9;a+) Delay(500

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

当前位置:首页 > 行业资料 > 其它行业文档

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