首页
/
每日頭條
/
生活
/
51單片機定時器有幾種工作模式
51單片機定時器有幾種工作模式
更新时间:2025-11-16 03:43:37

51單片機定時器有幾種工作模式(教你51單片機的定時器中斷以及使用方法)1

51單片機共有兩個16位可編程的定時器/計數器,即定時器T0和定時器T1。它們既有定時功能又有計數功能,通過設置一些相關的特殊功能寄存器就可以選擇啟用哪一個功能。定時器系統是單片機内部一個獨立硬件部分,與CPU和晶振之間通過内部某些控制線連接并相互作用,CPU一旦啟動定時功能,定時器便會在晶振的作用下自動計時,當定時器計數器積滿之後就會産生中斷,通知CPU接下來做什麼。

定時器或計數器實質是加一計數器(16位)(其輸入脈沖有兩個來源,一是由系統時鐘振蕩器輸出脈沖經過十二分頻後送來;另外是T0或T1引腳輸入的外部脈沖源,每來一個脈沖計數器加1,當加到計數器全為1時,在輸入一個脈沖就可使計數器回零,計數器的溢出是的TCON寄存器中TF0或TF1置1,向CPU發出中斷請求,如果定時或計數器工作于定時模式,則表示定時時間到了,如果是計數則表示計數值已滿)由高八位和低八位兩個寄存器組成。

51單片機定時器有幾種工作模式(教你51單片機的定時器中斷以及使用方法)2

TMOD:定時器/計數器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER) ,确定工作方式和功能

TCON:控制寄存器,控制T0,T1的啟動和停止及設置溢出标志。

定時器/計數器模式控制寄存器TMOD是一個逐位定義的8位寄存器,但隻能使用字節尋址,其字節地址為89H。其格式為:其中低四位定義定時器/計數器C/T0,高四位定義定時器/計數器C/T1,各位的說明:

GATE——門控制。

GATE=1時,由外部中斷引腳INT0、INT1來啟動定時器T0、T1。 當INT0引腳為高電平時TR0置位,啟動定時器T0; 當INT1引腳為高電平時TR1置位,啟動定時器T1。 GATE=0時,僅由TR0,TR1置位分别啟動定時器T0、T1。

C/T——功能選擇位

C/T=0時為定時功能,C/T=1時為計數功能。 置位時選擇計數功能,清零時選擇定時功能。

M0、M1——方式選擇功能

由于有2位,因此有4種工作方式:

M1M0 工作方式計數器模式 TMOD(設置定時器模式)

0 0 方式0 13位計數器 TMOD=0x00

0 1 方式1 16位計數器 TMOD=0x01

1 0 方式2 自動重裝8位計數器 TMOD=0x02

1 1 方式3 T0分為2個8位獨立計數器,T1為無中斷重裝8位計數器 TMOD=0x03 單片機定時器0設置為工作方式1為TMOD=0x01

TCON: 定時器/計數器控制寄存器(TIMER/COUNTER CONTROL REGISTER)

TMOD分成2段,TCON控制更加精細,分成四段,在本文中隻要用到高四段。 TF0(TF1)——計數溢出标志位,當計數器計數溢出時,該位置1。

TR0(TR1)——定時器運行控制位 當TR0(TR1)=0 停止定時器/計數器工作 當TR0(TR1)=1 啟動定時器/計數器工作

IE0(IE1)——外中斷請求标志位

IT0(IT1)——外中斷請求信号方式控制位 當IT0(IT1)=1 脈沖方式(後沿負跳有效)

當IT0(IT1)=0 電平方式(低電平有效)此位由軟件置1或清0。

TF0(TF1)——計數溢出标志位

當計數器産生計數溢出時,此位由硬件置1。當轉向中斷服務時,再有硬件自動清0。計數溢出的标志位的使用有兩種情況:采用中斷方式時,作中斷請求标志位來使用;采用查詢方式時,作查詢狀态位來使用。注意記憶方法,理解單詞原形,就絕對不會把TF和TR搞混。TF的F也就是溢出Over Flow的F。TR的R就是運行Run。默認是0不運行,當然要置1才運行

在寫單片機定時器程序時候,在程序開始出需要對定時器及中斷寄存器做初始化設置,通常初始化過程如下:

對TMOD賦值,以确定T0和T1的工作方式;

計算初值,并将初值寫入TH0,TL0或者TH1,TL1;

中斷方式時,則對IE賦值,開放中斷

使TR0或TR1置位,啟動定時器/計數器定時或者計數。

51單片機定時器有幾種工作模式(教你51單片機的定時器中斷以及使用方法)3

//實現led燈一秒亮滅閃爍

void main()

{

TMOD=0x01;//設置定時器0為工作方式1(M1 M0為01)

TH0=(65536-45872)/256;//裝初值11.0582晶振定時50ms數為45872

TL0=(65536-45872)%6;

EA=1;//開總中斷

ET0=1;//開定時器0中斷

TR0=1;//啟動定時器0

while(1);//程序停止在這裡等待中斷發生

}

void T0_time() interrupt 1

{

TMOD=0x01;//重裝初值

TH0=(65536-45872)/256;

num ;//num每加一次判斷一次是否到20次

if(num==20)//如果到了20次,說明1秒時間到

{

num=0;//num清0重新計數

led=~led1;

}

}

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
小學生翻譯文言文方法
小學生翻譯文言文方法
文言文的翻譯,最是“差之毫厘,謬以千裡”。如果用字面上的意思去理解古代文言文,很有可能會鬧出笑話哦!下面就來感受一下,老師們閱卷時的哭笑不得吧!作為語文老師,我可以告訴大家,每次考試後改文言文翻譯,奇葩翻譯要多少有多少。“哭竟夜,閱數日,竟...
2025-11-16
有詩意的網名男生
有詩意的網名男生
有詩意的網名男生?婉安酒笙,下面我們就來說一說關于有詩意的網名男生?我們一起去了解并探讨一下這個問題吧!有詩意的網名男生婉安酒笙秇淰清酒清歡晴栀北辰花祭涼薄℃鸢語沫栀°花姬以陌上卿獨酌鶴歸妙臾臨淵箫墨涼笙舊顔塵墨青衫執扇餘笙孤酒安夏涼墨初妍...
2025-11-16
夫妻長期兩地分居會造成哪些傷害
夫妻長期兩地分居會造成哪些傷害
有很多人名譽上是夫妻,但是他們卻長期過着分居的生活,對于這樣的生活到底好不好呢?夫妻本應共同生活,但是長期兩地分居,這種情況往往都是婚姻中亮紅燈的開始。異地戀也是最難維持感情的一種,雖然已經結婚,不過也隻是“一紙婚約”而已。目前異地夫妻都正...
2025-11-16
如果膽囊不痛膽囊結石需要摘除嗎
如果膽囊不痛膽囊結石需要摘除嗎
一聽到膽囊結石,很多人會很緊張,畢竟膽囊裡面長了東西,還是堅硬的石頭。長了結石的膽囊,到底是該切除,還是該保留?有人認為膽囊一起切了防止複發以絕後患;有人又說膽囊畢竟是個器官,還是有用的,取完石頭還要留着!那麼,到底該聽誰的呢?下面就讓我們...
2025-11-16
圓正方形長方形梯形面積公式
圓正方形長方形梯形面積公式
,
2025-11-16
Copyright 2023-2025 - www.tftnews.com All Rights Reserved