折腾来折腾去

pikipity的blog

第七章 外部中断

8051单片机提供两个外部中断口,当从这两个外部中断口接收到外部中断信号时程序就会跳到对应的中断向量的位置。这两个外部中断使用的是P3.2/INT0P3.3/INT1两个口。INT0对应的中断向量为03HINT1对应的中断向量为13H

外部中断的设置

外部中断的设置使用的是可位元寻址的TCON的后四位,TCON各位的分布为(已在第六章 计时器/计数器中提过):

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
  • IE1与IE0: 当检测到外部中断信号的边沿时,硬件置1;进入外部中断后,硬件置零。与软件无关
  • IT0与IT1: 由软件置一或清零,控制外部中断的触发类型。置一则为下降沿除法(检测到下降沿就进入中断)。置零则为低电平触发(检测到低电平就进入中断)

触发方式的选择

一般外部中断都是作为按键使用,由上面的设置可以看出,8051有两种外部中断触发方式,选择哪一种就成为了问题,两种各有优缺点:

  • 下降沿触发:
    • 优点:程序编写简单,不会出现按键按下后就不断的触发中断的情况。设置方法如下:

      SETB EX0
      SETB IT0
      SETB EX1
      SETB IT1
      SETB EA
      
    • 缺点:仅限于仿真中应用,实际应用中,无法防止误触按键的情况。并且按键只能局限于一下一下的按,不能出现长短按键的形式
  • 下降沿除法:
    • 优点:通过软件的编写可以防止实际生活中误触按键的情况。基本思路就是在进入中断后先等待,一段时间后再次检测,看是否还是低电平,如果还是,就可以确定不是误触。可以通过程序编写出现长短按键的情况
    • 缺点:程序编写复杂,容易出现连续触发同一中断的情况


Comments