单片机外部中断0接收外部脉冲的问题。。

我写了一个程序,测量直流电机的速度。用红外线对管测量,直流电机每转动一圈红外线对管会发出4个脉冲信号,高低电平。然后把这个信号经过处理后加到单片机的P3.2口。可是加上去之后就出现问题了。单片机的外部中断0设置的是下降沿有效。想着是每来一个脉冲,计数一次。单片机的io口又上啦电阻,正常情况下是高电平。而且这个高电平信号不稳定。当外部脉冲来的时候。下降沿到了,外部中断INT0进去了,记一次数。当外部信号处在低电平信号的这一段时间的时候。单片机的IO口的电压和这个低电平相互作用后,会出现许多下降沿,所以就造成计数的误差。测得的数据是真实数据的几十倍。这个问题该怎么解决?

单片机外部中断0, 有两种情况
1 是 设置错误 如果设置 成低电平 中断 那么 只要 低电平 进入中断服务程序,中断结束
还是 低电平 继续 进入中断服务程序,产生重复计数,检查中断设置。
2 脉冲信号波形不好,产生多个下降沿, 可以加滤波电容 (103 & 104 )
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-18
硬件上加阻容消峰电路,软件上加延时防抖动程序.
第2个回答  2012-08-18
是干扰的问题吗,出现了许多下降沿,让它变成标准的数字信号再引入IO口吧。你那个经过处理的信号是怎样输出的,是光隔离吗
相似回答