第五章定時(shí)計(jì)數(shù)器_第1頁(yè)
第五章定時(shí)計(jì)數(shù)器_第2頁(yè)
第五章定時(shí)計(jì)數(shù)器_第3頁(yè)
第五章定時(shí)計(jì)數(shù)器_第4頁(yè)
第五章定時(shí)計(jì)數(shù)器_第5頁(yè)
已閱讀5頁(yè),還剩34頁(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)介

第5章定時(shí)/計(jì)數(shù)器定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)及工作原理定時(shí)/計(jì)數(shù)器方式和控制寄存器定時(shí)/計(jì)數(shù)器的工作方式定時(shí)/計(jì)數(shù)器的編程舉例運(yùn)行中讀定時(shí)/計(jì)數(shù)器值定時(shí)/計(jì)數(shù)器2單片機(jī)的51子系列有兩個(gè)16位的定時(shí)/計(jì)數(shù)器:定時(shí)器0和定時(shí)器1。均可用作定時(shí)器或事件計(jì)數(shù)器,為單片機(jī)系統(tǒng)提供計(jì)數(shù)和定時(shí)功能。以實(shí)現(xiàn)控制系統(tǒng)中所要求的定時(shí)或延時(shí)控制、外部事件計(jì)數(shù)。52子系列單片機(jī)(8032/8052)除了有上述2個(gè)定時(shí)/計(jì)數(shù)器外,還有一個(gè)定時(shí)計(jì)數(shù)器2,后者的功能比前兩者強(qiáng)。5.1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)及工作原理定時(shí)/計(jì)數(shù)器的核心部件是一個(gè)加1計(jì)數(shù)器,其脈沖有兩個(gè)來(lái)源:外部脈沖源、系統(tǒng)的時(shí)鐘振蕩器。計(jì)數(shù)器對(duì)兩個(gè)脈沖源之一進(jìn)行輸入計(jì)數(shù),每輸入一個(gè)脈沖,計(jì)數(shù)值加1。當(dāng)計(jì)數(shù)到計(jì)數(shù)值為全1時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)值回零,同時(shí)從最高位溢出一個(gè)脈沖使特殊功能寄存器TCON(定時(shí)器控制寄存器)的某一位TFx置1,作為計(jì)數(shù)器的溢出中斷標(biāo)志。定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)框圖振蕩器÷12加1計(jì)數(shù)器TFx中斷TX端C/T=0C/T=1控制信號(hào)TRx若工作于定時(shí)狀態(tài),則表示定時(shí)時(shí)間到;若工作于計(jì)數(shù)狀態(tài),則表示計(jì)數(shù)回零。所以,加1計(jì)數(shù)器的基本功能是對(duì)輸入脈沖進(jìn)行計(jì)數(shù)。用作定時(shí)器時(shí),在每個(gè)機(jī)器周期計(jì)數(shù)器加1,所以可以把它看作累加機(jī)器周期,1個(gè)機(jī)器周期包括12個(gè)振蕩周期,則計(jì)數(shù)頻率為振蕩頻率的十二分之一。工作于何種方式,取決于脈沖源,當(dāng)脈沖源為時(shí)鐘振蕩器(等間隔脈沖序列)時(shí),由于計(jì)數(shù)脈沖為一時(shí)間基準(zhǔn),脈沖數(shù)乘以脈沖間隔就是定時(shí)時(shí)間,表現(xiàn)為定時(shí)功能;當(dāng)脈沖源為間隔不等的外部脈沖發(fā)生器時(shí),就是外部事件的計(jì)數(shù)器,表現(xiàn)為計(jì)數(shù)功能。用作計(jì)數(shù)器時(shí),計(jì)數(shù)脈沖來(lái)自外部輸入引腳T0或T1,當(dāng)輸入信號(hào)發(fā)生一個(gè)由1到0的跳變時(shí),計(jì)數(shù)器加1。在每個(gè)機(jī)器周期的S5P2期間采樣外部輸入信號(hào),當(dāng)一個(gè)周期的采樣值為高電平、下一個(gè)周期的采樣值為低電平時(shí),計(jì)數(shù)器加1。新的計(jì)數(shù)值在緊接著檢測(cè)到一個(gè)跳變后的下一個(gè)周期的S3P1期間在寄存器中出現(xiàn)。即在第一個(gè)機(jī)器周期的S5P2檢測(cè)到高電平,在第二個(gè)機(jī)器周期的S5P2檢測(cè)到低電平,在第三個(gè)機(jī)器周期的S3P1改變計(jì)數(shù)值。由于識(shí)別一個(gè)從1到0的跳變要用兩個(gè)機(jī)器周期,所以最快的計(jì)數(shù)頻率是振蕩器頻率的二十四分之一。對(duì)外部輸入信號(hào)的占空比沒(méi)有限制,為確保某一給定的電平在變化之前至少被采樣一次,該信號(hào)至少保持一個(gè)完整的機(jī)器周期。圖中的兩個(gè)模擬開(kāi)關(guān),前者決定定時(shí)/計(jì)數(shù)器工作狀態(tài):計(jì)數(shù)還是定時(shí);后者受控制信號(hào)的控制,決定脈沖源是否加到計(jì)數(shù)器輸入端,即決定了加1計(jì)數(shù)器的開(kāi)啟與運(yùn)行。對(duì)輸入信號(hào)的基本要求>Tp>TpTp為機(jī)器周期在實(shí)際線路中,這兩個(gè)模擬開(kāi)關(guān)由TMOD與TCON的相應(yīng)位控制。用戶可通過(guò)對(duì)TMOD和TCON的各位進(jìn)行寫(xiě)入或更改操作,從而選擇不同的工作狀態(tài)或啟動(dòng)工作,并可設(shè)置相應(yīng)的控制條件,即定時(shí)/計(jì)數(shù)器是可編程的。16位的加1計(jì)數(shù)器由兩個(gè)8位的特殊功能寄存器THx和TLx組成(x=0或1)。由特殊功能寄存器TMOD控制,可被程控為不同的組合狀態(tài),從而形成定時(shí)/計(jì)數(shù)器的四種工作方式。TMOD、TCON與T0、T1結(jié)構(gòu)框圖微處理器μPTH1TL1TH0TL0TCONTMOD工作方式工作方式5.2定時(shí)/計(jì)數(shù)器方式和控制寄存器由結(jié)構(gòu)框圖可以看到,特殊功能寄存器TMOD和TCON用來(lái)確定定時(shí)/計(jì)數(shù)器的工作方式,并控制其功能。每當(dāng)執(zhí)行一條改變TMOD和TCON內(nèi)容的指令時(shí),所改變的值在下一條指令的第一個(gè)機(jī)器周期的S1P1期間進(jìn)入特殊功能寄存器,并立即產(chǎn)生效果。TMOD控制定時(shí)/計(jì)數(shù)器的工作方式;TCON控制定時(shí)器T0、T1的啟動(dòng)和停止計(jì)數(shù),并包含了定時(shí)器的狀態(tài)。5.2.1定時(shí)器工作方式控制寄存器TMOD的格式位76543210GATEC/TM1M0GATEC/TM1M0定時(shí)器1定時(shí)器0GATE:選通控制。當(dāng)GATE=1時(shí),同時(shí)INTx為高電平,且TRx置位時(shí),選通定時(shí)器x。當(dāng)GATE=0時(shí),每當(dāng)TRx置位時(shí),就選通定時(shí)器x。C/T:選擇定時(shí)器功能還是計(jì)數(shù)器功能。該位置位時(shí)選擇計(jì)數(shù)器功能(計(jì)數(shù)出現(xiàn)在T0或T1引腳上的負(fù)跳變);該位清零時(shí)選擇定時(shí)器功能(計(jì)機(jī)器周期)。M1M0:這兩位指定定時(shí)/計(jì)數(shù)器的工作方式,可形成四種編碼,對(duì)應(yīng)四種工作方式:M1M0方式說(shuō)明000TLx低5位與THx中8位構(gòu)成13位計(jì)數(shù)器011TLx與THx構(gòu)成16位計(jì)數(shù)器102可自動(dòng)再裝入的8位計(jì)數(shù)器,當(dāng)TLx計(jì)數(shù)溢出時(shí),THx內(nèi)容自動(dòng)裝入TLx。113對(duì)定時(shí)器0,分成兩個(gè)8位的計(jì)數(shù)器;對(duì)定時(shí)器1,停止計(jì)數(shù)。5.2.2定時(shí)器控制寄存器TCON的格式位76543210TF1TR1TF0TR0IE1IT1IE0IT0TF1:定時(shí)器1溢出標(biāo)志位。當(dāng)定時(shí)/計(jì)數(shù)器1溢出時(shí),由內(nèi)部硬件置位,申請(qǐng)中斷。當(dāng)單片機(jī)轉(zhuǎn)向中斷服務(wù)程序后,由內(nèi)部硬件自動(dòng)清除。TR1:定時(shí)器1的運(yùn)行控制位。由軟件置位/清除來(lái)控制定時(shí)/計(jì)數(shù)器1的開(kāi)啟/關(guān)閉。TF0:定時(shí)器0溢出標(biāo)志位。當(dāng)定時(shí)/計(jì)數(shù)器0溢出時(shí),由內(nèi)部硬件置位,申請(qǐng)中斷。當(dāng)單片機(jī)進(jìn)入中斷服務(wù)程序后,由內(nèi)部硬件自動(dòng)清除。TR0:定時(shí)器0的運(yùn)行控制位。由軟件置位/清除來(lái)控制定時(shí)/計(jì)數(shù)器0的開(kāi)啟/關(guān)閉。IE1:外部中斷1邊沿觸發(fā)請(qǐng)求標(biāo)志位。當(dāng)IT1=0時(shí),每個(gè)機(jī)器周期的S5P2采樣INT1,若INT1為低電平,將直接觸發(fā)外部中斷。當(dāng)IT1=1時(shí),當(dāng)?shù)谝粋€(gè)機(jī)器周期采樣到INT1為高電平、第二個(gè)機(jī)器周期采樣到INT1為低電平時(shí),由硬件置位中斷標(biāo)志IE1,并以此向CPU請(qǐng)求中斷,當(dāng)CPU響應(yīng)中斷、轉(zhuǎn)向中斷服務(wù)程序后由硬件清除。

IT1:外部中斷1類(lèi)型控制位??刂仆獠恐袛?是選擇邊沿觸發(fā)還是電平觸發(fā)方式。當(dāng)IT1=0時(shí),選擇為電平觸發(fā)方式,INT1低電平有效;當(dāng)IT1=1時(shí),選擇為邊沿觸發(fā)方式,當(dāng)INT1輸入腳上出現(xiàn)電平由高到低的負(fù)跳變時(shí)有效。IT1由軟件置位或清除。IE0:外部中斷1邊沿觸發(fā)請(qǐng)求標(biāo)志位。當(dāng)IT0=0時(shí),每個(gè)機(jī)器周期的S5P2采樣INT0,若INT0為低電平,將直接觸發(fā)外部中斷。當(dāng)IT0=1時(shí),當(dāng)?shù)谝粋€(gè)機(jī)器周期采樣到INT0為高電平、第二個(gè)機(jī)器周期采樣到INT0為低電平時(shí),由硬件置位中斷標(biāo)志IE0,并以此向CPU請(qǐng)求中斷,當(dāng)CPU響應(yīng)中斷、轉(zhuǎn)向中斷服務(wù)程序后由硬件清除。

IT0:外部中斷0類(lèi)型控制位??刂仆獠恐袛?是選擇邊沿觸發(fā)還是電平觸發(fā)方式。當(dāng)IT0=0時(shí),選擇為電平觸發(fā)方式,INT0低電平有效;當(dāng)IT0=1時(shí),選擇為邊沿觸發(fā)方式,當(dāng)INT0輸入腳上出現(xiàn)電平由高到低的負(fù)跳變時(shí)有效。IT0由軟件置位或清除。由于定時(shí)/計(jì)數(shù)器T0、T1是可編程的,所有在任何一個(gè)定時(shí)/計(jì)數(shù)器開(kāi)始工作之前,必須對(duì)其寫(xiě)入相應(yīng)的控制字。5.3定時(shí)/計(jì)數(shù)器的工作方式寄存器TMOD中的M1、M0兩位的四種不同取值,導(dǎo)致了THx、TLx的四種不同組合,從而形成定時(shí)/計(jì)數(shù)器的四種不同工作方式。其中前三種工作方式對(duì)兩者都是一樣的,方式3對(duì)兩者是不同的。可以說(shuō),只有定時(shí)/計(jì)數(shù)器0有方式3。5.3.1方式0振蕩器÷12TFx中斷Tx端C/T=0C/T=1GATEINTx端TRxTLx(低5位)THx(8位)控制&≥ll當(dāng)M1M0=00時(shí),定時(shí)/計(jì)數(shù)器被選擇為工作方式0。在此工作方式下,定時(shí)/計(jì)數(shù)器構(gòu)成一個(gè)13位寄存器,由THx的8位與TLx的低5位組成,TLx的高3位未用。當(dāng)單片機(jī)進(jìn)入中斷服務(wù)程序后,再由內(nèi)部硬件自動(dòng)清除該標(biāo)志TFx。在一般情況下,GATE=0,定時(shí)/計(jì)數(shù)器運(yùn)行控制僅由TRx位的狀態(tài)確定(TRx=1啟動(dòng),TRx=0停止)。只有在啟動(dòng)計(jì)數(shù)要由外部輸入INTx控制時(shí),才使GATE=1,由框圖可知,GATE=1,TRx=1時(shí),只有INTx引腳輸入高電平,Tx才被允許計(jì)數(shù)。

利用GATE的這一功能,可以很方便的測(cè)量脈沖寬度。當(dāng)TLx的低5位計(jì)數(shù)溢出時(shí),則向THx進(jìn)位,THx溢出時(shí),則把其對(duì)應(yīng)的定時(shí)/計(jì)數(shù)器的溢出標(biāo)志位TFx置位,并以此作為定時(shí)/計(jì)數(shù)器溢出中斷標(biāo)志。5.3.2方式1振蕩器÷12TFx中斷Tx端C/T=0C/T=1GATEINTx端TRxTLx(8位)THx(8位)控制l&≥l方式1與方式0的差別僅在于計(jì)數(shù)器的位數(shù)不同,方式1為16位的計(jì)數(shù)器,由THx作為高8位和TLx作為低8位構(gòu)成。其余和方式0類(lèi)似。5.3.3方式2振蕩器÷12TFx中斷Tx端C/T=0C/T=1GATEINTx端TRxTLx(8位)THx(8位)控制重新裝入l≥l&定時(shí)/計(jì)數(shù)器構(gòu)成一個(gè)自動(dòng)再裝入功能的8位計(jì)數(shù)器。

此時(shí)由TLx計(jì)數(shù),而THx在此方式中作為一個(gè)數(shù)據(jù)緩沖器。當(dāng)TLx計(jì)數(shù)溢出時(shí),在置位溢出標(biāo)志TFx的同時(shí),還自動(dòng)地將THx中的常數(shù)送到TLx,使TLx從剛剛裝入的初值開(kāi)始重新計(jì)數(shù)。再裝入后,THx中的內(nèi)容保持不變。5.3.4方式3T0端C/T=0C/T=1GATEINT0端TR0振蕩器÷12振蕩器÷12TF0中斷TL0(8位)TF1中斷TH0(8位)TR1控制控制l≥l&方式3可使MCS-51單片機(jī)增加一個(gè)附加的8位定時(shí)/計(jì)數(shù)器,此種方式只適應(yīng)于定時(shí)/計(jì)數(shù)器0。定時(shí)/計(jì)數(shù)器1處于方式3時(shí),相當(dāng)于TR1=0,停止計(jì)數(shù)。定時(shí)/計(jì)數(shù)器0在方式3下,TL0和TH0被作為兩個(gè)獨(dú)立的計(jì)數(shù)器。在此方式下,TL0使用了定時(shí)器0的所有控制位:C/T、GATE、TR0、INT0和TF0;TH0則被限制為一個(gè)定時(shí)器,對(duì)機(jī)器周期計(jì)數(shù),同時(shí)借用了定時(shí)器1的TR1和TF1,即借用了其運(yùn)行控制位和溢出標(biāo)志。一般來(lái)說(shuō),只有當(dāng)系統(tǒng)需要增加一個(gè)額外的8位定時(shí)器時(shí),才把定時(shí)/計(jì)數(shù)器0設(shè)置為方式3。當(dāng)定時(shí)/計(jì)數(shù)器0工作于方式3時(shí),由于TH0借用了定時(shí)/計(jì)數(shù)器1的運(yùn)行控制位和溢出(中斷)標(biāo)志,此時(shí)定時(shí)/計(jì)數(shù)器1雖然可以設(shè)置為方式0、方式1和方式2,但是只能用在不需要中斷控制的場(chǎng)合。例如,工作于自動(dòng)重裝載方式(方式2),作為串行通訊的波特率發(fā)生器使用。5.4定時(shí)/計(jì)數(shù)器的編程舉例定時(shí)/計(jì)數(shù)器的應(yīng)用編程應(yīng)注意:⑴正確寫(xiě)入控制字,即初始化;⑵時(shí)間常數(shù)的正確計(jì)算。定時(shí)計(jì)數(shù)器操作控制次序:①確定工作方式,寫(xiě)入TMOD定時(shí)/計(jì)數(shù)器工作方式寄存器;②計(jì)算定時(shí)/計(jì)數(shù)初值,裝入THx及TLx;③置位TRx以啟動(dòng)計(jì)數(shù);④置位ETx以允許定時(shí)/計(jì)數(shù)器x中斷(若需要,不需要可略);⑤置位EA以使CPU開(kāi)放中斷,即接收中斷信號(hào)。由于定時(shí)/計(jì)數(shù)器以加1方式計(jì)數(shù),假設(shè)計(jì)數(shù)值為x,則應(yīng)裝入定時(shí)/計(jì)數(shù)器的初值為:(n為不同方式下計(jì)數(shù)器的位數(shù))。當(dāng)工作于定時(shí)狀態(tài)時(shí),由于定時(shí)/計(jì)數(shù)器是計(jì)數(shù)機(jī)器周期的,而機(jī)器周期頻率恒定,每個(gè)機(jī)器周期包括12個(gè)振蕩周期,若晶振頻率為6MHz,則:一個(gè)機(jī)器周期:計(jì)數(shù)個(gè)數(shù)為:其中:Tp為機(jī)器周期則應(yīng)裝入的計(jì)數(shù)初值為:例5-1.要求定時(shí)為1mS,晶振頻率為12MHz。解:因?yàn)?Tc=x×Tp=1mS所以:對(duì)方式0,應(yīng)裝入的初值為:此時(shí),THx=0E0H(11100XXX),TLx=18H對(duì)方式1,應(yīng)裝入的初值為:此時(shí),THx=0FCH,TLx=18H例5-2.設(shè)定時(shí)/計(jì)數(shù)器T0為定時(shí)狀態(tài),工作于方式1,定時(shí)時(shí)間為2mS,每當(dāng)2mS到申請(qǐng)中斷,在中斷服務(wù)程序中將A的內(nèi)容左環(huán)移一次,送P1口顯示。已知晶振頻率為12MHz。解答:定時(shí)時(shí)間為2mS,即:Tc=x×Tp=2mS所以,計(jì)數(shù)個(gè)數(shù)為:采用方式1,應(yīng)裝入的時(shí)間常數(shù)為:則:TH0=0F8H,TL0=30H編程如下:ORG 0000HLJMP MAIN ;轉(zhuǎn)主程序ORG 000BH ;T0中斷服務(wù)程序MOV TL0,#30HMOV TH0,#0F8H ;重新送2mS時(shí)間常數(shù)初值RL A ;(A)左環(huán)移一次MOV P1,A ;送P1口顯示RETMAIN:MOVTMOD,#01H;送控制方式字MOV TL0,#30H ;T0初始化MOV TH0,#0F8HMOV A,#01H ;累加器A置初值SETB TR0 ;啟動(dòng)T0計(jì)數(shù)SETB ET0 ;允許T0中斷SETB EA ;CPU開(kāi)中斷SJMP $ ;等待中斷發(fā)生(無(wú)事可做)例5-3.設(shè)定時(shí)/計(jì)數(shù)器T0工作于方式3,TL0、TH0作為兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器,分別產(chǎn)生250S和500S的定時(shí)中斷,使P1.1和P1.2產(chǎn)生500S和1000S的方波。設(shè)晶振頻率為6MHz。解答:TL0計(jì)數(shù)個(gè)數(shù):250s/2s=125初值:

28-125=131=83HTH0計(jì)數(shù)個(gè)數(shù):500s/2s=250

初值:

28-250=6=06H編程如下:ORG 0000HLJMP MAIN ;轉(zhuǎn)主程序ORG 000BH ;定時(shí)器0中斷服務(wù)子程序入口LJMP TINT0ORG 001BH ;定時(shí)器1中斷服務(wù)子程序入口LJMP TINT1MAIN:MOVTMOD,#03H;T0工作方式3MOV TL0,#83H ;TL0送時(shí)間常數(shù)MOV TH0,#06H ;TH0送時(shí)間常數(shù)SETB TR0 ;啟動(dòng)定時(shí)SETB TR1;等價(jià)于MOVTCON,#50HSETB ET0 ;允許中斷SETB ET1;等價(jià)于MOVIE,#8AH

SETB EA ;CPU開(kāi)中斷SJMP $ ;等待TINT0: MOV TL0,#83H ;定時(shí)器0中斷服務(wù)子程序 CPL P1.1 RETITINT1: MOV TH0,#06H ;定時(shí)器1中斷服務(wù)子程序 CPL P1.2 RETI例5-4.設(shè)定時(shí)/計(jì)數(shù)器0工作于方式2,TL0為8位計(jì)數(shù)器,產(chǎn)生500s定時(shí)中斷,在中斷服務(wù)程序中將(A)減1,然后送P1口顯示,設(shè)晶振為6MHz。編程如下: ORG 0000H AJMP MAIN ;轉(zhuǎn)主程序 ORG 000BH DEC A ;T0中斷服務(wù)子程序 MOV P1,A RETIMAIN:MOV TMOD,#02H ;初始化 MOV TL0,#06H ;送500S時(shí)間常數(shù) MOV TH0,#06H SETB TR0 ;啟動(dòng)T0計(jì)數(shù) SETB ET0 ;允許T0中斷 SETB EA ;CPU開(kāi)中斷 SJMP $5.5運(yùn)行中讀定時(shí)/計(jì)數(shù)器值在MCS-51中,隨時(shí)可以讀寫(xiě)計(jì)數(shù)寄存器的內(nèi)容,但是讀取時(shí)需要特別加以注意;由于不能在同一時(shí)刻讀取THx和TLx的內(nèi)容。如不注意,讀取的計(jì)數(shù)器有可能出錯(cuò)。比如先讀(TLx),后讀(THx),由于定時(shí)器在不斷運(yùn)行,讀(THx)前,若恰好產(chǎn)生TLx溢出向THx進(jìn)位,則讀得的(TLx)完全不對(duì)。同樣先讀(THx)再讀(TLx)也可能出錯(cuò)(同樣問(wèn)題)。解決錯(cuò)讀問(wèn)題的一種方法是:先讀(THx),后讀(TLx),再讀(THx),若2次讀得的(THx)沒(méi)有發(fā)生變化,則可確定讀得的內(nèi)容是正確的,否則再重復(fù)上述讀THx、TLx過(guò)程,這樣讀得的(THx),(TLx)就是正確的。下面程序把讀得的TH0、TL0放在R1、R0中:RDTIME: MOV A,TH0 ;讀(TH0) MOV R0,TL0 ;讀(TL0) CJNE A,TH0,RDTIME ;比較2次讀得的(TH0),不同重讀

MOV R1,A RET5.6定時(shí)/計(jì)數(shù)器2只有52子系列單片機(jī)擁有定時(shí)/計(jì)數(shù)器2。定時(shí)/計(jì)數(shù)器2是一個(gè)具有16位自動(dòng)重裝載或捕獲能力的定時(shí)/計(jì)數(shù)器,特殊功能寄存器T2CON是它的控制寄存器。定時(shí)/計(jì)數(shù)器2具有兩種工作方式:定時(shí)/計(jì)數(shù)器方式和波特率發(fā)生器方式。5.6.1定時(shí)/計(jì)數(shù)器方式RCAP2HRCAP2LTH2TL2CINCINCOUTCOUTCP/RL2T2EXEXEN2EXF2中斷置TF2置EXF2TF2振蕩器÷12T2C/T2TR2&&≥l&≥l&用作定時(shí)器時(shí),寄存器TH2和TL2對(duì)機(jī)器周期計(jì)數(shù);用作計(jì)數(shù)器時(shí),外部計(jì)數(shù)脈沖由T2(P1.0)輸入,工作情況和時(shí)序關(guān)系與定時(shí)/計(jì)數(shù)器0和1的完全一樣,對(duì)外部計(jì)數(shù)脈沖的要求也與定時(shí)/計(jì)數(shù)器0和1的完全一樣。在定時(shí)器和計(jì)數(shù)器工作方式下,可以通過(guò)對(duì)T2CON中的控制位CP/RL2的操作來(lái)選擇捕獲能力或重裝載能力,TH2和TL2內(nèi)容的捕獲或自動(dòng)重裝載通過(guò)一對(duì)捕獲/重裝載寄存器RCAP2H和RCAP2L來(lái)實(shí)現(xiàn),TH2、TL2和RCAP2H、RCAP2L之間接有雙向緩沖器(三態(tài)門(mén))。當(dāng)CP/RL2=1時(shí),選擇捕獲功能,數(shù)據(jù)傳送方向?yàn)榘裈H2和TL2中的內(nèi)容自動(dòng)裝入RCAP2H和RCAP2L;當(dāng)CP/RL2=0時(shí),選擇自動(dòng)重裝載功能,數(shù)據(jù)傳送方向?yàn)榘裄CAP2H和RCAP2L的數(shù)據(jù)自動(dòng)裝入TH2和TL2。捕獲或自動(dòng)重裝載發(fā)生在下述情況下:⑴定時(shí)器2的寄存器TH2和TL2溢出時(shí):當(dāng)寄存器TH2和TL2溢出時(shí),如果CP/RL2=0,則打開(kāi)重裝載的三態(tài)緩沖器,把RCAP2H和RCAP2L的內(nèi)容自動(dòng)裝載到TH2和TL2中,同時(shí)溢出標(biāo)志TF2置位為1,申請(qǐng)中斷。⑵當(dāng)EXEN2=1且T2EX(P1.1)端的信號(hào)有負(fù)跳變時(shí):當(dāng)EXEN2=1且T2EX(P1.1)端的信號(hào)有負(fù)跳變時(shí),根據(jù)CP/RL2是1或0,發(fā)生捕獲操作或自動(dòng)重裝載操作,同時(shí)標(biāo)志EXF2置位,申請(qǐng)中斷。如果定時(shí)/計(jì)數(shù)器2的中斷是被允許的,不管發(fā)生TF2=1還是EXF2=1,CPU都會(huì)響應(yīng)中斷,中斷的入口地址為002BH。響應(yīng)中斷后,應(yīng)當(dāng)用軟件清除中斷標(biāo)志,以避免無(wú)休止地發(fā)生中斷。TF2、EXF2都是直接可尋址位,可采用CLRTF2和CLREXF2指令實(shí)現(xiàn)撤消中斷申請(qǐng)的功能。5.6.2波特率發(fā)生器方式RCAP2HRCAP2LTH2TL2CINCINCOUTCOUTC/T2TR2OSC2T2÷2定時(shí)器1溢出SMOD=0SMOD=1"0""1""0""1"÷16RCLKTCLK÷16TXCLOCKRXCLOCKT2EXEXEN2EXF2&&波特率發(fā)生器用于控制串行口的數(shù)據(jù)傳輸速率。在T2CON中的RCLK和TCLK兩位用于選擇定時(shí)/計(jì)數(shù)器1或2作為串行通訊的波特率發(fā)生器。RCLK和TCLK兩位的值用來(lái)控制2個(gè)電子開(kāi)關(guān)的位置。當(dāng)這兩位為0時(shí),選用定時(shí)/計(jì)數(shù)器1作為波特率發(fā)生器;當(dāng)這兩位為1時(shí),選用定時(shí)/計(jì)數(shù)器2作為波特率發(fā)生器。其中RCLK選擇串行通訊接收波特率發(fā)生器,TCLK選擇發(fā)送波特率發(fā)生器。當(dāng)選用定時(shí)/計(jì)數(shù)器2作波特率發(fā)生器時(shí),其溢出脈沖用作串行口的時(shí)鐘,時(shí)鐘頻率可由內(nèi)部時(shí)鐘決定,也可由外部時(shí)鐘決定。如果C/T=0,選用外部時(shí)鐘,時(shí)鐘信號(hào)由T2(P1.0)端輸入,每當(dāng)外部脈沖負(fù)跳變時(shí),計(jì)數(shù)器值加1,外部脈沖頻率不能超過(guò)振蕩器頻率的1/24。由于溢出時(shí),RCAP2H和RCAP2L的內(nèi)容自動(dòng)裝載到TH2和TL2,所以波特率的值還決定于裝載值。

當(dāng)定時(shí)/計(jì)數(shù)器2用作波特率發(fā)生器時(shí),如果EXEN2置位,則T2EX端的信號(hào)發(fā)生負(fù)跳變時(shí),EXF2將置位,但不會(huì)發(fā)生重裝載或捕獲操作,此時(shí)T2EX可以作為一個(gè)附加的外部中斷源。在波特率工作方式下,TH2、TL2和RCAP2H、RCAP2L的內(nèi)容不能讀或被修改。5.6.3定時(shí)/計(jì)數(shù)器2控制寄存器T2CONTR2EXEN2TCLKRCLKEXF2TF2含義01234567位TF2(T2CON.7):定時(shí)器2

溫馨提示

  • 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)論