51单片机外部中断请求(51单片机外部中断请求信号有哪两种触发方式)

51单片机外部中断简介

51单片机外部中断是通过外部触发来打断单片机原有程序执行的一种机制。它可以在特定条件下发送请求,从而改变单片机的执行流程,实现各种功能,例如开机自检、按键检测、电平检测、定时器计数等等。对于单片机的开发而言,外部中断可以提供程序的高效性和可维护性。

外部中断类型

在51单片机中,有两种类型的外部中断:基于电平变化的中断和基于边沿触发的中断。

基于电平变化的中断:在中断触发源的引脚电平高电平或低电平在被检测到时,中断服务子程序(ISR)即可被执行。这种中断通常用于开关的输入检测,当开关状态改变时,可以引发中断。

基于边沿触发的中断:当中断触发源的引脚上的电平发生正边沿或负边沿变化时,中断服务子程序(ISR)即可被执行。这种中断可以用来计数器处理、高速检测脉冲信号等。

由于基于边沿触发的中断更能反应变化的速度,所以应用的较多。但是,基于电平变化的中断也有其特殊的应用,例如电压检测等。

外部中断的应用案例

下面是一个基于边沿触发的中断应用案例,实现按键检测功能:

1. 把需要检测的按键接到P3.2引脚上,将该引脚设置为中断触发源。

2. 程序初始化部分,需执行以下语句:

EX0 = 1; //开放INT0中断允许位

IT0 = 1; //选择INT0以边沿方式触发中断

EA = 1; //开放总中断允许位

3. 编写中断服务子程序(ISR):

void Interrupt_Isr() interrupt 0 //中断函数的形式

{

  if(The_Key_is_not_pressed) //按键被按下,P3.2电平发生变化

  {

    Delay(); //延时去抖动

    if(The_Key_is_not_pressed) //再次判断按键是否被按下

    {

      //执行按键检测功能代码

    }

  }

}

4. 在程序的主循环中,无须加入任何代码,当按键被按下后,中断服务子程序(ISR)即会自动被调用实现按键检测功能。

以上是基于边沿触发的中断应用案例,其他类型的外部中断应用场景也类似,只需将中断接口、触发方式和中断服务子程序等参数进行相应的修改即可。

51单片机外部中断请求(51单片机外部中断请求信号有哪两种触发方式)

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/mcuah-3.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月26日 上午4:59
下一篇 2023年4月26日 上午4:59

猜你喜欢