|
|
建議你重新閱讀下教材或者重新看看相關的視頻.有些概念性的東西不能走捷徑的,否則問題多多,事半功倍. 你把中斷初值寫在MAIN的主循環里,并且沒有打開ET0 EA,你要想想如下問題. 中斷到底執行了嗎? 就算執行了, TF0有可能會置1嗎? |
| 應該不是不能判斷是否有溢出,要看定時器是否啟動了,PC指針追蹤一下流向。 |
| 代碼邏輯錯誤,不能循環賦值定時器 |
| 代碼寫的有問題,順序執行 |
| 看這貼我回復的程序代碼http://m.raoushi.com/bbs/mcu-h24-13.html |
|
雖然寫這種判斷,中斷里處理或者 while 處理均可,來點簡單的: TR0=1; TMOD=0x01; TH0=(65535-5000)/256; TL0=(65535-5000)%256; while(1) { if(TF0) { TF0=0; .... } } 樓主的代碼,就好像去廚房燒開水,剛剛把火點上,就看溫度是不是到了100℃。 起碼也得多看幾個輪回啊 ![]() |
| 很可惜這個論壇沒"我回復過的帖子"的功能,無法找到之前相關中斷的帖子,費大時間找不到之前的帖子,很不方便. |
| 注意代碼書寫的順序,所有計算機程序都是順序型的,代碼的順序代表要執行的次序,直接影響程序是否正確 |
| 沒人么。。。。。。 |