标题:
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