第5章-中断与定时[157页]课件.ppt

上传人(卖家):三亚风情 文档编号:3408126 上传时间:2022-08-28 格式:PPT 页数:157 大小:3.06MB
下载 相关 举报
第5章-中断与定时[157页]课件.ppt_第1页
第1页 / 共157页
第5章-中断与定时[157页]课件.ppt_第2页
第2页 / 共157页
第5章-中断与定时[157页]课件.ppt_第3页
第3页 / 共157页
第5章-中断与定时[157页]课件.ppt_第4页
第4页 / 共157页
第5章-中断与定时[157页]课件.ppt_第5页
第5页 / 共157页
点击查看更多>>
资源描述

1、单片机技术及应用单片机技术及应用授课人:庄友谊授课人:庄友谊 5.1 MCS-51单片机的中断系统5.4 简易数字频率计设计案例及Proteus仿真 5.3 中断与定时器/计数器综合应用举例5.2 MCS-51单片机定时器/计数器5.1.1 单片机中断技术概述:单片机中断技术概述:1、CPU与外设数据传送方式及中断的基本概念:与外设数据传送方式及中断的基本概念:(1)无条件传送方式:无条件传送方式:CPU直接与外设进行数据传送。直接与外设进行数据传送。n缺点:只适用于总是处于缺点:只适用于总是处于准备好准备好状态的外设状态的外设常见的用直接传送方式的简单外设有:常见的用直接传送方式的简单外设有

2、:发光二极管发光二极管、数码管、开关、继电器、步进电机等数码管、开关、继电器、步进电机等P1.0P1.1P1.2P1.3P1.4P1.5.89C51+5V红红绿绿黄黄300300300(2)(2)查询方式查询方式:CPU在进行数据传送前,先检查设备状态。在进行数据传送前,先检查设备状态。例:查询方式的红外防盗报警系统例:查询方式的红外防盗报警系统n缺点:缺点:CPU效率低效率低,数据传送的,数据传送的实时性差实时性差准备好?准备好?N数据传送数据传送Y读入状态读入状态(3)(3)中断方式:中断方式:CPU不主动不主动查询,只执行自己的程序,当事件发生提查询,只执行自己的程序,当事件发生提出要求

3、出要求CPU进行处理的进行处理的请求请求时,若时,若CPU准予准予请求,则请求,则CPU暂时暂时中断中断正在运行的程序,转而去处理该事件,待处理完正在运行的程序,转而去处理该事件,待处理完毕再毕再返回返回被中断的程序继续执行。被中断的程序继续执行。中断请求中断请求主程序主程序RETI 中断服中断服 务程序务程序中断方式下程序运行流程:中断方式下程序运行流程:查询方式下程序运行流程:查询方式下程序运行流程:CPU主动主动查询查询CPU被动被动等待中断等待中断事件发生和处理是事件发生和处理是在程序中设计好的在程序中设计好的事件发生是事件发生是随机随机的,事件的,事件处理由中断服务程序完成处理由中断

4、服务程序完成准备好?准备好?N事件处理事件处理Y读入状态读入状态效率效率低低,实时性,实时性差差效率效率高高,实时性,实时性好好2、中断的优点及功能:、中断的优点及功能:(1)解决速度矛盾)解决速度矛盾(2)实现并行工作(分时)、提高)实现并行工作(分时)、提高CPU效率效率(3)实现实时处理、应对突发事件)实现实时处理、应对突发事件中断功能强弱是体现计算机性能优劣的一个重要标志中断功能强弱是体现计算机性能优劣的一个重要标志过压过压温度温度浓度浓度CPU外设外设1 1外设外设2 2外设外设3 3CPU中断中断处理处理(4)故障处理)故障处理3、有关中断的几个概念:、有关中断的几个概念:(2)中

5、断源:中断源:产生中断的外部和内部事件。产生中断的外部和内部事件。(1)中断请求:)中断请求:外设向外设向CPU发出的发出的“中断申请信号中断申请信号”。通常通常中断源中断源有:有:请求请求CPU外设外设键盘键盘打印机打印机磁盘磁盘掉电掉电定时器定时器另外,还有为调试程序而设的另外,还有为调试程序而设的中断,如单步、断点设置等。中断,如单步、断点设置等。外设外设请求输入输出数据,报告故障等请求输入输出数据,报告故障等事件事件掉电、硬件故障、软件错误、非法操作、掉电、硬件故障、软件错误、非法操作、定时时间到等定时时间到等(5)中断优先级:中断优先级:当有几个中断源同时申请中断时,或者当有几个中断

6、源同时申请中断时,或者CPU正在处理正在处理某中断源服务程序时,又有另一中断源申请中断,某中断源服务程序时,又有另一中断源申请中断,CPU按按照一定的优先规则对这些中断进行处理,这样的处理规则照一定的优先规则对这些中断进行处理,这样的处理规则称为中断优先级。称为中断优先级。(3)中断响应:中断响应:(4)中断服务程序:中断服务程序:CPU由于中断响应,为处理该事件而执行的计算机程序。由于中断响应,为处理该事件而执行的计算机程序。CPU由于接收到中断请求信号,而去进行相应处理的操作。由于接收到中断请求信号,而去进行相应处理的操作。中断请求中断请求中断中断请求请求RETIRETI主程序主程序中断系

7、统能实现中断系统能实现中断嵌套中断嵌套中断服中断服务程序务程序4、中断过程:、中断过程:中断中断申请申请中断中断响应响应中断中断处理处理中断中断返回返回中断中断判优判优1、中断源与中断向量、中断源与中断向量MCS-51中有中有5个中断源个中断源:MCS-52有有6个中断源,即增加了一个定时器计数器个中断源,即增加了一个定时器计数器溢出中断源溢出中断源T2。两个内部的两个内部的定时定时/计数器计数器溢出中断源溢出中断源T0和和T1一个内部的一个内部的串行口串行口发送或接收中断源。发送或接收中断源。两个两个外部中断源外部中断源INT0和和INT1每一个中断源都能被每一个中断源都能被程控设置程控设置

8、为为高优先级高优先级或或低优先级低优先级。5.1.2 MCS-51单片机的中断系统单片机的中断系统2、MCS-51中断系统结构:中断系统结构:各单路开关各单路开关 总开关总开关IP寄存器寄存器实行实行两级控制两级控制SCON寄存器寄存器 EA总允许位总允许位中断源标志中断源标志位查询机构位查询机构高高优优先先级级低低优优先先级级中断中断入口入口中断源中断源标志位标志位中断中断入口入口中断源中断源标志位标志位IE0EX0TF0IE1TF1TIESET1EX1ET0RI+源允许位源允许位优先级优先级外部中断外部中断 请求请求0外部中断外部中断 请求请求1定时器定时器/计数器计数器0定时器定时器/计

9、数器计数器1串行口串行口TRINT0INT1RXDTXDT1T0中断标志位中断标志位IE寄存器寄存器TCON寄存器寄存器与中断系统相关的特殊功能寄存器有:与中断系统相关的特殊功能寄存器有:中断源寄存器:中断源寄存器:TCON(88H),),SCON(98H)中断允许控制寄存器中断允许控制寄存器IE(A8H)中断优先级控制寄存器中断优先级控制寄存器IP(B8H)实行实行两级控制两级控制,即以,即以EA位作为总控制位,以各中断位作为总控制位,以各中断源的中断允许位作为分控制位。只有当总控制位源的中断允许位作为分控制位。只有当总控制位EA有效有效时,即开放中断系统,这时各分控制位才能对相应中断时,即

10、开放中断系统,这时各分控制位才能对相应中断源分别进行开放或禁止。源分别进行开放或禁止。各中断允许控制位各中断允许控制位=0,开关断开开关断开各中断允许控制位各中断允许控制位=1,开关接通开关接通 MCS-51单片机在单片机在CPU响应中断时,由硬件直接产生一响应中断时,由硬件直接产生一个固定的地址,称为个固定的地址,称为矢量地址矢量地址,由矢量地址指出每个中断源,由矢量地址指出每个中断源设备的中断服务程序的入口。设备的中断服务程序的入口。3、中断向量中断向量(矢量矢量)外部中断外部中断0 0003H 计时器计时器T0溢出溢出 000BH 外部中断外部中断1 0013H 计时器计时器T1溢出溢出

11、 001BH 串行口中断串行口中断 0023H 计时器计时器 T2/T2EX 002BH MCS-51单片机的单片机的 5 个(个(MCS-52为为6个)中断源对应的中个)中断源对应的中断服务程序断服务程序入口地址入口地址中断矢量为:中断矢量为:当当CPU识别出某个中断源时,由硬件直接给出一个与该中识别出某个中断源时,由硬件直接给出一个与该中断源相对应的矢量地址,从而转入各自中断服务程序。断源相对应的矢量地址,从而转入各自中断服务程序。1、中断标志、中断标志:(1)TCON(Timer Control):定时器定时器/计数器的中断标志控制寄存器,锁存外部计数器的中断标志控制寄存器,锁存外部中断

12、请求标志,其字节地址为中断请求标志,其字节地址为88H。位地址8FH 8EH8DH8CH8BH8AH89H88H符号TF1TR1TF0TR0IE1IT1IE0IT0D7 D6 D5 D4 D3 D2 D1 D0 INT0,INT1,T0 及及 T1的中断标志存放在的中断标志存放在 TCON(定时定时器计数器控制)寄存器中;器计数器控制)寄存器中;串行口的中断标志存放在串行口的中断标志存放在 SCON(串行口控制)寄存器中。串行口控制)寄存器中。5.1.3 中断控制中断控制B、IE0、IE1(external interrupt flag)A、IT0、IT1(interrupt trigger

13、mode):当当ITi=0当当ITi=1INT0INT1ITi=1 为负跳沿触发方式;为负跳沿触发方式;ITi 可由软件置可由软件置“1”或清或清“0”。ITi=0 为低电平触发方式;为低电平触发方式;当当ITi=0 时,若时,若INTi=0,则由硬件对则由硬件对IEi置置“1”,否则否则IEi清清“0”当当ITi=1 时,若时,若INTi=,则由硬件对则由硬件对IEi置置“1”,否则否则IEi清清“0”IEi=1表示外部正在向表示外部正在向CPU申请中断,申请中断,CPU响应中断后响应中断后由由硬件自动清硬件自动清0外部中断请求触发方式外部中断请求触发方式外部中断标志,当有外部中断请求时,该

14、位置外部中断标志,当有外部中断请求时,该位置“1”0C、TF0、TF1(Timer overflow interrupt flag)当定时器当定时器/计数器最高位进位时,由硬件对计数器最高位进位时,由硬件对TFi置置“1”,表示正在向表示正在向CPU申请中断,申请中断,CPU响应中断后,响应中断后,TFi由硬件由硬件自动清自动清“0”。定时器溢出中断标志定时器溢出中断标志D、TR0、TR1:定时器运行控制位。定时器运行控制位。=1 启动启动计数;计数;=0 停止计数停止计数(2)SCON(Serial port Control):位地址9FH9EH9DH9CH9BH9AH99H98H符号SM0

15、SM1SM2RENTB8RB8TIRI低两位锁存接收中断源低两位锁存接收中断源RI和发送中断源和发送中断源TI。TI(SCON1):):串行口发送中断源。串行口发送中断源。发送完一帧,由硬件置位。发送完一帧,由硬件置位。RI(SCON0):):串行口接收中断源。串行口接收中断源。接收完一帧,由硬件置位。接收完一帧,由硬件置位。D7 D6 D5 D4 D3 D2 D1 D0串行口控制寄存器,字节地址为串行口控制寄存器,字节地址为98H响应中断后,必须响应中断后,必须用软件清用软件清0。IP(Interrupt priority):):中断优先权控制寄存器中断优先权控制寄存器(1)PS:串行口中断

16、优先级控制位串行口中断优先级控制位(2)PT0、PT1:定时器定时器/计数器中断优先级控制位计数器中断优先级控制位(3)PX0、PX1:外部中断优先级控制位外部中断优先级控制位 上述中:上述中:“1”表示表示高高优先级,优先级,“0”表示表示低低优先级。优先级。位地址 BFHBEHBDHBCHBBHBAHB9HB8H符号 PSPT1PX1PT0PX0D7 D6 D5 D4 D3 D2 D1 D0设置中断优先权,字节地址为设置中断优先权,字节地址为B8H。系统复位后系统复位后IP寄存器中各位均为寄存器中各位均为0,即此时全部设定为,即此时全部设定为低中断优先级。低中断优先级。3、中断优先级控制中

17、断优先级控制 在同一优先级内有一个由内部查询序列确定的笫二个在同一优先级内有一个由内部查询序列确定的笫二个优先级结构。优先级结构。其排列如下:其排列如下:中断源中断源中断优先级中断优先级1、外部中断外部中断02、定时器定时器T0中断中断3、外部中断、外部中断14、定时器、定时器T1中断中断5、串行口中断、串行口中断6、定时器、定时器T2中断中断最高最高最低最低对发生多个中断申请时:对发生多个中断申请时:不同优先级不同优先级的中断同时申请的中断同时申请 先高后低先高后低 相同优先级相同优先级的中断同时申请的中断同时申请 按序执行按序执行 正处理低优先级正处理低优先级中断又接到高级别中断中断又接到

18、高级别中断 高打断低高打断低 正处理高优先级正处理高优先级中断又接到低级别中断中断又接到低级别中断 高不理低高不理低中断优先级处理原则中断优先级处理原则:(P.131)P.131)中断源提出了中断申请;中断源提出了中断申请;CPU响应中断的条件响应中断的条件:在现行指令结束后才响应中断;在现行指令结束后才响应中断;若正在执行若正在执行RETI,或正在访问或正在访问IE或或IP寄存器,寄存器,须执行完上述指令,并再执行一条指令后方能须执行完上述指令,并再执行一条指令后方能响应中断。响应中断。中断是开放的或者是允许的;中断是开放的或者是允许的;没有同级的中断或更高级别的中断正在处理;没有同级的中断

19、或更高级别的中断正在处理;CPU 在每个机器周期的在每个机器周期的S5P2期间,会自动查询各个期间,会自动查询各个中中断申请标志位断申请标志位,若查到某标志位被置位,若查到某标志位被置位,将启动中断机制。将启动中断机制。CPU识别中断申请的依据识别中断申请的依据:Tc=1/fosc Ts=6Tc Tm=12Tc=6TsTcTsTmTmS5S6S4S3S2S5S6S4S3S2S15.1.4 外部中断中断响应过程外部中断中断响应过程1、中断的响应过程:中断的响应过程:采样并置标志采样并置标志查询标志,转入处理查询标志,转入处理每个周期的每个周期的S5P2对外部中断采样,并置入相应标志对外部中断采样

20、,并置入相应标志在下一个周期的在下一个周期的S6期间按优先级顺序依次进行中断查询期间按优先级顺序依次进行中断查询若查询到某中断标志为若查询到某中断标志为1,从相邻的下一,从相邻的下一个机器周期的个机器周期的S1状态开始进行中断响应状态开始进行中断响应CPU执行硬件执行硬件LCALL转向相应中断转向相应中断的特定单元,进入中断服务程序的特定单元,进入中断服务程序 CPU响应中断时响应中断时先先置置“1”相应的优先级触发器,相应的优先级触发器,然后然后执行硬件执行硬件LCALL(压栈与转移),压栈与转移),同时同时清清“0”中断请求标中断请求标志(志(TI、RI除外)。除外)。(1)关于中断请求采

21、样:)关于中断请求采样:对于外部中断才需要对中断请求信号进行采样,而其他对于外部中断才需要对中断请求信号进行采样,而其他中断源由于中断请求都发生在芯片内部,可以直接置位相中断源由于中断请求都发生在芯片内部,可以直接置位相应的中断请求标志位,因此不存在中断请求采样问题。应的中断请求标志位,因此不存在中断请求采样问题。当外部中断为边沿触发方式。当外部中断为边沿触发方式。CPU在每一个机器周期的在每一个机器周期的S5P2期间对和引脚进行采样,若在连续两个机器周期采样到期间对和引脚进行采样,若在连续两个机器周期采样到先高后低的电平变化,则认为有中断请求,将先高后低的电平变化,则认为有中断请求,将IE0

22、或或IE1置置1;否则认为没有中断请求,否则认为没有中断请求,IE0或或IE1继续为继续为0。当外部中断为电平触发方式时,当外部中断为电平触发方式时,CPU在每一个机器周期的在每一个机器周期的S5P2期间对引脚进行采样。若测得为低电平,则认为有中断期间对引脚进行采样。若测得为低电平,则认为有中断请求,将外部中断请求标志位请求,将外部中断请求标志位IE0或或IE1置置1;否则,则认为没;否则,则认为没有中断请求或中断请求已撤除,将有中断请求或中断请求已撤除,将IE0或或IE1清清0。几点说明:几点说明:(2)关于中断查询与响应:)关于中断查询与响应:中断查询是指中断查询是指CPU测试各中断请求标

23、志位的状态,以测试各中断请求标志位的状态,以确定有没有中断请求发生以及是哪一个中断请求。确定有没有中断请求发生以及是哪一个中断请求。在每一个机器周期的最后一个状态在每一个机器周期的最后一个状态S6,按优先级顺按优先级顺序对中断请求标志位进行查询。如果查询到有标志位序对中断请求标志位进行查询。如果查询到有标志位1,则表明有中断请求发生,接着就从下一个机器周期开始则表明有中断请求发生,接着就从下一个机器周期开始进行中断响应。进行中断响应。当中断请求被响应时,由硬件生成长调用指令当中断请求被响应时,由硬件生成长调用指令(LCALL),),将当前的将当前的PC值自动压栈保护,但值自动压栈保护,但PSW

24、寄寄存器的内容不压栈,然后将对应的中断入口地址装入存器的内容不压栈,然后将对应的中断入口地址装入PC,程序转向中断服务子程序,处理被响应的中断。程序转向中断服务子程序,处理被响应的中断。(3)中断服务中断服务 CPU响应中断结束后转入中断服务程序的入口。响应中断结束后转入中断服务程序的入口。从中断服务子程序的第一条指令开始到返回指令为止,从中断服务子程序的第一条指令开始到返回指令为止,这个过程称为中断处理或中断服务。这个过程称为中断处理或中断服务。一般情况下,一般情况下,中断处理中断处理包括两部分内容:包括两部分内容:现场保护现场保护和和中断源服务中断源服务。现场通常有现场通常有PSW、通用寄

25、存器、专用寄存器等。如通用寄存器、专用寄存器等。如果在中断服务程序中要用这些寄存器,则在进入中断服果在中断服务程序中要用这些寄存器,则在进入中断服务之前应将它们的内容保护起来称保护现场;同时在中务之前应将它们的内容保护起来称保护现场;同时在中断结束,执行断结束,执行RETI指令之前应恢复现场。指令之前应恢复现场。中断源服务是针对中断源的具体要求进行处理。中断源服务是针对中断源的具体要求进行处理。(4)中断返回)中断返回 中断处理程序的最后一条指令是中断返回指令中断处理程序的最后一条指令是中断返回指令RETI。它的功能是将断点弹出送回它的功能是将断点弹出送回PC中,使程序能返回到原来被中,使程序

26、能返回到原来被中断的程序继续执行。中断的程序继续执行。中断响应是中断响应是有条件有条件的,在接受中断申请时,如遇下列情况的,在接受中断申请时,如遇下列情况之一时,硬件生成的长调用指令之一时,硬件生成的长调用指令“LCALL”将被将被封锁封锁:CPU正在执行同级或高一级的中断服务程序中。正在执行同级或高一级的中断服务程序中。查询中断请求的机器周期不是执行当前指令的最后一查询中断请求的机器周期不是执行当前指令的最后一个周期。个周期。当前正在执行当前正在执行RETI指令或执行对指令或执行对IE、IP的读写操作的读写操作指令。指令。MCS-51中断系统规定:在当前指令执行完毕后,才能中断系统规定:在当

27、前指令执行完毕后,才能响应中断。响应中断。中断服务程序由中断矢量地址开始,直至遇到中断服务程序由中断矢量地址开始,直至遇到RETI。执行执行RETI,一是撤销中断申请,弹出断点地址进入一是撤销中断申请,弹出断点地址进入PC,先先弹出高位地址,后弹出低位地址,同时堆栈指针弹出高位地址,后弹出低位地址,同时堆栈指针SP减减2,恢复原,恢复原程序的断点地址执行;二是恢复中断触发器原先状态。程序的断点地址执行;二是恢复中断触发器原先状态。中断的执行过程与调用子程序有许多中断的执行过程与调用子程序有许多相似点相似点:都是中断当前正在执行的程序,转去执行子程序或中都是中断当前正在执行的程序,转去执行子程序

28、或中断服务程序。断服务程序。都是由硬件自动地把断点地址压入堆栈,然后通过软都是由硬件自动地把断点地址压入堆栈,然后通过软件完成现场保护。件完成现场保护。执行完子程序或中断服务程序后,都要通过软件完执行完子程序或中断服务程序后,都要通过软件完成现场恢复,并通过执行返回指令,重新返回到断点处,成现场恢复,并通过执行返回指令,重新返回到断点处,继续往下执行程序。继续往下执行程序。二者都可以实现嵌套,如中断嵌套和子程序嵌套。二者都可以实现嵌套,如中断嵌套和子程序嵌套。中断的执行与调用子程序也有一些大的中断的执行与调用子程序也有一些大的差别差别:中断请求信号可以由外部设备发出,是随机的;子中断请求信号可

29、以由外部设备发出,是随机的;子程序调用却是由软件编排好的。程序调用却是由软件编排好的。中断响应后由固定的矢量地址转入中断服务程序,而中断响应后由固定的矢量地址转入中断服务程序,而子程序地址由软件设定。子程序地址由软件设定。中断响应是受控的,其响应时间会受一些因素影响;中断响应是受控的,其响应时间会受一些因素影响;子程序响应时间是固定的。子程序响应时间是固定的。在单级中断系统中,中断的响应时间为在单级中断系统中,中断的响应时间为38个机器周期。个机器周期。2、中断响应时间中断响应时间最短:最短:中断请求标志位查询占中断请求标志位查询占1个机器周期,个机器周期,CPU即响即响应中断,产生硬件长调用

30、应中断,产生硬件长调用LCALL指令,执行这条长调指令,执行这条长调用指令需要用指令需要2个机器周期个机器周期。最长:最长:如果如果CPU正在执行的是正在执行的是RETI指令或访问指令或访问IP、IE指令,指令,则等待时间不会多于则等待时间不会多于2个机器周期,而中断系统规定把这几条个机器周期,而中断系统规定把这几条指令执行完必须再继续执行一条指令后才能响应中断,如这指令执行完必须再继续执行一条指令后才能响应中断,如这条指令恰好是条指令恰好是4个机器周期长的指令个机器周期长的指令,再加上执行长调用指令再加上执行长调用指令LCALL所需所需2个机器周期,总共需要个机器周期,总共需要8个机器周期个

31、机器周期。如果中断请求被前面所列三个条件之一所阻止,不能产如果中断请求被前面所列三个条件之一所阻止,不能产生硬件长调用生硬件长调用LCALL指令,那么所需的响应时间就更长些。指令,那么所需的响应时间就更长些。如果正在处理同级或优先级更高的中断,那么中断响应的时如果正在处理同级或优先级更高的中断,那么中断响应的时间还需取决于处理中的中断服务程序的执行时间。间还需取决于处理中的中断服务程序的执行时间。5.1.5 中断处理流程中断处理流程 执 行 一 条 指 令 执 行 一 条 指 令 有 中 断 请 求 否 关 中 断 保 护 现 场 和 断 点 开 中 断 中 断 服 务 关 中 断 恢 复 现

32、 场 开 中 断 中 断 返 回 CPU响应中断请求,转向中断服务程序执行,在其执行响应中断请求,转向中断服务程序执行,在其执行中断返回指令(中断返回指令(RETI)之前,中断请求信号必须撤除,否之前,中断请求信号必须撤除,否则将会再一次引起中断而出错。则将会再一次引起中断而出错。5.1.6 中断请求的撤除中断请求的撤除中断请求撤除的方式有三种:中断请求撤除的方式有三种:1、由单片微机内部硬件自动复位:、由单片微机内部硬件自动复位:对于对于T0、T1 的溢出中断和采用跳变触发方式的外部中断的溢出中断和采用跳变触发方式的外部中断请求,在请求,在CPU响应中断后,由内部硬件自动清除中断标志响应中断

33、后,由内部硬件自动清除中断标志TF0和和TF1、IE0和和IE1,而自动撤除中断请求。而自动撤除中断请求。2、应用软件清除相应标志:、应用软件清除相应标志:对于串行接收发送中断请求,在对于串行接收发送中断请求,在CPU响应中断后,必响应中断后,必须在中断服务程序中应用软件清除须在中断服务程序中应用软件清除RI和和 TI中断标志。中断标志。3、外部中断采用外加硬件结合软件清除中断请求:、外部中断采用外加硬件结合软件清除中断请求:对于采用电平触发方式的外部中断请求,中断标志的对于采用电平触发方式的外部中断请求,中断标志的撤消是自动的,但中断请求信号的低电平可能继续存在,撤消是自动的,但中断请求信号

34、的低电平可能继续存在,在以后机器周期采样时又会把已清在以后机器周期采样时又会把已清“0”的的IE0、IE1标志标志重新置重新置“1”,再次申请中断。,再次申请中断。(1)硬件电路:)硬件电路:原理:在中断响应后,利用直接置位端原理:在中断响应后,利用直接置位端SD来撤消低电平引来撤消低电平引起的中断请求。采用起的中断请求。采用MCS-51的一根的一根I/O口线来控制口线来控制SD端。端。ANL P1,#0FEH ;Q置置1(SD为直接置位端,低电平有效为直接置位端,低电平有效)ORL P1,#01H ;SD无效,准备接受下一次中断请求无效,准备接受下一次中断请求(2)软件:)软件:5.1.7

35、中断编程中断编程 中断程序包括中断程序包括中断控制程序中断控制程序和和中断服务程序中断服务程序两部分。两部分。MCS-51共有共有5个中断源,由个中断源,由4个特殊功能寄存器个特殊功能寄存器TCON、SCON、IE和和IP进行管理和控制。进行管理和控制。在在MCS-51中,需要用软件对以下中,需要用软件对以下5个内容个内容进行设置:进行设置:中断服务程序中断服务程序入口地址入口地址的设定。的设定。某一某一中断源中断源中断请求的中断请求的允许与禁止允许与禁止。对于外部中断请求,还需进行对于外部中断请求,还需进行触发方式触发方式的设定。的设定。各中断源各中断源优先优先级别的设定。级别的设定。CPU

36、开中断开中断与与关中断关中断。中断控制程序即中断初始化程序,一般包含在主程序中断控制程序即中断初始化程序,一般包含在主程序中,根据上述的中,根据上述的5点通过编写几条指令来实现。点通过编写几条指令来实现。例例.试编写设置外部中断试编写设置外部中断INT0和串行接口中断为高优先级,和串行接口中断为高优先级,外部中断外部中断INT1为低优先级。屏蔽为低优先级。屏蔽T0 和和T1中断请求的初始中断请求的初始化程序段。化程序段。将中断请求优先级寄存器将中断请求优先级寄存器IP的第的第0、4位置位置“l”,其余其余位置位置“0”。将中断请求允许寄存器的第。将中断请求允许寄存器的第0、2、4、7位置位置“

37、l”,其余位置其余位置“0”。位地址AFHAEHADHACHABHAAHA9HA8H符号EA ESET1EX1ET0EX0位地址BFHBEHBDHBCHBBHBAHB9HB8H符号 PSPT1PX1PT0PX0IEIP1、汇编程序:、汇编程序:编程如下:编程如下:ORG 0000HSJMP MAINORG 0003HLJMP INT0INT;设外部中断设外部中断/INT0中断矢量中断矢量 ORG 0013HLJMP INT1INT;设外部中断设外部中断/INT1中断矢量中断矢量ORG 0023HLJMP SIOINT;设串行口中断矢量设串行口中断矢量ORG 0030HMAIN:MOV IP,#

38、00010001B;设外部中断设外部中断INT0和和 ;串行口中断为高优先级;串行口中断为高优先级MOV IE,#10010101B ;允许允许INT0、INT1、;串行口中断,开串行口中断,开CPU中断中断中断响应很突出的一点是它的中断响应很突出的一点是它的随机性随机性。保护断点和现场、恢复断点和现场保护断点和现场、恢复断点和现场 在中断响应过程中,断点的保护主要由硬件电路自在中断响应过程中,断点的保护主要由硬件电路自动实现。动实现。所谓现场是指中断发生时单片微机中存储单元、所谓现场是指中断发生时单片微机中存储单元、寄存器、特殊功能寄存器中的数据或标志位等。寄存器、特殊功能寄存器中的数据或标

39、志位等。保护的方法保护的方法可以有以下几种:可以有以下几种:通过堆栈操作指令通过堆栈操作指令PUSH direct;通过工作寄存器区的切换;通过工作寄存器区的切换;通过单片微机内部存储器单元暂存。通过单片微机内部存储器单元暂存。现场保护一定要位于中断服务程序的前面,在中断服现场保护一定要位于中断服务程序的前面,在中断服务程序结束之前要恢复现场,中断服务程序的最后一条指务程序结束之前要恢复现场,中断服务程序的最后一条指令必须是令必须是RETI指令指令。对中断的控制对中断的控制 MCS-51单片机具有多级中断功能(即多重中断嵌单片机具有多级中断功能(即多重中断嵌套),为了不至于在保护现场或恢复现场

40、时,由于套),为了不至于在保护现场或恢复现场时,由于CPU响应其它中断请求,而使现场破坏。一般规定,响应其它中断请求,而使现场破坏。一般规定,在保护在保护和恢复现场时,和恢复现场时,CPU不响应不响应外界的中断请求外界的中断请求,即关中断。,即关中断。因此,在编写程序时,应在保护现场和恢复现场之前,因此,在编写程序时,应在保护现场和恢复现场之前,关闭关闭CPU中断;在保护现场和恢复现场之后,再根据需中断;在保护现场和恢复现场之后,再根据需要使要使CPU开中断。开中断。对于重要中断,不允许被其它中断所嵌套。除了设对于重要中断,不允许被其它中断所嵌套。除了设置中断优先级外,还可以采用关中断的方法,

41、彻底屏蔽置中断优先级外,还可以采用关中断的方法,彻底屏蔽其它中断请求,待中断处理完之后再打开中断系统。其它中断请求,待中断处理完之后再打开中断系统。2、C51中断服务函数:中断服务函数:由于由于标准标准C没有处理没有处理单片机中断单片机中断的定义,为直接编写的定义,为直接编写中断服务程序,中断服务程序,C51编译器对函数的定义进行了扩展,编译器对函数的定义进行了扩展,增增加了一个加了一个扩展关键字扩展关键字interrupt,使用该关键字可以将一使用该关键字可以将一个函数定义成中断服务函数。由于个函数定义成中断服务函数。由于C51编译器在编译时对编译器在编译时对声明为中断服务程序的函数声明为中

42、断服务程序的函数自动添加了相应的自动添加了相应的现场保护现场保护、阻断其他中断阻断其他中断、返回时恢复现场返回时恢复现场等处理的程序段,因而等处理的程序段,因而在编写中断服务函数时可不必考虑这些问题,减轻了用在编写中断服务函数时可不必考虑这些问题,减轻了用汇编语言编写中断服务程序的繁琐程度,而把精力放在汇编语言编写中断服务程序的繁琐程度,而把精力放在如何处理引发中断请求的事件上。如何处理引发中断请求的事件上。函数类型函数类型 函数名函数名(参数参数)interrupt n using m /中断服务程序中断服务程序 说明:说明:1、n是是中断源中断源编号编号(可为(可为031,04对应着对应着

43、51的的5个中断,个中断,其它值预留其它值预留);2、m是使用的是使用的寄存器组寄存器组号,默认是号,默认是Bank 0;3、当调用函数时,、当调用函数时,SFR的的ACC、B、DPTR、PSW自动入栈自动入栈;4、不使用寄存器组切换,中断所用到的寄存器、不使用寄存器组切换,中断所用到的寄存器自动入栈自动入栈;5、中断返回、中断返回(RETI)前,所有寄存器前,所有寄存器自动出栈自动出栈;中断服务函数的一般形式为中断服务函数的一般形式为:C51中断号与中断向量中断号与中断向量 中断号中断号 n中中 断断 源源中断向量中断向量 8n+30外部中断外部中断 00003H1定时器定时器 0000BH

44、2外部中断外部中断 10013H3定时器定时器 1001BH4串行口串行口0023H例、例、外中断外中断1的中断服务函数书写如下:的中断服务函数书写如下:void int1()interrupt 2 using 0/*中断号中断号n=2,选择,选择0区工作寄存器区区工作寄存器区*/关键字关键字using和关键字和关键字interrupt都不允许用于外部函数。都不允许用于外部函数。编写编写AT89S51中断程序时,应遵循以下中断程序时,应遵循以下规则规则:(1)中断函数)中断函数没有返回值没有返回值,如果定义了一个返回值,将会,如果定义了一个返回值,将会得到不正确的结果。因此建议在定义中断函数时

45、,将其定义得到不正确的结果。因此建议在定义中断函数时,将其定义为为void类型,以明确说明没有返回值。类型,以明确说明没有返回值。(2)中断函数)中断函数不能进行参数传递不能进行参数传递,如果中断函数中包含任,如果中断函数中包含任何参数声明都将导致编译出错。何参数声明都将导致编译出错。(3)在任何情况下都)在任何情况下都不能直接调用中断函数不能直接调用中断函数,否则会产生,否则会产生编译错误。因为中断函数的返回是由编译错误。因为中断函数的返回是由指令指令RETI完成的。完成的。RETI指令指令会影响会影响51单片机中的硬件中断系统内的不可寻址的单片机中的硬件中断系统内的不可寻址的中断优先级寄存

46、器的状态。如果在没有实际中断请求的情况中断优先级寄存器的状态。如果在没有实际中断请求的情况下,直接调用中断函数,也就不会执行下,直接调用中断函数,也就不会执行RETI指令,其操作结指令,其操作结果有可能产生一个致命的错误。果有可能产生一个致命的错误。(4)如果在中断函数中再调用其他函数)如果在中断函数中再调用其他函数,则被调用的函数,则被调用的函数所使用的寄存器区必须与中断函数使用的所使用的寄存器区必须与中断函数使用的寄存器区不同寄存器区不同。如图所示,单片机上电,程序运行后发光二极管如图所示,单片机上电,程序运行后发光二极管D4点亮,点亮,按下按下P3.2所接的按键所接的按键K,D4灭掉,再

47、按按键灭掉,再按按键K,D4又点亮,循又点亮,循环往复。环往复。5.1.8 外部中断举例外部中断举例 ORG 0000H SJMP MAIN;上电,转向主程序;上电,转向主程序 ORG 0003H;外部中断;外部中断0入口地址入口地址 SJMP INSER;转向中断服务程序;转向中断服务程序 ORG 0030H;主程序;主程序MAIN:SETB EX0 ;允许外部中断;允许外部中断0中断中断 SETB IT0 ;选择边沿触发方式;选择边沿触发方式 SETB EA ;CPU开中断开中断 CLR P1.0HERE:SJMP HERE;等待中断;等待中断 ORG 0200H;中断服务程序;中断服务程

48、序INSER:CPL P1.0 RETI ;中断返回;中断返回 END#include sbit P1_0=P10;void main()/*主函数主函数*/EX0=1;/*外部中断外部中断0中断允许中断允许*/IT0=1;/*选择外部中断选择外部中断0为跳沿触发方式为跳沿触发方式*/EA=1;/*总中断允许总中断允许*/P1_0=0;/*P1.0=0,LED亮亮*/while(1);void xint0()interrupt 0 using 0/外中断外中断0的中断服务函数的中断服务函数 P1_0=!P1_0;ORG 0000H SJMP MAIN ORG 0003H SJMP INSER

49、ORG 0030HMAIN:SETB EX0 SETB IT0 SETB EA CLR P1.0HERE:SJMP HERE ORG 0200HINSER:CPL P1.0 RETI END#include sbit P1_0=P10;void main()EX0=1;IT0=1;EA=1;P1_0=0;while(1);void xint0()interrupt 0 using 0 P1_0=!P1_0;单片机上电,单灯按一定的频率循环,一旦按下单片机上电,单灯按一定的频率循环,一旦按下P3.2所接的按所接的按键,发光二极管全亮,键,发光二极管全亮,2秒钟后,单灯继续原来的循环。秒钟后,单灯

50、继续原来的循环。1、流水灯的源程序、流水灯的源程序2、流水灯的源程序、流水灯的源程序+中断初始化程序中断初始化程序中断服务程序及延时子程序中断服务程序及延时子程序3、用查询程序实现上述任务用查询程序实现上述任务4、从、从INT0输入,并采用了去抖动电路。输入,并采用了去抖动电路。1、流水灯的源程序流水灯的源程序 ORG 0000H SJMP MAIN ORG 0030H;主程序;主程序MAIN:MOV A,#0FEH MOV R5,#4OUTPUT:MOV P1,A RL A LCALL Delay DJNZ R5,Output LJMP MAINDelay:MOV R6,#250 MOV R

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第5章-中断与定时[157页]课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|