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