當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]標(biāo)準(zhǔn)的 51 單片機(jī)內(nèi)部有 T0 和 T1 這兩個(gè)定時(shí)器,T 就是 Timer 的縮寫,現(xiàn)在很多 51 系列單片機(jī)還會(huì)增加額外的定時(shí)器,在這里我們先講定時(shí)器 0 和 1。前邊提到過(guò),對(duì)于單片機(jī)的每一個(gè)功能模塊,都是由它的 SFR,也就是特殊功能寄存器來(lái)控制。與定時(shí)器有關(guān)的特殊功能寄存器,有以下幾個(gè),大家不需要去記憶這些寄存器的名字和作用,你只要大概知道就行,用的時(shí)候,隨時(shí)可以查手冊(cè),找到每個(gè)寄存器的名字和每個(gè)寄存器所起到的作用。

標(biāo)準(zhǔn)的 51 單片機(jī)內(nèi)部有 T0 和 T1 這兩個(gè)定時(shí)器,T 就是 Timer 的縮寫,現(xiàn)在很多 51 系列單片機(jī)還會(huì)增加額外的定時(shí)器,在這里我們先講定時(shí)器 0 和 1。前邊提到過(guò),對(duì)于單片機(jī)的每一個(gè)功能模塊,都是由它的 SFR,也就是特殊功能寄存器來(lái)控制。與定時(shí)器有關(guān)的特殊功能寄存器,有以下幾個(gè),大家不需要去記憶這些寄存器的名字和作用,你只要大概知道就行,用的時(shí)候,隨時(shí)可以查手冊(cè),找到每個(gè)寄存器的名字和每個(gè)寄存器所起到的作用。

表 5-1 的寄存器是存儲(chǔ)定時(shí)器的計(jì)數(shù)值的。TH0/TL0 用于 T0,TH1/TL1 用于 T1。

表 5-1 定時(shí)值存儲(chǔ)寄存器名稱描述SFR 地址復(fù)位值

TH0定時(shí)器 0 高字節(jié)0x8C0x00

TL0定時(shí)器 0 低字節(jié)0x8A0x00

TH1定時(shí)器 1 高字節(jié)0x8D0x00

TL1定時(shí)器 1 低字節(jié)0x8B0x00

表 5-2 是定時(shí)器控制寄存器 TCON 的位分配,表 5-3 是則是對(duì)每一位的具體含義的描述。

表 5-2 TCON——定時(shí)器控制寄存器的位分配(地址 0x88、可位尋址)位76543210

符號(hào)TF1TR1TF0TR0IE1IT1IE0IT0

復(fù)位值00000000

表 5-3 TCON——定時(shí)器控制寄存器的位描述位符號(hào)描述

7TF1定時(shí)器 1 溢出標(biāo)志。一旦定時(shí)器 1 發(fā)生溢出時(shí)硬件置 1。清零有兩種方式:

軟件清零,或者進(jìn)入定時(shí)器中斷時(shí)硬件清零。

6TR1定時(shí)器 1 運(yùn)行控制位。軟件置位/清零來(lái)進(jìn)行啟動(dòng)/停止定時(shí)器。

5TF0定時(shí)器 0 溢出標(biāo)志。一旦定時(shí)器 0 發(fā)生溢出時(shí)硬件置 1。清零有兩種方式:

軟件清零,或者進(jìn)入定時(shí)器中斷時(shí)硬件清零。

4TR0定時(shí)器 0 運(yùn)行控制位。軟件置位/清零來(lái)進(jìn)行啟動(dòng)/停止定時(shí)器。

3IE1外部中斷部分,與定時(shí)器無(wú)關(guān),暫且不看。

2IT1

1IE0

0IT0

大家注意在表 5-3 中的描述中,只要寫到硬件置 1 或者清 0 的,就是指一旦符合條件,單片機(jī)將自動(dòng)完成的動(dòng)作,只要寫軟件置 1 或者清 0 的,是指我們必須用程序去完成這個(gè)動(dòng)作,后續(xù)遇到此類描述就不再另做說(shuō)明了。

對(duì)于 TCON 這個(gè) SFR,其中有 TF1、TR1、TF0、TR0 這 4 位需要我們理解清楚,它們分別對(duì)應(yīng)于 T1 和 T0,我們以定時(shí)器 1 為例講解,那么定時(shí)器 0 同理。先看 TR1,當(dāng)我們程序中寫 TR1 = 1 以后,定時(shí)器值就會(huì)每經(jīng)過(guò)一個(gè)機(jī)器周期自動(dòng)加 1,當(dāng)我們程序中寫 TR1 = 0以后,定時(shí)器就會(huì)停止加 1,其值會(huì)保持不變化。TF1,這個(gè)是一個(gè)標(biāo)志位,他的作用是告訴我們定時(shí)器溢出了。比如我們的定時(shí)器設(shè)置成 16 位的模式,那么每經(jīng)過(guò)一個(gè)機(jī)器周期,TL1加 1 一次,當(dāng) TL1 加到 255 后,再加 1,TL1 變成 0,TH1 會(huì)加 1 一次,如此一直加到 TH1和 TL1 都是 255(即 TH1 和 TL1 組成的 16 位整型數(shù)為 65535)以后,再加 1 一次,就會(huì)溢出了,TH1 和 TL1 同時(shí)都變?yōu)? 0,只要一溢出,TF1 馬上自動(dòng)變成 1,告訴我們定時(shí)器溢出了,僅僅是提供給我們一個(gè)信號(hào),讓我們知道定時(shí)器溢出了,它不會(huì)對(duì)定時(shí)器是否繼續(xù)運(yùn)行產(chǎn)生任何影響。

本節(jié)開頭我們就提到了定時(shí)器有多種工作模式,工作模式的選擇就由 TMOD 來(lái)控制,TMOD 的位分配和描述見(jiàn)表 5-4 到 5-6 所示,TMOD 的位功能如表 5-5 所示。

表 5-4 TMOD——定時(shí)器模式寄存器的位分配(地址 0x89、不可位尋址)位76543210

符號(hào)GATE

(T1)C/T

(T1)M1

(T1)M0

(T1)GATE

(T0)C/T

(T0)M1

(T0)M0

(T0)

復(fù)位值00000000

表 5-5 TMOD——定時(shí)器模式寄存器的位描述符號(hào)描述

T1/T0在表 5-5 中,標(biāo) T1 的表示控制定時(shí)器 1 的位,標(biāo) T0 的表示控制定時(shí)器 0

的位。

GATE該位被置 1 時(shí)為門控位。僅當(dāng)„INTx‟腳為高并且„TRx‟控制位被置 1 時(shí)使能

定時(shí)器„x‟,定時(shí)器開始計(jì)時(shí),當(dāng)該位被清 0 時(shí),只要„TRx‟位被置 1,定時(shí)

器 x 就使能開始計(jì)時(shí),不受到單片機(jī)引腳„INTx‟外部信號(hào)的干擾,常用來(lái)測(cè)

量外部信號(hào)脈沖寬度。這是定時(shí)器一個(gè)額外功能,本節(jié)課暫不介紹。

C/T定時(shí)器或計(jì)數(shù)器選擇位。該位被清零時(shí)用作定時(shí)器功能(內(nèi)部系統(tǒng)時(shí)鐘),

被置 1 用作計(jì)數(shù)器功能。

表 5-6 TMOD——定時(shí)器模式寄存器 M1/M0 工作模式M1M0工作模式描述

000兼容 8048 單片機(jī)的 13 位定時(shí)器,THn 的 8 位和 TLn 的 5 位組

成一個(gè) 13 位定時(shí)器。

011THn 和 TLn 組成一個(gè) 16 位的定時(shí)器。

1028 位自動(dòng)重裝模式,定時(shí)器溢出后 THn 重裝到 TLn 中。

113禁用定時(shí)器 1,定時(shí)器 0 變成 2 個(gè) 8 位定時(shí)器。

可能你已經(jīng)注意到了,表 5-2 的 TCON 最后標(biāo)注了“可位尋址”,而表 5-4 的 TMOD 標(biāo)注的是“不可位尋址”。意思就是說(shuō):比如 TCON 有一個(gè)位叫 TR1,我們可以在程序中直接進(jìn)行 TR1 = 1 這樣的操作。但對(duì) TMOD 里的位比如(T1)M1 = 1 這樣的操作就是錯(cuò)誤的。我們要操作就必須一次操作這整個(gè)字節(jié),也就是必須一次性對(duì) TMOD 所有位操作,不能對(duì)其中某一位單獨(dú)進(jìn)行操作,那么我們能不能只修改其中的一位而不影響其它位的值呢?當(dāng)然可以,在后續(xù)課程中你就會(huì)學(xué)到方法的,現(xiàn)在就先不關(guān)心它了。

表 5-6 列出的就是定時(shí)器的 4 中工作模式,其中模式 0 是為了兼容老的 8048 系列單片機(jī)而設(shè)計(jì)的,現(xiàn)在的 51 幾乎不會(huì)用到這種模式,而模式 3 根據(jù)我的應(yīng)用經(jīng)驗(yàn),它的功能用模式 2 完全可以取代,所以基本上也是不用的,那么我們就重點(diǎn)來(lái)學(xué)習(xí)模式 1 和模式 2。

模式 1,是 THn 和 TLn 組成了一個(gè) 16 位的定時(shí)器,計(jì)數(shù)范圍是 0~65535,溢出后,只要不對(duì) THn 和 TLn 重新賦值,則從 0 開始計(jì)數(shù)。模式 2,是 8 位自動(dòng)重裝載模式,只有 TLn做加 1 計(jì)數(shù),計(jì)數(shù)范圍 0~255,THn 的值并不發(fā)生變化,而是保持原值,TLn 溢出后,TFn就直接置 1 了,并且 THn 原先的值直接賦給 TLn,然后 TLn 從新賦值的這個(gè)數(shù)字開始計(jì)數(shù)。這個(gè)功能可以用來(lái)產(chǎn)生串口的通信波特率,我們講串口的時(shí)候要用到,本章節(jié)我們重點(diǎn)來(lái)學(xué)習(xí)模式 1。為了加深大家理解定時(shí)器的原理,我們來(lái)看一下他的模式 1 的電路示意圖 5-2。

 

圖 5-2 定時(shí)器/計(jì)數(shù)器模式 1 示意圖

我?guī)ьI(lǐng)大家一起來(lái)分析一遍這個(gè)示意圖,日后如果再遇到類似的圖,大家就可以自己研究了。OSC 框表示時(shí)鐘頻率,因?yàn)?1 個(gè)機(jī)器周期等于 12 個(gè)時(shí)鐘周期,所以那個(gè) d 就等于 12。下邊 GATE 右邊的那個(gè)門是一個(gè)非門電路,再右側(cè)是一個(gè)或門,再往右是一個(gè)與門電路,大家可以對(duì)照一下 5-1 節(jié)的內(nèi)容。

圖上可以看出來(lái),下邊部分電路是控制了上邊部分,那我們先來(lái)看下邊是如何控制的,我們以定時(shí)器 0 為例。

1) TR0 和下邊或門電路的結(jié)果要進(jìn)行與運(yùn)算,TR0 如果是 0 的話,與運(yùn)算完了肯定是 0,所以如果要讓定時(shí)器工作,那么 TR0 就必須置 1。

2) 這里的與門結(jié)果要想得到 1,那么前面的或門出來(lái)的結(jié)果必須也得是 1 才行。在 GATE位為 1 的情況下,經(jīng)過(guò)一個(gè)非門變成 0,或門電路結(jié)果要想是 1 的話,那 INT0 即 P3.2 引腳必須是 1 的情況下,這個(gè)時(shí)候定時(shí)器才會(huì)工作,而 INT0 引腳是 0 的情況下,定時(shí)器不工作,這就是 GATE 位的作用。

3) 當(dāng) GATE 位為 0 的時(shí)候,經(jīng)過(guò)一個(gè)非門會(huì)變成 1,那么不管 INT0 引腳是什么電平,經(jīng)過(guò)或門電路后都肯定是 1,定時(shí)器就會(huì)工作。

4) 要想讓定時(shí)器工作,就是自動(dòng)加 1,從圖上看有兩種方式,第一種方式是那個(gè)開關(guān)打到上邊的箭頭,就是 C/T = 0 的時(shí)候,一個(gè)機(jī)器周期 TL 就會(huì)加 1 一次,當(dāng)開關(guān)打到下邊的箭頭,即 C/T =1 的時(shí)候,T0 引腳即 P3.4 引腳來(lái)一個(gè)脈沖,TL 就加 1 一次,這也就是計(jì)數(shù)器功能。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉