用的是STC的單片機嗎?
如果是,那就先看一下你所用的單片機的數據手冊,重點看時鐘,如果你這個程序是在89C52上面的,用在了5A60S2上面肯定是不行的,雖然延時函數一樣,但執行的時鐘不一樣,所以,時間也不一樣
而紅外檢測是要等待一個電平的,有可能是你這個電平已經過了,而且,由于紅外發射器的誤差,就變成了有時候給收得到,有時候按了沒反應,有時候就卡住不再動了.
為了防止它不動,你可以在中斷函數里加入看門狗,而在主函數清除看門狗數據,這樣一來,只要卡在某個地方了,看門狗會幫你復位的.
以上是按我曾經寫過的一個紅外程序,用在兩個不同的51上面的經驗而寫的. |