|
發布時間: 2019-7-28 15:44
正文摘要:想做一個60秒倒計時的單片機程序,晶振為11.0592,在用定時器0產生1S的時間時發現1s的時間產生不準,設定的時間為每50ms產生一次中斷,每20次秒減一,實際測試時,每20次秒減一大概為實際時間的7秒左右,每30次減一 ... |
| 匯編定時應該準確的啊定時器進入中斷之后并沒有重新啟動定時器,中斷返回之前要先啟動定時器 |
| 必然的,11.059本身就不是整數,等分多少也成不了整數,準不了;換成整數的晶振試試是個好辦法。其它的誤差先不管,至少能分出整數。 |
|
你用的是硬延時,標準的51是很容易計算準確的。但果是改良51就麻煩了,它采用流水取指結構,取值會提升1-12倍,你必須弄清楚執行的指令所占用的時鐘周期,但同樣一條指令可能執行周期會不一樣(要看這條指令能不能流水)。 估計你不能明白以上說明,查看一下相關流水取指架構,或CALL我。 |
|
定時器進入中斷之后并沒有重新啟動定時器,中斷返回之前要先啟動定時器 晶振最好是用12MHZ的,或者是用片上的24MHZ,11.0592MHZ的時間不好計算 |
| (65536-46080)/256 |