當前位置:首頁 » 半夜時分 » 單片機為什麼會出現時間延遲

單片機為什麼會出現時間延遲

發布時間: 2022-12-12 06:20:38

Ⅰ 51單片機lcd1602液晶顯示,每送數據後都有要延時,我想問若我去掉延時,什麼現象,為什麼會這樣

到底會有什麼現象,自己試一下就知道了!學習其實最好的方式就是自己實踐!實物或軟體模擬都可以!至於為什麼會延時、這是因為1602晶元時序圖要求的、必須要大於某一時間間隔!多看看、晶元的DATASHEET!!

如下圖

這就是起讀寫時序圖:可以看見圖中明確標識有時間的!不能小於這個時間!一般這個時間較小、當單片機頻率不是太高的時候、可以不延時就滿足要求的!只有一些大的時間才延時!

Ⅱ 單片機時鍾程序中為什麼要延時

延時函數是所有單片機程序中不可缺少的,單片機的速度相對很多器件來說已經很高了,必須加延時才能匹配,如液晶屏1602,送一個字元或命令後,必須有ms級延時,才能送下一個字元
數碼管掃描顯示,每點亮一個數碼管也要延時保持一會兒,還有一些短的延時,如模擬SPIJ時鍾,只用2 個空操作語句就解決了

Ⅲ 單片機delay單位時間的含義是什麼

單片機中的delay()的單位時間不是系統提供的,而是用戶自己編制的。

如果用循環語句實現的循環,沒法計算,但是可以通過軟體模擬看到具體時間,但是一般精精確延時是沒法用循環語句實現的。

如果想精確延時,一般需要用到定時器,延時時間與晶振有關系,單片機系統一般常選用11.059 2 MHz、12 MHz或6 MHz晶振。第一種更容易產生各種標準的波特率,後兩種的一個機器周期分別為1 μs和2 μs,便於精確延時。本程序中假設使用頻率為12 MHz的晶振。

最長的延時時間可達216=65 536 μs。若定時器工作在方式2,則可實現極短時間的精確延時;如使用其他定時方式,則要考慮重裝定時初值的時間(重裝定時器初值佔用2個機器周期)。

(3)單片機為什麼會出現時間延遲擴展閱讀

單片機C語言程序中延時函數delay的原理是:僅僅執行一些,沒有實質性影響的所謂「無意義指令」,比如做比大小啊,做某個int的自加運算啊之類的。

單片機的有些程序需要調用延時程序,合理的安排循環次數以及空操作的個數方法:用匯編的話就根據你的當前晶振頻率去推算你的指令周期,然後結合需要延遲的時間。

編寫延遲程序,用C的話還是要看最後生成的匯編碼是什麼樣的了。最簡單的方法就是寫好程序以後再編譯器里軟模擬看時間。

單片機C語言延時需注意的問題:

標準的C語言中沒有空語句。但在單片機的C語言編程中,經常需要用幾個空指令產生短延時的效果。這在匯編語言中很容易實現,寫幾個nop就行了。

在keil C51中,直接調用庫函數:

#include // 聲明了void _nop_(void);

_nop_(); // 產生一條NOP指令

作用:對於延時很短的,要求在us級的,採用「_nop_」函數,這個函數相當匯編NOP指令,延時幾微秒。NOP指令為單周期指令,可由晶振頻率算出延時時間,對於12M晶振,延時1uS。對於延時比較長的,要求在大於10us,採用C51中的循環語句來實現。

Ⅳ 單片機數字時鍾比實際時間的慢啊怎麼辦

單片機是利用定時器實現計時的,根據定時器的定時計算出的時間常數,是理想狀態下的數值。
如晶振頻率是12M,用定時器T0,按定時20ms 計算的時間常數
TH0=(65536-20000)/256=0XB1
TL0=(65536-20000)%256=0XE0
如果按這個數寫程序,電子鍾計時的時間肯定就比實際的時間慢。當然了,這需要時間長了,才能體現出來,如果只是計時幾個小時是比較不出來的。必須是長時間的計時,比如計時一周以上就體現出來計時的誤差了。
這是因為,單片機計時的誤差還是比較小的,假如一天慢1秒,那計時一周了,就慢7秒,才會發現的。
為什麼會慢呢,是因為定時到,要中斷,單片機從響應中斷,到在中斷程序中重寫時間常數,才能重新計時的,這是需要時間,只是這時間只有幾個微秒。就產生了計時誤差了。可是這向微秒的誤差,累計一周後就累計成幾秒了。
要計時比較准確的還是有辦法的,就是給時間常數的TL0加幾個數,來補償誤差。
通常加8就行,不過,還需要長時間的計時來校正。
在中斷程序中的時間常數改為
TH0=0XB1;
TL0=0XE8; //這低8位加8,補償誤差
這樣補償後,還有誤差,再改這低8位,慢了就加,快了就減

Ⅳ 單片機延時一次的實際時間與什麼有關

答:單片機延時一次的實際時間與什麼有關?
1 、與單片機的晶振有關
2、 與單片機執行的指令長度有關(單周期還是雙周期)
3、與執行的程序有關

Ⅵ 為什麼在單片機中要用到延時程序

這個原因還是蠻多的,分同的情況,單片機的處理速度是很快的,有的時候為了讓我們便於觀察需要加入延時,例如一個指示燈的亮滅,如果不加入延時是看不出來的,再有就是鍵盤去抖動,一般按鍵都有20ms左右的抖動,為了更好的檢測防止干擾,也需要延時一段時間在進行判斷,總之延時的作用在不同的情況下也不同

Ⅶ 單片機LED延時原理問題

這個是延時程序,你通過keil編譯調試中,會看到其匯編代碼;

當帶入的參數=1時,你單步執行匯編代碼,直至 ret,然後你看看都執行了哪些指令,並把所消耗的指令周期累加起來,大致就10個機器周期,而當單片機晶振為12MHz時,則一個機器周期約為 1uS,那麼就是從進入這個延時程序到返回,所經歷的時間正好是10uS;

熱點內容
為什麼男生這么容易得腹肌 發布:2025-01-23 17:21:26 瀏覽:78
為什麼蘋果手機拍照那麼嚇人 發布:2025-01-23 17:14:35 瀏覽:70
手機為什麼卡慢 發布:2025-01-23 17:13:03 瀏覽:350
為什麼文件打開數字只有一位數 發布:2025-01-23 17:13:01 瀏覽:289
眼睛為什麼睡起來突然很模糊 發布:2025-01-23 17:11:41 瀏覽:27
淘寶ipad為什麼便宜 發布:2025-01-23 17:04:25 瀏覽:991
為什麼疤痕的顏色是黃色的 發布:2025-01-23 17:01:41 瀏覽:729
為什麼早孕尿顏色比較淡 發布:2025-01-23 16:54:37 瀏覽:930
為什麼男生親女生喜歡睜著眼 發布:2025-01-23 16:45:11 瀏覽:169
淘寶新品上架過幾天就下架為什麼 發布:2025-01-23 16:44:24 瀏覽:685