找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3427|回復(fù): 6
收起左側(cè)

關(guān)于51單片機定時計數(shù)器程序問題

[復(fù)制鏈接]
ID:574921 發(fā)表于 2020-12-5 23:20 來自觸屏版 | 顯示全部樓層 |閱讀模式
1黑幣
各位大佬,小弟在學(xué)習(xí)51單片機的時候有一個問題一直困惑著我,希望大佬們解惑
就是51單片機在執(zhí)行主函數(shù)的時候定時器里面的程序是單獨進行的,調(diào)用到定時計數(shù)器函數(shù)的時候才開始進行的呢?
比如我一個計時程序,需要用到定時計數(shù)器執(zhí)行1s的定時,1秒到了,進行顯示,這是定時計數(shù)器程序還在運行嗎?

最佳答案

查看完整內(nèi)容

定時器和你的主程序是分開獨立運行的,當你打開了定時器開關(guān)后,主程序在運行的同時,定時器也在跑。至于你問的問題,1s后定時器是否還在運行,要看你的程序是怎么寫的吧,如果你的定時時間設(shè)置的是1s鐘,但是沒有把TH和TL重新賦值,我記得定時器好象會重新從0開始計數(shù),所以下一次定時的時間就不會是1s鐘了。
回復(fù)

使用道具 舉報

ID:576900 發(fā)表于 2020-12-5 23:20 | 顯示全部樓層
定時器和你的主程序是分開獨立運行的,當你打開了定時器開關(guān)后,主程序在運行的同時,定時器也在跑。至于你問的問題,1s后定時器是否還在運行,要看你的程序是怎么寫的吧,如果你的定時時間設(shè)置的是1s鐘,但是沒有把TH和TL重新賦值,我記得定時器好象會重新從0開始計數(shù),所以下一次定時的時間就不會是1s鐘了。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-12-6 09:00 | 顯示全部樓層
去補充一下計時定時知識,蛋騙雞定時器硬件是獨立的,這點該明白。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:517466 發(fā)表于 2020-12-6 10:15 | 顯示全部樓層
    “千江水”說得對。單片機的定時,一般是是賦予初值,并啟動定時器開始工作后,計數(shù)值自動加一。直到溢出,產(chǎn)生中斷。在中斷處理程序中,通常是重新賦予定時寄存器初始值,以保證下次計時周期正確, 然后處理你想要做的。對于計時周期比較長,而中斷處理程序執(zhí)行時間比較短的,不需要關(guān)中斷、開中斷這樣的處理。但是如果出現(xiàn)定時周期小于中斷處理代碼執(zhí)行時間的,如果不加入關(guān)、開中斷處理,會導(dǎo)致中斷的重復(fù)嵌套調(diào)用,導(dǎo)致堆棧溢出而死機。
    所以,你一定要確認定時周期和終端處理程序的執(zhí)行時間。盡量減少中斷處理程序的處理內(nèi)容,減少執(zhí)行時間,避免出現(xiàn)中斷處理沒完成,下一次中斷又來臨。雖然可以通過關(guān)、開中斷避免同一個中斷的嵌套,但整個程序的定時周期就不準了。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:638887 發(fā)表于 2020-12-6 19:10 | 顯示全部樓層
定時器是單獨于主程序運行,但是定時器程序要到定時時間到才會自動跳到中斷程序。多啃啃書吧,有很多基本例程,有助于理解。
回復(fù)

使用道具 舉報

ID:406879 發(fā)表于 2020-12-7 13:52 | 顯示全部樓層
與主線程無關(guān)
回復(fù)

使用道具 舉報

ID:574921 發(fā)表于 2020-12-8 18:40 | 顯示全部樓層
懂了,謝謝各位大佬
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表