外部中断—-高低电平触发,(边沿触发)上升沿触发和下降沿触发区别

外部中断—-高低电平触发,(边沿触发)上升沿触发和下降沿触发区别外部中断可以分为电平触发和边缘触发两种,那么这两种中断有什么区别,我们今天讲解下1什么是中断CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。通俗点说:你正在家里做家务,突然有人来找你…

大家好,欢迎来到IT知识分享网。

外部中断可以分为电平触发和边缘触发两种,那么这两种中断有什么区别,我们今天讲解下

1什么是中断

CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);
CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);
待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。

通俗点说:你正在家里做家务,突然有人来找你,打断了你的进程,在你们交谈完之后,你就又回去继续进行你的家务活,这其中被打断的过程,就叫做中断,而在中断结束之后,你则会继续进行本来应该做的事情

 

高低电平触发:

 

低电平触发:

低电平触发中断顾名思义,就是检测到引脚为低电平就触发,从而进入中断函数中处理这个中断,并且在高或低电平保持的时间内持续触发,假设是低电平触发,只要引脚为低电平时间内中断一直有效,那么就会一直进入中断,直到电平变化为高电平

高电平触发:

则是 检测为高电平就触发,其余与低电平触发相同

注意事项:

1.电平触发中断,如果在电平没有恢复之前就退出中断程序,那么会在退出后又再次进入中断。只要不退出是不会重复触发的。

也就是重复触发只有在退出中断后才会再次触发,不用担心这次还没进行完,中断已经重新触发的情况

2.低电平触发是即时的,当外部中断信号撤消时,中断申请信号随之消失。如果在外部中断信号申请期间,CPU来不及响应此中断,那么有可能这次中断申请就漏掉了。也就是说假设低/高电平的时间很短。CPU没来得及相应,那么这次的电平中断申请就可能不会检测到

3.如果想要电平触发中断也只进行一次,通常的做法是在中断退出前关闭中断,等后面需要的时候再打开

边沿触发:

这里要先了解下:

从低电平到高电平,  叫做上升
从高电平到低电平, 叫做下降

·上升沿触发

数字电平从低电平(数字“0”)变为高电平(数字“1”)的那一瞬间叫作上升沿。 上升沿触发是当信号有上升沿时的开关动作,当电位由低变高而触发输出变化的就叫上升沿触发。也就是当测到的信号电位是从低到高也就是上升时就触发,叫做上升沿触发。

·下降沿触发

数字电路中,数字电平从高电平(数字“1”)变为低电平(数字“0”)的那一瞬间叫作下降沿。 [1]  下降沿触发是当信号有下降沿时的开关动作,当电位由高变低而触发输出变化的就叫下降沿触发。也就是当测到的信号电位是从高到低也就是下降时就触发,叫做下降沿触发。

那么我们可以很好的理解两种触发:

上升沿触发 就是当电压从低变高时触发中断
下降沿触发 就是当电压从高变低时触发中断

 

当然,上升沿与下降沿检测的是电平变化的一瞬间,就会产生中断,这个时间是us级别的,但是如果中断引脚检测到一直保持低/高电平,则无法产生下次中断,也就是中断只会触发一次,只有在下次电平发生变化时才会重新触发中断

注意事项:

1 边沿触发就是单片机在上一次机器周期内,检测到中断引脚口为高电平,这一次机器周期内检测到为低电平,则会申请产生中断,所以为us级别

2 下降沿触发是锁存中断信号的,由D触发器记忆,意即:即使当时CPU来不及响应中断,外部中断信号撤消后,由于D触发器的记忆作用,消失的中断信号仍然有效,直到中断被响应并进入中断ISR,记忆的中断信号才会由硬件清除。 这也是为什么边沿触发只能触发一次的原因

3.对于单片机的中断引脚,如果你另一端接的是VCC 则需要设置成上升沿或者高电平触发 如果你接的是GND 就可以设置成下降沿或者低电平触发

区别:

我们可以理解,电平触发在你一直按着按键的时候会一直进入中断,边沿触发则是只会触发一次,再次按下才会重新触发,这就给我们不同的应用功能提供了选择,使得我们可以在不同个工作下选择适合的模式,边沿触发适用于对对时间要求高的,比如中断中有计数之类的(GATE门控位置1时),而电平触发则适合报警装置,

 

51单片机的具体讲解与实现:

在51中,为了方便区分两种方式,用IT0/IT1,将低电平触发和下降沿触发这两种方式转化成对应的信号:IT0/IT1的高电平和低电平

,IT0/IT1高电平则为下降沿触发,IT0/IT1低电平则为低电平触发

  IT0=1;//跳变沿出发方式(下降沿)

  IT0=0;//电平触发

而在有中断触发之后,是否允许进行该中断,则对应的转换为 EX0 EX1的高低电平来实现  

EX0 EX1为高电平则允许中断,EX0 EX1为低电平则不允许中断

  EX1=1;//打开INT1的中断允许

  EX1=0;//关闭INT1的中断允许

而我们的外部中断,定时器中断,串口中断,等等,都只是中断的一个分支,在打开分支之后,相对应的要打开“总闸” EA

EA的作用相当于一个”总闸“,而EX0 EX1只是支线上的一个开关 ,再打开分支开关之后,需要打开总开关,才能够进行中断

简单来说 ,EA等于告诉单片机是否可以进行中断这个操作,而EX0 EX1等于是否允许外部触发中断进行, 

EA=1;//打开总中断  

EA=0;//关闭总中断  

在允许中断操作进行之后,如果有好几个中断应该怎么怎么办呢,如果谁也不服谁,都抢着说我先,那么MCU估计没两天就罢工告竭了,这时候便需要设置中断优先级,告诉每个中断谁应该先,谁应该后,大家礼尚往来,系统才能正常工作  当然在51中有着一个默认的优先级,依次是:外中断0,定时器0,外中断1,定时器1,串口   有多个中断时,会先进行前面的中断

void函数名()    interrupt 2 using 工作组        //外部中断1的中断函数 

{

  //吧啦吧啦代码

}

interrupt后面跟的数字代表使用哪一个中断通道,
0 外部中断0 
1 定时器0 
2 外部中断1 
3 定时器1 
4 串行中断

工作组一般不用设置,在程序编译时会自动分配

这样子外部触发中断的配置就配置好了,其他的中断配置和它都是类似的,同学们学会这个51的中断基本就可以举一反三,有一个更好的认识

低电平触发:

在51中:低电平触发是当管脚INTO/INT1(P3.2/P3,3)为低电平时,被单片机检测到后,就认为有中断请求,EX0/EX1置高电平,向CPU发出中断请求;则进入中断

下降沿触发:

边沿触发就是当管脚INTO/INT1有由高电平变低电平的过程时,就认为有中断请求,EX0/EX1置高电平,向CPU发出中断请求,进入中断。

 

 

                                                             外部中断----高低电平触发,(边沿触发)上升沿触发和下降沿触发区别

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/10558.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信