MCS-51系列單片機(jī)的內(nèi)部功能模塊及其應(yīng)用._第1頁
MCS-51系列單片機(jī)的內(nèi)部功能模塊及其應(yīng)用._第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余23頁可下載查看

下載本文檔

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

文檔簡介

1、第6章MCS-51系列單片機(jī)的內(nèi)部功能模塊及其應(yīng)用MCS-51系列單片機(jī)的典型產(chǎn)品的內(nèi)部功能模塊包括P0、P1、P2、P3四個(gè)雙向8位并行口,TO、T1二個(gè)16位定時(shí)/計(jì)數(shù)器(52T系列還有第3個(gè)定時(shí)/計(jì)數(shù)器T2)和一個(gè)串行口。MCS-51系列所有的產(chǎn)品一般都具有這些I/O部件.除此以 外,一些增強(qiáng)功能的新型51系列的單片機(jī)還有多功能左時(shí) 器、A/D轉(zhuǎn)換器、實(shí)時(shí)時(shí)鐘、I2C串行BUS口、watchdog等 一些功能模塊。6.1MCS-51單片機(jī)內(nèi)部的并行口MCS51系列單片機(jī)中稱為PO、Pl、P2、P3的并行接口,每個(gè)接口匸要 巾4部分構(gòu)成:數(shù)據(jù)鎖存器、輸入緩沖器、輸出驅(qū)動器和接口引腳,每 一

2、條1/0都能獨(dú)亡的用作輸入或輸出,作輸入時(shí),數(shù)據(jù)町以鎖存;作輸 出時(shí),數(shù)據(jù)叮以緩沖。4個(gè)接口的功能不窕全相同,真內(nèi)部結(jié)構(gòu)也略仃 不同,但在作I/O操作方式時(shí),其特性基本相同。如圖(a)(d)分 別給出了PO、PI、P2、P3口的1位的結(jié)構(gòu)框圖。PO、Pl、P2. P3口的1位的結(jié)構(gòu)框圖4:第2臣已洋細(xì)地介紹 MCS-51單片機(jī)的并行I/O端LI 卜山1舉個(gè)并彳丁接I I應(yīng)用 的例產(chǎn),以加深對并疔接口使用的理解?!纠?1】對例6-1的電路圖,單片機(jī)的P1.4PI.7接4個(gè)發(fā)光二極管,P1.0P1.3接4個(gè)開關(guān),耍求毎按鍵中斷-次.發(fā)光二極管顯示開關(guān)狀態(tài)。契求對應(yīng)的發(fā)光:極管亮或滅,只需把P1端口

3、的內(nèi)容讀入高、低4位互換.通 過P1瑙口輸出即可.A 編語言參考程序?yàn)镺RGOOOOHLJMPSTARTORG0003HLJMPEXTOORG0030HSTART: SETBEA:開中斷總開關(guān)SETBEXO:允許屮斷SETBITO:F降沿產(chǎn)生中斷MOVPl, UOFH:設(shè)疋Pi端口低勺位為輸入狀態(tài)SJMP$ORG0100HEXTO:MOVA, PlSWAP AMOVPl, ARETIci/m考稗序?yàn)椋?includeINTO () interrupt 0嚴(yán)中斯函數(shù)水/6-1例6|的電路圖Pl=OxOf;P=4;廣設(shè)處Pl端口低4位為輸入狀態(tài),輸入端先程1.燈火引嚴(yán)讀入開關(guān)狀態(tài).并左移4位.使開

4、關(guān)反映在發(fā)光二極行1:*/ main()EA=1;EXO=1: ITO=1:while(l);嚴(yán)開中斷總開關(guān)*7允許中斷5*/*卜降沿產(chǎn)牛中斷*/戶等待中斷6.2MCS-51單片機(jī)內(nèi)部的定時(shí)器/計(jì)數(shù)器6.2.1實(shí)現(xiàn)定時(shí)/計(jì)數(shù)器的辦法通常實(shí)觀定時(shí)/計(jì)數(shù)冇3種左要方法:(1)軟件定時(shí):軟件定時(shí)不占用硬件資源,但占用了CPU時(shí)間,降低了CPU的利用率。(2)時(shí)展電路硬件定時(shí):用小規(guī)模集成電路器件構(gòu)成的碩件定時(shí)電路, 電路簡單,但要改變定時(shí)范國,必須改變電阻和電容,修改不方便, 即不可編程。(3)可編程定時(shí)/計(jì)數(shù)器定時(shí):它是為方便微機(jī)系統(tǒng)的設(shè)計(jì)和應(yīng)用而研 制的種芯片,它采用硬件定時(shí),且很容易通過軟件來

5、確定和修改 定時(shí)值,通過初始化編程,能夠滿足乞種不同的趙時(shí)和汁數(shù)要求, 在單片機(jī)、嵌入式系統(tǒng)的設(shè)計(jì)和應(yīng)用中得到廣泛的應(yīng)用。單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器也屬于上面的第3種采用可編程定時(shí)/計(jì)數(shù)器實(shí) 現(xiàn)定時(shí),只不過這種可編程定時(shí)/計(jì)數(shù)器的碩件模塊被集成到單片機(jī)內(nèi)部 而已。6.2.2MCS-51單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器運(yùn)時(shí)/計(jì)數(shù)器是MCS-51系列單片機(jī)的幣要部件,其工作方式靈活,編程簡 單,它的使用人人減輕了CPU的負(fù)擔(dān)并冃.簡化了外用電路。在MCS51系列單片機(jī)中,51子系列單片機(jī)有2個(gè)定時(shí)/計(jì)數(shù)3ST0和T1, 52了系列單片機(jī)除了有上述兩個(gè)怎時(shí)/il數(shù)器以外, 還有個(gè)疋時(shí)/計(jì)數(shù)器T2,后者的功能比

6、前兩荷強(qiáng)。怪16-2足MCS-51系列單片機(jī)內(nèi)部定吋/計(jì)數(shù)器結(jié) 構(gòu)框圖。圖6-2 MCS-51系列單片機(jī)內(nèi)部定時(shí)/計(jì)數(shù)搭結(jié)構(gòu)框圖Mflcru.rim運(yùn)時(shí)/計(jì)數(shù)器主耍山特殊功能寄心器THO、TLO、TH1、TL1以及TMOD、TCON組成。定時(shí)/計(jì)數(shù)器的丈質(zhì)足加1計(jì)數(shù)器(16位).山高8位和低8位兩個(gè)寄器組成。其中,THO(高8位)、TLO(低8位)構(gòu)成16位加1汁數(shù)器TO,用來存放TO的 計(jì)數(shù)初值:TH1(高8位)、TL1(低8位)構(gòu)成加116位計(jì)數(shù)器T1,用來存放T1的 計(jì)數(shù)初值;這兩個(gè)16位計(jì)數(shù)器都足16位的加1計(jì)數(shù)器TMOD用*控制兩個(gè)定時(shí)/計(jì)數(shù)益的I作方式,TCON用作中斷溢出標(biāo)志 并

7、控制定時(shí)器的啟停。加1計(jì)數(shù)器輸入的計(jì)數(shù)脈沖有兩個(gè)來源。(1)是由系統(tǒng)的時(shí)鐘振蕩器輸出脈沖經(jīng)12分頻后送來:(2)是TO或T1引腳輸入的外部脈沖源。每來一個(gè)脈沖計(jì) 數(shù)器加1,當(dāng)加到計(jì)數(shù)器為全1時(shí),再輸入一個(gè)脈沖就使計(jì) 數(shù)器回零,且計(jì)數(shù)器的溢出使TCON中TFO或TF1置1,向CPU發(fā)出中斷請求(定時(shí)/計(jì)數(shù)器屮斷允許時(shí))。如果定時(shí)/計(jì)數(shù)器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到; 如果工作于計(jì)數(shù)模式,則表示計(jì)數(shù)值已滿。I大此,由溢出 時(shí)計(jì)數(shù)器的值減去計(jì)數(shù)初值才是加1計(jì)數(shù)器的計(jì)數(shù)fl1)定時(shí)/計(jì)數(shù)器設(shè)置為定時(shí)器模式時(shí),加1計(jì)數(shù)器足對內(nèi)部機(jī)器周期計(jì)數(shù)(1個(gè)機(jī)器周期竽于12個(gè)振蕩周期,即計(jì)數(shù)頻率為晶振頻率的1

8、/12) o計(jì)數(shù)值N乘以機(jī)器周期7cy就是定時(shí)時(shí)間F o2)定時(shí)/計(jì)數(shù)器設(shè)置為計(jì)數(shù)器模式時(shí),外部事件計(jì)數(shù)脈沖由TO或T1引腳輸入到計(jì)數(shù)器。在何個(gè)機(jī)器周期采樣TO或T1引腳電、卜。當(dāng)某周期采樣 到一高電平輸入,而下一周期又采樣到一低電、F:時(shí),則計(jì)數(shù)器加1,更新的計(jì)數(shù)值在卜一個(gè)機(jī)器周期期間裝入計(jì)數(shù)益。由于檢測一個(gè)從1到0的卜降沿需要2個(gè)機(jī)器周期,因此要求被采樣的電半至少要維持一 個(gè)機(jī)器周期。當(dāng)晶振頻率為12MHz時(shí),最髙計(jì)數(shù)頻率不超il/2MHz,即計(jì)數(shù)脈沖的周期要大于2 pis。6.2.2.1定時(shí)器/計(jì)數(shù)器的控制寄存器單片機(jī)定時(shí)/計(jì)數(shù)器TO、T1的工作主要由TMOD、TCON、IE3個(gè)特殊功

9、能寄存器控制。 其中:TMOD用來設(shè)置各個(gè)定時(shí)/計(jì)數(shù)器的工作方式、 選 擇總時(shí)或il數(shù)功能;TCONJI丁控制心動運(yùn)行以及作為運(yùn)彳亍狀態(tài)的標(biāo),忐 等;IE用于對定時(shí)/汁數(shù)器中斷允許進(jìn)行控制.1丄作方式控制寄存器TMODTMOD寄存器是-個(gè)用J設(shè)定定時(shí)/汁數(shù)器匚作方式的特殊功能寄存器, 艮低4位用丁控制TO,而高4位用丁控制Tlo 7節(jié)地址為89H,不能位/ 址設(shè)*fflTMOD須用了節(jié)操作指令。復(fù)位時(shí)TMODVjOOHo它的族位定義 見圖&3位號D7D6D5D4D3D2D1DO符號GATEC/TMlGAHC/亍MlTNIOD 功能門控位計(jì)救/ 走時(shí)迭擇工作方式迭擇厲空位計(jì)數(shù)走時(shí)送擇工作

10、方式迭擇高4位J空制T1低4位徑制TO圖63 TMOD各位泄義(1) Ml、MO:I:作方式選樣位Ml、卜10用來選擇I-作方式,對應(yīng)關(guān)系如衣61所小。辰6-1定時(shí)/i卜數(shù)器的方式選押Ml MO工作方式功能00丁作方龍013位計(jì)數(shù)髀01工(F方式116位ilttZt10丄(F萬式2口幼再裝人8位訂裁為11工作方式3定時(shí)器T0:分成兩個(gè)8位計(jì)效器; 宦時(shí)211 h停止計(jì)數(shù)(2) C/T:定時(shí)/計(jì)數(shù)功能選擇位C/亍=0為定時(shí)方式。在定時(shí)方式中.以掾蕩輸岀時(shí)t中脈沖fosc的12分頻信號作為 計(jì)數(shù)信號,如果單片機(jī)采用12MHz晶體,則計(jì)數(shù)頻率為1MHz,計(jì)數(shù)脈沖周期為12,即每1“計(jì)數(shù)器加1次。C/

11、T=1対計(jì)數(shù)方式。在計(jì)數(shù)方式中,單片機(jī)在毎個(gè)機(jī)器周期對外部計(jì)數(shù)脈沖進(jìn)行 采樣。如果前個(gè)機(jī)器周期采樣為高電r. Ju個(gè)機(jī)器周期采樣為低電平,即為 一個(gè)冇效的計(jì)數(shù)脈沖。在下一機(jī)器周期進(jìn)行計(jì)數(shù)。因此,外部爭件計(jì)數(shù)時(shí)最高計(jì) 數(shù)頻率是單片機(jī)晶振頻率的1/24。如果單片機(jī)采用12MHz骷體,則外部事件計(jì)數(shù) 牀沖垠矩周期為2戶,即繪快町以做到毎2ysi|數(shù)器加1。(3) GATE:門控位GATE=1怎時(shí)/計(jì)數(shù)器的運(yùn)行受外部引腳輸入電乎的控制.UUTNTO控制TO運(yùn) 行,imr控制TI運(yùn)行。GATE=O 定時(shí)/計(jì)數(shù)器的運(yùn)行不受外部輸入引腳的控制o2.定時(shí)器控制寄存器TCONTCON寄存器足個(gè)丿IJ于控制罔動運(yùn)

12、行以及作為運(yùn)行狀態(tài)的標(biāo)志的待殊功能宙存器。TCUN奇仔器既參與圧時(shí)控制乂參與中I析控制,址品4位川J;控制TO, TI.而低4位用于控制外部中斷IN而、INTTOTCON的字節(jié)地址為88H,它可位J址。 復(fù)位時(shí)TCON為00H。它的位定義見圖64圖&4 TCON備位定義位號D70605D4D302DlDO位名稱IF11RITFOIRO1E1m1E0no位地址8FH8EII8D1I8CII8B118 All891188HTCONT1中斷標(biāo)志T1遠(yuǎn)行標(biāo)志TO中斷標(biāo)志TO運(yùn)行標(biāo)志INT1中 斷標(biāo)志iNTite發(fā)方式INTO中TNTOW發(fā)方式高2位控制TI低2位獨(dú)刨TOTCON低4位與外屮斷I

13、NT弘INTT/I關(guān).島4位功能疋時(shí)控制仃關(guān)。(1)TFO和TF1:計(jì)數(shù)溢出標(biāo)志位F 計(jì)數(shù)器計(jì)數(shù)溢出(計(jì)滿)時(shí),該位置1使用査詢方武時(shí),此位作狀態(tài)位供 査詢.但應(yīng)注意査詢有效后應(yīng)用軟件方法及時(shí)將該位清0;使用中斷方式時(shí), 此位作中斷標(biāo)志位,在轉(zhuǎn)向屮斷服務(wù)程序時(shí)山破件I動淸0(2)TRO和R1:足時(shí)器運(yùn)行控制位TRO (TR1) =0,停止定時(shí)/計(jì)數(shù)器工作:TRO (TRi) =1,啟動定時(shí)/計(jì)數(shù)器工 作。該位根抑;需妄靠軟件來賢1或潔0,以控制疋時(shí)器的啟動或停I上。3中斷允許控制寄存器TEIE寄存器與定時(shí)/計(jì)數(shù)器有關(guān)的位為ETO和ET1,它們分別足疋時(shí)/計(jì)數(shù)器0、I的 中斷允許控制位。當(dāng)ETO

14、(或ETI) =0時(shí),蔡止沱時(shí)/計(jì)數(shù)器0(或I)中斷:而 當(dāng)ETO或ETI) =1時(shí),允許定時(shí)/計(jì)數(shù)器0(或I)中斷.6.2.2.2定時(shí)器/計(jì)數(shù)器的工作方式1.方式o13位訂數(shù)結(jié)構(gòu)的丄作力工,定吋心數(shù)器TO、T1部對以設(shè)咒丄作方式0, TO(或TI)的計(jì)數(shù)器itlTHO(或TH1)高8位和TL0(或TL1)的低5位構(gòu) 成,TLO(或TLI)的高3位未用。圖6-5、圖6-6分別為匸作力式0的邏輯 電路給構(gòu)、匚作原理框圖。為TL0的低5位溢出時(shí)向TH0進(jìn)位,TH0溢出 時(shí),宙位TCON中的TFO標(biāo)志,向CPU發(fā)出中斷諸求。請求16-5 I作方式0的TCDIM(I)當(dāng)C/T=O時(shí),名路開關(guān)接通振蕩脈

15、沖的12分頻輸出.13位計(jì)數(shù)器以此進(jìn)行計(jì)數(shù), 這就足足時(shí)方式。C/T = l時(shí),名路開關(guān)接通計(jì)數(shù)引腳P34 (TO),外祁計(jì)數(shù)脈沖由引腳P3.4輸入。 肖計(jì)數(shù)脈沖發(fā)生負(fù)跳變時(shí),計(jì)數(shù)器加1,這就是計(jì)數(shù)方式。不管是定時(shí)方式還足計(jì)數(shù)方式,當(dāng)TLO的低5位計(jì)數(shù)溢出時(shí),向THO進(jìn)位,而全部13位計(jì)數(shù)溢岀時(shí), 則向計(jì)數(shù)溢出標(biāo)志位TFO進(jìn)位.在滿足中斷條件時(shí), 向CPU中i疔 小斯,若需繼續(xù)進(jìn)行總時(shí)或計(jì)數(shù),則應(yīng)用指令對TLO、THO重新置數(shù),否則,卜一 次計(jì)數(shù)將會從0開始,造成汁數(shù)或沱時(shí)時(shí)間不準(zhǔn)確這甲.翌說明的圧;TO能否啟動,取決于TR()、GATE和引腳THTO的狀態(tài)。嗎GATE=O時(shí),GATE信匕封鎖

16、了或門,他;I腳iNTOf無效。而或門輸出端的 高電平狀態(tài)卻打開了與門.這時(shí)如果TRO=h則與門輸出為1,模擬開關(guān)接通,定 時(shí)/計(jì)數(shù)0工作.如果TRO=O,則斷開模擬開關(guān),定時(shí)/計(jì)數(shù)器0不能工作;1GATE=L同時(shí)TRO=1時(shí),模擬開關(guān)足仰披通由INTOF制。lNTO=l時(shí),與 門輸出髙電平,模擬開關(guān)接通.定時(shí)/計(jì)數(shù)器0 11作:INTO=0時(shí).與門輸出低電 平,模擬丿I關(guān)斷開,定時(shí)/計(jì)數(shù)冊0停止工作這種情況可用于測量外信號WTO的 脈沖寬度。方式0足13位的定時(shí)/計(jì)數(shù)方式,因而最大計(jì)數(shù)值(滿值)為Af=2l3=8192o若計(jì) 數(shù)值為N,則胃入的初值X為:X=8192N例如,定時(shí)/計(jì)數(shù)益TO的

17、計(jì)數(shù)值為1000,則初值為7192,轉(zhuǎn)換成二進(jìn)制數(shù)為1110000011()O()B,則THO=1I1OOOOOB二EOHTLO=xxxl IO(XJB=I8H(把xxx當(dāng)作000時(shí)2.方式116位計(jì)數(shù)結(jié)構(gòu)的工作方式,定時(shí)/il數(shù)器TO、T1那可以設(shè)置工作方式1, T0(或T1)的計(jì)數(shù)器ihTHO(或TH1)扁8位和TLO(或TL1的低8位構(gòu)成,其邏輯電路和工作情況與工作力式0基本和同。所不同的只足組成訃數(shù)器 的位數(shù),它比匸作方式0冇更寬的計(jì)數(shù)范圍,因此.在實(shí)際應(yīng)用中,【作 方式】町以代替I:作方式0。圖&7、圖&8分別為工作方式0的邏輯電路結(jié) 構(gòu).工作原理框圖。圖67 IW方

18、式1的邏軻電路結(jié)構(gòu)TROGATE中爭清求INT(P32)h圖68 1作方式1的I作原理框圖市于足6位的定時(shí)/計(jì)數(shù)方式因而最大計(jì)數(shù)值(滿值)為Af=216=65536.若計(jì) 數(shù)值為N,則冒入的初值X為:X=65536N例如,定時(shí)/計(jì)數(shù)器T0的計(jì)數(shù)值為1000.則初值為65536-1OOO=M536,轉(zhuǎn)換成二 進(jìn)制數(shù)為1111110000011000B,則THO=11I111(M)B=FCH, TL0 = 00011000B = 18HeTCOXvol)073.方式2具有自動垂裝初值的、8位計(jì)數(shù)結(jié)構(gòu)的工作方式,從時(shí)/計(jì)數(shù)器TO、T1都可以設(shè)置I.作方式2。在方式2下,16位計(jì)數(shù)器披分為兩部分,即以

19、TLO(或TL1)作計(jì)數(shù)骷 而以THO(或TH1)作預(yù)置奇存器(即保存計(jì)數(shù)初值),初始化時(shí)把8位的計(jì) 數(shù)初值分別裝人TL0(或TLI)和THO(或TH1)中。1|TLO(或TL1)計(jì)數(shù)溢出 石,不是像前兩種件方式那柑通過軟件力法,RuMllJ偵灣竊心器THO(或TH1)以駛件方法自動給計(jì)數(shù)器TLO(或TL1)重新加如 圖9、圖6-10分別為匸作方 式2的邏啊電路結(jié)構(gòu)、工作廉理finite圖610丄作力式2的工作凍現(xiàn)框圖TCXKTFJ中詰中斷TR1TFOTROILHI卸機(jī)券周期機(jī)券周期- a而引腳而引D70由于足8位的定時(shí)/計(jì)數(shù)方式,因而垠大計(jì)數(shù)值(満值)為M=28=256。若計(jì)數(shù)值 為N,則置

20、入的初值X為:X=256-/V例如,泄時(shí)/計(jì)數(shù)器TO的計(jì)數(shù)值為100,則初值為256-100=156,轉(zhuǎn)換成二進(jìn)制數(shù) 為10011100B,貝IJTHO=TLO=I()O1I1OOB江意:由于方式2計(jì)滿后,溢出信號會觸發(fā)三態(tài)門自動地把TH0(或TH1)的值 裝入TLU(或TL1)屮內(nèi)而如果嬰垂新實(shí)現(xiàn)N個(gè)單位的計(jì)數(shù),不用亜新國入初 值。4.工作力式3匚作方式3只適用丁淀時(shí)器T0如果企圖將定時(shí)器T置為方式3,則它將停止計(jì) 數(shù),比效果與fiTR 1=0111同,即關(guān)閉定時(shí)器Tl。TTO匸作在方式3時(shí),它被拆 成兩個(gè)獨(dú)立的8位計(jì)數(shù)器TLO和THO。圖6U1、圖6-12分別為工作方式3的邏訓(xùn)電 路結(jié)構(gòu)、

21、匸作頂理梅圖.16-11工作方式3的邏輯電路結(jié)構(gòu)圖612工作方式3的工作原理框圖圖611屮, 上方的8位汁數(shù)器TLO使用原定時(shí)器TO的控制位C7T、GATE、TRO和,TWW既町以計(jì)數(shù)使用,又可以定時(shí)使用,直功能和操作與前面介紹的匸作方式0或匚作方 或嘵全相同下方的THO只能作為簡單的定時(shí)器使用而且由于定時(shí)/計(jì)效)的控制 何巳彼TLO獨(dú)巧,因此只好借用足時(shí)/計(jì)數(shù)制的控制偵TRI和TF1。即以計(jì)數(shù)溢出去逍 位TF1,而定時(shí)的啟動和停止則受TR1的狀態(tài)控制。由J TLO既能作定時(shí)器使用也能作計(jì)數(shù)器使用,而THO只能作定時(shí)器使用卻不能作計(jì) 數(shù)器使用,因此在匸作方式3卜 S 定時(shí)/計(jì)數(shù)器0町以構(gòu)成兩個(gè)

22、定時(shí)器或個(gè)定時(shí)器和 一個(gè)計(jì)數(shù)器。注意:在方式3卜 STO和T1的工作有很人的不同。其繪別如卜:1)若把T置于方式3,則T1停止計(jì)數(shù),其效果與置TR1=O相同,即關(guān)閉定時(shí)器T1。此 進(jìn),定時(shí)器T1保持其內(nèi)容不變。因此,一般不會把TI豐于方式3。2)若把TO胃J方式3,則16位訂數(shù)器拆開為兩個(gè)獨(dú)立工作的8位訃數(shù)器TLO和THO。但這兩個(gè)8位計(jì)數(shù)器的工作是有希別的。首先它們的工作方式不同:對TLO來說 它既對以按計(jì)數(shù)方式工作,也町以按定時(shí)方式工作:ifuTHO則只能按定時(shí)方式工 作。另外,它們的控制方式也不同.3當(dāng)TO處于方式3時(shí),此時(shí)T1可工作為方式0、1、2.但由F此時(shí)TI己沒仃控制通斷TR1和

23、溢出中斷TF1的功能,T1只能作為串行口的波特率發(fā)生器使用,或不需要中斷 的場介。6.2.23定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)初值計(jì)算MCS-51的定時(shí)器/計(jì)數(shù)器采用增帛計(jì)數(shù)。根擁定時(shí)/計(jì)數(shù)器的計(jì)數(shù)結(jié)構(gòu), 真最人計(jì)數(shù)為2化其屮加為計(jì)數(shù)器的位數(shù),對于工作方式0,加=13,其最 人計(jì)數(shù)為2鼻8192:對于工作方式1,加=16,其最犬計(jì)數(shù)為265536:對于匸作方式2和匸作方式3,加=8,梵最大計(jì)數(shù)為2256。在實(shí)際應(yīng)用中, 經(jīng)常會有少于2加個(gè)計(jì)數(shù)值的雯求, 例如, 要求計(jì)數(shù)flj 1(X)0就產(chǎn)生溢出,這時(shí)可在計(jì)數(shù)時(shí),不從0開始,而是從一個(gè)固定值開始,這 個(gè)固定值的大小,取決于被計(jì)數(shù)的大小。如要計(jì)數(shù)1000,

24、預(yù)先在計(jì)數(shù)器里 放進(jìn)(2肝一1000)的數(shù),再*1000個(gè)脈沖,就到了2叫 就會產(chǎn)生溢出,B位TFOo這個(gè)(2”一1000)的數(shù)稱作計(jì)數(shù)初值,也稱作預(yù)置值。定時(shí)也有同樣的問題,并且也可采用同樣的方法來解決。當(dāng)定時(shí)/計(jì)數(shù)器 為工作力式0,并假設(shè)單片機(jī)的胡振是12MHz,那么每個(gè)計(jì)時(shí)脈沖是1“,il滿28192個(gè)脈沖盅要8.192ms,如來只盂定時(shí)1ms,町以作這樣的處理:ImsUPlOOOKis,也就足計(jì)數(shù)1(X)0時(shí)滿。因此.計(jì)數(shù)之前預(yù)先在計(jì)數(shù)器里放 進(jìn)231000=819210(X)=7192,開始計(jì)數(shù)后, 計(jì)滿1000個(gè)脈沖到8192即 產(chǎn)生溢出。如果計(jì)數(shù)初值為X,則計(jì)算定時(shí)時(shí)間F為:i=

25、 (2NX) X7cy= (2NX) X 12/dsc式中:7hy為機(jī)器周期,/bsc為晶振周期。例如,如果定時(shí)/計(jì)數(shù)器為匚作方式0,需妥定時(shí)3ms (30002),Jose為12MHZo設(shè)計(jì)數(shù)初值為X,則根據(jù)上述公式可得:3()00=(2/n-X)X 12 / fosc=(2liX)X 12/12曲此口J得,X=5192需要說明的是,單片機(jī)屮的定時(shí)器通常耍求不斷亟復(fù)定時(shí),次定時(shí)時(shí)間 到之厲,緊按看進(jìn)行第二次的定時(shí)燥作。一口產(chǎn)牛溢出,汁數(shù)器中的值就 冋到(),卜次計(jì)數(shù)從o開始.定時(shí)時(shí)間將不止確,為便卜次的定時(shí)時(shí)間 不變,需耍在定時(shí)溢出后馬上把計(jì)數(shù)初值送到計(jì)數(shù)器。6.2.2.4定時(shí)/計(jì)數(shù)器的初始

26、化編程及應(yīng)用定時(shí)器/計(jì)數(shù)器的功能是由軟件編稈確定的,在使用主時(shí)器,計(jì)數(shù)器前都 要對其進(jìn)行初始化。MCS-51單片機(jī)定時(shí)/計(jì)數(shù)器的初始化編程步驟為:(1)根據(jù)要求選抒方式.確定方式控制字,寫入方式控制寄存器TMOD。(2)根據(jù)定時(shí)時(shí)間妥求或計(jì)數(shù)耍求,計(jì)算定時(shí)/計(jì)數(shù)器的計(jì)數(shù)值,再由計(jì) 數(shù)值求得初值,送計(jì)數(shù)初值的高8位和低8位到TH0(或TH1)和TL0(或TL1)寄存器中。定時(shí)/訃數(shù)器的初值因工作方式的不同而不同。設(shè)最大計(jì)數(shù)值為M,則各 種匚作方式下的M值為:方式0時(shí);W=2,3=8192;方式I時(shí);v=2,6=65536:方式2時(shí)Af=2x=256:方式3時(shí),T0分成兩個(gè)8位計(jì)數(shù)器,所以兩個(gè)逕時(shí)

27、器 的M值均為M=256。由于定時(shí)器計(jì)數(shù)器工作的實(shí)質(zhì)是做“加計(jì)數(shù),所以, 當(dāng)最大計(jì)數(shù)值M值為已知且計(jì)數(shù)值為N時(shí),初值X可計(jì)算為:X=M-N(3)如果工作于中斷方式,則根據(jù)需要開放定吋/計(jì)數(shù)器的中斷,即對IE寄存器賦值(后面還需編寫中斷服務(wù)程序)。(4)設(shè)置定時(shí)/i十?dāng)?shù)器控制寄存器TCON的值(即將其TRO或TR1置位),啟動定時(shí)/計(jì)數(shù)器開始工作。(5)等待定時(shí)/計(jì)數(shù)時(shí)間到,定時(shí)/計(jì)數(shù)到則執(zhí)行中斷服務(wù)程序;若用査 詢處理,則需編寫查詢程序判斷溢曲標(biāo)忐,溢出標(biāo)止等于1,則進(jìn)行相 應(yīng)處理?!纠?2】TO運(yùn)行于耀時(shí)器狀態(tài),時(shí)鐘振蕩周期為12MHz,要求疋時(shí)lOOys。 試求不同工作方式時(shí)的定時(shí)初值X。

28、osc= 12MHz.時(shí),7cy=lps, /V=l(M)ps/lps=l(X)= 64H方式0 (13位力式):X=2,3-64H=1F9CH方式1 (16位方式):X=2,6-64H=FF9CH方式2、3 (8位方式):X=28- 64H=9CH注意:工作方式0的初值裝入方法:IF9CH= 1 1111 10()1 1I(X)BTH0的8位TLO的低5位町見,THO=OFCH, TLO=ICHMOV THO, #OFCHMOV TLO, #1CH6.2.2.5定時(shí)器/計(jì)數(shù)器的應(yīng)用舉例【例63】設(shè)系統(tǒng)時(shí)鐘頻率為12MHz.利用定時(shí)器/i|數(shù)器TO編程實(shí)現(xiàn)從P10輸出周期為20ms的方波。從P

29、I.0輸出周期為20ms的方波,只需P1.0每隔10ms取反一次。 肖系統(tǒng)時(shí) 鐘為12MHz,定時(shí)器/計(jì)數(shù)器TO匚作于方式1時(shí),最大的逕時(shí)時(shí)間為65536us,滿足10ms的定時(shí)要求。系統(tǒng)時(shí)鐘為12MHz, i|數(shù)值為10000,初值X=65536-10000=D8FOH,貝IJTHO二D8H、TL0=F0H如果定時(shí)時(shí)間人于65536MS,這時(shí)用一個(gè)定時(shí)/汁數(shù)器也接處理不能實(shí)現(xiàn), 這時(shí)可用:1個(gè)定時(shí)/計(jì)數(shù)器配合軟件計(jì)數(shù)方式處理,2個(gè)定時(shí)/計(jì)數(shù)器 共同處理。1采用査詢方式編程匯編語育參考柞序?yàn)?SJMP HH1SJMP $ORG 0000HAJMP MAIN;定時(shí)器, 讓數(shù)器:査詢C語言參考程序

30、為:# include sbit P.1=PAO;void inain()char i;TMOD=0 x01;TRO=1:For(;)TH()=()xD8; TL()=()xF():do ) while (!TFO) (P1_O=!P1_O; TFO=O;) )2.采用中斷方式編程匯編語言參考程序?yàn)?ORG 0000HLJMP MAINSETB EASETB ETOSETB TROSJMP $c語言參考程序?yàn)椋? include 包含特殊功能奇存器庫充詢ORGCPLMOVMOVRET IORGMAIN:MOVMOVMOVOOOBHP1.0THO, #0D8HTLO, #OFOH0200HTMO

31、D. #01HTHO, #0D8HTLO. #OFOH:中斷處理程序sbit P1_O=P1AO:void main ()TMOD=0 x01:TH(=()xDS:TLO=()xF():EA= 1; ETO= 1;TRO=1;while (1);void time()_int (void) interrupt I中斷服務(wù)序P1_O=!P1_O;TH()=()xD8;TL0=0 xF0:【例4】如圖613所示,在Pl7端接一個(gè)發(fā)光一極管LED,要求利用足 時(shí)控制便LED亮1 s火1 s周而復(fù)始地閃爍,設(shè)時(shí)鐘頻率;/bsc=6M HZ 圖6J3例68的電路圖當(dāng)_/6sc=6MHz時(shí),_L作力式0、

32、1、2均不能滿足疋時(shí)Is的要求。如,16位 總時(shí)最人為2 X2屮=131.072ms,顯然不能滿足耍求,町用以下兩種力 法解決。方法1:采用T0產(chǎn)牛周期為2(X)ms脈沖,即P1.0每1(X)ms取反-次作為T1的計(jì)數(shù)脈沖,T1對下降沿計(jì)數(shù),因此T1計(jì)5個(gè)脈沖正好Is。通過P1.7反 相,改變LED的狀態(tài)。TO采用方武1,定時(shí)100ms。計(jì)數(shù)初值為:X=2,6-100X 103/2 =3CB0HoT1采用方式2,計(jì)5個(gè)脈沖,汁數(shù)初值:X = 25=FBH均釆用何詢方式,軋流稈圖如圖614所示。圖|4例6的流程圖匯編參考程序?yàn)?ORG0000HMAIN:CLRPl. 7SETBP1.0MOVTMOD,# 61HMOVTH1,#OFBHMO

溫馨提示

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

評論

0/150

提交評論