玩转嵌入式吧 关注:9贴子:72
  • 3回复贴,共1

51单片机外部中断0实例讲解

只看楼主收藏回复

1 51单片机的中断源
51单片机共有5个中断源,分别为:
外部中断0
定时器0中断
外部中断1
定时器1中断
串口中断
每一个中断都对应一个中断向量,中断向量表如下所示:


IP属地:江苏1楼2016-04-08 15:56回复
    3 中断的硬件实现
    51单片机的外部中断0引脚接一只按键,该按键通过上拉电阻接到电源,即没有按键发生时单片机检测到的是高电平,当按键按下时单片机检测到的是低电平。单片机的P0.0引脚以灌电流的方式接了一只LED,当按键按下时LED灯点亮,没按键时LED灯熄灭。


    IP属地:江苏3楼2016-04-08 15:57
    回复
      4 中断的软件实现
      单片机中断函数的写法比较固定,51单片机中断函数的写法如下:
      void Initd() interrupt 0
      其中:
      void:为中断函数的返回类型,中断函数多为空类型;
      Initd():是中断函数的名称,这个函数名符合C语言函数命名规范就可以,随便起;
      interrupt:为51单片机中断的关键字,必须这么写(51单片机必须这么写);
      0:为中断向量,该值详看第一个表格,如果是外部中断1就写2,如果是定时器1中断就写3;
      中断函数不用在主函数中调用,只要中断事件发生,单片机自己主动会调到中断函数中。
      该例子的函数如下所示:


      IP属地:江苏4楼2016-04-08 15:57
      回复
        5仿真实现
        当按键发生时,LED灯点亮,如下图所示。注意对比两种图中按键的状态。

        本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。公众号:micropoint8,对于本节内容欢迎大家讨论。


        IP属地:江苏5楼2016-04-08 15:58
        回复