用的是STC的单片机吗?
如果是,那就先看一下你所用的单片机的数据手册,重点看时钟,如果你这个程序是在89C52上面的,用在了5A60S2上面肯定是不行的,虽然延时函数一样,但执行的时钟不一样,所以,时间也不一样
而红外检测是要等待一个电平的,有可能是你这个电平已经过了,而且,由于红外发射器的误差,就变成了有时候给收得到,有时候按了没反应,有时候就卡住不再动了.
为了防止它不动,你可以在中断函数里加入看门狗,而在主函数清除看门狗数据,这样一来,只要卡在某个地方了,看门狗会帮你复位的.
以上是按我曾经写过的一个红外程序,用在两个不同的51上面的经验而写的. |