单片机原理与控制技术 第2版 教学课件 ppt 作者 张志良 第5章

上传人:E**** 文档编号:89561210 上传时间:2019-05-28 格式:PPT 页数:42 大小:318.50KB
返回 下载 相关 举报
单片机原理与控制技术 第2版 教学课件 ppt 作者 张志良 第5章_第1页
第1页 / 共42页
单片机原理与控制技术 第2版 教学课件 ppt 作者 张志良 第5章_第2页
第2页 / 共42页
单片机原理与控制技术 第2版 教学课件 ppt 作者 张志良 第5章_第3页
第3页 / 共42页
单片机原理与控制技术 第2版 教学课件 ppt 作者 张志良 第5章_第4页
第4页 / 共42页
单片机原理与控制技术 第2版 教学课件 ppt 作者 张志良 第5章_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《单片机原理与控制技术 第2版 教学课件 ppt 作者 张志良 第5章》由会员分享,可在线阅读,更多相关《单片机原理与控制技术 第2版 教学课件 ppt 作者 张志良 第5章(42页珍藏版)》请在金锄头文库上搜索。

1、第5章 机械工业出版社同名教材 配套电子教案,单片机原理与控制技术 第2版,中断的基本概念 80C51中断源 中断控制寄存器 中断处理过程 中断优先控制和中断嵌套 中断系统的应用 80C51定时/计数器 定时/计数器控制寄存器 定时/计数器工作方式 定时/计数器的应用,第5章 中断系统和定时/计数器,本章要点:,5-1 80C51中断系统,CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序, 叫做中断。, 为什么要设置中断? 提高CPU工作效率 具有实时处理功能 具有故障处理功能 实现分时操作,一.中断概述, 什么叫中断?, INT

2、0:外部中断0,中断请求信号由P3.2输入。 INT1:外部中断1,中断请求信号由P3.3输入。 T0:定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。 T1:定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。 串行中断:包括串行接收中断RI和串行发送中断TI。,二. 中断源和中断控制寄存器, 中断源,中断源是指能发出中断请求,引起中断的装置或事件。 80C51单片机的中断源共有5个,其中2个为外部中断源,3个为内部中断源:, 中断请求:定时和外中断控制寄存器TCON; 串行控制寄存器SCON; 中断允许控制寄存器IE; 中断优先级控制寄存器IP。, 中断控制寄存器,80C51单片机

3、中涉及中断控制的有3个方面4个特殊功能寄存器:,INT0、INT1、T0、T1中断请求标志放在TCON中 串行中断请求标志放在SCON中。, 中断请求控制寄存器,TCON的结构、位名称、位地址和功能如下:,TCON位功能: TF1 T1溢出中断请求标志 T1计数溢出后,TF1=1 TF0 T0溢出中断请求标志 T0计数溢出后,TF0=1 IE1 外中断中断请求标志 当P3.3引脚信号有效时,IE1=1 IE0 外中断中断请求标志 当P3.2引脚信号有效时,IE0=1 IT1 外中断触发方式控制位 IT1=1,边沿触发方式; IT1=0,电平触发方式。 IT0 外中断触发方式控制位 其意义和功能

4、与IT1相似。,串行控制寄存器SCON, TI 串行口发送中断请求标志 RI 串行口接收中断请求标志,80C51对中断源的开放或关闭由中断允许控制寄存器IE控制。, 中断允许控制寄存器IE,IE的结构、位名称和位地址如下:, EA CPU中断允许控制位 EA=1,CPU开中; EA=0,CPU关中,且屏蔽所有5个中断源。 EX0 外中断INT0中断允许控制位 EX0=1,INT0开中;EX0=0,INT0关中。 EX1 外中断INT1中断允许控制位 EX1=1,INT1开中;EX1=0,INT1关中。 ET0 定时/计数器T0中断允许控制位 ET0=1,T0开中;ET0=0,T0关中。 ET1

5、 定时/计数器T1中断允许控制位 ET1=1,T1开中;ET1=0,T1关中。 ES 串行口中断(包括串发、串收)允许控制位 ES=1,串行口开中;ES=0,串行口关中。,说明: 80C51对中断实行两级控制,总控制位是EA,每一中断源还有各自的控制位。首先要EA=1,其次还要自身的控制位置“1”。,三. 中断处理过程 中断处理过程大致可分为四步: 中断请求、中断响应、中断服务、中断返回 中断请求 中断源发出中断请求信号,相应的中断请求标志位(在中断允许控制寄存器IE中)置“1”。 中断响应 CPU查询(检测)到某中断标志为“1”,在满足中断响应条件下,响应中断。 中断响应条件: 该中断已经“

6、开中”; CPU此时没有响应同级或更高级的中断; 当前正处于所执行指令的最后一个机器周期; 正在执行的指令不是RETI或者是访向IE、IP的指令, 否则必须再另外执行一条指令后才能响应。, 中断响应操作 CPU响应中断后,进行下列操作: 保护断点地址; 撤除该中断源的中断请求标志; 关闭同级中断; 将相应中断的入口地址送入PC; 80C51五个中断入口地址:INT0:0003H; T0:000BH;INT1:0013H T1:001BH;串行口:0023H 执行中断服务程序 中断服务程序应包含以下几部分: 保护现场 执行中断服务程序主体,完成相应操作 恢复现场 中断返回 在中断服务程序最后,必

7、须安排一条中断返回指令RETI,当CPU执行RETI指令后,自动完成下列操作: 恢复断点地址。 开放同级中断,以便允许同级中断源请求中断。,四. 中断响应等待时间 若排除CPU正在响应同级或更高级的中断情况,中断响应等待时间为: 38个机器周期 五. 中断请求的撤除 中断源发出中断请求,相应中断请求标志置“1”。 CPU响应中断后,必须清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。 对定时/计数器T0、T1中断,外中断边沿触发方式,CPU响应中断时就用硬件自动清除了相应的中断请求标志。 对外中断电平触发方式,需要采取软硬结合的方法消除后果。 对串行口中断,用户应

8、在串行中断服务程序中用软件清除TI或RI。,六. 中断优先控制和中断嵌套 中断优先控制 80C51中断优先控制首先根据中断优先级,此外还规定了同一中断优先级之间的中断优先权。其从高到低的顺序为: INT0、INT1、T0、T1、串行口。 中断优先级是可编程的,而中断优先权是固定的,不能设置,仅用于同级中断源同时请求中断时的优先次序。 80C51中断优先控制的基本原则: 高优先级中断可以中断正在响应的低优先级中断,反之则不能。 同优先级中断不能互相中断。 同一中断优先级中,若有多个中断源同时请求中断,CPU将先响应优先权高的中断,后响应优先权低的中断。, 中断嵌套,当CPU正在执行某个中断服务程

9、序时,如果发生更高一级的中断源请求中断,CPU可以“中断”正在执行的低优先级中断,转而响应更高一级的中断,这就是中断嵌套。 中断嵌套只能高优先级“中断”低优先级,低优先级不能“中断”高优先级,同一优先级也不能相互“中断”。,中断嵌套结构类似与调用子程序嵌套,不同的是: 子程序嵌套是在程序中事先按排好的;中断嵌套是随机发生的。 子程序嵌套无次序限制,中断嵌套只允许高优先级“中断”低优先级。,七. 中断系统的应用 中断初始化 设置堆栈指针SP 定义中断优先级 定义外中断触发方式 开放中断 安排好等待中断或中断发生前主程序应完成的操作内容。 中断服务主程序 中断服务子程序内容要求: 在中断服务入口地

10、址设置一条跳转指令,转移到中断服务程序的实际入口处。 根据需要保护现场。 中断源请求中断服务要求的操作。 恢复现场。与保护现场相对应,注意先进后出、后进先出操作原则。 中断返回,最后一条指令必须是RETI。,【例】 出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外中断(P3.2)引脚输入,行驶里程为轮胎周长运转圈数,设轮胎周长为2m,试实时计算出租车行驶里程(单位米),数据存32H、31H、30H。, 中断系统应用举例,解:编程如下: ORG 0000H ;复位地址 LJMP STAT ;转初始化 ORG 0003H ;中断入口地址 LJMP INT ;转中断服务程序,ORG 0100

11、H ;初始化程序首地址 STAT: MOV SP,#60H ;置堆栈指针 SETB ITO ;置边沿触发方式 MOV IP,#01H ;置高优先级 MOV IE,#81H ;开中 MOV 30H,#0 ;里程计数器清0 MOV 31H,#0 ; MOV 32H,#0 ; LJMP MAIN ;转主程序,并等待中断 ORG 0200H ;中断服务子程序首地址 INT: PUSH Acc ;保护现场 PUSH PSW ; MOV A,30H ;读低8位计数器 ADD A,#2 ;低8位计数器加2m MOV 30H,A ;回存 CLR A ; ADDC A,31H ;中8位计数器加进位 MOV 31

12、H,A ;回存 CLR A ; ADDC A,32H ;高8位计数器加进位 MOV 32H,A ;回存 PUSH PSW ;恢复现场 PUSH Acc ; RETI ;中断返回,【例】现有5个外中断源EX1、EX20、EX21、EX22和EX23,高电平时表示请求中断,要求执行相应中断服务程序,试编制程序。,解: ORG 0000H ;复位地址 LJMP MAIN ;转主程序 ORG 0003H ;中断入口地址 LJMP PINT0 ;转中断服务程序 ORG 0013H ;中断入口地址 LJMP PINT1 ;转中断服务程序,ORG 0100H ;主程序首地址 MAIN: MOV SP,#60

13、H ;置堆栈指针 ORL TCON,#05H ;置INT0、INT1为边沿触发方式 SETB PX0 ;置为高优先级 MOV IE,#0FFH ;全部开中 ;主程序内容 ORG 1000H ;中断服务程序首地址 PINT0: PUSH Acc ;中断,保护现场 LCALL WORK1 ;调用EX1服务子程序 POP Acc ;恢复现场 RETI ;中断返回 ORG 2000H ;中断服务程序首地址 PINT1: CLR EA ;CPU禁中 PUSH Acc ;中断保护现场 PUSH DPH ; PUSH DPL ; SETB EA ;CPU开中,JB P1.0,LWK20;P1.0=1,EX2

14、0请求中断 JB P1.1,LWK21;P1.1=1,EX21请求中断 JB P1.2,LWK22;P1.2=1,EX22请求中断 LCALL WORK23 ;P1.3=1,调用EX23服务子 LRET: CLR EA ;CPU禁中 POP DPL ;恢复现场 POP DPH ; POP Acc ; SETB EA ;CPU开中 RETI ;中断返回 LWK20: LCALL WORK20 ;P1.0 = 1,调用EX20服务子程序 SJMP LRET ;转中断返回 LWK21: LCALL WORK21 ;P1.1 = 1,调用EX21服务子程序 SJMP LRET ;转中断返回 LWK22

15、: LCALL WORK22 ;P1.2 = 1,调用EX22服务子程序 SJMP LRET ;转中断返回,定时/计数器是单片机系统一个重要的部件,其工作方式灵活、编程简单、使用方便,可用来实现定时控制、延时、频率测量、脉宽测量、信号发生、信号检测等。此外,定时/计数器还可作为串行通信中波特率发生器。,5-2 80C51定时/计数器,80C51单片机内部有两个定时/计数器T0和T1,其核心是计数器,基本功能是加1。 对外部事件脉冲(下降沿)计数,是计数器;对片内机周脉冲计数,是定时器。 计数器由二个8位计数器组成。 定时时间和计数值可以编程设定,其方法是在计数器内设置一个初值,然后加1计满后溢出。调整计数器初值,可调整从初值到计满溢出的数值,即调整了定时时间和计数值。 定时/计数器作为计数器时,外部事件脉冲必须从规定的引脚输入。且外部脉冲的最高频率不能超过时钟频率的1/24。,一. 定时/计数器概述,TCON低4位与外中断 、 有关,已在中断中叙述。 高4位与定时/计数器T0、T1有关。 TF1:定时/计数器T1溢出标志。 TF0:定时/计数器T0溢出标志。 TR1:定时/计数器T1运行控制位。TR1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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