第五章:MCS-51單片機(jī)定時與計數(shù)器_第1頁
第五章:MCS-51單片機(jī)定時與計數(shù)器_第2頁
第五章:MCS-51單片機(jī)定時與計數(shù)器_第3頁
第五章:MCS-51單片機(jī)定時與計數(shù)器_第4頁
第五章:MCS-51單片機(jī)定時與計數(shù)器_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1單片機(jī)原理與接口技術(shù)單片機(jī)原理與接口技術(shù)韋必忠韋必忠桂林電子科技大學(xué)建筑與交通工程學(xué)院桂林電子科技大學(xué)建筑與交通工程學(xué)院Email:MCS-51 單片機(jī)定時器單片機(jī)定時器/計數(shù)器計數(shù)器35.1定時器定時器/計數(shù)器概述計數(shù)器概述軟件定時軟件定時:執(zhí)行一個循環(huán)程序進(jìn)行時間延遲。定時準(zhǔn)確,不需要外加硬件電路,但增加CPU開銷。硬件定時硬件定時:通過硬件電路實現(xiàn)定時,不占用CPU時間,但使用不夠方便??删幊潭〞r器定時可編程定時器定時:通過對系統(tǒng)時鐘脈沖時鐘脈沖的計數(shù)實現(xiàn)定時。計數(shù)值通過程序設(shè)定,定時準(zhǔn)確,使用方便靈活。 計數(shù)與定時:計數(shù)與定時:定時器定時器/計數(shù)器實際上是計數(shù)器實際上是加加1計數(shù)器計

2、數(shù)器。當(dāng)。當(dāng)它對外部事件進(jìn)行計數(shù)時,由于頻率不固定,此時它對外部事件進(jìn)行計數(shù)時,由于頻率不固定,此時稱之為稱之為計數(shù)器計數(shù)器。當(dāng)它對內(nèi)部固定頻率的機(jī)器周期進(jìn)。當(dāng)它對內(nèi)部固定頻率的機(jī)器周期進(jìn)行計數(shù)時,稱之為行計數(shù)時,稱之為定時器定時器。計數(shù)器容量:計數(shù)器容量:8051單片機(jī)有兩個計數(shù)器,分別稱之為單片機(jī)有兩個計數(shù)器,分別稱之為T0和和T1,這兩個計數(shù)器分別是由兩個,這兩個計數(shù)器分別是由兩個8位的位的RAM單單元組成,即每個計數(shù)器都是元組成,即每個計數(shù)器都是16位的計數(shù)器,最大計位的計數(shù)器,最大計數(shù)量是數(shù)量是65536.定時定時/ /計數(shù)器的結(jié)構(gòu)和工作原理計數(shù)器的結(jié)構(gòu)和工作原理 (一)、定時(一)

3、、定時/計數(shù)器的結(jié)構(gòu)計數(shù)器的結(jié)構(gòu) 定時定時/計數(shù)器的實質(zhì)是加計數(shù)器的實質(zhì)是加1計數(shù)器(計數(shù)器(16位),由高位),由高8位和低位和低8位兩個寄存器組成。位兩個寄存器組成。TMOD是定時是定時/計數(shù)器的工作方式寄存計數(shù)器的工作方式寄存器,確定工作方式和功能;器,確定工作方式和功能;TCON是控制寄存器,控制是控制寄存器,控制T0、T1的啟動和停止及設(shè)置溢出標(biāo)志的啟動和停止及設(shè)置溢出標(biāo)志。 (二二)、定時、定時/計數(shù)器的工作原理計數(shù)器的工作原理計數(shù)次數(shù)和時間之間的確十分相關(guān);只要計數(shù)脈沖的間隔計數(shù)次數(shù)和時間之間的確十分相關(guān);只要計數(shù)脈沖的間隔相等,則計數(shù)值就代表了時間的流逝;單片機(jī)的晶振經(jīng)過相等,

4、則計數(shù)值就代表了時間的流逝;單片機(jī)的晶振經(jīng)過12分頻后獲得一個脈沖源,如果晶振頻率分頻后獲得一個脈沖源,如果晶振頻率12MHZ,則每秒,則每秒產(chǎn)生產(chǎn)生1M脈沖,一個脈沖就是脈沖,一個脈沖就是1微秒,所以計數(shù)脈沖的間隔與微秒,所以計數(shù)脈沖的間隔與晶振頻率有關(guān)。晶振頻率有關(guān)。 (二二)、定時、定時/計數(shù)器的工作原理計數(shù)器的工作原理 加加1計數(shù)器計數(shù)器輸入的計數(shù)脈沖有兩個來源輸入的計數(shù)脈沖有兩個來源:(1)由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng))由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后送來;分頻后送來;(2)另一個是)另一個是T0或或T1引腳輸入的外部脈沖源。引腳輸入的外部脈沖源。 每來一個脈沖計數(shù)器加每來一個

5、脈沖計數(shù)器加1,當(dāng)加到計數(shù)器為全,當(dāng)加到計數(shù)器為全1時,再輸入一時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的個脈沖就使計數(shù)器回零,且計數(shù)器的溢出溢出使使TCON中中TF0或或TF1置置1,向,向CPU發(fā)出中斷請求(定時發(fā)出中斷請求(定時/計數(shù)器中斷允許時)。計數(shù)器中斷允許時)。如果定時如果定時/計數(shù)器工作于定時模式,則表示定時時間已到;如計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。果工作于計數(shù)模式,則表示計數(shù)值已滿。 可見,由溢出時可見,由溢出時計數(shù)器的值計數(shù)器的值減去減去計數(shù)初值計數(shù)初值才是加才是加1計數(shù)器計數(shù)器的的計數(shù)值計數(shù)值。 v設(shè)置為定時器模式時:設(shè)

6、置為定時器模式時:加加1計數(shù)器是對內(nèi)部機(jī)器周期計數(shù)器是對內(nèi)部機(jī)器周期計數(shù)(計數(shù)(1個機(jī)器周期等于個機(jī)器周期等于12個振蕩周期,即計數(shù)頻率個振蕩周期,即計數(shù)頻率為晶振頻率的為晶振頻率的1/12)。)。v所以:計數(shù)值所以:計數(shù)值N乘以機(jī)器周期乘以機(jī)器周期Tcy就是定時時間就是定時時間t 。一旦振蕩周期確定,機(jī)器周期亦確定一旦振蕩周期確定,機(jī)器周期亦確定。v設(shè)置為計數(shù)器模式時:設(shè)置為計數(shù)器模式時:外部事件計數(shù)脈沖由外部事件計數(shù)脈沖由T0或或T1引腳輸入到計數(shù)器。在每個機(jī)器周期的引腳輸入到計數(shù)器。在每個機(jī)器周期的S5P2期間采樣期間采樣T0、T1引腳電平。當(dāng)某周期采樣到一高電平輸入,引腳電平。當(dāng)某周期

7、采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加而下一周期又采樣到一低電平時,則計數(shù)器加1,更,更新的計數(shù)值在新的計數(shù)值在下一個機(jī)器周期下一個機(jī)器周期的的S3P1期間裝入計數(shù)器。期間裝入計數(shù)器。由于檢測一個從由于檢測一個從1到到0的下降沿需要的下降沿需要2個機(jī)器周期,因個機(jī)器周期,因此要求被采樣的電平至少要維持一個機(jī)器周期。最高此要求被采樣的電平至少要維持一個機(jī)器周期。最高計數(shù)頻率是晶振頻率的計數(shù)頻率是晶振頻率的1/24。v當(dāng)晶振頻率為當(dāng)晶振頻率為12MHz時時,最高計數(shù)頻率不超過,最高計數(shù)頻率不超過1/2MHz,即計數(shù)脈沖的周期要大于,即計數(shù)脈沖的周期要大于2 s。 11定時器定

8、時器/計數(shù)器的定時和計數(shù)功能計數(shù)器的定時和計數(shù)功能MCS-51系列單片機(jī)有兩個可編程定時器/計數(shù)器:T0、T1,16位寄存器,加法計數(shù)結(jié)構(gòu)加法計數(shù)結(jié)構(gòu),地址為:T0(TH0,TL0):8CH,8AHT1(TH1,TL1):8DH,8BH特殊功能寄存器特殊功能寄存器每個寄存器(T0,T1)都具有定時和計數(shù)功能12MCS-51定時/計數(shù)器核心是一個16位計數(shù)器(寄存器)。加加1 1信號來源信號來源:外部計數(shù)脈沖外部計數(shù)脈沖、內(nèi)部時鐘脈沖內(nèi)部時鐘脈沖。信號來源方式:由特殊功能寄存器TMOD設(shè)置位 確定。 ,計數(shù)方式(外部); ,定時方式(內(nèi)部)。0T/C 1T/C T/CT/C 80C51單片機(jī)定時

9、單片機(jī)定時/計數(shù)器的工作由兩個特殊功能計數(shù)器的工作由兩個特殊功能寄存器控制。寄存器控制。TMOD:用于設(shè)置其工作方式;用于設(shè)置其工作方式;TCON:用于控制其啟動和中斷申請。用于控制其啟動和中斷申請。n5.2 MCS-515.2 MCS-51定時定時/ /計數(shù)器控制與狀態(tài)寄存器計數(shù)器控制與狀態(tài)寄存器14工作方式控制寄存器工作方式控制寄存器TMOD(狀態(tài)寄存器)(狀態(tài)寄存器)GATETC/1M0M0M1MTC/GATE0計計數(shù)數(shù)器器定定時時 /1計計數(shù)數(shù)器器定定時時 /76543210字節(jié)地址字節(jié)地址89H(不可以位尋址)(不可以位尋址)15M1M0為操作方式選擇位為操作方式選擇位1110010

10、03210方式方式方式方式方式方式方式方式無無效效位位計計數(shù)數(shù)器器,分分成成兩兩個個位位計計數(shù)數(shù)器器自自動動再再裝裝入入位位計計數(shù)數(shù)器器位位計計數(shù)數(shù)器器1T80T816130M1M操作方式操作方式功能說明功能說明 :選擇定時:選擇定時/計數(shù)器模式計數(shù)器模式 ,計數(shù)模式; ,定時模式GATE:選通控制:選通控制GATE=0,選通, 通過TRX啟動定時器。GATE=1, 端口高電平,通過TRX啟動定時器。XINT0T/C 1T/C T/C16啟停與中斷控制寄存器啟停與中斷控制寄存器TCON(控制寄存器)(控制寄存器) 字節(jié)地址88HTCON由定時由定時/計數(shù)器和中斷系統(tǒng)合用。計數(shù)器和中斷系統(tǒng)合用。

11、TR0:定時:定時/計數(shù)器計數(shù)器0啟??刂莆粏⑼?刂莆挥绍浖刂贫〞r/計數(shù)器0的啟動/停止。TR1:定時:定時/計數(shù)器計數(shù)器1啟停控制位啟??刂莆挥绍浖刂贫〞r/計數(shù)器1的啟動/停止。17TF0:定時:定時/計數(shù)器計數(shù)器0中斷請求標(biāo)志位中斷請求標(biāo)志位當(dāng)定時/計數(shù)器0計數(shù)回0時,由內(nèi)部硬件置位TF0(TF0=1),請求中斷。中斷服務(wù)程序一旦執(zhí)行,硬件自動清0(TF0=0)。TF1:定時:定時/計數(shù)器計數(shù)器1中斷請求標(biāo)志位中斷請求標(biāo)志位當(dāng)定時/計數(shù)器1計數(shù)回0時,由內(nèi)部硬件置位TF1(TF1=1),請求中斷。中斷服務(wù)程序一旦執(zhí)行,硬件自動清0(TF1=0)。18IE0:外部中斷:外部中斷0中斷請求

12、標(biāo)志中斷請求標(biāo)志IT0=1, 負(fù)跳變觸發(fā)中斷,硬件置IE0=1,當(dāng)轉(zhuǎn)向中斷服務(wù)程序后,硬件自動清IE0=0。IT0=0, 低電平觸發(fā)中斷。硬件置IE0=1,當(dāng)轉(zhuǎn)向中斷服務(wù)程序后,硬件自動清IE0=0。IE1:外部中斷:外部中斷1中斷請求標(biāo)志中斷請求標(biāo)志IT1=1, 負(fù)跳變觸發(fā)中斷,硬件置IE1=1,當(dāng)轉(zhuǎn)向中斷服務(wù)程序后,硬件自動清IE1=0。IT1=0, 低電平觸發(fā)中斷。硬件置IE1=1,當(dāng)轉(zhuǎn)向中斷服務(wù)程序后,硬件自動清IE1=0。0INT0INT1INT1INT19IT0:外部中斷:外部中斷0觸發(fā)方式控制位觸發(fā)方式控制位軟件設(shè)置。IT0=1,外部中斷 ,發(fā)生10跳變,產(chǎn)生中斷請求,向主機(jī)申請

13、中斷。IT0=0,則 端口低電平觸發(fā)中斷。IT1:外部中斷:外部中斷1觸發(fā)方式控制位觸發(fā)方式控制位軟件設(shè)置。IT1=1,外部中斷 ,發(fā)生10跳變,產(chǎn)生中斷請求,向主機(jī)申請中斷。IT1=0,則 端口低電平觸發(fā)中斷。以上后四項用于中斷系統(tǒng)。TCON可位尋址,其位地址為可位尋址,其位地址為88H8FH。1INT0INT0INT1INT205.3 定時定時/計數(shù)器的工作方式(工作模式)計數(shù)器的工作方式(工作模式)設(shè)置 (TMOD寄存器)選擇定時模式還是計數(shù)模式;對M1M0的設(shè)置,用于選擇T0、T1的四種操作(工作)方式。四種工作模式:即模式四種工作模式:即模式0、模式、模式1、模式、模式2、模式、模式

14、3。 TL0、TH0,TL1、TH1兩對定時/計數(shù)器T/C21(1)定時)定時/計數(shù)方式計數(shù)方式0 (13位計數(shù)器)以定時/計數(shù)器0(T0)為例TH0全部8位,TL0低5位構(gòu)成13位定時/計數(shù)器。當(dāng) 時(定時方式),開關(guān)接至振蕩12分頻輸出;當(dāng) 時(計數(shù)方式),開關(guān)接通T0(P3.4)當(dāng)計數(shù)脈沖發(fā)生負(fù)跳變計數(shù)器加1。0T/C 1T/C 22)( bit80TH)( bit50TL0TF&1 1分頻分頻120=TC/1=TC/).(43P0T0TRGATE0INT).(23POSC控制控制中中斷斷請請求求計計數(shù)數(shù)示示意意圖圖方方式式位位定定時時 /130nGATE:看圖,選擇了定時或計數(shù)工作方式

15、后,定時/計數(shù)脈沖不一定能到達(dá)計數(shù)器端,中間還有一個開關(guān),如果這個開關(guān)不合上,計數(shù)脈沖就沒法過去。那開關(guān)什么時候合上呢?有兩種情況:nGATE=0時,GATE非后是1,進(jìn)入或門,或門總是輸出1(與或門的另一個輸入端INT0無關(guān)),在這種情況下,開關(guān)打開或者合上只取決于TR0,只要TR0=1,開關(guān)就合上,計數(shù)脈沖就得以暢通無阻,如TR0=0則開關(guān)打開,計數(shù)脈沖無法通過。因此,定時/計數(shù)器是否工作,只取決于TR0。nGATE=1時,計數(shù)脈沖通路上的開關(guān)不僅要由TR0來控制,而且還要受到INT0引腳的控制,只有TR0=1,且INT0引腳也是高電平,開關(guān)才合上,計數(shù)脈沖才能通過。2324定時定時/計數(shù)

16、方式計數(shù)方式1 (16位計數(shù)器)邏輯結(jié)構(gòu)和方式0完全一樣,只是TL是8位計數(shù)器。計數(shù)范圍165536如晶振6MHz,最小定時時間為:2s(機(jī)器周期)最大定時時間為:131ms(大約)。n該模式對應(yīng)的是一個16位的定時器/計數(shù)器,如圖5-5所示。其結(jié)構(gòu)與操作幾乎與模式0完全相同,惟一的差別是:在模式1中,寄存器TH0和TL0是以全部16位參與操作。用于定時工作方式時,定時時間為nt=(216-T0初值)振蕩周期12n用于計數(shù)工作方式時,計數(shù)最大長度為21665536個外部脈沖。 圖5-5 定時器/計數(shù)器T0工作模式1邏輯結(jié)構(gòu)框圖 26定時定時/計數(shù)方式計數(shù)方式2 (自動再裝入8位計數(shù)器)THx,

17、TLx相互獨立(x=0,1)。TLx作為8位計數(shù)器,THx是初值寄存器。TLx溢出后,置TFx申請中斷。THx初值重新裝入TLx。只需通過軟件設(shè)置一次,啟動后無限次定時/計數(shù)運行。(自動進(jìn)行下一次)n模式2把TL0(或TL1)設(shè)置成一個可以自動重裝載的8位定時器/計數(shù)器,如圖5-6所示。TL0計數(shù)溢出時,不僅使溢出中斷標(biāo)志位TF0置1,而且還自動把TH0中的內(nèi)容重新裝載到TL0中。這時,16位計數(shù)器被拆成兩個,TL0用作8位計數(shù)器,TH0用以保存初值。 n用于定時工作方式時,其定時時間(TF0溢出周期)為nt=(28-TH0初值)振蕩周期12n用于計數(shù)工作方式時,最大計數(shù)長度為28=256個外

18、部脈沖。 圖5-6 定時器/計數(shù)器T0工作模式2邏輯結(jié)構(gòu)框圖 28定時定時/計數(shù)方式計數(shù)方式3 (T0分成兩個8位計數(shù)器,T1無效)將T0分成兩個獨立的8位計數(shù)器。TL0組成完整的8位定時/計數(shù)器;既能定時,又能計數(shù)。TH0只能組成8位定時器(內(nèi)部脈沖)。只能定時。TL0占用T0全部控制信號及中斷請求標(biāo)志位(TR0、TF0等)TH0只能借用TR1和TF1。P3.5口(T1外部計數(shù)脈沖輸入口)不能占用。n工作模式3對T0和T1大不相同。若將T0設(shè)置為模式3,TL0和TH0被分成為兩個相互獨立的8位計數(shù)器,如圖5-7所示。 圖5-7 定時器/計數(shù)器T0工作模式3邏輯結(jié)構(gòu)框圖 305.4 5.4 定

19、時定時/ /計數(shù)器應(yīng)用計數(shù)器應(yīng)用基本步驟:基本步驟:工作方式控制字(TMOD)的設(shè)置;計數(shù)初值的計算并裝入THx、TLx;中斷允許位ETx、EA的設(shè)置,使主機(jī)開放中斷;啟/停位TRx的設(shè)置。31計數(shù)初值的確定計數(shù)初值的確定在方式0下,當(dāng)為計數(shù)方式時,計數(shù)值范圍18192(213 )在方式1下,當(dāng)為計數(shù)方式時,計數(shù)值范圍165536(216 )在方式2下,當(dāng)為計數(shù)方式時,計數(shù)值范圍1256(28 )32當(dāng)計數(shù)時,采用預(yù)置數(shù)預(yù)置數(shù)的方法,比如我們需要計數(shù)100次,那就先放入65436,再來100個脈沖,就到65536了。定時時間:(2n 計數(shù)初值)*機(jī)器周期晶振機(jī)器周期12機(jī)器周期機(jī)器周期定時時間

20、定時時間計數(shù)初值計數(shù)初值-n2=33在方式0下最小定時時間為:2s最大定時時間為:16384s(8192*2)在方式1下最小定時時間為:2s最大定時時間為:131ms(65536*2)如晶振周期6MHz,機(jī)器周期為2s。n思路:思路:需要采用軟件計數(shù)器的概念,先用定時/計數(shù)器做一個(比如50毫秒)的定時器,定時時間到了以后不要立即執(zhí)行相關(guān)操作(比如輸出),而是將軟件計數(shù)器中的值加1,如果軟件計數(shù)器計到了20,那定時時間就是20*50=1000毫秒了。34如何實現(xiàn)定時如何實現(xiàn)定時1S或者其它定時時間?或者其它定時時間?35例題例題:生成周期為500 s的等寬正方波。機(jī)器晶振6MHz。使用T1以方式0工作,由P1.0輸出500 s機(jī)器周期:2 s。定時時間250 s。以250 s為周期在P1.0端交替輸出高低電平。36機(jī)器周期機(jī)器周期定時時間定時時間計數(shù)初值計數(shù)初值-n2=8067125819222502X13 8067-4096=3971 13971-2048=1923 11923-1024=899 1899-512=387 1387-256=131 1131-128=3 164 032 01

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論