标题: stc15w408as单片机外部中断0下降沿中断程序 [打印本页]

作者: dpj888888    时间: 2020-9-27 07:45
标题: stc15w408as单片机外部中断0下降沿中断程序
求助!求助!
我现在用STC15w408as处理433遥控接收器信号,遥控器不按,433遥控接收器输出低电平,按下输出高电平,用计数方法判断不好用,通过计数4000个连续的1使sta标志置1,i++,i会加好多次,我只要一次,所以还是用外部中断0下降沿触发解决,还是一样i++,i会加好多次:


sbit INT0 =  P3^2;
void Initial_INT0(void)
{
       
        IE0  = 0;             //将INT0中断请求标志位清"0"
        EX0 = 1;             //使能INT0中断允许位
        IT0 = 1;                   //选择INT0为下降沿触发方式
        EA = 1;                     //允许总中断
        INT0=1;

}


void main(void)
{        Initial_INT0();
        while(1)
        {   }
}

void exint0() interrupt 0  //外部中断入口
{
          delay(50);       //延时消抖
        if(INT0==0)     //如果检测到INT0=0,则判断为下降沿
        {
         yksta=1;
        }
}



作者: conrry    时间: 2020-9-27 12:28
楼主提到的i在程序中看不到,并且楼主说了好多,也没有清晰的问题,都不知道不清楚到底要实现什么功能
作者: 青桑叶    时间: 2020-9-27 16:07
既然设置下降沿触发了.中断函数里就不必要使用if{}函数了.中断执行前边,要关中.重复进入中断干不了活
作者: wulin    时间: 2020-9-27 19:08
#include "reg51.h"

void main()
{
        INT0= 1;
        IT0 = 1; //设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
        EX0 = 1; //使能INT0中断
        EA  = 1;
       
        while (1)
        {

        }
}
//中断服务程序
void exint0() interrupt 0  //INT0中断入口
{
    //任务
}
作者: dpj888888    时间: 2020-9-27 20:24
谢谢大家,摸索了好久,已实现功能




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1