首页  研究报告服务  行业研究  业界动态  技术学院  资源下载  论坛

 位置: 汽车电子信息网 >> 技术学院 >> 技术前沿 >> 正文   当前没有通告!
  PIC单片机引脚中断程序的设计技巧          
PIC单片机引脚中断程序的设计技巧
http://www.icarinfo.com 2007-1-29 来源:汽车电子网  【字体:
    1、简 述 

    所有的中档系列PIC单片机,PORTB端口最高的4个引脚(RB7~RB4)在设为输入模式时,当输入电平由高到低或由低到高发生变化时,可以让单片机产生中断。这就是通常所说的引脚状态变化中断。 

    在设计引脚中断程序时,有三个需要特别注意的地方。一是,在清除P0RTB中断标志位RBIF之前,必须安排一条必不可少的,以PORTB端口数据寄存器PORTB为源寄存器的读操作指令。放置这一指令的目的有时并不只是为了读取有用的数据,而是为了取消状态变化的硬件信号,以便顺利清除RBIF标志位,为下一次中断做好准备。二是,由于端口PORTB是引脚电子变化中断,即无论引脚出现上升沿还是下降沿都会产生中断请求,所以必须处理好不需要的虚假中断。三是,一般都利用PIC单片机的引脚功能来检测按键,所以必须处理好按键消抖的问題。 

    2、引脚中断程序设计 

    在主程序里先设置有关的寄存器。 

    ◇设置TRISB寄存器,使RB7~RB4相关的引脚处于输入状态; 

    ◇如果需要弱上拉,通过OPTION_REG的第7位设置; 

    ◇RBIF=O; 

    ◇RBIE=1; 

    ◇GIF=1。 

    响应状态变化后的中断服务程序。 

    ◇检查RBIF是否为l,为l则是引脚变化引起的中断; 

    ◇调用延时程序,延时20~30 ms,目的是为了按键去抖; 

    ◇判断是引脚出现上升沿还是下降沿引起的中断; 

    ◇调用按键处理程序; 

    ◇读PORTB口的值,取消状态变化的硬件信号; 

    ◇清除RBIF标志。 

    笔者认为上面程序设计最大的问题是在中断程序里调用延时程序。大家知道,中档PIC单片机只有8层深度的硬件堆栈,在中断里调用于程序出现极易堆栈溢出的情况。另外,PIC单片机中断程序人口只有一个,在响应中断的请求时,PIC单片机就会自动把全局中断的使能位(INTCON的第7位GIF)清除,这样其他中断就暂时不能被响应(此时,如果别的中断发出的中断请求,标志位将一直保留着),直到这个中断程序退出后才会得到响应。这就要求我们设计中断程序的时候必须尽量短,避免调用子程序,更不要在中断里进行复杂的运算。
  • 上一篇文章: 实现汽车测功器应用的灵活性

  • 下一篇文章: 基于DSP的高低速CAN总线汽车控制系统设计
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
     最新推荐文章
     推荐 如何选择汽车电子系统中的处理器 (01-27)
     推荐 汽车图形系统参考设计 (01-25)
     推荐 一种简便的GPS车辆跟踪系统 (01-25)
     推荐 汽车内部GPS天线设计 (01-25)
     推荐 技术词典—车载诊断系统(OBD)推广 (01-25)
     推荐 通用智能传感器TPMS解决方案 (01-24)
     推荐 滤清器常识:机油滤清器的配套技术详解 (01-24)
     推荐 猎豹CFA6470汽车电子式ABS设计 (01-11)
     相 关 文 章
      网友评论:(评论内容只代表网友观点,与本站立场无关!)
    2006年中国汽车音响产业研究报告
    专 题 栏 目
     没有任何专题栏目
    热 点 文 章
     小裂痕自己搞 挡风玻璃修...
     汽车保养:新手开车必备五...
     私家汽车轧闹猛节前维修...
     驰耐普汽车美容冬季保养...
     购买汽车首先要考虑的是...
    设为首页 | 加入收藏  |  关于本站  |  版权申明  |  联系站长  |  友情链接  |  网站地图

    Copyright© 2006-2008 汽车电子信息网 .All Rights Reserved