定時器怎么調時間 定時器使用方法?
定時器使用方法?第一步:設置特殊功能寄存器TMOD,配置工作模式。步驟2:設置計數寄存器TH0和TL0的初始值。步驟3:設置TCON,并通過將TR0設置為1讓計時器開始計數。步驟4:判斷TCON寄存器
定時器使用方法?
第一步:設置特殊功能寄存器TMOD,配置工作模式。
步驟2:設置計數寄存器TH0和TL0的初始值。
步驟3:設置TCON,并通過將TR0設置為1讓計時器開始計數。
步驟4:判斷TCON寄存器的TF0位,監控定時器溢出。
在寫程序之前,我們應該學習如何用計時器計算時間。我們的晶振是11.0592M,時鐘周期是1/11059200,機器周期是12/11059200。如果要計時20毫秒,則為0.02秒..得到0.02秒需要x個機器周期。讓 s計算x*12/110592000.02,得到x 18432。16位定時器的溢出值是65536(因為65535加1就是溢出),所以我們可以這樣,先給TH0和TL0一個初始值,讓它們在18432個機器周期后剛好達到65536,也就是溢出。溢出后通過檢測TF0就可以知道,正好是0.02秒。所以初始值y 65536-18432 47104,轉換成十六進制,就是0xB800,也就是TH0 0xB8,TL0 0x00。
這樣,我們做出了0.02秒的計時。細心的同學會發現,如果直接給初始值一個0x0000的值,直到65536溢出,最大定時器計時值大概是71ms,那么如果想計時更長的時間,應該怎么做呢?從你的小學開始學。過多的邏輯和多重關系可以解決這個問題。
好吧,讓我們 讓我們用程序來實現這個功能。
# Including
Sbit leads P0^0.
P1^0 address
Sbit address 1
Sbit address 2 P1^2
Sbit address 3 P1^3
sbit ENLED P1^4
void main(){
Unsigned char cnt 0 //定義一個計數變量來記錄t 0溢出的次數。
ENLED 0 //使能U3,選擇獨立LED。
ADDR3 1
ADDR2 1
Address 1 1
ADDR0 0
TMOD 0x01 //將T0設置為模式1。
TH0 0xB8 //將初始值0xB800分配給T0。
TL0 0x00
TR0 1 //開始T0
while (1){
If (TF0 1){ //判斷T0是否溢出。
TF0 0 //T0溢出后,清除中斷標志。
TH0 0xB8 //,并重新分配初始值。
TL0 0x00
計數//計數值增加1。
if(CNT)50 {//判斷T0是否溢出50次。
cnt 0 //達到50次后,計數值清零。
LED ~LED //LED取反:0 - 》1、1 - 》0
}
}
}
}
筆記寫在程序里。分析前面幾章的內容就不難理解了。這個程序的結果是開發板最右邊的燈亮一秒,滅一秒,也就是以0.5Hz的頻率閃爍。
小型計時器怎么調時間?
●打開時鐘APP,點擊右下角【計時器】,進入計時器界面;
●上下滑動時間選項選擇計時時間。
設置好定時器后,點擊右下角的【鈴聲】。
選擇提醒鈴,然后返回定時器界面。
點擊底部的[開始]按鈕進入定時器。
點擊左下角的【刷新】按鈕,重置計時。