導航:首頁 > 操作系統 > 單片機軟體定時器

單片機軟體定時器

發布時間:2023-02-08 01:13:21

A. 51單片機軟體延時和定時器的區別

區別就是用單片機軟體定時,CPU循環執行一小段延時程序,浪費CPU的精力,用定時器定時,CPU就可以干別的。

如果是程序延時的話,時間消耗在(延時程序+剩下的代碼);計時器中斷則相當於把延時程序交給定時器,此時CPU可以干別的事情,提高了效率。就類似於電腦打游戲時把圖形處理任務交給顯卡,CPU的壓力就小。

單片機進中斷後執行中斷里的程序,比如你進定時中斷,執行完後退出中斷後做其他事,但定時還在計數,這樣計數和做其他事情兩不誤。

你的程序中本來就沒做其他事情,你的LED移動就是等待中斷計數到10才操作的,LED動作的先決條件就是中斷計數結束。

(1)單片機軟體定時器擴展閱讀

1、軟體循環延時:採用循環語句,如for,while等,進行長時間的空操作,或者空語句。


優點:程序理解簡易,入手快,新手必備武器。


缺點:時間精度不高,且佔用單片機大量時間資源,引發其它子函數的不流暢(卡滯、遲鈍),導致系統實時反應能力下降。


2、定時延時:採用定時器定時,如T0,T1;


優點:時間精度高,提高系統程序執行的高效性,不影響子函數的正常運行。

缺點:需佔用1個定時器資源(可以復用),需良好程序構架支持,入手難。


個人建議:一旦學會定時器,就不應該再使用「循環延時」函數,採用定時器才是正道。如果對延時精度要求不高,建議使用結構體組成多個延時體。

B. 單片機軟體定時與硬體定時的原理有何異同

軟體定時:是利用指令執行的時間從而來達到定時的目的,一般是利用循環執行一段指令,來定時一段比較長的時間。優點:不需佔用硬體資源,編程簡單。缺點:佔用CPU的時間,CPU利用率低。長時間的軟體定時會讓系統的實時性非常的差。適用場合:微妙級的短時間延時,系統實時性要求不高和硬體資源緊張的場合。硬體定時:利用定時器來計算時間。優點:定時准確,不霸佔CPU,系統響應速度快。缺點:佔用硬體資源。

C. 單片機定時器 計數器的工作原理,及如何實現定時 計數功能

原理: 16位的定時器/計數器實質上就是一個加1計數器,其控制電路受軟體控制、切換。 當定時器/計數器為定時工作方式時,計數器的加1信號由振盪器的12分頻信號產生,即每過一個機器周期,計數器加1,直至計滿溢出為止。

顯然,定時器的定時時間與系統的振盪頻率有關。因一個機器周期等於12個振盪周期,所以計數頻率fcount=1/12osc。

兩個位元組最大數據為65536(十進制),或者0FFFFH(十六進制)

高位元組為TH0=(65536-X)/256,就是除以256後的整數部分;

低位元組為TL0=(65536-X)%256,減去高位元組後餘下的部分;

定時/計數器

定時/計數器T0和T1分別是由兩個8位的專用寄存器組成,即定時/計數器T0由TH0和TL0組成,T1由TH1和TL1組成。此外,其內部還有2個8位的特殊功能寄存器TMOD和TCON,TMOD負責控制和確定T0和T1的功能和工作模式,TCON用來控制T0和T1啟動或停止計數,同時包含定時/計數器的狀態。

以上內容參考:網路-定時器中斷

D. 單片機定時器/計數器主要有什麼作用

作用一:計數概念的引入

作用二:定時

作用三:溢出

單片機提供內部定時和外部計數的功能,功能差不多都是定時和計數達到終點時,產生中斷,而CPU則暫時放下目前所執行的程序區處理中斷。

定時器:主要用於產生固定時間(比較精確),也可以作為UART等外設的頻率發生器。

計數器:主要是計量引腳產生脈沖的個數。

E. 單片機定時器原理及使用

這里通俗的說下C51單片機的定時器的工作原理,C51單片機的定時器是由計數器構成的,所計量的時間是通過計算固定周期的脈沖個數的累計獲得的,通過設置定時器的工作模式,可以由16位(高、低兩個8位)寄存器模式或其他位數的寄存器模式來計數,以16位計數模式來討論,那就是無論那種工作模式只有當計數用的寄存器的各個位全部置1,也就是滿值後下一個計數脈沖進入時使寄存器產生溢出,而這個溢出才會使計數產生中斷從而完成一次定時控制,因此,如果我們想產生某個時長的定時,那麼我需要將這個時長根據單片機運行的時鍾頻率、周期等等相關因素換算成需要計數的個數,進而在這個滿值的16位寄存器中扣除需要計數的個數,啟動運行後當計數值補充滿了寄存器就完成了一次計時,而一個16位寄存器滿值為2的16次方=65536,假如一個計數脈沖的周期為1us,那麼滿值後就會耗時65536us,假如我們需要計時36us,那麼我們只需要為寄存器賦值65500就可以了,這里需要注意的是,因為C51單片機的寄存器是8位的,我們需要將這個65500拆分出高8位數據裝入THx中計算方法為THx=65500/256,再計算出低8位數據裝入TLx中,THx=65500%256。

F. 單片機 定時器編程

應該比較簡單吧。比如用at89s52,晶振頻率12m
其程序如下:
#include<stdio.h>
#include<reg51.h>

void timer0_init()
{
TMOD=0x01;//方式1
TL0=0xb0;
TH0=0x3c;
TR0=1;
ET0=1;

}

void timer0_ISR(void) interrupt 1
{
TL0=0xb0;
TH0=0x3c;//50ms中斷一次
single++;
if(single==20)
{ kk++;
single=0;
}
}
void main()
{
int kk=0;//計數器
int single=0;
timer0_init();

}

顯示器用個八位口連接七段led就行了。

閱讀全文

與單片機軟體定時器相關的資料

熱點內容
什麼樣的主機適合當伺服器 瀏覽:856
衣服哪裡進貨app 瀏覽:516
解壓神器魔術 瀏覽:770
寬頻連接2如何連接伺服器地址 瀏覽:365
隨機信號估計演算法 瀏覽:860
安卓如何重壓開槍 瀏覽:377
航天時代飛鵬圖像處理演算法 瀏覽:521
php比較兩個文件 瀏覽:737
加密貨幣市場活躍 瀏覽:334
最便宜的雲盤伺服器架設傳奇 瀏覽:790
java反向工程 瀏覽:110
pdf文檔轉換excel 瀏覽:8
主角叫楚天的都市小說 瀏覽:754
程序員三重境界 瀏覽:871
菜雞方舟上怎麼開伺服器 瀏覽:727
馬林固件編譯錯誤 瀏覽:910
市場營銷案例pdf 瀏覽:770
魔爪閱讀網 瀏覽:19
app地推業績統計在哪裡 瀏覽:993
維語電影網站大全 瀏覽:958