第四章 单片机的中断ppt课件.ppt

上传人:春哥&#****71; 文档编号:17070167 上传时间:2022-05-21 格式:PPT 页数:53 大小:665KB
返回 下载 相关 举报
第四章 单片机的中断ppt课件.ppt_第1页
第1页 / 共53页
第四章 单片机的中断ppt课件.ppt_第2页
第2页 / 共53页
点击查看更多>>
资源描述

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

1、第四章 单片机的中断 单 片 机 应 用 技 术 DANPIANJI YINGYONG JISHU第四章第四章 单片机的中断单片机的中断4.1 中断的概念4.2 单片机的中断结构4.3 中断的响应过程4.4 编写中断服务程序实验:使用中断模拟汽车转向灯第四章第四章 单片机的中断单片机的中断中断是用以提高计算机工作效率、增强计算机功能的一项重要机制。最初引入中断是出于性能上的考量(主要解决CPU与外部设备之间速度不协调)。随着计算机技术的发展,中断不断被赋予新的功能,现在已经成为CPU实时控制外部设备的一种有效手段,可以方便地用于内、外部紧急事件的处理。4.1 中断的概念1 中断、中断源和优先级

2、 中断是指计算机的CPU在正常工作正常工作时,由于内、外部事件或者是程序的预先安排等引起的CPU暂停暂停当前程序运行,转而去处理引发中断的事件服务程序,并在处理完成后,又返回返回原程序继续执行的机制。中断包含含义中断包含含义:1、中断产生具有不可确定性,是随机产生的或是预先设定条件的。2、中断会暂停当前程序运行,转去执行处理中断事件的服务程序。3、中断服务程序完成后,会返回原程序并继续执行。4.1 中断的概念引发中断的事件或原因,称之为中断源中断源。产生中断时,中断源会向CPU发出中断请求,CPU接到请求后,暂进停止当前的程序运行,转而执行此中断源的服务程序,该服务程序运行完成后,CPU再回到

3、原来程序被暂停的位置,继续执行。4.1 中断的概念 在中断执行过程中,还有可能继续产生新的中断,即CPU在响应A中断过程中,又有新的中断B要被响应,于是CPU又将A的中断服务程序暂停,转而去执行新产生中断B的服务程序,待此程序执行完毕后,又回来继续执行最初的暂停的A的中断服务程序。这就是中断的嵌套。中断的嵌套。4.1 中断的概念但是并不是所有的中断都会被新来的中断所打断,这里有个优先级的问题。计算机的中断管理也和人类社会一样是有优先级的。一般来讲,低级的中断不能打低级的中断不能打断高级的中断,高级的中断却可以打断低断高级的中断,高级的中断却可以打断低级的中断。级的中断。4.1 中断的概念2 5

4、1单片机的中断源与优先级 51单片机共有5个中断源。 1、INT0:外部中断0,由P3.2口线引入,由低电平或下降沿引发 2、INT1:外部中断1,由P3.3口线引入,由低电平或下降沿引发。 3、T0:定时器/计数器0中断,由T0计数器计满溢出引发。 4、T1:定时器/计数器1中断,由T1计数器计满溢出引发。 5、TI/RI:串行口中断0,由串行口一帧字符的发送/接收完成引发。4.1 中断的概念中断源默认的级别在C51中的编号备注INT010外部中断0T021定时/计数器0INT132外部中断1T143定时/计数器1TI/RI54串行口中断T265定时/计数器2,52单片机特有 51单片机的中

5、断源4.1 中断的概念 51系列单片机的中断源有高、低两个中断优先级高、低两个中断优先级,每个中断源可在中断优先级寄存器中断优先级寄存器IP中设置其优先级别。如果没有设置优先级,则同为低优先级。如果设置了优先级,则中断源在响应时遵循如下的规则: 低优先级中断可被高优先级中断请求打断从而形成中断嵌套。 一种中断(不论是什么优先级)一旦得到响应,与之同级的其他中断请求将不能打断它。 当同一优先级别的中断请求同时发生时,哪一个会得到CPU的响应取决于内部的查询顺序,如表42所示。4.2 单片机的中断结构51单片机的中断结构由与中断源有关中断的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成。与中断有

6、关的特殊功能寄存器共有4个,分别是中断控制寄存器IE、IP、TCON(后4位)和SCON(其中2位)。由他们来控制中断源的类型、中断的开关和中断源优先级确定等。TCONIEIP硬件查询4.2 单片机的中断结构4.2 单片机的中断结构1 中断允许寄存器(中断允许寄存器(IE) 在51系列单片机中,中断的允许或禁止是由中断允许寄中断允许寄存器(存器(IE)来控制的。它既控制着它既控制着CPU对所有中断源的总开对所有中断源的总开放或总禁止,还控制着对某个指定中断源的开放或禁止。放或总禁止,还控制着对某个指定中断源的开放或禁止。中断允许寄存器是8位寄存器,其最高位就是决定CPU是否响应中断请求的总控制

7、位,其余每个位都对应一个中断源(D6除外)。 在C51的头文件中对这些位都预先进行了定义,因此在C51程序中可以对每一个中断源进行控制。4.2 单片机的中断结构D7D6D5D4D3D2D1D0EA未使用ET2ESET1EX1ET0EX0EA:全局中断控制位。 当EA1时,允许CPU响应中断。 当EA0时,CPU不响应任何中断。ES:串行口的中断控制位。 当ES1时,允许串行口中断。 当ES0时,禁止串行口中断。ET1:定时器T1的中断控制位。 当ET11时,允许T1中断。 当ET10时,禁止T1中断。EX1:外部中断1的中断控制位 当EX11时,允许外部中断1中断。 当EX10时,禁止外部中断

8、1中断。ET0:定时器T0的中断控制位。 当ET01时,允许T0中断。 当ET00时,禁止T0中断。EX0:外部中断0的中断控制位 当EX01时,允许外部中断0中断。 当EX00时,禁止外部中断0中断。中断允许寄存器中断允许寄存器IE及其位定义及其位定义4.2 单片机的中断结构当IE寄存器中的EA位为0时,所有中断源都不会得到响应,只有当EA为1时,传递到CPU的中断源才会得到响应。此时其余的六位哪一位为1,相应的中断源信号就会被送到CPU中,从而得到响应。 因此在C51编程中,除了要设定EA1外,还要设定某个中断源为1,才能正确响应对应的中断服务程序。当系统复位后,IE寄存器中的全部都复位为

9、0。使用时需要使用软件进行设置。4.2 单片机的中断结构课堂练习1写出满足下列要求的IE寄存器值:允许系统响应中断,但只响应串行中断和外部中断1。课堂练习2 试分析IE寄存器值为0 x83时,所表示的含义。4.2 单片机的中断结构分 析1 IE寄存器中EA是全局中断的控制位,由它来控制是否允许系统响应中断,依据要求EA位应为1。IE寄存器中ES为串行口中断控制位,ES为1时系统可以响应串行中断,同理EX1为外部中断1的中断控制位,将其设为1,表示允许系统响应外部中断1。 依据上述分析,写出IE寄存器的值为:10010100 即0 x94。4.2 单片机的中断结构分 析2 首先需要将0 x83转

10、换为二进制即10000011,将得到的二进制数值与表43对照,可以看到对应位置的EA、ET0、EX0均为1,这表示三个对应位控制的中断都是允许状态。 依据上述分析,可以得到其所代表的含义为:允许系统响应中断,但只响应计时器0和外部中断0产生的中断。4.2 单片机的中断结构2 中断优先级寄存器(IP) 51系列单片机中,中断源除了具有默认的级别,还可以通过IP寄存器进行优先级的设定。 51系列单片机只有两个优先级,即通过IP寄存器只能设定为高优先级或低优先级。高优先级中断能够打断低优先级中断以形成中断嵌套,同优先级中断之间,或者是低级对高级中断不能形成中断嵌套。若同时有几个同级中断同时提出了中断

11、请求,又没有设定优先级,则按照表42所示的自然优先顺序响应,若设定了优先级别,则按设定的顺序来确定响应的顺序。4.2 单片机的中断结构D7D6D5D4D3D2D1D0未用未用PT2PSPT1PX1PT0PX0PS:串行口的优先级设定。 当PS1时,串行口产生的中断定义为高优先级。 当PS0时,串行口产生的中断定义为低优先级。PT1:定时器T1的优先级设定。 当PT11时,T1产生的中断定义为高优先级。 当PT10时,T1产生的中断定义为低优先级。PX1:外部中断1的优先级设定。 当PX11时,外部中断1产生的中断定义为高优先级。 当PX10时,外部中断1产生的中断定义为低优先级。中断优先级寄存

12、器(中断优先级寄存器(IP)PT0:定时器T0的优先级设定。 当PT01时,T0产生的中断定义为高优先级。 当PT00时,T0产生的中断定义为低优先级。PX0:外部中断0的优先级设定。 当PX01时,外部中断0产生的中断定义为高优先级。 当PX00时,外部中断0产生的中断定义为低优先级。 在C51的头文件中也对IP寄存器及内部各位进行预定义,因此可以在C51程序中,直接使用位定义的名字对IP整体或指定位进行设定来指定各中断源设定优先级。4.2 单片机的中断结构4.2 单片机的中断结构课程练习程练习1 设8051单片机的中断优先级寄存器IP0 x06,如果此时5个中断源同时产生了中断,那么中断响

13、应的顺序是什么样的。 课堂练习课堂练习2 现要设定串行中断和定时器0中断具有高优先级,而外部中断1、外部中断0和定时器1为低优先级,请写出IP寄存器的设定内容。课堂练习课堂练习3 单片机的IP寄存器内容为0 x06,当前CPU正在响应外部中断0,此时又产生了外部中断1,问此时是否会形成中断嵌套?4.2 单片机的中断结构分析1 IP寄存器的内容为0 x06即为二进制数00000110,对照表44,可以知道外部中断1和定时器0被设置为了高优先级,其他均为低优先级。 由于有两个中断源具有高优先级,所以在响应中断时,这两个中断要先响应。接着把具有高优先级的中断按自然优先权顺序(表42)进行排队,首先响

14、应的是定时器T0,然后是外部中断1。剩下的三个低优先级中断,也要按自然优先权顺序排队,依次是外部中断0、定时器T1和串行口中断。4.2 单片机的中断结构 分 析2 对照表44可知,串行中断和定时器0的优先级设定位分别为PS和PT0,将其置1即可将对应的中断优先级设定为高优先级。其余位为0,对应的中断优先级为低优先级。 依据上述分析,写出IP寄存器的内容为00010010,即0 x12。4.2 单片机的中断结构分 析3 IP寄存器的内容为0 x06,即二进制数00000110,查表44可知,此时外部中断1和定时器0中断具有高优先级,其他的中断都为低优先级。当前系统正在响应的外部中断0为低优先级,

15、新产生的外部中断1具有高优先级,可以打断当前的中断,形成中断嵌套。4.2 单片机的中断结构D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT03 定时定时/计数器控制寄存器计数器控制寄存器TCON TCON是定时/计数器的控制寄存器,他是8位寄存器,其高4位主要用来控制定时器的启、停,标志定时器的溢出和中断等情况;其低四位是对外部中断的控制位。IT0:外部中断0的触发方式选择。当IT01时,负跳变触发方式,即外部中断0的引脚(即INT0)上产生电平从高到低的负跳变有效。当IT00时,低电平触发方式。即外部中断0的引脚(即INT0)上为低电平有效。IE0:外部中断0的

16、请求标志。当外部中断0的引脚(即INT0)上出现中断请求信号时(为低电平或负跳变,由IT0决定),此位由硬件置位。在CPU响应中断后,再由硬件自动复位清0。 由于CPU在每个机器周期采样INT0的输入电平,因此在INT0采用负跳变负跳变触发方式时,在两个连续的两个连续的机器周期机器周期期间采样的INT0应当分别是高电平和低电平,才能构成负跳变。 因此这也要求INT0的输入高、低电平的持续时间必须保持在12个振荡周期个振荡周期(1个机器周期)以上。4.2 单片机的中断结构4.2 单片机的中断结构课堂练习请设定单片机的TCON寄存器为系统检测到INT1出现下降沿即认定为产生中断。4.2 单片机的中

17、断结构分 析对照表45可知,IT1位为外部中断1的触发方式选择位。该位值为1时,表示引脚出现负跳变为中断触发方式;为0时,表示引脚出现低电平为中断触发方式。4.2 单片机的中断结构4 串行口寄存器串行口寄存器SCON 串行口寄存器SCON主要用于设定串行口的工作方式、接收/发送控制以及设置状态标志等。其最后两位用于设定串行口的中断标志。D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRID7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRITI:串行口的发送中断标志位。当TI1时,向CPU发出串行口的发送中断请求,该位由硬件自动置位。当TI0时,取

18、消此中断请求。RI:串行口的接收中断标志位。当RI1时,向CPU发出串行口的接收中断请求,该位由硬件自动置位。当RI0时,取消此中断请求。 TI与与RI在中断结束后,都需要使用软件复位在中断结束后,都需要使用软件复位。4.2 单片机的中断结构4.3 中断的响应过程 中断的作用是对外部异步发生的事件做出及时的处理。中断的处理过程分为:中断请求、中斯中断请求、中斯响应、中断处理和中断返回响应、中断处理和中断返回。 当CPU正在执行主程序第N条指令时,突然接到中断请求信号,此时CPU要执行完本条指令,然后中断当前主程序的执行并保存断点地址,接着才转去响应中断。当中断处理程序完成后,CPU要从堆栈中取

19、回先前保存的断点地址,返回主程序的中断地址,继续执行原理的主程序。4.3 中断的响应过程中断响应流程图中断响应流程图4.3 中断的响应过程 在中断请求后并不是所有的中断都会被及时响应,若有下面三种情况之一,都会延迟中断响应时间。 CPU正在执行同级或高级中断的中断服务程序。 当前机器周期不是正在执行指令的最后一个周期。在所有CPU设计中,任意一条指令的执行过程都是不可分割的,不能被任何事情中断。 当前执行的指令是中断返回指令或任何对IE、IP写操作的指令。几乎所有CPU的中断系统都规定,在执行这类中断返回指令或对中断控制进行设置的指令后,必须再继续执行至少一个其他指令才能响应中断。4.4 编写

20、中断服务程序一旦允许了中断,当中断响应条件满足时,CPU就会自动调用中断服务程序。中断服务程序的入口地址是相对固定的,而普通的功能程序入口则是随意设置的。另外,中断服务程序的调用方式也不同于普通的功能程序,中断服务程序的调用是靠中断申请信号。void 函数名函数名( ) interrupt 中断号中断号 using 工作组工作组 中断服务程序内容中断服务程序内容 此处的interrupt和using是C51的关键字,interrupt表示该函数是一个中断服务函数,n表示该中断服务函数所对应的中断源4.4 编写中断服务程序4.4 编写中断服务程序在C51中编写中断服务程序还要注意以下几点中断服务

21、程序不能有返回值。中断函数名不能与C51的关键字重复。中断号是指单片机中的中断源序号,详见表41。using 工作组是指该中断函数使用单片机内存中4组工作寄存器的哪一组,由于C51编译器会自动分配,因此使用C51编写中断函数时这一句通常可以不写。4.4 编写中断服务程序课堂练习简易报警器。 51单片机的P1.0和P1.1口分别连接着发光二极管和蜂鸣器,P3.2口即单片机的口连接一个按键开关KEY1。当KEY1开关按下时,相当于产生了一个外部中断,此时蜂鸣器会发出鸣叫报警声,同时发光二极管会跟随闪烁。P3.3口即单片机的口连接一个按键开关STOP,当STOP开关按下时,停止报警和闪烁。4.4 编

22、写中断服务程序4.4 编写中断服务程序分 析 本程序中使用了蜂鸣器。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。方波输入进蜂鸣器就会产生声音,通过控制方波的频率、时间,还能产生简单的音乐等。 单片机的P3.2口(即外部中断0) 连接一个按键开关,当开关闭合瞬间,产生负跳变,相当于产生了一个外部中断请求信号,CPU响应这个中断,将执行相应的中断服务程序,我们只需要在中断服务程序当中将P1.0置为低电平,则三极管将导通,蜂鸣器就会发出鸣叫。当P1.0为高电平时,三极管不会导通,蜂鸣器就不会鸣叫。4.4 编写中断服务程序 三极管在数字电路中应用主要是利用它在饱和区和截止区时,只有高、低两个电平

23、,因此可以当作开关使用。对于NPN型三极管,当基极电流为0时,三极管集电极电流为0(即三极管截止),相当于开关断开;当基极电流增大,以至于三极管饱和时,相当于开关闭合。如果三极管主要工作在截止和饱和状态,这样应用的三极管一般把它叫做开关管开关管。 观察电路原理图,只需要使P1.0、P1.1产生低电平,就可以使三极管导通,从而使蜂鸣器发出声音,发光二极管点亮。首先设置变量buzzer为P1.0口,其代码为sbit buzzer=P10。在后面就可以使用buzzer来代表P1.0口了,使P1.0为低电平,即buzzer=0,就是使蜂鸣器发声的代码。4.4 编写中断服务程序4.4 编写中断服务程序本

24、例中涉及到的两个外部中断构成了中断嵌套,外部中断0具有低优先级,他的作用是触发报警装置,并进行报警鸣叫。外部中断1具有高优先级,他的作用是使报警装置复位。这里通过一个控制变量flag来实现。当KEY1键按下时,会触发报警装置鸣叫、闪烁;此时按下STOP键,因其具有高优先级,故要暂时中断KEY1的中断服务程序,在STOP的中断服务程序中,使控制变量flag置1;随后返回到原先中断的KEY1的中断服务程序中,在这个程序中,每次鸣叫、闪烁时都要检查flag值,当检查flag值为1时,不具报警条件结束鸣叫。这种控制方法很常用,需要大家掌握。4.4 编写中断服务程序课堂练习使用中断方式检测键盘按键有一个

25、单片机系统上使用P1口安装了四个按键,并通过一个四路的与非门和反相器后,连接到了单片机的外部中断0引脚上;P0口接了一只数码管,请使用中断方式,判断当前按了哪个键,并将按键的编号通过数码管显示出来。4.4 编写中断服务程序4.4 编写中断服务程序分 析 与逐个键位扫描的方式相比,使用中断方式进行键盘检测,速度较快,适合于在快速反应的系统中应用。其工作其工作原理很简单,当用户按下某个键位时,该按键所连接的引原理很简单,当用户按下某个键位时,该按键所连接的引脚产生低电平,与之相连接的与非门,因引脚值的改变而脚产生低电平,与之相连接的与非门,因引脚值的改变而改变,经反相器后,到达外部中断改变,经反相

26、器后,到达外部中断0的引脚,触发外部中的引脚,触发外部中断请求断请求。 在外部中断0的中断服务程序中,首先读取与按键相连的P1口的状态,并将得到的结果与事先准备的键值编码进行比较,确定出本次按键的键值位置,将该位置信息对应到数码管的显示列表中,即得到将来显示的段选码,将这个段选码通过P0口输出,就使数码管点亮并显示出了按键的号码。4.4 编写中断服务程序实验 使用中断模拟汽车转向灯实验目的 学会使用 Keil和Proteus软件进行单片机C51语言程序设计与开发; 了解和掌握51单片机的中断组成、中断控制工作原理、中断处理过程、外部中断的中断触发方式; 掌握中断服务程序的编程方法。实验内容 设

27、计一个汽车转向灯,当按下K1键时,红色灯亮;当按下K2键时绿色灯亮。由此来模拟汽车打开左右转向时的情景。实验 使用中断模拟汽车转向灯序号元件名称(英文)中文名称或含义1AT89C51Atmel公司生产的51系列单片机2RES电阻(双击后更改阻值为330)3PNPPNP型三极管4BUTTON按钮开关5LED-RED红色发光二极管6LED-GREEN绿色发光二极管所需元件列表所需元件列表实验 使用中断模拟汽车转向灯实验 使用中断模拟汽车转向灯实验 使用中断模拟汽车转向灯实验总结1、中断程序中各标志位的含义、特殊单元的功能需熟记。2、按下开关后 出现低电平,但如果不很快释放按键,就会出现一次按键引起多次中断响应。这点在仿真中不会出现,但在实物电路中必定会出现。为解决这一矛盾,可在中断响应前加入防抖动程序。3、注意开关应选用button而不能用switch,因为button按下后自动跳开,产生一个下降沿,引起中断响应,即按一次button产生一个下降沿和一个上升沿。而switch按下后不能自动跳开。4、EA=1时系统才会响应各种中断,否则任何中断都不会执行。课后习题一、填空题(1、2、3、6、7)二、选择题(1、2、6、7、8)三、简答题(1、3)四、编程题(1、2、3、4)五、设计题(1)

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

当前位置:首页 > 教育专区 > 大学资料

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

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