① 51單片機的3個定時器怎樣使用
51單片機只有T0,T1。52才有T2的。
定時器設置方法:
做定時用一般採用16位模式,也就是TMOD=0x11(10或01單獨一個定時器的話),初值的計算是這樣的:
1.
假設時間是X毫秒,晶振為YMhz,那麼:
THn=(65536-1000*X*Y/12)/256
TLn=(65536-1000*X*Y/12)%256
2.
之後就是TRn=1(開啟定時器)
ETn=1(開啟定時器中斷)
EA=1
② STC15F2K61F2系列單片機的定時器0或者定時器2怎麼配置
void Timer0Init(void) //100微秒@11.0592MHz
{
AUXR |= 0x80; //定時器時鍾1T模式
TMOD &= 0xF0; //設置定時器模式
TL0 = 0xAE; //設置定時初值
TH0 = 0xFB; //設置定時初值
TF0 = 0; //清除TF0標志
TR0 = 1; //定時器0開始計時
}
③ 單片機定時器的使用方法
第一步:設置特殊功能寄存器 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 的頻率進行閃爍
④ 51單片機定時器配置
這樣也可以。TH0=-9,其實,就是TH0=256-9=247=F7H,TL0的值有兩種可能:
1.在模式一,TL0為低8位,默認為0
2.在模式二,8位計數方式,TH0保存初值,TL0計數,每次計數溢出後,TH0的初值自動送給TL0,自動開始下一次計數。
⑤ 在單片機中,如何設置一個定時器
無論那種單片機的定時器設置的流程都是一樣的。首先是設置定時器的工作方式,有的是計數器的值加,有的是減,還有的定時器是PWM,或者是捕獲。然後就是計數的初始值。這個值要定多少時間由你來計算。一般是單片機的一個時鍾周期進行一次加一或者是減一。如果是加一就是從設定的值加到定時器滿,如果是減一就是一直減到零為止。到了這個時候就會跳到定時中斷去處理一些事情
⑥ STC單片機定時器怎麼用
雖然我對PLC編程並不了解,但據我所知PLC編程的常用的都是圖形編程語言,而單片機常用的編程語言為C語言或匯編語言,他們之間沒有什麼通用性,單片機的定時器T0,T1,PCA是單片機不可或缺的資源,下面就簡單的說說你關心的幾個問題,希望能夠幫到你。
但凡是用到需要精確定時的控制,都要對片內相關的定時器進行配置,可以是T0也可以是T1,有些單片機或許更多,他們可以單獨使用,也可以順序使用。
STC單片機的PCA定時器是配合其硬體PWM功能使用的可編程定時器,一般情況下當使用硬體PWM功能時需要配置PCA定時器,至於其他用途使用可以參看數據手冊。
關於「指定定時引腳」,51內核的單片機的定時器的全稱呼為「定時/計數器Tx」,字面上既可以知道,它既可以做定時器用也可以做計數器用,當用著計數器時,計數的觸發脈沖可以是片內通過編程給出,也可以由片外的相關引腳提供,只有對片外脈沖計數時才用到其外部引腳,這些引腳與其他I/O口引腳並無不同,都是由程序設定配置的,當計數器引腳被配置為計數用時,該引腳上送入片內的脈沖將被計數,當配置為普通引腳時,可以作為普通引腳應用。
最後,如果題主想入門單片機,建議你找一本入門書、購一塊最簡單的實驗板,通過C語言的學習、邊學習邊實驗,沒啥難度的,當你初步入門了,你現在提的所有問題也就全部都是浮雲了。
⑦ 單片機定時器設置步驟
搜狐網
晴 / -25°
新手入門!如何設置單片機定時器?
嵌入式資訊精選
2018-12-05
訂閱
在單片機的學習過程中,單片機定時器的合理設置和應用是非常關鍵的一步,也是剛開始接觸單片機知識的新人工程師們比較容易出錯誤的一個環節之一。在今天的文章中,我們為大家總結了單片機定時器應用過程中的兩大常見問題進行實時解析,希望能夠對各位新人工程師的學習提供一定幫助。
問題一:51單片機的T0、T1定時器四種工作方式各有什麼特點?
在單片機定時器的應用過程中,定時器在進行設置時會有四種不同的工作方式,合理選擇相應的工作方式可以幫助工程師快速完成及時設置。下面我們就來逐一講解一下這四種不同的計時方式。方式0是單片機計時器的第一種計時方式,這一方式13位計數模式。方式1則採用16位計數模式,方式2採用8位自動重裝入計數模式,這兩種技術模式也是目前在單片機應用過程中最常使用的及時方式。最後一種單片機定時器的計時方式是方式3,這一模式下只有T0有的雙8位計數模式。
⑧ 單片機定時器原理及使用
這里通俗的說下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。