STC15单片机外部中断仅上升沿触发的方法

2018-07-12 22:03:02编辑:什么鱼 关键字:STC15单片机  外部中断  上升沿触发

STC15系列单片机的外部中断0(INT0)和外部中断1(INT1)的触发有两种方式,上升沿和下降沿均可触发方式和仅下降沿触发方式。在实际应用中,有时候需要上升沿触发。这时有两种方案可以解决。 

1.将触发方式设置成仅下降沿触发。当外部电路产生一个上升沿时,通过硬件电路加一个三极管进行反向变成下降沿。 

2.这种方法不需要改变硬件电路。将触发方式设置成上升沿和下降沿均可触发方式。外部中断产生一个上升沿时,进入中断服务函数,这时在中断服务函数里做进一步处理,检测当前INT0的电平状态。如果是高电平,则判断为上升沿。如果是低电平,则判断为是下降沿。 

注意(很重要!): 进入中断服务函数后,一定要延时几个毫秒再去做电平检测。因为不管是上升沿还是下降沿,都不可能是在一个瞬间完成的,中间会经历一个从高(低)到低(高)的过程。 

如果进入中断服务函数就立刻检测,可能当时电平还没有达到满足高或低电平的默认电压值或者处于高和低之间的临界电压状态,很可能出现误判的现象。这样做的目的是让跳变后的电平达到稳定状态再检测,说白了就是一个去抖动的过程。 

下面把初始化和中断服务函数的代码贴出来:


void Initial_INT0(void)

{

        INT0=0;

        IT0=0;      // 设置成上升沿和下降沿均触发

        EX0=1;      //使能INT0中断

        EA=0;

}


void exint0() interrupt 0  //外部中断入口

{

        delay_ms(50);       //延时消抖

        if(INT0==1)     //如果检测到INT0=1,则判断为上升沿

        {

                led=0;

                delay_ms(500);

                led=1;

        }                                 

        else

            led=1;

}


在实际做东西的过程中遇到的一个小问题,希望对你有帮助。


关键字:STC15单片机  外部中断  上升沿触发

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/2018/ic-news071240276.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:单片机控制外部中断输入
下一篇:51单片机中断和软件仿真

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stc89c51单片机矩阵键盘扫描

#include<reg52.h>  #include<stdio.h>    #define GPIO_KEY P0  #define GPIO_LED P1  unsigned char KeyValue;//存储键值  unsigned char code DIG_CODE[]={  0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 
发表于 2018-06-22 22:56:44

51单片机STC89C52 DA数模转换

CSDA BIT P3.2  WRR BIT P3.6  WELA BIT P2.7  DULA BIT P2.6    ORG 0000H  LOOP0:  MOV P0,#0FFH ;关数码管显示  SETB WELA  CLR WELA  CLR DULA  SETB CSDA  SETB WR  MOV A,#0  LOOP1:  MOV P0,A  CLR CSDA   CLR WRR  LCALL DELAY  S
发表于 2018-06-22 22:26:20

51单片机STC89C52 AD模数转换

,#0FFH ;关数码管显示  SETB WELA  SETB RDD  SETB WRR  STARTAD: ;开始转换  CLR CSAD  //NOP  CLR WRR  //NOP  SETB WRR  //NOP  SETB CSAD  LCALL DELAY ;延时,等待转换完成 
发表于 2018-06-22 22:25:32

51单片机STC89C52 矩阵键盘数码管显示

A,#40H,NEXT20  MOV R2,#3  SJMP NEXT40  NEXT20:  CJNE A,#80H,NEXT30  MOV R2,#4  SJMP NEXT40  NEXT30:  MOV R2,#0 ;R2保存列号,无键为0,有键1-4  CLR A ;无键退出,并清零累加器  SJMP EXIT  NEXT40:  MOV A,R1  SUBB A,#1  RL A  RL A  ADD A,R2 ;键值 0-15  EXIT:  CLR
发表于 2018-06-22 22:09:37

51单片机STC89C52 iic

;SCL ;START信号  SETB SDA  SETB SCL  CLR SDA  MOV A,#0A0H ;器件地址,写方向  MOV R0,#08H  IIC1:  CLR SCL ;SDA只能在SCL为低电平时可变  RLC A  JC IIC0  CLR SDA  SJMP 
发表于 2018-06-22 22:08:57

51单片机(STC89C52)DS18B20温度传感器驱动程序

  
发表于 2018-06-21 20:48:47
51单片机(STC89C52)DS18B20温度传感器驱动程序

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved