微控制器學習(四)用定時器做精度為0 01的秒錶

2021-08-21 21:08:46 字數 1832 閱讀 1865

編輯

定時器中斷是由微控制器中的定時器溢位而申請的中斷。

51微控制器中有兩個定時器t0和t1:

tf0:定時器t0溢位中斷請求。當定時器to產生溢位時,to中斷請求標誌tf0置1,請求中斷處理。

tf1:定時器t1溢位中斷請求。當定時器tl產生溢位時,t1中斷請求標誌tf1置1,請求中斷處理。

stm32共有11個定時器:

1.兩個高階定時器:tim1、tim8-------------------------apb2

2.四個通用定時器:tim2~tim5-------------------------apb1

3.兩個基本定時器:tim6、tim7-------------------------apb1

4.兩個看門狗

5.乙個系統嘀嗒定時器(systick)

編輯定時/計數器t0和t1分別是由兩個8位的專用暫存器組成,即定時/計數器t0由th0和tl0組成,t1由th1和tl1組成。此外,其內部還有2個8位的特殊功能暫存器tmod和tcon,tmod負責控制和確定t0和t1的功能和工作模式,tcon用來控制t0和t1啟動或停止計數,同時包含定時/計數器的狀態。 [1]

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

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

編輯定時器工作的流程可以按照這個順序(以51為例用定時器0方式一產生10毫秒的定時)

1、確定使用哪個定時器,使用哪種方式,這一步通過tmod設定,tmod的低四位是設定定時器0的,高四位是用來設定定時器1的,其中的m0,m1是用來設定定時器工作在哪種方式,gate一般用不要設定,c/t是選擇計數模式還是定時模式的,如:tmod = 0x01,就說明定時器0工作在方式1。

2、接下來就要設定定時的時間,用定時器定時50毫秒,可以用這種方式th0 = (65535 - 10000) / 256,tl0 = (65535 - 10000) % 256;可以這樣理解:因為這是定時器的初值,也就是說計數脈衝就是在這個數的基礎上向上遞增,到達65535後就溢位產生中斷。

3、第三步開啟中斷,使用ie暫存器,首先開啟總中斷ea = 1,這一步是所有中斷所必須的,然後開啟定時器0中斷,et0 =1。

4、這時準備工作結束,啟動定時器,使用tcon暫存器,tr0 = 1,實現了乙個10毫秒的定時。

**如下:

#include

#define dataport p1     //  巨集定義,如果換介面,需要修改這裡

sbit seg_latch = p2^2;   //段鎖存

sbit bit_latch = p2^3;   //位鎖存

unsigned char code seg_code = ;  //段碼

unsigned char code bit_code = ;  //位碼

void display(unsigned char m,unsigned char num,unsigned int n);

static unsigned int n = 0;

static unsigned int x = 0;

static unsigned int y = 0;

int main(void)

}void t0_isr(void) interrupt 1

else

else}}

ea = 1;

}void display(unsigned char m,unsigned char num,unsigned int i)   //m表示從第幾個數碼管開始,num表示到第num個數碼管,i表示需要顯示的數字

else

}}    

微控制器定時器學習彙總

1時鐘週期 1 晶振頻率m 1機器週期 12 51系列12t,若1t則為1 x時鐘週期 12 1 x 1 晶振頻率m 1 us 1 12 us 1us機器週期脈衝數 晶振頻率f 12 假設12mhz晶振工作在51微控制器12t模式下,需要使用定時器進行50ms定時操作,定時器工作在方式1 12m的晶...

51微控制器用定時器0實現流水燈

51微控制器用定時器0實現流水燈的 如下,用p1口接led燈,如下都有注釋就不具體解釋了,英語不怎麼好,有的地方將就一下嘍,本次主要講一下p1口怎麼賦值。原先寫的都是用查表來移位的,個人感覺不怎麼好,麻煩。直接用位運算的比較好。n初始值為0,然後n每次迴圈都加1,p1口賦值語句為 p1 0x01 n...

51微控制器 定時器

定時 計數器的結構和工作原理 定時 計數器的實質是加1計數器 16位 由高8位和低8位兩個暫存器組成。80c51 微控制器定時 計數器的工作是由兩個特殊功能暫存器控制的。tmod是定時 計數器的工 作方式暫存器,確定工作方式和功能,低四位用於t0,高四位用於t1。t con是控制寄 存器,控制t0和...