版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第六章第六章 單片微機(jī)的定時(shí)器單片微機(jī)的定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器原理及應(yīng)用原理及應(yīng)用通常采用以下三種方法來(lái)實(shí)現(xiàn)定時(shí)或計(jì)數(shù):通常采用以下三種方法來(lái)實(shí)現(xiàn)定時(shí)或計(jì)數(shù):1硬件法硬件法硬件定時(shí)功能完全由硬件電路完成,不占用硬件定時(shí)功能完全由硬件電路完成,不占用CPU時(shí)間。時(shí)間。但當(dāng)要求改變定時(shí)時(shí)間時(shí),只能通過(guò)改變電路中的元件參數(shù)來(lái)但當(dāng)要求改變定時(shí)時(shí)間時(shí),只能通過(guò)改變電路中的元件參數(shù)來(lái)實(shí)現(xiàn),很不靈活。實(shí)現(xiàn),很不靈活。2軟件法軟件法軟件定時(shí)是執(zhí)行一段循環(huán)程序來(lái)進(jìn)行時(shí)間延時(shí),優(yōu)點(diǎn)是軟件定時(shí)是執(zhí)行一段循環(huán)程序來(lái)進(jìn)行時(shí)間延時(shí),優(yōu)點(diǎn)是無(wú)額外的硬件開銷,時(shí)間比較精確。但犧牲了無(wú)額外的硬件開銷,時(shí)間比較精確。但犧牲了CPU
2、的時(shí)間。的時(shí)間。3可編程定時(shí)器計(jì)數(shù)器可編程定時(shí)器計(jì)數(shù)器6.1 概述概述可編程定時(shí)器計(jì)數(shù)器最大特點(diǎn)是可以通過(guò)軟件編程來(lái)可編程定時(shí)器計(jì)數(shù)器最大特點(diǎn)是可以通過(guò)軟件編程來(lái)實(shí)現(xiàn)定時(shí)時(shí)間的改變,通過(guò)中斷或查詢方法來(lái)完成定時(shí)功能或?qū)崿F(xiàn)定時(shí)時(shí)間的改變,通過(guò)中斷或查詢方法來(lái)完成定時(shí)功能或計(jì)數(shù)功能。有專門的可編程定時(shí)器計(jì)數(shù)器芯片可供選用,比計(jì)數(shù)功能。有專門的可編程定時(shí)器計(jì)數(shù)器芯片可供選用,比如如Intel 8253。還有一些日歷時(shí)鐘芯片,如菲利浦公司的。還有一些日歷時(shí)鐘芯片,如菲利浦公司的PCF8583等。等。目前單片微機(jī)中往往已配備了定時(shí)器計(jì)數(shù)器(目前單片微機(jī)中往往已配備了定時(shí)器計(jì)數(shù)器(timercounter
3、)。)。 80C51芯片內(nèi)包含有兩個(gè)芯片內(nèi)包含有兩個(gè)16位的定時(shí)器計(jì)數(shù)器:位的定時(shí)器計(jì)數(shù)器:T0和和T1;而;而80C52包含有三個(gè)包含有三個(gè)16位的定時(shí)器計(jì)數(shù)器:位的定時(shí)器計(jì)數(shù)器:T0、T1和和T2;在在80C51系列的部分產(chǎn)品(如系列的部分產(chǎn)品(如Philips公司的公司的80C552)中,還包)中,還包含有一個(gè)用做看門狗的含有一個(gè)用做看門狗的8位定時(shí)器(位定時(shí)器(T3)。)。定時(shí)器計(jì)數(shù)器的核心是一個(gè)加定時(shí)器計(jì)數(shù)器的核心是一個(gè)加1計(jì)數(shù)器其基本功能是計(jì)數(shù)器其基本功能是計(jì)數(shù)加計(jì)數(shù)加1。若是對(duì)單片微機(jī)的若是對(duì)單片微機(jī)的T0、T1 或或T2引腳上輸入的一個(gè)引腳上輸入的一個(gè)1到到0的跳變進(jìn)行計(jì)數(shù)增的
4、跳變進(jìn)行計(jì)數(shù)增l,即是計(jì)數(shù)功能。,即是計(jì)數(shù)功能。若是對(duì)單片微機(jī)內(nèi)部的機(jī)器周期進(jìn)行計(jì)數(shù),從而得到定若是對(duì)單片微機(jī)內(nèi)部的機(jī)器周期進(jìn)行計(jì)數(shù),從而得到定時(shí),這就是定時(shí)功能。時(shí),這就是定時(shí)功能。定時(shí)功能和計(jì)數(shù)功能的設(shè)定和控制都是通過(guò)軟件來(lái)設(shè)定定時(shí)功能和計(jì)數(shù)功能的設(shè)定和控制都是通過(guò)軟件來(lái)設(shè)定的。的。80C51的定時(shí)器的定時(shí)器/計(jì)數(shù)器除了可用作定時(shí)器或計(jì)數(shù)器之外,計(jì)數(shù)器除了可用作定時(shí)器或計(jì)數(shù)器之外,還可用作串行接口的波特率發(fā)生器。還可用作串行接口的波特率發(fā)生器。定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T0、T1 的內(nèi)部結(jié)構(gòu)簡(jiǎn)圖示于圖的內(nèi)部結(jié)構(gòu)簡(jiǎn)圖示于圖61中。中。從圖中可以看出,定時(shí)器計(jì)數(shù)器從圖中可以看出,定時(shí)器計(jì)數(shù)器T0
5、、T1由以下幾部分組成:由以下幾部分組成: 計(jì)數(shù)器計(jì)數(shù)器TH0、TL0和和TH1、TL1; 特殊功能寄存器特殊功能寄存器TMOD、TCON; 時(shí)鐘分頻器;時(shí)鐘分頻器; 輸入引腳輸入引腳T0、T1。6.2 定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T0、T1 定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T0、T1 的方式寄存器的方式寄存器TMOD 字節(jié)地址為字節(jié)地址為89H。TMOD的格式如下:低的格式如下:低4位用來(lái)定義位用來(lái)定義T0,高,高4位用來(lái)定義位用來(lái)定義T16.2.1 與定時(shí)器計(jì)數(shù)器與定時(shí)器計(jì)數(shù)器T0、T1有關(guān)的特殊功能寄存器有關(guān)的特殊功能寄存器D7 D6 D5 D4 D3 D2 D1 D0GATE C/TM1M0GAT
6、E C/TM1M0T1T0各位的意義如下:各位的意義如下: GATE門控位。門控位。 GATE1時(shí),由外部中斷引腳、和時(shí),由外部中斷引腳、和TR0、TR1共同來(lái)啟動(dòng)共同來(lái)啟動(dòng)定時(shí)器。當(dāng)定時(shí)器。當(dāng)引腳為高電平時(shí),引腳為高電平時(shí),TR0置位啟動(dòng)定時(shí)器置位啟動(dòng)定時(shí)器T0;當(dāng)引;當(dāng)引腳為高電平時(shí),腳為高電平時(shí),TR1置位,啟動(dòng)定時(shí)器置位,啟動(dòng)定時(shí)器T1。 GATE0時(shí),僅由時(shí),僅由TR0和和TR1置位來(lái)啟動(dòng)定時(shí)器置位來(lái)啟動(dòng)定時(shí)器T0和和T1。 CT功能選擇位。功能選擇位。C/T1時(shí),選擇計(jì)數(shù)功能;時(shí),選擇計(jì)數(shù)功能;C/T0時(shí),選擇定時(shí)功能。時(shí),選擇定時(shí)功能。T0、T1 的計(jì)數(shù)、定時(shí)功能是通過(guò)的計(jì)數(shù)、定
7、時(shí)功能是通過(guò)TMOD中的位來(lái)選擇的。中的位來(lái)選擇的。 定時(shí)器,設(shè)置定時(shí)器,設(shè)置C/T0計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期機(jī)器周期使寄存器的值增使寄存器的值增1。每個(gè)機(jī)器周期等于每個(gè)機(jī)器周期等于12個(gè)振蕩周期,故計(jì)數(shù)速率為振蕩周期的個(gè)振蕩周期,故計(jì)數(shù)速率為振蕩周期的112。當(dāng)采用。當(dāng)采用12MHz的晶體時(shí),計(jì)數(shù)速率為的晶體時(shí),計(jì)數(shù)速率為1MHz。定時(shí)器的定時(shí)。定時(shí)器的定時(shí)時(shí)間,與系統(tǒng)的振蕩頻率時(shí)間,與系統(tǒng)的振蕩頻率fosc、計(jì)數(shù)器的長(zhǎng)度和初始值等有關(guān)。、計(jì)數(shù)器的長(zhǎng)度和初始值等有關(guān)。 計(jì)數(shù)器,設(shè)置計(jì)數(shù)器,設(shè)置C/T1這時(shí),通過(guò)引腳這時(shí),通過(guò)引腳T0(P3.4)
8、和)和T1(P3.5)對(duì)外部信號(hào)進(jìn)行計(jì)對(duì)外部信號(hào)進(jìn)行計(jì)數(shù)。在每個(gè)機(jī)器周期的數(shù)。在每個(gè)機(jī)器周期的S5P2期間,期間,CPU采樣引腳的輸入電平。若采樣引腳的輸入電平。若前一機(jī)器周期采樣值為前一機(jī)器周期采樣值為1,下一機(jī)器周期采樣值為,下一機(jī)器周期采樣值為0,則計(jì)數(shù)器增,則計(jì)數(shù)器增1,此后的機(jī)器周期,此后的機(jī)器周期S3P1期間,新的計(jì)數(shù)值裝入計(jì)數(shù)器。期間,新的計(jì)數(shù)值裝入計(jì)數(shù)器。所以檢測(cè)一個(gè)所以檢測(cè)一個(gè)1到到0的跳變的跳變 需要兩個(gè)機(jī)器周期,故計(jì)數(shù)脈沖頻率需要兩個(gè)機(jī)器周期,故計(jì)數(shù)脈沖頻率不能高于振蕩脈沖頻率的不能高于振蕩脈沖頻率的124。 M1、M0工作方式選擇位。工作方式選擇位。 由于有由于有M1和
9、和M0兩位,可以有四種工作方式,如表兩位,可以有四種工作方式,如表61所所示。示。 定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T0、T1 的控制寄存器的控制寄存器TCON 控制寄存器控制寄存器TCON是一個(gè)逐位定義的是一個(gè)逐位定義的8位寄存器,字節(jié)地址為位寄存器,字節(jié)地址為88H,位尋址的地址為,位尋址的地址為88H8FH。其格式如下:。其格式如下:位地址位地址 8FH 8EH8DH8CH8BH8AH89H88H位功能位功能 TF1TR1TF0TR0IE1IT1IE0IT0其中各位的意義如下:其中各位的意義如下: TF1(TCON7)定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T1的溢出標(biāo)志。的溢出標(biāo)志。 T1溢出時(shí),該位由內(nèi)部硬
10、件置位。若中斷開放,即響應(yīng)溢出時(shí),該位由內(nèi)部硬件置位。若中斷開放,即響應(yīng)中斷,進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清中斷,進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清0;若中斷禁止,;若中斷禁止,可用于判跳,用軟件清可用于判跳,用軟件清0。 TR1(TCON6)T1的運(yùn)行控制位。的運(yùn)行控制位。用軟件控制,置用軟件控制,置 l時(shí),啟動(dòng)時(shí),啟動(dòng) T1;清;清0時(shí),停止時(shí),停止 T1。 TF0(TCON5)T0的溢出標(biāo)志。的溢出標(biāo)志。T0溢出時(shí),該位由內(nèi)部硬件置位。若中斷開放,即響應(yīng)溢出時(shí),該位由內(nèi)部硬件置位。若中斷開放,即響應(yīng)中斷,進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清中斷,進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清0;若中斷禁止
11、,;若中斷禁止,可用于判跳,用軟件清可用于判跳,用軟件清0。 TR0(TCON4)T0的運(yùn)行控制位。的運(yùn)行控制位。用軟件控制,置用軟件控制,置1時(shí),啟動(dòng)時(shí),啟動(dòng)T0;清;清 0時(shí),停止時(shí),停止 T0。IE1(TCON3)外部中斷外部中斷1下降沿觸發(fā)標(biāo)志位。下降沿觸發(fā)標(biāo)志位。 IE0(TCONI)外部中斷外部中斷0下降沿觸發(fā)標(biāo)志位。下降沿觸發(fā)標(biāo)志位。 IT1(TCON0)外部中斷外部中斷1觸發(fā)類型選擇位。觸發(fā)類型選擇位。 IT0(TCON0)外部中斷外部中斷0觸發(fā)類型選擇位。觸發(fā)類型選擇位。 TCON的低的低4位與中斷有關(guān),已在第五章位與中斷有關(guān),已在第五章“中斷系統(tǒng)中斷系統(tǒng)”中討論中討論過(guò)。過(guò)
12、。 復(fù)位后,復(fù)位后,TCON的所有位均清的所有位均清0。T0和和T1均是關(guān)斷的。均是關(guān)斷的。 定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T0、T1 的數(shù)據(jù)寄存器的數(shù)據(jù)寄存器由由TH1(地址為地址為8DH)、TL1(地址為地址為8BH)和和TH0(地址為地址為8CH)、TL0(地址為地址為8AH)寄存器所組成。復(fù)位后,所有這四個(gè)寄寄存器所組成。復(fù)位后,所有這四個(gè)寄存器全部清零。存器全部清零。 定時(shí)器定時(shí)器/計(jì)數(shù)器中斷計(jì)數(shù)器中斷 中斷允許寄存器中斷允許寄存器IE EA位位-中斷允許總控制位中斷允許總控制位 ET0位、位、ET1位、位、ET2位位-T0、T1和和T2的中斷允許控制位。的中斷允許控制位。 某位某位=0,
13、則禁止對(duì)應(yīng)定時(shí)器,則禁止對(duì)應(yīng)定時(shí)器/計(jì)數(shù)器的中斷。計(jì)數(shù)器的中斷。某位某位=1,則允許對(duì)應(yīng)定時(shí)器,則允許對(duì)應(yīng)定時(shí)器/計(jì)數(shù)器的中斷。計(jì)數(shù)器的中斷。 中斷矢量中斷矢量定時(shí)器定時(shí)器T0:000BH定時(shí)器定時(shí)器T1:001BH定時(shí)器定時(shí)器T2:002BH 中斷優(yōu)先級(jí)寄存器中斷優(yōu)先級(jí)寄存器IP PT0PT0位、位、PT1PT1位、位、PT2PT2位位-T0-T0、T1T1和和T2T2中斷優(yōu)先級(jí)控制位。中斷優(yōu)先級(jí)控制位。某位為某位為0 0,則相應(yīng)的定時(shí)器,則相應(yīng)的定時(shí)器/ /計(jì)數(shù)器的中斷為低優(yōu)先級(jí);計(jì)數(shù)器的中斷為低優(yōu)先級(jí);某位為某位為1,則相應(yīng)的定時(shí)器,則相應(yīng)的定時(shí)器/計(jì)數(shù)器的中斷為高優(yōu)先級(jí)。計(jì)數(shù)器的中斷為
14、高優(yōu)先級(jí)。從圖從圖62中可看到:中可看到:C/T位的電平為位的電平為“0”或或“1”,用來(lái)設(shè)定是作定時(shí)器或計(jì)數(shù)器。,用來(lái)設(shè)定是作定時(shí)器或計(jì)數(shù)器。門控位門控位GATE可用作對(duì)可用作對(duì)INTx引腳上的高電平時(shí)間進(jìn)行計(jì)量。引腳上的高電平時(shí)間進(jìn)行計(jì)量。由圖由圖62上可看出,當(dāng)上可看出,當(dāng)GATE0時(shí),時(shí),A點(diǎn)為高電平,定時(shí)器計(jì)數(shù)點(diǎn)為高電平,定時(shí)器計(jì)數(shù)器的啟動(dòng)停止由器的啟動(dòng)停止由 TRx決定。決定。TRx1,定時(shí)器計(jì)數(shù)器啟動(dòng);,定時(shí)器計(jì)數(shù)器啟動(dòng);TRx0,定時(shí)器計(jì)數(shù)器停止。,定時(shí)器計(jì)數(shù)器停止。 當(dāng)當(dāng)GATE1時(shí)時(shí)A點(diǎn)的電位由點(diǎn)的電位由INTx決定,因而決定,因而B點(diǎn)的電位就由點(diǎn)的電位就由TRx和和INT
15、x決定,即定時(shí)器計(jì)數(shù)器的啟動(dòng)停止由決定,即定時(shí)器計(jì)數(shù)器的啟動(dòng)停止由TRx和和INTx兩個(gè)條件決定。兩個(gè)條件決定。 計(jì)數(shù)溢出時(shí),計(jì)數(shù)溢出時(shí),TFx置位。如果中斷允許,置位。如果中斷允許,CPU響應(yīng)中斷并轉(zhuǎn)入中響應(yīng)中斷并轉(zhuǎn)入中斷服務(wù)程序,由內(nèi)部硬件清斷服務(wù)程序,由內(nèi)部硬件清TFx。TFx也可以由程序查詢和清零。也可以由程序查詢和清零。 方式方式1:16位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 當(dāng)當(dāng)TMOD中的中的M10、M0l時(shí),選定方式時(shí),選定方式1工作。工作。方式方式1時(shí),時(shí),T0、T1的邏輯結(jié)構(gòu)如圖的邏輯結(jié)構(gòu)如圖63所示。這種方式下,計(jì)所示。這種方式下,計(jì)數(shù)寄存器由數(shù)寄存器由16位組成,位組成,THx
16、高八位和高八位和TLx的低的低8位。位。計(jì)數(shù)時(shí),計(jì)數(shù)時(shí),TLx溢出后向溢出后向THx進(jìn)位,進(jìn)位,THx溢出后將溢出后將TFx置置位,如果中斷允許,位,如果中斷允許,CPU響應(yīng)中斷并轉(zhuǎn)入中斷服務(wù)程序,由響應(yīng)中斷并轉(zhuǎn)入中斷服務(wù)程序,由內(nèi)部硬件清內(nèi)部硬件清TFx。TFx也可以由程序查詢和清零。也可以由程序查詢和清零。 方式方式2:定時(shí)常數(shù)自動(dòng)重裝載的:定時(shí)常數(shù)自動(dòng)重裝載的8位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 當(dāng)當(dāng)TMOD中的中的M11、M00時(shí),選定方式時(shí),選定方式2工作。這種方式工作。這種方式是將是將16位計(jì)數(shù)寄存器分為兩個(gè)位計(jì)數(shù)寄存器分為兩個(gè)8位寄存器,組成一個(gè)可重載的位寄存器,組成一個(gè)可重載的8位
17、計(jì)數(shù)寄存器。方式位計(jì)數(shù)寄存器。方式2時(shí)定時(shí)器時(shí)定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0、T1的邏輯結(jié)構(gòu)如的邏輯結(jié)構(gòu)如圖圖64所示。所示。在方式在方式2中,中,TLx作為作為8位計(jì)數(shù)寄存器,位計(jì)數(shù)寄存器,THx作為作為8位計(jì)數(shù)常數(shù)位計(jì)數(shù)常數(shù)寄存器。寄存器。 當(dāng)當(dāng)TLx計(jì)數(shù)溢出時(shí),一方面將計(jì)數(shù)溢出時(shí),一方面將TFx置位,并向置位,并向CPU申請(qǐng)中斷;申請(qǐng)中斷;另一方面將另一方面將THx的內(nèi)容重新裝入的內(nèi)容重新裝入TLx中,繼續(xù)計(jì)數(shù)。中,繼續(xù)計(jì)數(shù)。根據(jù)對(duì)根據(jù)對(duì)TMOD寄存器中寄存器中M1和和M0的設(shè)定,的設(shè)定,T0可選擇四種可選擇四種不同的工作方式,而不同的工作方式,而T1只具有三種工作方式(即方式只具有三種工作方
18、式(即方式0、方式、方式1和方式和方式2)。)。 方式方式0 0:1313位定時(shí)器位定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器當(dāng)當(dāng)TMOD中的中的M10、M00時(shí),選定方式時(shí),選定方式0工作。方式工作。方式0時(shí)的結(jié)構(gòu)如圖時(shí)的結(jié)構(gòu)如圖62所示。這種方式下,計(jì)數(shù)寄存器由所示。這種方式下,計(jì)數(shù)寄存器由13位組成,位組成,即即THx高八位高八位(作計(jì)數(shù)器作計(jì)數(shù)器)和和TLx的低的低5位位(32分頻的定標(biāo)器分頻的定標(biāo)器)構(gòu)成。構(gòu)成。TLx的高的高3位未用。位未用。計(jì)數(shù)時(shí),計(jì)數(shù)時(shí),TLx的低的低5位溢出后向位溢出后向THx進(jìn)位,進(jìn)位,THx溢出后將溢出后將TFx置置位,并向位,并向CPU申請(qǐng)中斷。申請(qǐng)中斷。6.2.2 6.
19、2.2 定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T0T0、T1 T1 的工作方式的工作方式重新裝入不影響重新裝入不影響THx的內(nèi)容。的內(nèi)容。方式方式2適合于作為串行口波特率發(fā)生器使用。適合于作為串行口波特率發(fā)生器使用。 方式方式3當(dāng)當(dāng)TMOD中的中的M1l、M01時(shí),選定方式時(shí),選定方式3工作。這種方式是是將工作。這種方式是是將T0分為一個(gè)分為一個(gè)8位定時(shí)器計(jì)數(shù)器和一個(gè)位定時(shí)器計(jì)數(shù)器和一個(gè) 8位定時(shí)器,位定時(shí)器,TL0用于用于 8位定位定時(shí)器計(jì)數(shù)器,時(shí)器計(jì)數(shù)器,TH0用于用于8位定時(shí)器。方式位定時(shí)器。方式3時(shí)定時(shí)器計(jì)數(shù)器時(shí)定時(shí)器計(jì)數(shù)器T0、T1邏輯結(jié)構(gòu)分別如圖邏輯結(jié)構(gòu)分別如圖65、圖、圖66所示。所示。 工作
20、方式工作方式3下的定時(shí)器下的定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0 方式方式3時(shí),時(shí),T0的結(jié)構(gòu)見圖的結(jié)構(gòu)見圖65 所示。其工作與方式所示。其工作與方式0時(shí)相同,只是此時(shí)相同,只是此時(shí)的計(jì)數(shù)器為時(shí)的計(jì)數(shù)器為8位計(jì)數(shù)器位計(jì)數(shù)器TL0,它占用了,它占用了T0的的GATE、INT0、啟動(dòng)、啟動(dòng)停止控制位停止控制位TR0、T0引腳引腳 (P3.4) 以及以及 計(jì)數(shù)溢出標(biāo)志位計(jì)數(shù)溢出標(biāo)志位TF 0和和T0的中斷矢量的中斷矢量(地址為地址為000BH)等。等。TH0所構(gòu)成的定時(shí)器只能作為定時(shí)器用,因?yàn)榇藭r(shí)的外部引所構(gòu)成的定時(shí)器只能作為定時(shí)器用,因?yàn)榇藭r(shí)的外部引腳腳T0已為定時(shí)器計(jì)數(shù)器已為定時(shí)器計(jì)數(shù)器TL0所占用。這時(shí)它
21、占用了所占用。這時(shí)它占用了T1的啟動(dòng)的啟動(dòng)停止控制位停止控制位TR1、計(jì)數(shù)溢出標(biāo)志位、計(jì)數(shù)溢出標(biāo)志位TF1及及T1中斷矢量中斷矢量(地址為地址為001BH) 。T0方式方式3時(shí),時(shí),T1的結(jié)構(gòu)如圖的結(jié)構(gòu)如圖66所示,所示,T1只可選方式只可選方式0、1或或2。由于此時(shí)計(jì)數(shù)溢出標(biāo)志位由于此時(shí)計(jì)數(shù)溢出標(biāo)志位TF1及及T1中斷矢量中斷矢量(地址為地址為001BH)已被已被TH0所占用,所以所占用,所以T1僅能作為波特率發(fā)生器或其它不用中斷的僅能作為波特率發(fā)生器或其它不用中斷的地方。作串行口波特率發(fā)生器時(shí),地方。作串行口波特率發(fā)生器時(shí),T1的計(jì)數(shù)輸出直接去串行口,的計(jì)數(shù)輸出直接去串行口,只需設(shè)置好工作
22、方式,串行口波特率發(fā)生器自動(dòng)開始運(yùn)行,如只需設(shè)置好工作方式,串行口波特率發(fā)生器自動(dòng)開始運(yùn)行,如要停止工作,只需向要停止工作,只需向T1送一個(gè)設(shè)為工作方式送一個(gè)設(shè)為工作方式3的控制字即可。的控制字即可。80C52中的中的T2是一個(gè)是一個(gè)16位的、具有自動(dòng)重裝載和捕獲能位的、具有自動(dòng)重裝載和捕獲能力的定時(shí)器計(jì)數(shù)器。在力的定時(shí)器計(jì)數(shù)器。在T2的內(nèi)部,除了兩個(gè)的內(nèi)部,除了兩個(gè)8位計(jì)數(shù)器位計(jì)數(shù)器TL2、TH2和控制寄存器和控制寄存器T2CON及及T2MOD之外,還設(shè)置有捕獲寄存之外,還設(shè)置有捕獲寄存器器RCAP2L(低字節(jié))和(低字節(jié))和RCAP2H(高字節(jié))。(高字節(jié))。T2的計(jì)數(shù)脈沖的計(jì)數(shù)脈沖源可以
23、有兩個(gè):一個(gè)是內(nèi)部機(jī)器周期,另一個(gè)是由源可以有兩個(gè):一個(gè)是內(nèi)部機(jī)器周期,另一個(gè)是由T2(P10)端輸入的外部計(jì)數(shù)脈沖。端輸入的外部計(jì)數(shù)脈沖。T2象象T0、T1一樣,既可用做定時(shí)器,一樣,既可用做定時(shí)器,也可用做計(jì)數(shù)器,由也可用做計(jì)數(shù)器,由T2CON中的中的C/T位的電平所決定。位的電平所決定。T2有有3種工作方式種工作方式 自動(dòng)重裝載、俘獲和波特率發(fā)生器方式,由自動(dòng)重裝載、俘獲和波特率發(fā)生器方式,由T2CON中有關(guān)位決定。中有關(guān)位決定。輸入引腳輸入引腳T2(P10)是外部計(jì)數(shù)脈沖輸入端;輸入引)是外部計(jì)數(shù)脈沖輸入端;輸入引腳腳T2EX(P11)是外部控制信號(hào)輸入端。)是外部控制信號(hào)輸入端。 6
24、.3 6.3 定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T2T2 控制寄存器控制寄存器 T2CON T2控制寄存器控制寄存器T2CON是一個(gè)逐位定義的特殊功能寄存器,是一個(gè)逐位定義的特殊功能寄存器,其字節(jié)地址為其字節(jié)地址為C8HC8H,位地址為,位地址為C8HC8HCFHCFH。其格式如下:。其格式如下:位地址位地址 CFHCEHCDHCCHCBHCAHC9HC8H位功能位功能 TF2EXF2RCLKTCLKEXEN2TR2/T2CP/RL2 TF2(T2CON7)T2 T2 溢出標(biāo)志。溢出標(biāo)志。 定時(shí)器定時(shí)器T2T2溢出時(shí)置位,并申請(qǐng)中斷。只能靠軟件清除。但在波溢出時(shí)置位,并申請(qǐng)中斷。只能靠軟件清除。但在波特
25、率發(fā)生器方式下,也即特率發(fā)生器方式下,也即RCLK1或或TCLK1時(shí),定時(shí)器溢出不時(shí),定時(shí)器溢出不對(duì)對(duì)TF2TF2置位。置位。 EXF2(T2CON6)T2外部標(biāo)志。外部標(biāo)志。 當(dāng)當(dāng)EXEN21,且,且T2EX引腳上出現(xiàn)負(fù)跳變而造成捕獲或重裝載時(shí),引腳上出現(xiàn)負(fù)跳變而造成捕獲或重裝載時(shí),6.3.1 6.3.1 定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T2T2中的特殊功能寄存器中的特殊功能寄存器EXF2置位,申請(qǐng)中斷。這時(shí)若已允許置位,申請(qǐng)中斷。這時(shí)若已允許T2中斷,中斷,CPU將響應(yīng)中將響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序。斷,轉(zhuǎn)向中斷服務(wù)程序。EXF2要靠軟件來(lái)清除。要靠軟件來(lái)清除。 RCLK(T2CON5)接收時(shí)鐘標(biāo)
26、志。接收時(shí)鐘標(biāo)志。 靠軟件置位或清除,用以選擇靠軟件置位或清除,用以選擇T2或或T1作串行口接收波特率作串行口接收波特率發(fā)生器。發(fā)生器。RCLK1時(shí),用時(shí),用T2溢出脈沖作為串行口的接收時(shí)鐘;溢出脈沖作為串行口的接收時(shí)鐘;RCLK0時(shí),用時(shí),用T1的溢出脈沖作接收時(shí)鐘。的溢出脈沖作接收時(shí)鐘。 TCLK(T2CON4)發(fā)送時(shí)鐘標(biāo)志。發(fā)送時(shí)鐘標(biāo)志。 靠軟件置位或清除,用以選擇靠軟件置位或清除,用以選擇T2或或T1作串行口發(fā)送波特率發(fā)作串行口發(fā)送波特率發(fā)生器。生器。TCLKl時(shí),用時(shí),用T2溢出脈沖作為串行口的發(fā)送時(shí)鐘;溢出脈沖作為串行口的發(fā)送時(shí)鐘;TCLK0時(shí),用時(shí),用T1的溢出脈沖作發(fā)送時(shí)鐘。的
27、溢出脈沖作發(fā)送時(shí)鐘。 EXEN2(T2CONT2CON3 3)T2T2外部允許標(biāo)志。外部允許標(biāo)志。 靠軟件設(shè)置或清除,以允許或禁止用外部信號(hào)來(lái)觸發(fā)捕獲靠軟件設(shè)置或清除,以允許或禁止用外部信號(hào)來(lái)觸發(fā)捕獲或重裝載操作。當(dāng)或重裝載操作。當(dāng)EXEN2EXEN2l l時(shí),若時(shí),若T2T2未用作串行口的波特率發(fā)生未用作串行口的波特率發(fā)生器,則在器,則在T2EXT2EX端出現(xiàn)的信號(hào)負(fù)跳變時(shí),將造成端出現(xiàn)的信號(hào)負(fù)跳變時(shí),將造成T2T2捕獲或重裝載,捕獲或重裝載,并置并置EXF2EXF2標(biāo)志為標(biāo)志為 1 1,請(qǐng)求中斷。,請(qǐng)求中斷。EXEN2EXEN20 0時(shí),時(shí),T2EXT2EX端的外部信號(hào)端的外部信號(hào)不起作用
28、。不起作用。 TR2(T2CONT2CON2 2)T2T2運(yùn)行控制位。運(yùn)行控制位。 靠軟件設(shè)置或清除,以決定靠軟件設(shè)置或清除,以決定T2T2是否運(yùn)行。是否運(yùn)行。TR2TR21 1,啟動(dòng),啟動(dòng)T2T2,否則停止。否則停止。 C/T2(T2CONT2CON1 1)T2T2的定時(shí)器方式或計(jì)數(shù)器方式選擇位。的定時(shí)器方式或計(jì)數(shù)器方式選擇位。 靠軟件設(shè)置或清除??寇浖O(shè)置或清除。T2T2有計(jì)數(shù)和定時(shí)兩種功能有計(jì)數(shù)和定時(shí)兩種功能, ,,由控制位,由控制位C/T2C/T2決決定。定。C/T2C/T20 0時(shí),選擇定時(shí)器工作方式。時(shí),選擇定時(shí)器工作方式。TH2TH2和和TL2TL2對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)。對(duì)機(jī)器周期
29、進(jìn)行計(jì)數(shù)。每個(gè)機(jī)器周期使每個(gè)機(jī)器周期使TL2TL2寄存器的值增寄存器的值增1 1。計(jì)數(shù)脈沖的頻率為。計(jì)數(shù)脈沖的頻率為1 11212振蕩振蕩器頻率。器頻率。 C CT2T21 1時(shí),選擇計(jì)數(shù)器工作方式,下降沿觸發(fā)。計(jì)數(shù)脈沖自時(shí),選擇計(jì)數(shù)器工作方式,下降沿觸發(fā)。計(jì)數(shù)脈沖自T2T2(P1P10 0)引腳輸入,)引腳輸入,TH2TH2和和TL2TL2作外部信號(hào)脈沖計(jì)數(shù)器用,每當(dāng)外作外部信號(hào)脈沖計(jì)數(shù)器用,每當(dāng)外部脈沖負(fù)跳變時(shí),計(jì)數(shù)器值增部脈沖負(fù)跳變時(shí),計(jì)數(shù)器值增1 1。其工作情況和時(shí)序關(guān)系與定時(shí)器。其工作情況和時(shí)序關(guān)系與定時(shí)器計(jì)數(shù)器計(jì)數(shù)器T0T0和和T1T1的完全一樣,對(duì)外部計(jì)數(shù)脈沖的要求也相同。的完全
30、一樣,對(duì)外部計(jì)數(shù)脈沖的要求也相同。在每在每個(gè)機(jī)器周期的個(gè)機(jī)器周期的S5P2期間,期間,CPU采樣引腳的輸入電平。若前一機(jī)器周采樣引腳的輸入電平。若前一機(jī)器周期采樣值為期采樣值為1,下一機(jī)器周期采樣值為,下一機(jī)器周期采樣值為0,則計(jì)數(shù)器增,則計(jì)數(shù)器增1,此后的機(jī),此后的機(jī)器周期器周期S3P1期間,新的計(jì)數(shù)值裝入計(jì)數(shù)器。所以檢測(cè)一個(gè)期間,新的計(jì)數(shù)值裝入計(jì)數(shù)器。所以檢測(cè)一個(gè)1到到0的跳的跳變需要兩個(gè)機(jī)器周期,故變需要兩個(gè)機(jī)器周期,故外部脈沖頻率不超過(guò)振蕩器頻率的外部脈沖頻率不超過(guò)振蕩器頻率的1 12424。 CPRL2(T2CON0)捕獲重裝載標(biāo)志。捕獲重裝載標(biāo)志。用軟件設(shè)置或清除。用軟件設(shè)置或清除
31、。CPCPRL2RL2l l選擇捕獲功能,這時(shí)若選擇捕獲功能,這時(shí)若EXEN2EXEN21 1,且,且T2EXT2EX端的信號(hào)負(fù)跳變時(shí),發(fā)生捕獲操作。端的信號(hào)負(fù)跳變時(shí),發(fā)生捕獲操作。CPCPRL2RL20 0,選擇重裝載功能,這時(shí)若選擇重裝載功能,這時(shí)若T2T2溢出或在溢出或在EXEN2EXEN21 1條件下條件下 T2EXT2EX端信號(hào)端信號(hào)負(fù)跳變,都會(huì)造成自動(dòng)重裝載操作。當(dāng)負(fù)跳變,都會(huì)造成自動(dòng)重裝載操作。當(dāng)RCLKRCLKl l或或TCLKTCLKl l時(shí),時(shí),CPRL2RL2控制位不起作用,控制位不起作用,T2 T2 被強(qiáng)制工作于重裝載方式。重裝載發(fā)生被強(qiáng)制工作于重裝載方式。重裝載發(fā)生于
32、于T2T2溢出時(shí),常用來(lái)作波特率發(fā)生器。溢出時(shí),常用來(lái)作波特率發(fā)生器。 T2CONT2CON中的各位都是可位尋址的,因此所有標(biāo)志或控制位中的各位都是可位尋址的,因此所有標(biāo)志或控制位都可以靠軟件來(lái)設(shè)置或清除。都可以靠軟件來(lái)設(shè)置或清除。 T2T2控制寄存器控制寄存器T2CON的復(fù)位值的復(fù)位值=00000000B 方式控制寄存器方式控制寄存器T2MOD 方式控制寄存器方式控制寄存器T2MOD是是80C525458芯片新增添的、芯片新增添的、T2的方式控制寄存器,字節(jié)地址為的方式控制寄存器,字節(jié)地址為C9H。其格式如下:。其格式如下:位地址位地址 D7D6D5D4D3D2D1D0位功能位功能 -T2O
33、E DCEN 該寄存器定義了該寄存器定義了2位,它們的含義是:位,它們的含義是: T2OE(T2MODl)T2輸出允許位。輸出允許位。當(dāng)當(dāng)T2OE1時(shí),允許時(shí)鐘輸出至?xí)r,允許時(shí)鐘輸出至T2(P10)引腳。這)引腳。這一位僅對(duì)一位僅對(duì)80C5480C58有定義。有定義。 DCEN (T2MOD0)向下計(jì)數(shù)允許位。向下計(jì)數(shù)允許位。當(dāng)當(dāng) DCENl時(shí),允許時(shí),允許T2向下向下(減減) 計(jì)數(shù),計(jì)數(shù),當(dāng)當(dāng) DCEN0時(shí),時(shí), T2自動(dòng)向上自動(dòng)向上(增增)計(jì)數(shù)。計(jì)數(shù)。 方式控制寄存器方式控制寄存器T2MOD復(fù)位值復(fù)位值00B 數(shù)據(jù)寄存器數(shù)據(jù)寄存器TH2、TL2 T2有一個(gè)有一個(gè)16位的數(shù)據(jù)寄存器,是由高位
34、的數(shù)據(jù)寄存器,是由高8位寄存器位寄存器TH2和低和低8位位寄存器寄存器TL2所組成。它們都只能字節(jié)尋址,相應(yīng)的字節(jié)地址為所組成。它們都只能字節(jié)尋址,相應(yīng)的字節(jié)地址為CDH和和CCH。這兩個(gè)寄存器都是讀寫寄存器。這兩個(gè)寄存器都是讀寫寄存器。 復(fù)位后,所有這兩個(gè)寄存器全部清零。復(fù)位后,所有這兩個(gè)寄存器全部清零。 捕獲寄存器捕獲寄存器RCAP2HRCAP2H、RCAP2LRCAP2L T2中的捕獲寄存器是一個(gè)中的捕獲寄存器是一個(gè)16位的數(shù)據(jù)寄存器,由高位的數(shù)據(jù)寄存器,由高8位寄存器位寄存器RCAP2H和低和低8 位寄存器位寄存器RCAP2L所組成。它們也都只能字節(jié)尋址,所組成。它們也都只能字節(jié)尋址,
35、相應(yīng)的字節(jié)地址為相應(yīng)的字節(jié)地址為CBH和和CAH。捕獲寄存器捕獲寄存器RCAP2H和和RCAP2L,用于捕獲計(jì)數(shù)器,用于捕獲計(jì)數(shù)器TL2、TH2的計(jì)數(shù)狀態(tài),或用來(lái)預(yù)置計(jì)數(shù)初值的。的計(jì)數(shù)狀態(tài),或用來(lái)預(yù)置計(jì)數(shù)初值的。TH2、TL2和和 RCAP2H、RCAP2L之間接有雙向緩沖器(三態(tài)門)。之間接有雙向緩沖器(三態(tài)門)。復(fù)位后,所有這兩個(gè)寄存器全部清零。復(fù)位后,所有這兩個(gè)寄存器全部清零。T2的工作方式用控制位的工作方式用控制位CPRL2(T2CON0)和)和RCLKTCLK來(lái)選擇。來(lái)選擇。T2可能有三種工作方式(表可能有三種工作方式(表62):):捕獲方式、自動(dòng)重轉(zhuǎn)載方式和波特率發(fā)生器方式。捕獲方
36、式、自動(dòng)重轉(zhuǎn)載方式和波特率發(fā)生器方式。 捕獲方式捕獲方式 捕獲方式是指:在一定條件下,自動(dòng)將計(jì)數(shù)器捕獲方式是指:在一定條件下,自動(dòng)將計(jì)數(shù)器TH2和和TL2的數(shù)的數(shù)據(jù)讀入捕獲寄存器據(jù)讀入捕獲寄存器RCAP2H和和RCAP2L,亦即,亦即TH2和和TL2內(nèi)容內(nèi)容的捕獲是通過(guò)捕獲寄存器的捕獲是通過(guò)捕獲寄存器RCAP2H和和RCAP2L來(lái)實(shí)現(xiàn)的。其工來(lái)實(shí)現(xiàn)的。其工作原理可參見圖作原理可參見圖67。6.3.2 6.3.2 定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T2T2的工作方式的工作方式當(dāng)當(dāng)CPRL2l時(shí),選擇捕獲方式。捕獲操作發(fā)生于下述兩種情時(shí),選擇捕獲方式。捕獲操作發(fā)生于下述兩種情況下:況下: 定時(shí)器定時(shí)器2的寄
37、存器的寄存器TH2和和TL2溢出時(shí),打開重裝載三態(tài)緩沖溢出時(shí),打開重裝載三態(tài)緩沖器,把器,把TH2和和TL2的內(nèi)容自動(dòng)讀入到捕獲寄存器的內(nèi)容自動(dòng)讀入到捕獲寄存器RCAP2H和和RCAP2L中。同時(shí),溢出標(biāo)志中。同時(shí),溢出標(biāo)志TF2置置1,申請(qǐng)中斷。,申請(qǐng)中斷。 當(dāng)當(dāng) EXEN2l且且 T2EX(P11)端的信號(hào)有負(fù)跳變時(shí),將)端的信號(hào)有負(fù)跳變時(shí),將發(fā)生捕獲操作。同時(shí)標(biāo)志發(fā)生捕獲操作。同時(shí)標(biāo)志EXF2置置1,申請(qǐng)中斷。,申請(qǐng)中斷。若若T2的中斷是被允許的,則無(wú)論發(fā)生的中斷是被允許的,則無(wú)論發(fā)生TF2l還是還是EXF2l,CPU都會(huì)響應(yīng)中斷,此中斷向量的地址為都會(huì)響應(yīng)中斷,此中斷向量的地址為002
38、BH。響應(yīng)中斷后,。響應(yīng)中斷后,應(yīng)用軟件清除中斷申請(qǐng)。應(yīng)用軟件清除中斷申請(qǐng)。TF2和和EXF2都是直接可尋址位,可采都是直接可尋址位,可采用用CLR TF2和和CLR EXF2指令實(shí)現(xiàn)清除中斷申請(qǐng)的功能。指令實(shí)現(xiàn)清除中斷申請(qǐng)的功能。 自動(dòng)重裝載方式自動(dòng)重裝載方式自動(dòng)重裝載方式是指:在一定條件下,自動(dòng)地將捕獲寄存器自動(dòng)重裝載方式是指:在一定條件下,自動(dòng)地將捕獲寄存器RCAP2H和和RCAP2L的數(shù)據(jù)裝入計(jì)數(shù)器的數(shù)據(jù)裝入計(jì)數(shù)器TH2和和TL2中。中。一般說(shuō)來(lái)捕獲寄存器一般說(shuō)來(lái)捕獲寄存器RCAP2H和和RCAP2L在這里起預(yù)置在這里起預(yù)置計(jì)數(shù)初值的功能。對(duì)計(jì)數(shù)初值的功能。對(duì)8XC52,其工作原理可參
39、見圖,其工作原理可參見圖68。當(dāng)當(dāng)CPRL20時(shí),選擇自動(dòng)重裝載方式。時(shí),選擇自動(dòng)重裝載方式。重裝載操作發(fā)生于下述兩種情況下:重裝載操作發(fā)生于下述兩種情況下: T2的寄存器的寄存器TH2和和TL2溢出時(shí),打開重裝載三態(tài)緩沖器,溢出時(shí),打開重裝載三態(tài)緩沖器,把捕獲寄存器把捕獲寄存器RCAP2H和和RCAP2L的內(nèi)容自動(dòng)裝載到的內(nèi)容自動(dòng)裝載到TH2和和TL2中。同時(shí),溢出標(biāo)志中。同時(shí),溢出標(biāo)志TF2置置1,申請(qǐng)中斷。,申請(qǐng)中斷。 當(dāng)當(dāng)EXEN21且且T2EX(P11)端的信號(hào)有負(fù)跳變時(shí),將發(fā))端的信號(hào)有負(fù)跳變時(shí),將發(fā)生重裝載操作。同時(shí)標(biāo)志生重裝載操作。同時(shí)標(biāo)志EXF2置置1,申請(qǐng)中斷。,申請(qǐng)中斷。
40、若若T2的中斷是被允許的,則無(wú)論發(fā)生的中斷是被允許的,則無(wú)論發(fā)生TF21還是還是EXF21,CPU都會(huì)響應(yīng)中斷,此中斷向量的地址為都會(huì)響應(yīng)中斷,此中斷向量的地址為002BH。響應(yīng)中斷后,。響應(yīng)中斷后,應(yīng)用軟件撤除中斷申請(qǐng)。應(yīng)用軟件撤除中斷申請(qǐng)。TF2 和和EXF2都是直接可尋址位,可都是直接可尋址位,可采用采用CLR TF2和和CLR EXF2指令實(shí)現(xiàn)撤除中斷申請(qǐng)的功能。指令實(shí)現(xiàn)撤除中斷申請(qǐng)的功能。 波特率發(fā)生器方式波特率發(fā)生器方式當(dāng)當(dāng) T2CON中中 RCLK十十TCLK 1時(shí),時(shí),T2工作于波特率發(fā)生器方式,工作于波特率發(fā)生器方式,即其溢出脈沖用做串行口的時(shí)鐘。即其溢出脈沖用做串行口的時(shí)鐘
41、。T2的波特率發(fā)生器方式下的結(jié)構(gòu)的波特率發(fā)生器方式下的結(jié)構(gòu)圖示于圖圖示于圖69中。在中。在T2CON中,中,RCLK選擇串行通信接收波特率發(fā)選擇串行通信接收波特率發(fā)生器,生器,TCLK選擇發(fā)送波特率發(fā)生器,因而,發(fā)送和接收的波特率選擇發(fā)送波特率發(fā)生器,因而,發(fā)送和接收的波特率可以不同??梢圆煌?此時(shí),此時(shí),T2的輸入時(shí)鐘可由內(nèi)部時(shí)鐘決定,也可由外部時(shí)鐘決定。的輸入時(shí)鐘可由內(nèi)部時(shí)鐘決定,也可由外部時(shí)鐘決定。若若CT20,選用內(nèi)部時(shí)鐘,對(duì)機(jī)器周期計(jì)數(shù),計(jì)數(shù)脈沖的頻率,選用內(nèi)部時(shí)鐘,對(duì)機(jī)器周期計(jì)數(shù),計(jì)數(shù)脈沖的頻率為為112振蕩器頻率振蕩器頻率. 若若C/T2C/T21,選用外部時(shí)鐘,該時(shí)鐘由,選用
42、外部時(shí)鐘,該時(shí)鐘由T2(P10)端輸入,每當(dāng))端輸入,每當(dāng)外部脈沖負(fù)跳變時(shí),計(jì)外部脈沖負(fù)跳變時(shí),計(jì)數(shù)器值增數(shù)器值增l。外部脈沖頻率不超過(guò)振蕩器頻率。外部脈沖頻率不超過(guò)振蕩器頻率的的l24。 由于脈沖溢出時(shí),由于脈沖溢出時(shí),RCAP2H和和RCAP2L的內(nèi)容會(huì)自動(dòng)裝載的內(nèi)容會(huì)自動(dòng)裝載到到TH2和和TL2中,故波特率的值還決定于中,故波特率的值還決定于RCAP2H和和RCAP2L裝裝載初值。載初值。RCLKTCLK還用于選擇還用于選擇T1還是還是T2作串行通信的波特率作串行通信的波特率發(fā)生器。由圖發(fā)生器。由圖69可看出,這兩位的值用來(lái)控制兩個(gè)電子開關(guān)的可看出,這兩位的值用來(lái)控制兩個(gè)電子開關(guān)的位置。
43、值為位置。值為0時(shí),選用時(shí),選用T1做波特率發(fā)生器;值為做波特率發(fā)生器;值為1時(shí),選用時(shí),選用T2做波做波特率發(fā)生器。特率發(fā)生器。 當(dāng)當(dāng)T2用做波特率發(fā)生器時(shí),用做波特率發(fā)生器時(shí),TH2的溢出不使的溢出不使TF2置位,不產(chǎn)生置位,不產(chǎn)生中斷。因而,當(dāng)中斷。因而,當(dāng)T2用做波特率發(fā)生器時(shí),沒有必要禁止中斷。用做波特率發(fā)生器時(shí),沒有必要禁止中斷。 當(dāng)當(dāng)T2用做波特率發(fā)生器時(shí),若用做波特率發(fā)生器時(shí),若EXEN2置置1,則,則T2EX端的信號(hào)產(chǎn)端的信號(hào)產(chǎn)生負(fù)跳變時(shí),生負(fù)跳變時(shí),EXF2將置將置1,但不會(huì)發(fā)生重裝載或捕獲操作。這時(shí),但不會(huì)發(fā)生重裝載或捕獲操作。這時(shí),T2EX可以作為一個(gè)附加的外部中斷源。
44、可以作為一個(gè)附加的外部中斷源。 在波特率發(fā)生器工作方式下,在在波特率發(fā)生器工作方式下,在 T2T2計(jì)數(shù)過(guò)程中(即計(jì)數(shù)過(guò)程中(即 TR2TR2 1之之后)后),不能再讀寫不能再讀寫 TH2TH2和和TL2TL2的內(nèi)容。的內(nèi)容。如果讀,則讀出的結(jié)果不會(huì)精確(因?yàn)槊總€(gè)狀態(tài)加如果讀,則讀出的結(jié)果不會(huì)精確(因?yàn)槊總€(gè)狀態(tài)加1 1);如果寫,);如果寫,則會(huì)影響則會(huì)影響T2T2的溢出而使波特率不穩(wěn)定。在的溢出而使波特率不穩(wěn)定。在T2T2計(jì)數(shù)過(guò)程中,可以計(jì)數(shù)過(guò)程中,可以讀出但不能改寫讀出但不能改寫RCAP2HRCAP2H和和RCAP2LRCAP2L的內(nèi)容。需要訪問的內(nèi)容。需要訪問RCAP2HRCAP2H和和R
45、CAP2LRCAP2L,應(yīng)事先關(guān)閉定時(shí)器工作。,應(yīng)事先關(guān)閉定時(shí)器工作。監(jiān)視定時(shí)器監(jiān)視定時(shí)器T3有時(shí)俗稱看門狗(有時(shí)俗稱看門狗(watchdog),它的作用是強(qiáng)),它的作用是強(qiáng)迫單片微機(jī)進(jìn)入復(fù)位狀態(tài),使之從硬件或軟件故障中解脫出來(lái)。迫單片微機(jī)進(jìn)入復(fù)位狀態(tài),使之從硬件或軟件故障中解脫出來(lái)。在飛利浦在飛利浦80C552中,監(jiān)視定時(shí)器中,監(jiān)視定時(shí)器T3由一個(gè)由一個(gè)11位的分頻器和位的分頻器和8位定時(shí)器位定時(shí)器T3組成,如圖組成,如圖6一一10所示。所示。預(yù)分頻器輸入為晶振預(yù)分頻器輸入為晶振1/12的信號(hào),晶振為的信號(hào),晶振為12MHz時(shí),輸入為時(shí),輸入為1MHz,而而8位定時(shí)器位定時(shí)器T3每隔時(shí)間每隔
46、時(shí)間t加加1:t122048/fosc 當(dāng)晶振為當(dāng)晶振為12MHz時(shí),時(shí),t為為2ms。若若8位定時(shí)器溢出,則產(chǎn)生一個(gè)尖脈沖,它將復(fù)位位定時(shí)器溢出,則產(chǎn)生一個(gè)尖脈沖,它將復(fù)位8C552,同時(shí)在同時(shí)在RST引腳上也將產(chǎn)生引腳上也將產(chǎn)生1個(gè)正的復(fù)位尖脈沖。個(gè)正的復(fù)位尖脈沖。6.4 6.4 監(jiān)視定時(shí)器監(jiān)視定時(shí)器( (看門狗看門狗)T3 )T3 T3由外部引腳由外部引腳/EW和電源控制寄存器中的和電源控制寄存器中的PCON4(WLE)和)和PCONl(PD)控制。)控制。 EW看門狗定時(shí)器允許,低電平有效。看門狗定時(shí)器允許,低電平有效。 EW0時(shí),允許看門狗定時(shí)器,禁止掉電方式;時(shí),允許看門狗定時(shí)器,
47、禁止掉電方式;EW1時(shí)禁止看門狗定時(shí)器,允許掉電方式。時(shí)禁止看門狗定時(shí)器,允許掉電方式。 WLE(PCON4)看門狗定時(shí)器允許重裝標(biāo)志??撮T狗定時(shí)器允許重裝標(biāo)志。 若若WLE置位,定時(shí)器置位,定時(shí)器T3只能被軟件裝入,裝入后只能被軟件裝入,裝入后WLE自動(dòng)自動(dòng)清除。清除。 定時(shí)器定時(shí)器T3的重裝和溢出,產(chǎn)生復(fù)位的時(shí)間間隔,由裝入的重裝和溢出,產(chǎn)生復(fù)位的時(shí)間間隔,由裝入T3的的值決定,對(duì)于值決定,對(duì)于8C552,其監(jiān)視間隔可編程為,其監(jiān)視間隔可編程為2ms至至2255ms。 定時(shí)器定時(shí)器T3的工作過(guò)程:在的工作過(guò)程:在T3溢出時(shí),復(fù)位溢出時(shí),復(fù)位8XC552,并產(chǎn)生,并產(chǎn)生復(fù)位脈沖輸出至復(fù)位引腳
48、復(fù)位脈沖輸出至復(fù)位引腳RST。為防止系統(tǒng)復(fù)位,必須在定時(shí)。為防止系統(tǒng)復(fù)位,必須在定時(shí)器器T3溢出前,通過(guò)軟件對(duì)其進(jìn)行重裝。如果發(fā)生軟件或硬件故溢出前,通過(guò)軟件對(duì)其進(jìn)行重裝。如果發(fā)生軟件或硬件故障,將使軟件對(duì)定時(shí)器障,將使軟件對(duì)定時(shí)器T3重裝失敗,重裝失敗,從而從而T3溢出導(dǎo)致復(fù)位信號(hào)的產(chǎn)生。用這樣的方法可以在軟件溢出導(dǎo)致復(fù)位信號(hào)的產(chǎn)生。用這樣的方法可以在軟件失控時(shí),恢復(fù)程序的正常運(yùn)行。失控時(shí),恢復(fù)程序的正常運(yùn)行。首先要確定系統(tǒng)能在不正常狀態(tài)下維持多久,這段時(shí)間首先要確定系統(tǒng)能在不正常狀態(tài)下維持多久,這段時(shí)間就設(shè)定為監(jiān)視定時(shí)器的最大間隔時(shí)間。因?yàn)榫驮O(shè)定為監(jiān)視定時(shí)器的最大間隔時(shí)間。因?yàn)門3是加是加
49、1計(jì)數(shù)器,計(jì)數(shù)器,T3中裝入中裝入0,則監(jiān)視時(shí)間間隔最長(zhǎng),裝入值為,則監(jiān)視時(shí)間間隔最長(zhǎng),裝入值為FFH時(shí),監(jiān)視時(shí)時(shí),監(jiān)視時(shí)間間隔最短。間間隔最短。在軟件調(diào)試時(shí),可以把在軟件調(diào)試時(shí),可以把EW接高電平以禁止看門狗工作,接高電平以禁止看門狗工作,軟件調(diào)試結(jié)束后再把軟件調(diào)試結(jié)束后再把EW接至低電平,通過(guò)人為制造故障,觀接至低電平,通過(guò)人為制造故障,觀察看門狗工作是否正常。察看門狗工作是否正常。下面一段程序顯示了如何控制看門狗工作的。下面一段程序顯示了如何控制看門狗工作的。 例:例:watchdog使用的一段程序如下:使用的一段程序如下:T3 EQU 0FFH ;定時(shí)器;定時(shí)器T3的地址的地址 PCO
50、N EQU 87H ;電源控制寄存器;電源控制寄存器PCON的地址的地址WATCH_INTV EQU 156 ;看門狗的時(shí)間間隔;看門狗的時(shí)間間隔(2X100ms) 插在用戶程序中對(duì)看門狗需要重新裝入的地方:插在用戶程序中對(duì)看門狗需要重新裝入的地方: LCALL WATCHDOG 看門狗的服務(wù)子程序:看門狗的服務(wù)子程序:WATCHDOG:ORL PCON,10H ;允許定時(shí)器;允許定時(shí)器T3重裝重裝 MOV T3,WATCHINTV ;裝載定時(shí)器;裝載定時(shí)器T3 RET 定時(shí)器計(jì)數(shù)器溢出率的計(jì)算定時(shí)器計(jì)數(shù)器溢出率的計(jì)算定時(shí)器計(jì)數(shù)器運(yùn)行前,在其中預(yù)先置入的常數(shù),稱為定時(shí)器計(jì)數(shù)器運(yùn)行前,在其中預(yù)先
51、置入的常數(shù),稱為定時(shí)常數(shù)或計(jì)數(shù)常數(shù)(定時(shí)常數(shù)或計(jì)數(shù)常數(shù)(TC)。由于計(jì)數(shù)器是加)。由于計(jì)數(shù)器是加 1(向上)計(jì)(向上)計(jì)數(shù)的,故而預(yù)先置入的常數(shù)均應(yīng)為補(bǔ)碼。數(shù)的,故而預(yù)先置入的常數(shù)均應(yīng)為補(bǔ)碼。其中:其中:t定時(shí)時(shí)間。定時(shí)時(shí)間。 Tc機(jī)器周期。機(jī)器周期。6.5 6.5 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的應(yīng)用編程計(jì)數(shù)器的應(yīng)用編程6.5.1 6.5.1 定時(shí)器的應(yīng)用定時(shí)器的應(yīng)用Fosc晶體振蕩器頻率。晶體振蕩器頻率。L計(jì)數(shù)器的長(zhǎng)度。計(jì)數(shù)器的長(zhǎng)度。對(duì)于對(duì)于T0及及T1: 方式方式0 L=13 2138 192 方式方式1 L16 21665 536 方式方式2 L8 28256對(duì)于對(duì)于T2: L16 2166
52、5 536TC定時(shí)器計(jì)數(shù)器初值,即定時(shí)常數(shù)或計(jì)數(shù)常數(shù)。定時(shí)器計(jì)數(shù)器初值,即定時(shí)常數(shù)或計(jì)數(shù)常數(shù)。定時(shí)時(shí)間的倒數(shù)即為溢出率,即:定時(shí)時(shí)間的倒數(shù)即為溢出率,即:根據(jù)要求的定時(shí)時(shí)間根據(jù)要求的定時(shí)時(shí)間t、設(shè)定的定時(shí)器工作方式、設(shè)定的定時(shí)器工作方式(確定確定L) 及晶體振蕩及晶體振蕩頻率頻率fosc,可計(jì)算出,可計(jì)算出TC值值(十進(jìn)制數(shù)十進(jìn)制數(shù)),再將其轉(zhuǎn)換成二進(jìn)制數(shù),再將其轉(zhuǎn)換成二進(jìn)制數(shù)TCB,然后再分別送入然后再分別送入THi、TLi(對(duì)于(對(duì)于T0,i0;對(duì)于;對(duì)于T1,il)。)。 對(duì)于定時(shí)器計(jì)數(shù)器對(duì)于定時(shí)器計(jì)數(shù)器T0、T1: 方式方式0時(shí):時(shí):TCB=TCHTCL,TCH高高8位,位,TCL低低
53、5位位 MOV THi,TCH;送高;送高8位位 MOV TLi,TCL ;送;送低低5位位(高高3位為位為0) 方式方式1時(shí):時(shí):TCB=TCHTCL,TCH高高8位,位,TCL低低8位位 MOV THi,TCH;送高;送高8位位 MOV TLi,TCL ;送;送低低8位。位。 方式方式2時(shí):時(shí):TCB8位重裝載位重裝載 MOV THi,TCB;送高;送高8位位 MOV TLi,TCB;送;送低低8位。位。 對(duì)于定時(shí)器計(jì)數(shù)器對(duì)于定時(shí)器計(jì)數(shù)器T2:與:與T0、T1的方式的方式1相同相同例例 1要求在要求在 P10引腳上產(chǎn)生周期為引腳上產(chǎn)生周期為2 ms的方波輸出。的方波輸出。已知晶體振蕩器的頻
54、率為已知晶體振蕩器的頻率為fosc=6MHz。可使用??墒褂肨0作定時(shí)作定時(shí)器,設(shè)為方式器,設(shè)為方式0,設(shè)定,設(shè)定 lms的定時(shí),每隔的定時(shí),每隔1ms使使P1.0引腳上的電引腳上的電平變反。平變反。 (1) 解:定時(shí)常數(shù)計(jì)算解:定時(shí)常數(shù)計(jì)算 振蕩器的頻率振蕩器的頻率fosc6MHz,機(jī)器周期為,機(jī)器周期為2s,方式,方式0計(jì)數(shù)器計(jì)數(shù)器長(zhǎng)度長(zhǎng)度L13(2138 192),定時(shí)時(shí)間,定時(shí)時(shí)間 t1ms0.001s定時(shí)常數(shù):定時(shí)常數(shù):TC為為76921E0CH,二進(jìn)制數(shù),二進(jìn)制數(shù)TCB0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 B,取低,取低13位,其中高位,其中高8位位TCH
55、F0H,低,低5位為位為TCL 0CH.計(jì) 數(shù) 長(zhǎng) 度 為計(jì) 數(shù) 長(zhǎng) 度 為 1E 0C H = 7692 , 定 時(shí) 為, 定 時(shí) 為 ( 81927692)2s=0.001STMOD的設(shè)定(即控制字)的設(shè)定(即控制字)( 2) 編編 程程 ORG 0000HAJMP MAINORG 000BH;T0中斷矢量中斷矢量AJMP INQPORG 0030HMAIN:MOV TMOD,00H ;寫控制字,設(shè)寫控制字,設(shè)T0為定時(shí)器為定時(shí)器 ;方式;方式0 0 MOV TH0,0F0H ;寫定時(shí)常數(shù);寫定時(shí)常數(shù)( (定時(shí)定時(shí)1ms)1ms) MOV TL0,0CH SETB TR0 ;啟動(dòng);啟動(dòng) T
56、0 SETB ET0 ;允許;允許T0中斷中斷 SETB EA ;開放;開放CPU中斷中斷 AJMP $ ;定時(shí)中斷等待;定時(shí)中斷等待ORG XXXX H ;T0T0中斷服務(wù)程序中斷服務(wù)程序 INQP:MOV TH0,0F0H ;重寫定時(shí)常數(shù);重寫定時(shí)常數(shù) MOV TL0,0CHCPL P10 ;P10變反輸出變反輸出 RETI ;中斷返回;中斷返回 例例2 2使用使用T1T1的方式的方式1 1,設(shè)定,設(shè)定1ms1ms的定時(shí)。同樣,在的定時(shí)。同樣,在P1P10 0引腳上引腳上產(chǎn)生周期為產(chǎn)生周期為2 ms的方波輸出。晶體振蕩器的頻率為的方波輸出。晶體振蕩器的頻率為fosc6 MHz。 解:解:
57、定時(shí)常數(shù)計(jì)算定時(shí)常數(shù)計(jì)算 振蕩器的頻率振蕩器的頻率fosc6MHz6106Hz,方式,方式1計(jì)數(shù)器長(zhǎng)度計(jì)數(shù)器長(zhǎng)度L16,2L21665536 定時(shí)時(shí)間定時(shí)時(shí)間 t1ms0.001s定時(shí)常數(shù)定時(shí)常數(shù)定時(shí)常數(shù)定時(shí)常數(shù)TC轉(zhuǎn)換成二進(jìn)制轉(zhuǎn)換成二進(jìn)制TCB1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 BF E 0 CH所以所以 TCHFEH(高(高8位),位),TCL0CH(低(低8位)位)TMOD的設(shè)定(即控制字)的設(shè)定(即控制字) 編編 程程ORG 0000HAJMP MAINORG 000BH ;T0中斷矢量地址中斷矢量地址 AJMP INQP ORG 100H ;主程序入口;主
58、程序入口MAIN:MOV TMOD,10H ;寫控制字,;寫控制字,T1為定時(shí)器、為定時(shí)器、;方式;方式1MOV TH1,0FEH ;寫定時(shí)常數(shù);寫定時(shí)常數(shù) ,定時(shí),定時(shí)1ms MOV TL1,0CH SETB TR1 ;啟動(dòng);啟動(dòng)T1 SETB ET1 ;允許;允許T1中斷中斷 SETB EA ;開放;開放CPU中斷中斷 AJMP ORG 00 XX H ;中斷服務(wù)程序;中斷服務(wù)程序INQP:MOV TH1,0FEH ;重寫定時(shí)常數(shù);重寫定時(shí)常數(shù) MOV TL1,0CH CPL P10 ;P10變反輸出變反輸出 RETI ;中斷返回;中斷返回例例3欲用欲用80C51產(chǎn)生兩個(gè)方波,一個(gè)周期為產(chǎn)
59、生兩個(gè)方波,一個(gè)周期為200s,另一個(gè)周期為,另一個(gè)周期為400s,該,該80C51同時(shí)使用串行口,用定時(shí)器計(jì)數(shù)器作為同時(shí)使用串行口,用定時(shí)器計(jì)數(shù)器作為波特率發(fā)生器。波特率發(fā)生器。 這時(shí)這時(shí)T0采用方式采用方式3工作,其中,工作,其中,TL0產(chǎn)生產(chǎn)生200s定時(shí),由定時(shí),由 P10輸出方波;輸出方波;TH0產(chǎn)生產(chǎn)生400s定時(shí),由定時(shí),由Pl1輸出方波;輸出方波;T1設(shè)置為方式設(shè)置為方式2作波特率發(fā)生器用。作波特率發(fā)生器用。focs9216 MHz。定時(shí)常數(shù)計(jì)算定時(shí)常數(shù)計(jì)算TL0定時(shí)常數(shù)為定時(shí)常數(shù)為 TCL0:tl0100s單位單位s,為十進(jìn)數(shù)制數(shù)值。十六進(jìn)制數(shù)值為,為十進(jìn)數(shù)制數(shù)值。十六進(jìn)制數(shù)
60、值為TCBL0B3H。TH0定時(shí)常數(shù)為定時(shí)常數(shù)為TCH0:定時(shí)時(shí)間為:定時(shí)時(shí)間為th0200s單位單位s,為十進(jìn)制數(shù)值。十六進(jìn)制的值為,為十進(jìn)制數(shù)值。十六進(jìn)制的值為TCBH066 H。TH1的波特率(詳細(xì)計(jì)算見串行口部分)的波特率(詳細(xì)計(jì)算見串行口部分)設(shè)波特率為設(shè)波特率為2400,則定時(shí)常數(shù)為,則定時(shí)常數(shù)為TC2F6H 編編 程程ORG 0000H AJMP MAINORG 000BH ;TL0的中斷入口的中斷入口AJMP ITL0ORG 00lBH;TH0的中斷入口的中斷入口AJMP ITH0ORG 0100HMAIN:MOV SP, 60H;設(shè)棧指針;設(shè)棧指針MOV TMOD, 23H
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)銷售個(gè)人的工作總結(jié)
- 鄉(xiāng)村醫(yī)生先進(jìn)事跡500字(10篇)
- DB12T 598.17-2015 天津市建設(shè)項(xiàng)目用地控制指標(biāo) 第17部分:墓葬項(xiàng)目
- 中秋節(jié)的慰問信(5篇)
- 團(tuán)支部書記競(jìng)選演講稿四篇
- 新學(xué)期學(xué)習(xí)計(jì)劃范本錦集8篇
- 業(yè)務(wù)員的實(shí)習(xí)報(bào)告范文4篇
- 高等數(shù)學(xué)教程 上冊(cè) 第4版 習(xí)題及答案 P177 第7章 多元微積分
- 天然氣公司股東協(xié)議書-企業(yè)管理
- 3D立體風(fēng)立體商務(wù)匯報(bào)
- pcb線路板抄板方法及步驟
- 地暖工程專項(xiàng)施工方案完整
- 疼痛科手術(shù)分級(jí)管理
- 建筑施工企業(yè)三類人員變更申請(qǐng)表(外省市)
- 中國(guó)三對(duì)三籃球聯(lián)賽比賽記錄表
- 服裝洗滌標(biāo)及成份中英對(duì)照
- 二年級(jí)上冊(cè)數(shù)學(xué)計(jì)算能力測(cè)試題73375
- 氣體流量和流速及與壓力的關(guān)系
- 混凝攪拌實(shí)驗(yàn)操作方法
- 拌混凝土拌合站管理辦法
- 文明如廁講衛(wèi)生PPT課件
評(píng)論
0/150
提交評(píng)論