《單片機(jī)原理及接口技術(shù)-基于C51+Proteus仿真》-第6章 80C51單片機(jī)定時(shí)器計(jì)數(shù)器最終_第1頁(yè)
《單片機(jī)原理及接口技術(shù)-基于C51+Proteus仿真》-第6章 80C51單片機(jī)定時(shí)器計(jì)數(shù)器最終_第2頁(yè)
《單片機(jī)原理及接口技術(shù)-基于C51+Proteus仿真》-第6章 80C51單片機(jī)定時(shí)器計(jì)數(shù)器最終_第3頁(yè)
《單片機(jī)原理及接口技術(shù)-基于C51+Proteus仿真》-第6章 80C51單片機(jī)定時(shí)器計(jì)數(shù)器最終_第4頁(yè)
《單片機(jī)原理及接口技術(shù)-基于C51+Proteus仿真》-第6章 80C51單片機(jī)定時(shí)器計(jì)數(shù)器最終_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

16.1定時(shí)器/計(jì)數(shù)器T0和T1的結(jié)構(gòu)及工作原理6.1.1定時(shí)器/計(jì)數(shù)器T0和T1的基本結(jié)構(gòu)6.1.280C51單片機(jī)定時(shí)器/計(jì)數(shù)器的工作原理6.2定時(shí)器/計(jì)數(shù)器T0和T1的控制寄存器6.3定時(shí)器/計(jì)數(shù)器的工作方式6.4定時(shí)器/計(jì)數(shù)器T0、T1的應(yīng)用2第6章80C51單片機(jī)定時(shí)器/計(jì)數(shù)器在工業(yè)測(cè)控應(yīng)用中,經(jīng)常需要產(chǎn)生精確的定時(shí)或者延時(shí)控制,如果采用軟件定時(shí),則需要占用CPU運(yùn)行時(shí)間,降低單片機(jī)工作效率;許多場(chǎng)合還要用到對(duì)外部事件計(jì)數(shù)的功能。MCS-51系列中51子系列單片機(jī)片內(nèi)集成2個(gè)16位可編程控制的定時(shí)器/計(jì)數(shù)器T0和T1,52子系列片內(nèi)集成3個(gè),第3個(gè)是定時(shí)器T2。T0、T1是MCS-51單片機(jī)的片內(nèi)功能部件,它們既可用作定時(shí)器方式,又可用作計(jì)數(shù)器方式。本章主要介紹80C51單片機(jī)定時(shí)器/計(jì)數(shù)器T0和T1的結(jié)構(gòu)、工作原理及應(yīng)用。6.1定時(shí)器/計(jì)數(shù)器T0和T1的結(jié)構(gòu)及工作原理只有掌握T0和T1的結(jié)構(gòu)及工作原理,才能熟練使用MCS-51系列單片機(jī)片內(nèi)的定時(shí)器和計(jì)數(shù)器。6.1.1定時(shí)器/計(jì)數(shù)器T0和T1的結(jié)構(gòu)80C51單片機(jī)定時(shí)器/計(jì)數(shù)器T0、T1的結(jié)構(gòu)如圖6-1所示,T0、T1是2個(gè)16位加法計(jì)數(shù)器,T0由TH0和TL02個(gè)SFR組成加計(jì)3數(shù)單元,T1由TH1和TL12個(gè)SFR組成加計(jì)數(shù)單元。TH1、TL1、TH0、TL0只能按照字節(jié)訪問(wèn)。對(duì)T0、T1定時(shí)或計(jì)數(shù)的模式、工作方式選擇以及控制是由2個(gè)SFRTCON和TMOD的設(shè)置確定的。TMOD、TCON與T0計(jì)數(shù)單元TH0和TL0、T1計(jì)數(shù)單元TH1和TL1間通過(guò)內(nèi)部總線及邏輯電路連接,TMOD用于控制定時(shí)器的模式和工作方式,TCON用于控制定時(shí)器的啟動(dòng)與停止。一旦設(shè)置好T0(或T1)的工作方式并啟動(dòng),T0(或T1)就開(kāi)始獨(dú)立工作,不占CPU操作時(shí)間,當(dāng)加計(jì)數(shù)器計(jì)滿置位TF0(或TF1)。CPU可通過(guò)軟件主動(dòng)查詢是否定時(shí)時(shí)間到或計(jì)數(shù)滿時(shí),也可以選擇定時(shí)中斷。4圖6-180C51定時(shí)器/計(jì)數(shù)器的基本結(jié)構(gòu)6.1.280C51單片機(jī)定時(shí)器/計(jì)數(shù)器的工作原理定時(shí)/計(jì)數(shù)器T0、T1都可以獨(dú)立設(shè)定為定時(shí)模式或者計(jì)數(shù)模式,定時(shí)和計(jì)數(shù)的實(shí)質(zhì)都是加計(jì)數(shù)器,區(qū)別在于計(jì)數(shù)信號(hào)來(lái)源不同。5

1.定時(shí)器的原理T0(或T1)用作定時(shí)器時(shí),是對(duì)內(nèi)部機(jī)器周期Tcy的加計(jì)數(shù)器。即每個(gè)機(jī)器周期TH0、TL0(或TH1、TL1)計(jì)數(shù)器在初值的基礎(chǔ)上加1,計(jì)滿溢出時(shí),置位TF0(或TF1),也可以選擇產(chǎn)生中斷請(qǐng)求。因此,一個(gè)N位的加1計(jì)數(shù)器,從初值a開(kāi)始每個(gè)機(jī)器周期加1計(jì)數(shù),直至溢出,定時(shí)時(shí)間T為:

上式中,Tcy為機(jī)器周期,a為計(jì)數(shù)初值,N是由定時(shí)方式?jīng)Q定的,當(dāng)T0、T1工作在方式0、1和2時(shí),N取值分別為13、16和8?!纠?-1】設(shè)單片機(jī)晶振頻率為24MHz,T0、T1工作在方式0、1、2,最大定時(shí)時(shí)間各為多少?在初值為0時(shí),有最大的定時(shí)時(shí)間。6

所以T0(或T1)在工作方式0下,其最大定時(shí)時(shí)間為

同樣可以求得方式1下的最大定時(shí)時(shí)間為32.768ms;方式2下的最大定時(shí)時(shí)間為0.128ms。

2.計(jì)數(shù)器的原理T0(或T1)用作計(jì)數(shù)器時(shí),是對(duì)P3.4引腳(或P3.5)輸入的外部脈沖的加計(jì)數(shù)器,每輸入一個(gè)外部脈沖(每當(dāng)外部脈沖產(chǎn)生負(fù)跳變),TH0、TL0(或TH1、TL1)計(jì)數(shù)器在初值a基礎(chǔ)上加1,計(jì)滿溢出時(shí)置位TF0(或TF1),也可以選擇產(chǎn)生中斷請(qǐng)求。因此,一個(gè)N位的加計(jì)數(shù)器,從初值a開(kāi)始每來(lái)一個(gè)外部脈沖加1計(jì)數(shù),直至溢出,計(jì)數(shù)總個(gè)數(shù)C為:7

上式中,a為計(jì)數(shù)初值,N是由計(jì)數(shù)方式?jīng)Q定的,當(dāng)T0、T1工作在方式0、1和2時(shí),N取值分別為13、16和8。由于單片機(jī)需要兩個(gè)機(jī)器周期來(lái)識(shí)別一個(gè)從“1”到“0”的跳變,因此外部計(jì)數(shù)脈沖的最高計(jì)數(shù)頻率為晶振頻率的1/24。【例6-2】單片機(jī)T0、T1工作在計(jì)數(shù)器各種方式下,計(jì)數(shù)范圍各為多少。由于初值a取值從0~2N-1。T0、T1工作在計(jì)數(shù)器方式0下,N=13,計(jì)數(shù)范圍是:1~8192(213)。在工作方式1下,N=16,計(jì)數(shù)范圍是:1~65536(216)。在工作方式2下,N=8,計(jì)數(shù)范圍是:1~256(28)。

3.對(duì)T0和T1的主要特性總結(jié)如下:(1)T0和T1可以通過(guò)編程選擇定時(shí)模式或者計(jì)數(shù)模式,定時(shí)和計(jì)數(shù)的區(qū)別是:定時(shí)是對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)實(shí)現(xiàn)的,而計(jì)數(shù)是對(duì)外部信號(hào)計(jì)數(shù)實(shí)現(xiàn)。8

(2)T0和T1均可通過(guò)編程設(shè)定多種工作方式,其中T0有4種工作方式;T1有3種工作方式,T2有3種工作方式。(3)T0和T1定時(shí)時(shí)間到或計(jì)數(shù)滿時(shí),都會(huì)使計(jì)數(shù)器溢出,從而置位相應(yīng)的溢出位,是否定時(shí)到或計(jì)數(shù)滿可通過(guò)查詢或中斷方式處理。6.2T0和T1的控制寄存器對(duì)T0和T1的控制主要通過(guò)設(shè)置TMOD和TCON這2個(gè)SFR。TMOD用來(lái)確定T0和T1的工作模式及工作方式,TCON用來(lái)設(shè)定和表征T0和T1的工作過(guò)程。

1.定時(shí)器/計(jì)數(shù)器方式寄存器TMODTMOD字節(jié)地址為89H,其格式如表6-1所示。TMOD的8位分為2組,2組含義相同,高4位為T1的控制字段,低4位為T0的控制字段。9

(1)M1位和M0位M1和M0為工作方式控制位,其含義如表6-2所示(其中i=0,1)。

表6-2定時(shí)器工作方式控制位10

(2)C/位定時(shí)與計(jì)數(shù)的模式選擇位。C/=0時(shí),設(shè)置為定時(shí)器模式;C/=1時(shí),設(shè)置為計(jì)數(shù)器模式。(3)門控位GATE當(dāng)GATE=0時(shí),僅控制位TR0(或TR1)置1可啟動(dòng)T0(或T1)。僅TR0(或TR1)清0可停止T0(或T1)工作。當(dāng)GATE=1時(shí),控制位TR0(或TR1)置1,同時(shí)還需(或)引腳為高電平方可啟動(dòng)定時(shí)器,即允許外部硬件通過(guò)P3.2(或P3.3)控制T0(或T1)啟動(dòng)。TMOD不能位尋址,只能用字節(jié)指令設(shè)置一次設(shè)置8位。復(fù)位時(shí),TMOD=00H。例如:要求T1非門控,定時(shí)模式,工作方式1;語(yǔ)句為:TMOD=0x10;

2.定時(shí)器/計(jì)數(shù)器控制寄存器TCONTCON的字節(jié)地址為88H,可以位尋址,清溢出標(biāo)志位或啟動(dòng)定時(shí)器都可以用位操作指令。TCON的格式如表6-3所示,11TCON低4位用于控制外部中斷,在第5章中已介紹,TCON高4位的功能是控制T0(或T1)的啟動(dòng)、停止以及標(biāo)志T0(或T1)的溢出。當(dāng)系統(tǒng)復(fù)位時(shí),TCON=0x00。低4位含義如下。

(1)T1溢出標(biāo)志位TFl當(dāng)T1計(jì)滿數(shù)溢出時(shí),由硬件自動(dòng)置TF1=1,向CPU發(fā)出T1中斷請(qǐng)求,在中斷允許時(shí)響應(yīng)。進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)使TF1=0。當(dāng)中斷屏蔽時(shí),TF1可由軟件查詢,此時(shí)只能由指令清0(編寫(xiě)TF1=0語(yǔ)句)。(2)T1運(yùn)行控制位TR1TR1=0時(shí),關(guān)閉T1;12

TR1=1時(shí),分2種情況:當(dāng)GATE=0時(shí),則啟動(dòng)T1;當(dāng)GATE=l時(shí),則引腳為高電平,才可以啟動(dòng)Tl。(3)T0溢出標(biāo)志位TF0其功能及操作情況同TF1。(4)T0運(yùn)行控制位TR0其功能及操作情況同TR1。6.3定時(shí)器/計(jì)數(shù)器的工作方式80C51片內(nèi)T0、T1可以通過(guò)對(duì)特殊功能寄存器TMOD中M1、M0兩位的設(shè)置來(lái)選擇工作方式,其中T0有方式0、1、2和3等4種工作方式;T1有方式0、1和2共3種工作方式。1.工作方式0當(dāng)M1、M0設(shè)置為00時(shí),T0(或T1)工作在方式0。T0方式0的邏輯圖如圖6-2所示。13

(1)計(jì)數(shù)器單元在方式0下,16位計(jì)數(shù)器單元只用了13位,由TH0的8位和TL0的低5位組成一個(gè)13位計(jì)數(shù)器,TL0(或TL1)的高3位未用,方式0計(jì)數(shù)器單元如圖6-3所示,當(dāng)TL0(TL1)的低5位溢出時(shí),會(huì)向TH0(TH1)進(jìn)位,當(dāng)13位計(jì)數(shù)器加1到全“1”后,再加1就溢出。這時(shí),置TCON的溢出標(biāo)志位TF0(TF1)為1,同時(shí)把13位TH0和TL0(或TH1和TL1)變?yōu)槿?”。圖6-2T0方式0邏輯圖14圖6-3T0和T1方式0計(jì)數(shù)器單元

(2)定時(shí)/計(jì)數(shù)模式控制位C/①C/=0:為定時(shí)器工作模式,對(duì)內(nèi)部機(jī)器周期信號(hào)計(jì)數(shù);②C/=1:為計(jì)數(shù)器工作模式,對(duì)P3.4(或P3.5)引腳外部輸入脈沖負(fù)跳變計(jì)數(shù)。(3)定時(shí)/計(jì)數(shù)運(yùn)行控制位GATEGATE位決定了T0(或T1)的運(yùn)行取決于軟件控制還是硬件-軟件共同控制。GATE=0時(shí),當(dāng)TR0/TR1=1,13位計(jì)數(shù)器就開(kāi)始計(jì)數(shù);當(dāng)TR0/TR1=0,T0(或T1)關(guān)閉。15圖6-4T0方式1邏輯圖16

3.工作方式2當(dāng)M1、M0設(shè)置為10時(shí),T0(或T1)工作在方式2。T0方式2的邏輯圖如圖6-5所示。方式2把TL0(TL1)配置成一個(gè)可以自動(dòng)恢復(fù)初值(初始常數(shù)自動(dòng)重新裝入)的8位計(jì)數(shù)器,TH0(TH1)作為常數(shù)緩沖器,由軟件預(yù)置值;當(dāng)TL0(TL1)溢出時(shí),一方面使溢出標(biāo)志TF0(TR1)置1,同時(shí)把TH0(TH1)中的8位數(shù)據(jù)重新裝入TL0(TL1)中。圖6-5T0方式2邏輯圖217

在實(shí)際應(yīng)用中,工作方式0和工作方式1在定時(shí)時(shí)間到或者計(jì)數(shù)滿產(chǎn)生溢出時(shí),計(jì)數(shù)單元清0,如果想循環(huán)定時(shí)或者循環(huán)計(jì)數(shù)就需要頻繁重新給計(jì)數(shù)單元裝初值,這不但影響定時(shí)/計(jì)數(shù),也給程序設(shè)計(jì)帶來(lái)麻煩。方式2常用于循環(huán)精確地定時(shí)/計(jì)數(shù)控制。例如,80C51單片機(jī)晶振頻率為12MHz,希望每隔200s產(chǎn)生一個(gè)定時(shí)控制脈沖,可在定時(shí)方式2下,把TH0和TL0同時(shí)預(yù)置為56實(shí)現(xiàn)。方式2還用作串行口波特率發(fā)生器。

4.工作方式3方式3只適用于T0。方式3使80C51具有3個(gè)定時(shí)器/計(jì)數(shù)器(增加了一個(gè)附加的8位定時(shí)器/計(jì)數(shù)器)。(1)T0工作在方式318(a)TL0作為8位定時(shí)器/計(jì)數(shù)器圖6-6定時(shí)器/計(jì)數(shù)器T0工作方式319

(2)T0工作在方式3下的T1通常,當(dāng)T1用作串口波特率發(fā)生器時(shí),T0才定義為方式3,以增加一個(gè)8位計(jì)數(shù)器。T0工作在方式3時(shí),TH0使用了T1的中斷標(biāo)志位(TF1),這時(shí)T1還可以設(shè)置為方式0~2,用于任何不需要中斷控制的場(chǎng)合,或用作串行口的波特率發(fā)生器。①T1工作在方式0T1工作在方式0,作為波特率發(fā)生器,需要設(shè)置M1、M0=00,工作示意圖如圖6-7所示。圖6-7T0工作在方式3下T1工作在方式0工作示意圖20

②T1工作在方式1T1工作在方式1,作為波特率發(fā)生器,需要設(shè)置M1、M0=01,工作示意圖如圖6-8所示。圖6-8T0工作在方式3下T1工作在方式1工作示意圖

③T1工作在方式2T1工作在方式2,由于方式2可循環(huán)計(jì)數(shù)或定時(shí),不需要重置計(jì)數(shù)初值,在波特率產(chǎn)生器中常用。需要設(shè)置M1、M0=10,工作示意圖如圖6-9所示。21圖6-9T0方式3時(shí)T1為方式2時(shí)工作示意圖6.4定時(shí)器/計(jì)數(shù)器T0、T1的應(yīng)用本節(jié)介紹T0、T1的初始化設(shè)計(jì)及編程應(yīng)用。

1.T0和T1的初始化由于T0和T1的功能實(shí)現(xiàn)是由軟件編程確定的,所以使用前首先要初始化,步驟如下。(1)確定工作模式與工作方式,為TMOD賦值。(2)確定計(jì)數(shù)器單元初值,為T0計(jì)數(shù)單元TH0、TL0(或T1計(jì)數(shù)單元TH1、TL1)預(yù)置初值。2223

(4)給TCON送命令字,以啟動(dòng)或禁止定時(shí)器/計(jì)數(shù)器的運(yùn)行。(5)確定定時(shí)時(shí)間到或計(jì)數(shù)滿,以便進(jìn)行相應(yīng)的處理。若用查詢方式則不需要第3步,可查詢溢出標(biāo)志位TF0(或TF1),溢出標(biāo)志為1,則進(jìn)行相應(yīng)處理;若用中斷方式處理,設(shè)置IE、TR0(TR1)后,一旦TF0(或TF1)標(biāo)志為1,則自動(dòng)轉(zhuǎn)向中斷服務(wù)程序。

2.T0、T1的編程應(yīng)用【例6-5】T0和T1作為計(jì)數(shù)器的應(yīng)用電路如圖6-10所示,外部計(jì)數(shù)輸入端T0(P3.2)接一按鈕開(kāi)關(guān)K1,外部計(jì)數(shù)輸入端T1(P3.3)接信號(hào)源,P1.7引腳接一LED燈。要求:按下開(kāi)關(guān)K1開(kāi)始對(duì)信號(hào)源計(jì)數(shù),當(dāng)計(jì)滿10個(gè)脈沖時(shí),LED閃爍10次,T0、T1都采用中斷方式。24圖6-102個(gè)計(jì)數(shù)器的使用25

(1)確定TMODT0、T1都計(jì)數(shù),T0計(jì)數(shù)1次,選擇用方式1;T1計(jì)數(shù)10次選擇方式1,都選擇非門控。所以TMOD=0x55。(2)確定計(jì)數(shù)初值T0計(jì)數(shù)1次,方式1,計(jì)數(shù)初值為65535=0xFFFF,TH0=0xFF;TL0=0xFF,T1計(jì)數(shù)10次,選擇方式1,初值為65536-10=65526=0xFFF6,TH1=0xFF;TL1=0xF6。(3)設(shè)置IE、IP由于T0、T1均采用中斷方式,不設(shè)置優(yōu)先級(jí)。IE=0x8A,IP=0;(4)啟動(dòng)T0、T1T0啟動(dòng)在主程序中,T1啟動(dòng)在T0的中斷服務(wù)程序中。參考程序如下:#include<reg51.h>#defineucharunsignedcharsbitP1_7=P1^7;26voidDelay(unsignedintx)//延時(shí)1ms函數(shù){ucharj;while(x--){for(j=0;j<125;j++);}}voidmain(){TMOD=0x55;TH0=0xFF;TL0=0xFF;TH1=0xFF;TL1=0xF6;IE=0x8A;TR0=1;P1_7=1;27while(1);}voidc0(void)interrupt1//T0中斷服務(wù)程序{TR0=0;TR1=1;}voidc1(void)interrupt3//T1中斷服務(wù)程序{uchari;for(i=0;i<10;i++){P1_7=0;Delay(500);P1_7=1;Delay(500);}TR1=0;}28

在實(shí)際應(yīng)用中,經(jīng)常用T0、T1產(chǎn)生精確的周期性波形。利用T0、T1產(chǎn)生周期性波形的思想是:利用T0、T1定時(shí),定時(shí)時(shí)間到對(duì)輸出端作相應(yīng)的處理。如產(chǎn)生方波可在定時(shí)時(shí)間到對(duì)輸出端取反。例6-6】電路如圖6-11所示,設(shè)80C51晶振頻率為12MHz,用T1編程實(shí)現(xiàn)從P1.7引腳輸出頻率為2kHz的音頻信號(hào)。分析:從P1.7引腳輸出頻率為2kHz的超聲波,即周期為500us的方波,可定時(shí)250us,定時(shí)時(shí)間到時(shí),讓P1.7取反一次。T1可分別工作于方式0、方式1、方式2,可分別采用查詢和中斷方式實(shí)現(xiàn)。當(dāng)晶振頻率為12MHz,機(jī)器周期為1us。29圖6-11定時(shí)器T1產(chǎn)生超聲波30

(1)T1采用方式0、中斷方式處理方式控制字應(yīng)設(shè)定為00000000B(0x00)。定時(shí)250μs,初值X=8192-250/1=7942=0x1F06,則TH1=0xF8,TL1=0x06。參考程序:#include<reg51.h>//包含特殊功能寄存器庫(kù)sbitP1_7=P1^7;voidmain(){TMOD=0x00;TH1=0xF8;TL1=0x06;EA=1;ET1=1;TR1=1;while(1);}31voidti1(void)interrupt3//中斷服務(wù)程序{TH1=0xF8;TL1=0x06;P1_7=!P1_7;}

仿真時(shí),用鼠標(biāo)右鍵單擊虛擬數(shù)字示波器,在菜單中選擇“DigitalOscilloscope”選項(xiàng),調(diào)整時(shí)間旋鈕在合適位置,會(huì)看到P1.7引腳輸出給A通道的頻率為2kHz的音頻信號(hào),如圖6-12所示。32圖6-12頻率為2kHz的音頻信號(hào)33

(2)T1采用方式1、中斷方式處理方式控制字應(yīng)設(shè)定為00010000B(0x10)。定時(shí)250μs,初值X=65536-250/1=65286=FF06,則TH1=0xFF,TL1=0x06。參考程序:#include<reg51.h>//包含特殊功能寄存器庫(kù)sbitP1_7=P1^7;voidmain(){TMOD=0x10;TH1=0xFF;TL1=0x06;EA=1;ET1=1;TR1=1;while(1);}34voidti1(void)interrupt3//中斷服務(wù)程序{TH1=0xFF;TL1=0x06;P1_7=!P1_7;}(3)T1采用方式2、中斷方式處理方式控制字應(yīng)設(shè)定為00100000B(0x20)。定時(shí)250μs,初值X=256-250/1=06,則TH1=TL1=0x06。參考程序:#include<reg51.h>//包含特殊功能寄存器庫(kù)sbitP1_7=P1^7;voidmain(){TMOD=0x20;TH1=0x06;TL1=0x06;EA=1;35ET1=1;TR1=1;while(1);}voidti0(void)interrupt3//中斷服務(wù)程序{P1_7=!P1_7;}(4)T1采用方式2、查詢方式處理參考程序:#include<reg51.h>//包含特殊功能寄存器庫(kù)sbitP1_7=P1^7;voidmain(){chari;TMOD=0x20;36TH0=0x06;TL0=0x06;TR1=1;for(;;){if(TF1){TF1=0;P1_7=!P1_7;}//查詢計(jì)數(shù)溢出}}若需要定時(shí)器定時(shí)時(shí)間超過(guò)定時(shí)器最大值時(shí),即方式1時(shí)的216個(gè)機(jī)器周期時(shí),用一個(gè)定時(shí)器直接處理不能實(shí)現(xiàn),可用兩個(gè)定時(shí)器級(jí)聯(lián)或一個(gè)定時(shí)器配合軟件計(jì)數(shù)方式處理?!纠?-7】電路如圖6-13所示,設(shè)晶振頻率為12MHz,定時(shí)控制P1口連接的8只LED自上而下點(diǎn)亮的跑馬燈,每只燈點(diǎn)亮0.5s。每只燈點(diǎn)亮0.5s,這時(shí)應(yīng)產(chǎn)生500ms的周期性的定時(shí),定時(shí)時(shí)間到時(shí)點(diǎn)亮下一盞燈??捎肨0產(chǎn)生10ms定時(shí),然后對(duì)10ms計(jì)數(shù)50次或用T1對(duì)10ms計(jì)數(shù)50次實(shí)現(xiàn)。37

晶振頻率12MHz,T0定時(shí)10ms,可選方式1,則TMOD=00000001B(0x01),初值X:X=65536-10000/1=55536=1101100011110000B則TH0=11011000B=0xD8,TL0=11110000B=0xF0。圖6-13定時(shí)控制P1口連接的8只LED跑馬燈38

(1)T0定時(shí)10ms、軟件計(jì)數(shù)50次,中斷處理方式。參考程序:#include<reg51.h>//包含特殊功能寄存器庫(kù)#include<intrins.h>#defineucharunsignedcharuchari;voidmain(){TMOD=0x01;TH0=0xD8;TL0=0xF0;EA=1;ET0=1;i=0;TR0=1;P1=0xFE;39while(1);}voidtime0_int(void)interrupt1//T0中斷服務(wù)程序{TH0=0xD8;TL0=0xF0;i++;if(i==50){P1=_crol_(P1,1);i=0;}}

(2)T0定時(shí)10ms、T1計(jì)數(shù)25次,T0和T1都采用中斷方式工作。由于T1工作于計(jì)數(shù)方式時(shí),計(jì)數(shù)脈沖通過(guò)T1(P3.5)輸入,設(shè)定時(shí)器T0定時(shí)10ms時(shí)間到,對(duì)T1(P3.5)取反一次,則T140(P3.5)每20ms產(chǎn)生一個(gè)計(jì)數(shù)脈沖。定時(shí)500ms需要T1計(jì)數(shù)25次。T0工作于方式1,定時(shí)10ms,則TH0=11011000B=0xD8,TL0=11110000B=0xF0。設(shè)計(jì)數(shù)器T1工作于方式2,初值X=256-25=231=0xE7,TH1=TL1=0xE7。方式控制字TMOD=01100001B=0x61。參考程序如下:#include<reg51.h>#include<intrins.h>#defineucharunsignedcharsbitP3_5=P3^5;voidmain(){TMOD=0x61;TH0=0xD8;TL0=0xF0;41TH1=0xE7;TL1=0xE7;EA=1;ET0=1;ET1=1;TR0=1;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論