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

單片機的定時器

發布時間:2022-06-03 17:37:40

1. 51單片機定時器原理

很簡單,就是系統時鍾同步觸發定時器計數(向上或向下),定時器與比較寄存器內的預設值比較,當達到預設值或者向下計數歸零後再次載入預設值到比較寄存器裡面,定時器啟動和停止都受到TON標志位計算,對其操作即可。

2. 51單片機定時器使用

51單片機定時器GATE=1時用外部INT0啟動定時器當INT0=0時
定時器T1會停止計數時候讀取T1值計算出高電平寬度

3. 單片機定時器的基本功能

實現的基本功能,我認為這樣可以搞的這些定時器的是要做這個證,還分什麼才能更好的使用,上次剩下三塊不能。

4. 單片機定時器的使用方法

第一步:設置特殊功能寄存器 TMOD,配置好工作模式。

第二步:設置計數寄存器 TH0 和 TL0 的初值。

第三步:設置 TCON,通過 TR0 置 1 來讓定時器開始計數。

第四步:判斷 TCON 寄存器的 TF0 位,監測定時器溢出情況。

寫程序之前,我們要先來學會計算如何用定時器定時時間。我們的晶振是 11.0592M,時鍾周期就是 1/11059200,機器周期是 12/11059200,假如要定時 20ms,就是 0.02 秒,要經過x 個機器周期得到 0.02 秒,我們來算一下 x*12/11059200=0.02,得到 x= 18432。16 位定時器的溢出值是 65536(因 65535 再加 1 才是溢出),於是我們就可以這樣操作,先給 TH0 和 TL0一個初始值,讓它們經過 18432 個機器周期後剛好達到 65536,也就是溢出,溢出後可以通過檢測 TF0 的值得知,就剛好是 0.02 秒。那麼初值 y = 65536 - 18432 = 47104,轉成 16 進制就是 0xB800,也就是 TH0 = 0xB8,TL0 = 0x00。

這樣 0.02 秒的定時我們就做出來了,細心的同學會發現,如果初值直接給一個 0x0000,一直到 65536 溢出,定時器定時值最大也就是 71ms 左右,那麼我們想定時更長時間怎麼辦呢?用你小學學過的邏輯,倍數關系就可以解決此問題。

好了,我們下面就用程序來實現這個功能。

#include

sbit LED = P0^0;

sbit ADDR0 = P1^0;

sbit ADDR1 = P1^1;

sbit ADDR2 = P1^2;

sbit ADDR3 = P1^3;

sbit ENLED = P1^4;

void main(){

unsigned char cnt = 0; //定義一個計數變數,記錄 T0 溢出次數

ENLED = 0; //使能 U3,選擇獨立 LED

ADDR3 = 1;

ADDR2 = 1;

ADDR1 = 1;

ADDR0 = 0;

TMOD = 0x01; //設置 T0 為模式 1

TH0 = 0xB8; //為 T0 賦初值 0xB800

TL0 = 0x00;

TR0 = 1; //啟動 T0

while (1){

if (TF0 == 1){ //判斷 T0 是否溢出

TF0 = 0; //T0 溢出後,清零中斷標志

TH0 = 0xB8; //並重新賦初值

TL0 = 0x00;

cnt++; //計數值自加 1

if (cnt 》= 50){ //判斷 T0 溢出是否達到 50 次

cnt = 0; //達到 50 次後計數值清零

LED = ~LED; //LED 取反:0--》1、1--》0

}

}

}

}

程序中都寫了注釋,結合前幾章學的內容,自己分析一下,不難理解。本程序實現的結果是開發板上最右邊的小燈點亮一秒,熄滅一秒,也就是以 0.5Hz 的頻率進行閃爍

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

這里通俗的說下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。

6. 單片機定時器設置步驟

搜狐網
晴 / -25°
新手入門!如何設置單片機定時器?

嵌入式資訊精選
2018-12-05
訂閱
在單片機的學習過程中,單片機定時器的合理設置和應用是非常關鍵的一步,也是剛開始接觸單片機知識的新人工程師們比較容易出錯誤的一個環節之一。在今天的文章中,我們為大家總結了單片機定時器應用過程中的兩大常見問題進行實時解析,希望能夠對各位新人工程師的學習提供一定幫助。
問題一:51單片機的T0、T1定時器四種工作方式各有什麼特點?
在單片機定時器的應用過程中,定時器在進行設置時會有四種不同的工作方式,合理選擇相應的工作方式可以幫助工程師快速完成及時設置。下面我們就來逐一講解一下這四種不同的計時方式。方式0是單片機計時器的第一種計時方式,這一方式13位計數模式。方式1則採用16位計數模式,方式2採用8位自動重裝入計數模式,這兩種技術模式也是目前在單片機應用過程中最常使用的及時方式。最後一種單片機定時器的計時方式是方式3,這一模式下只有T0有的雙8位計數模式。

7. 在單片機中定時器是用來干什麼的

它的主要功能是在發生軟體故障時,通過使器件復位(如果軟體未將器件清零)將單片機復位。也可以用於將器件從休眠或空閑模式喚醒,看門狗定時器對微控制器提供了獨立的保護系統。

當系統出現故障時,在可選的超時周期之後,看門狗將以RESET信號作出響應,像x25045就可選超時周期為1.4秒、600毫秒、200毫秒三種。當程序死機時,x25045就會使單片機復位。



(7)單片機的定時器擴展閱讀

定時/計數器T0和T1分別是由兩個8位的專用寄存器組成,即定時/計數器T0由TH0和TL0組成,T1由TH1和TL1組成。

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

TF1:定時器1溢出標志。定時/計數器溢出時由硬體置位。中斷處理時由硬體清除。或用軟體清除。

TF0:定時器0溢出標志。定時/計數器溢出時由硬體置位。中斷處理時由硬體清除,或用軟體清除。

8. 單片機定時器的作用是什麼啊

單片機定時器的作用:
1,可以用做精確延時處理,比較延時1ms時間。
2,可以當做計數器,比如將這個功能IO口接到一個時鍾源,你可以統計有多少個脈沖信號。

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

原理: 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啟動或停止計數,同時包含定時/計數器的狀態。

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

閱讀全文

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

熱點內容
林清玄pdf 瀏覽:268
黑馬程序員java基礎 瀏覽:281
awss3命令 瀏覽:358
百度店鋪客戶訂單手機加密 瀏覽:500
釘釘班群文件夾怎麼上傳文件 瀏覽:749
人社app怎麼解綁手機 瀏覽:101
caj文件夾打不開 瀏覽:475
什麼app可以將電量變色 瀏覽:692
解放出你的解壓抖音小游戲 瀏覽:346
什麼方式解壓比較好 瀏覽:267
erp是什麼伺服器 瀏覽:186
python中tmp 瀏覽:25
說明wpf加密過程 瀏覽:145
java讀取list 瀏覽:704
iis7gzip壓縮 瀏覽:40
有什麼安卓機打吃雞好 瀏覽:598
三星u盤加密狗 瀏覽:476
php函數的返回值嗎 瀏覽:589
國企穩定程序員 瀏覽:328
編程貓如何使用教程視頻 瀏覽:222