第四章外部中断精选PPT.ppt

上传人:石*** 文档编号:70735197 上传时间:2023-01-27 格式:PPT 页数:35 大小:2.52MB
返回 下载 相关 举报
第四章外部中断精选PPT.ppt_第1页
第1页 / 共35页
第四章外部中断精选PPT.ppt_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《第四章外部中断精选PPT.ppt》由会员分享,可在线阅读,更多相关《第四章外部中断精选PPT.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第四章外部中断第1页,此课件共35页哦 计算机与外设之间传递信息:如何解决快速的计算机与外设之间传递信息:如何解决快速的CPUCPU与慢速的外部设备之间传送数据的矛盾。与慢速的外部设备之间传送数据的矛盾。中断控制方式中断控制方式 当外部设备需要进行输入当外部设备需要进行输入/输出输出 操作时,向操作时,向CPUCPU发出中断发出中断 请求信号,请求信号,CPUCPU进行中断处理。进行中断处理。第2页,此课件共35页哦 4.3.1 4.3.1 中断中断 一、中断定义中断定义 中断是指当CPU在正常执行程序时(事件A),由于外部或内部事件(事件B)强迫CPU停止当前执行的程序,转去为事件服务(中断

2、服务),服务完毕,又能自动返回到被中断的程序中继续执行。中断服务程序正常程序断点第3页,此课件共35页哦 二、中断的优点:二、中断的优点:1、实现CPU与外设的速度匹配和并行工作;2、实现实时响应和控制;3、实现故障检测和自动处理,提高系统的可靠性。三、几个概念三、几个概念 1 1、中断源:、中断源:引起中断的原因或发出中断申请的来源。如:外部设备、定时时钟、数据通信设备、故障源、程序调试。第4页,此课件共35页哦 2 2、中断的申请:、中断的申请:中断源向CPU发出处理申请。3 3、中断的响应:、中断的响应:CPU停止当前执行的程序A,转去处理中断申请的事件B。4 4、中断服务:、中断服务:

3、对事件B的整个处理过程 5 5、中断返回:、中断返回:处理结束后,CPU再回到原来被打断的程序(事件A)继续执行。6 6、中断系统:、中断系统:实现上述功能的部件。第5页,此课件共35页哦 四、中断处理过程、中断处理过程 执行当前指令有请求否关中断保护断点和现场开中断中断服务关中断恢复现场开中断返回NY取下一条指令返回第6页,此课件共35页哦 1、中断源提出申请,并建立相应的中断标志(由硬件置位标志位);2、CPU结束当前指令,响应该中断申请,同时把主程序断点处地址(程序计数器PC当前值)压入堆栈,即保护断点;3、保护现场。把断点处的有关信息(如工作寄存器、累加器、标志位的内容),压入堆栈;第

4、7页,此课件共35页哦 4、执行中断服务程序;5、恢复现场。把保存的现场内容从堆栈弹出,以恢复寄存器和存储单元的原有内容;6、返回主程序(或调用程序),执行中断返回指令,把断点处地址从栈顶弹出,从断点处继续执行主程序(或调用程序)。返回第8页,此课件共35页哦 一、一、80C5180C51的中断系统结构的中断系统结构 (一)(一)80C5180C51的中断系统有的中断系统有5 5个中断源,个中断源,2 2个优先级,可个优先级,可实现二级中断嵌套实现二级中断嵌套。与中断有关的特殊功能寄存器有4 4个个:1、IEIE:中断允许寄存器中断允许寄存器,控制CPU是否响应中断请求。2、IPIP:中断优先

5、级寄存器中断优先级寄存器,控制中断请求的优先级。3、TCONTCON:定时/计数器控制寄存器,存放2个外部中断和2个定时/计数器中断中断请求标志和触发方式。4、SCONSCON:串行口控制寄存器,存放串行口中断标志。第9页,此课件共35页哦(二)(二)80C5180C51中断系统的结构中断系统的结构 有有5 5个中断源,个中断源,2 2个优先级,可实现二级中断嵌套个优先级,可实现二级中断嵌套。第10页,此课件共35页哦外部中断源:外部中断源:由由P3.2P3.2端口线引入,低电平或下降沿引起。端口线引入,低电平或下降沿引起。由由P3.3P3.3端口线引入,低电平或下降沿引起。端口线引入,低电平

6、或下降沿引起。内部中断源:内部中断源:T0T0:定时器:定时器/计数器计数器0 0中断,由中断,由T0T0回零溢出回零溢出引起。引起。T1T1:定时器:定时器/计数器计数器1 1中断,由中断,由T1T1回零溢出回零溢出引起。引起。TI/RITI/RI:串行:串行I/OI/O中断,串行端口完成一帧字中断,串行端口完成一帧字符发送符发送/接收后引起。接收后引起。第11页,此课件共35页哦二、中断请求标志二、中断请求标志 1 1、TCON(TCON(定时/计数器控制寄存器)的中断标志的中断标志IT0/IT1(TCON.0/2),),外部中断外部中断0/10/1触发方式控制位。触发方式控制位。当当IT

7、0=0时,时,为电平触发方式。为电平触发方式。当当IT0=1时,时,为边沿触发方式(下降沿有效)。为边沿触发方式(下降沿有效)。IE0/1(TCON.1/3),),外部中断外部中断0/10/1中断请求标志位。中断请求标志位。TF0(TCON.5),),定时定时/计数器计数器T0T0溢出中断请求标志位。溢出中断请求标志位。TF1(TCON.7),),定时定时/计数器计数器T1T1溢出中断请求标志位。溢出中断请求标志位。利用中断请求利用中断请求标志位来向标志位来向CPUCPU请求中断!请求中断!第12页,此课件共35页哦TF1 TF1 T1 T1的溢出中断标志的溢出中断标志 硬件置硬件置1 1,硬

8、件清,硬件清0 0(也可软件清(也可软件清0 0)TF0 TF0 T0 T0的溢出中断标志。的溢出中断标志。IE1 IE1 外部中断外部中断1 1(/INT1/INT1)请求标志。)请求标志。外部有中断请求时,硬件使外部有中断请求时,硬件使IE1IE1置置1 1,硬件清,硬件清0 0。IE0 IE0 外部中断外部中断0 0(/INT0/INT0)请求标志。)请求标志。IT1 IT1 外部中断外部中断1 1(/INT1/INT1)触发类型控制位。)触发类型控制位。IT1=0 IT1=0,低电平触发。,低电平触发。IT1=1 IT1=1,下降沿触发。下降沿触发。IT0 IT0 外中断外中断0 0(

9、/INT0/INT0)触发类型控制位,用法同)触发类型控制位,用法同IT1IT1。第13页,此课件共35页哦2 2、SCONSCON的中断标志的中断标志RI(SCON.0),串行口接收中断标志位。当允许串),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,同样,RI必须由软件清除。必须由软件清除。TI(SCON.1),串行口发送中断标志位。当),串行口发送中断标志位。当CPU将将一个发送数据写入串行口发送缓冲器时,就启动了一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位发送

10、过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除响应中断时,不能自动清除TI,TI必须由软件清除。必须由软件清除。第14页,此课件共35页哦 一、中断允许控制一、中断允许控制 CPUCPU对中断系统所有中断以及某个中断源的开放和屏蔽是由对中断系统所有中断以及某个中断源的开放和屏蔽是由中断中断允许寄存器允许寄存器IEIE控制控制的。的。4.3.4 80C51 4.3.4 80C51中断的控制中断的控制 EX0(IE.0),外部中断外部中断0 0允许位;允许位;ET0(IE.1),定时定时/计数器计数器T0T0中断允许位中断允许位;EX1(IE.2),外部中断外部中断0 0

11、允许位;允许位;ET1(IE.3),定时定时/计数器计数器T1T1中断允许位;中断允许位;ES(IE.4),串行口中断允许位;串行口中断允许位;EA(IE.7),CPUCPU中断允许(总允许)位。中断允许(总允许)位。若为若为“1 1”,开关,开关接通,允许。接通,允许。若若为为“0 0”,开关断开,开关断开,不允许。不允许。第15页,此课件共35页哦为什么要有中为什么要有中断优先级断优先级?CPUCPU同同一一时时间间只只能能响响应应一一个个中中断断请请求求。若若同同时时来了两个或两个以上中断请求,就必须有先有后。来了两个或两个以上中断请求,就必须有先有后。为此将为此将5 5个中断源分成高级

12、、低级两个级别,高级个中断源分成高级、低级两个级别,高级优先,由优先,由IPIP控制控制。第16页,此课件共35页哦 二、中断优先级控制二、中断优先级控制 80C5180C51单片机有两个中断优先级,可实现二级中断服务嵌单片机有两个中断优先级,可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器套。每个中断源的中断优先级都是由中断优先级寄存器IPIP中的相应位的状态来规定的中的相应位的状态来规定的。PX0(IP.0):外部中断外部中断0 0优先级设定位;优先级设定位;PT0(IP.1):定时定时/计数器计数器T0T0优先级设定位;优先级设定位;PX1(IP.2):外部中断外部中

13、断0 0优先级设定位;优先级设定位;PT1(IP.3):定时定时/计数器计数器T1T1优先级设定位;优先级设定位;PS(IP.4):串行口优先级设定位串行口优先级设定位。该位是该位是“1 1”时,为高级优时,为高级优先级先级 该位是该位是“0 0”时,为时,为低级优先级低级优先级第17页,此课件共35页哦 同一优先级中的中断申请不止一个时,则有中断优先同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同级的中断优先权排队,由中断系统硬件权排队问题。同级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:确定的自然优先级形成,其排列如所示:第18页,此课件共35页哦80C

14、5180C51单片机的中断优先级有三条原则单片机的中断优先级有三条原则:CPUCPU同时接收到几个中断时,同时接收到几个中断时,首先响应优先级别最高的中断首先响应优先级别最高的中断请求请求。正在进行的中断过程正在进行的中断过程不能被新的同级或低优先级的中断请不能被新的同级或低优先级的中断请求所中断求所中断。正在进行的低优先级中断服务,正在进行的低优先级中断服务,能被高优先级中断请求所能被高优先级中断请求所中断中断。第19页,此课件共35页哦事件事件1事件事件2子程序子程序2子程序子程序1中断中断嵌套嵌套的概念:的概念:主程序主程序中断中断中断中断第20页,此课件共35页哦 三、中断响应过程和中

15、断服务程序的执行中断响应过程和中断服务程序的执行 1 响应中断,由系统硬件将当前PC的内容压栈保护,将相应的中断服务程序的入口地址送PC。2 执行中断服务程序 5个中断源中断入口地址如下:INT0 0003H T0 000BHINT0 0003H T0 000BH INT1 0013H T1 001BH INT1 0013H T1 001BH 串行口串行口 0023H0023H第21页,此课件共35页哦 四、中断的返回、中断的返回 中断服务程序的最后一条指令为将压栈保护的PC的内容弹出,送回PC。CPU可由被中断的位置继续执行原有程序。返回第22页,此课件共35页哦主程序在运行过程中主程序在运

16、行过程中 中断源出现中断信号中断源出现中断信号(P3.2P3.2引脚出现下降沿信号)引脚出现下降沿信号)相应的中断标志相应的中断标志(IE0IE0)硬件自动置)硬件自动置1 1 向向CPUCPU申请中断申请中断 CPUCPU根据根据IE IE(EA=1 EA=1,E EX X0=1 0=1)、IPIP的设置决定是否相应中断的设置决定是否相应中断 相应的中断标志位(相应的中断标志位(IE0IE0)自动复位)自动复位 将断点的地址将断点的地址存入堆栈存入堆栈 将相应的中断服务的入口地址将相应的中断服务的入口地址0000003 3H H赋予程赋予程序计数器序计数器PCPC,执行中断程序,执行中断程序

17、 执行完中断程序后,堆执行完中断程序后,堆栈中断点地址由硬件自动赋予栈中断点地址由硬件自动赋予PCPC,程序返回主程序继续,程序返回主程序继续执行。执行。第23页,此课件共35页哦C51编译器支持在C源程序中直接以函数形式编写中断服务程序。常用的中断函数定义语法如下:void void 函数名()函数名()interrupt ninterrupt nn为中断类型号,C51编译器允许031个中断,n取值范围031。下面给出了8051控制器所提供的5个中断源所对应的中断类型号和中断服务程序入口地址:中断源中断源 n n 入口地址入口地址外部中断0 0 0003H定时/计数器0 1 000BH外部中

18、断1 2 0013H定时/计数器1 3 001BH串行口 4 0023H第24页,此课件共35页哦void time0(void)interrupt 1 using 0/定时器T0的中断服务函数,T0的编号为1,使用第0组工作寄存器/中断服务程序第25页,此课件共35页哦main()IT0=1;/中断边沿触发EX0=1;/允许外部中断0EA=1;/总允许while(1);/等待中断int0()interrupt 0 P2_0=!P2_0;/中断内容 前面不需要函数说明不能有返回值不能有形参主程序中没有调用中断函数的语句第26页,此课件共35页哦main()IT0=1;/中断边沿触发EX0=1;

19、/允许外部中断0EA=1;/总允许while(1);/等待中断int0()interrupt 0 P2_0=!P2_0;/中断内容 前面不需要函数说明不能有返回值不能有形参主程序中没有调用中断函数的语句第27页,此课件共35页哦中断函数一般函数前面不需要函数说明前面需要函数说明不能有返回值可以有返回值不能有形参可以有形参主程序中不需要调用语句主程序中需要调用语句函数执行时间是随机的函数执行时间是确定的函数的入口地址是固定的函数的入口地址是随机的第28页,此课件共35页哦1.用外部中断0测量负跳变信号的累计数,同时在LED数码管上显示出来。第29页,此课件共35页哦#include#includ

20、e#define uchar unsigned char#define uchar unsigned charuchar code led=uchar code led=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/各数各数字的数码管段码字的数码管段码uchar counter=0;uchar counter=0;main()main()EA=1;EA=1;EX0=1;EX0=1;IT0=1;IT0

21、=1;while(1)while(1)P1=ledcounter;P1=ledcounter;void int0()interrupt 0 counter+;if(counter=10)counter=0;第30页,此课件共35页哦程序要求:程序要求:中断前:中断前:P0.0P0.7P0.0P0.7的的8 8个灯依次亮。个灯依次亮。外部中断外部中断0 0:P0.0P0.7P0.0P0.7的左右的左右4 4个灯闪烁亮个灯闪烁亮8 8次次外部中断外部中断1 1:P0.0P0.7P0.0P0.7的的8 8个灯间隔闪烁个灯间隔闪烁8 8次次 设定外部中断设定外部中断0 0为高优先级,先执行外部为高优先

22、级,先执行外部1 1中断,过程中断,过程中用外部中用外部0 0中断来将其中断,反之不行。注意保护现场。中断来将其中断,反之不行。注意保护现场。设定外部中断设定外部中断1 1为高优先级,先执行外部为高优先级,先执行外部0 0中断,过程中中断,过程中用外部用外部1 1中断来将其中断,反之不行。注意保护现场。中断来将其中断,反之不行。注意保护现场。第31页,此课件共35页哦在中断服务程序中,通常首先要保护现场,然后才是真正的中断处理程序。中断返回时需要恢复现场。在保护和恢复现场时,为了不使现场的数据遭到破坏,一般规定此时CPU不再响应新的中断请求。在编写中断服务程序的过程中,要注意在保护现场前关中断

23、,在保护现场后若允许高优先级中断,则应开中断。同样,在恢复现场前也应先关中断,恢复之后再开中断。第32页,此课件共35页哦1)若要在执行当前中断程序时禁止更高优先级中断,可先用软件关闭CPU对中断的响应,在中断返回前再开放中断。2)注意外部电平触发的中断不锁存。若在外部电平出现时被中断屏蔽,而在中断识别之前电平消失,它被完全忽略中断处理本身不能锁存外部电平请求。3)外部中断0、1及定时器0、1的中断申请标志在CPU响应中断后会自动清0,但串行口中断标志TI/RI及定时器2的中断申请标志TF2不会自动清0,必须在中断服务程序中用软件清0,否则会立即产生重复中断,程序会陷入死循环。对于串口中断,通常要判别是RI或TI中断。4)为提高中断响应的实时性,中断服务程序应尽量简短,并避免使用复杂变量类型及复杂算术运算。通常在中断服务程序中使用一些标志,由主程序或相应背景程序根据对应的标志作相应的处理。第33页,此课件共35页哦中断的概念、五个中断源(顺序)中断有关的寄存器各位的含义中断的过程中断服务函数与一般函数的区别中断程序的书写框架第34页,此课件共35页哦简述中断函数与一般子函数的区别。以INT1中断为例简述中断响应的过程。习题4.1、4.2中可以做的。习题4.3(7)(8)第35页,此课件共35页哦

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

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁