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