版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)原理及應(yīng)用教程單片機(jī)原理及應(yīng)用教程 (C語言版)語言版)第第6章章 MCS-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器主主 編:編:周國運(yùn)周國運(yùn)中國水利水電出版社中國水利水電出版社第第6章章 MCS-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器目目 錄錄6.1 單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器的結(jié)構(gòu)及原理的結(jié)構(gòu)及原理6.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0、T16.3 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T26.4 定時(shí)器定時(shí)器/計(jì)數(shù)器應(yīng)用舉計(jì)數(shù)器應(yīng)用舉例例 定時(shí)器定時(shí)器/計(jì)數(shù)器應(yīng)用極其廣泛。計(jì)數(shù)器應(yīng)用極其廣泛。本章主要討論本章主要討論MCS-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)計(jì)數(shù)器數(shù)器T0、T1
2、、T2的邏輯結(jié)構(gòu)、工作原理、的邏輯結(jié)構(gòu)、工作原理、使用方法和應(yīng)用。使用方法和應(yīng)用。本章為單片機(jī)的主要內(nèi)容,也是學(xué)習(xí)第本章為單片機(jī)的主要內(nèi)容,也是學(xué)習(xí)第七章串行口的基礎(chǔ)。七章串行口的基礎(chǔ)。第第6章章 MCS-51單片機(jī)的定時(shí)器單片機(jī)的定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器6.1 單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器的結(jié)構(gòu)及原理的結(jié)構(gòu)及原理主要內(nèi)容主要內(nèi)容6.1.1 單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)6.1.2 單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器的工作原理計(jì)數(shù)器的工作原理6.1.1 單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu) MCS-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器的原理結(jié)構(gòu)圖計(jì)數(shù)器的原
3、理結(jié)構(gòu)圖 CPU中斷中斷溢溢出出溢溢出出溢溢出出定時(shí)器定時(shí)器0 0定時(shí)器定時(shí)器1 1定時(shí)器定時(shí)器2 2TMODT2CONT2MODTCONTH0TL0TH1TL1TH2TL2RCAP2LRCAP2H模模式式模模式式T2(P1.0)T1(P3.5)T2EX(P1.1)T0(P3.4)模模式式控控制制控控制制控控制制中斷中斷重裝重裝捕獲捕獲6.1.1 MCS-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu) MCS-51主要由如下構(gòu)成主要由如下構(gòu)成: 三個(gè)三個(gè)16位的可編程定時(shí)器位的可編程定時(shí)器/計(jì)數(shù)器:定時(shí)器計(jì)數(shù)器:定時(shí)器/計(jì)數(shù)計(jì)數(shù)器器0、1和和2。 每個(gè)定時(shí)器有兩部分構(gòu)成:每個(gè)定時(shí)器有兩
4、部分構(gòu)成:THx和和TLx 特殊功能寄存器特殊功能寄存器TMOD和和TCON ,主要對(duì),主要對(duì)T0和和T1進(jìn)行控制。進(jìn)行控制。 特殊功能寄存器特殊功能寄存器T2MOD和和T2CON ,主要對(duì),主要對(duì)T2進(jìn)行控制,進(jìn)行控制,RCAP2H、RCAP2L為為T2服務(wù)。服務(wù)。 引腳引腳P3.4、P3.5、P1.0,為計(jì)數(shù)脈沖輸入。,為計(jì)數(shù)脈沖輸入。 定時(shí)器定時(shí)器T0、T1和和T2有中斷功能,計(jì)數(shù)器溢出或有中斷功能,計(jì)數(shù)器溢出或被觸發(fā)(被觸發(fā)(T2),向),向CPU 發(fā)出中斷請(qǐng)求。發(fā)出中斷請(qǐng)求。6.1.2 單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器的工作原理計(jì)數(shù)器的工作原理 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0、T1、
5、T2 的內(nèi)部結(jié)構(gòu)簡圖如下的內(nèi)部結(jié)構(gòu)簡圖如下圖所示。圖所示。C/ /T=0中斷請(qǐng)求中斷請(qǐng)求振蕩器振蕩器TLx(8位位)THx(8位位)Tx n分頻分頻TFxC/ /T=1控制控制TRx做定時(shí)器做定時(shí)器做計(jì)數(shù)器做計(jì)數(shù)器6.1.2 MCS-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器的工作原理計(jì)數(shù)器的工作原理 從上圖可以看出:從上圖可以看出: 定時(shí)器的實(shí)質(zhì)是一個(gè)加定時(shí)器的實(shí)質(zhì)是一個(gè)加1計(jì)數(shù)器計(jì)數(shù)器。C/T =0 ,為定時(shí)器,為定時(shí)器計(jì)數(shù)頻率:計(jì)數(shù)頻率:fosc/12計(jì)數(shù)信號(hào)由片內(nèi)振蕩電路提供,振蕩脈沖計(jì)數(shù)信號(hào)由片內(nèi)振蕩電路提供,振蕩脈沖n分分頻送給計(jì)數(shù)器,每個(gè)機(jī)器周期計(jì)數(shù)器值增頻送給計(jì)數(shù)器,每個(gè)機(jī)器周期計(jì)數(shù)
6、器值增1。 C/T =1 ,為計(jì)數(shù)器,為計(jì)數(shù)器計(jì)數(shù)信號(hào)由計(jì)數(shù)信號(hào)由Tx引腳引腳(P3.4、P3.5和和P1.0)輸入,輸入,每輸入一有效信號(hào),相應(yīng)的計(jì)數(shù)器中的內(nèi)容進(jìn)行加每輸入一有效信號(hào),相應(yīng)的計(jì)數(shù)器中的內(nèi)容進(jìn)行加1計(jì)數(shù)器的最高計(jì)數(shù)頻率為:計(jì)數(shù)器的最高計(jì)數(shù)頻率為:fosc/24 1)每每1個(gè)輸入脈沖的下降沿使計(jì)數(shù)器計(jì)個(gè)輸入脈沖的下降沿使計(jì)數(shù)器計(jì)1個(gè)數(shù)個(gè)數(shù) 2)每每1個(gè)機(jī)器周期對(duì)引腳采樣個(gè)機(jī)器周期對(duì)引腳采樣1次,當(dāng)上次,當(dāng)上1個(gè)機(jī)器個(gè)機(jī)器周期采樣為高、本機(jī)器周期采樣為低為周期采樣為高、本機(jī)器周期采樣為低為1個(gè)下降沿。個(gè)下降沿。 6.1.2 MCS-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器的工作原理計(jì)數(shù)
7、器的工作原理 控制信號(hào)控制信號(hào)TRx=1時(shí),定時(shí)器啟動(dòng)時(shí),定時(shí)器啟動(dòng)。 當(dāng)定時(shí)器由全當(dāng)定時(shí)器由全1加到全加到全0時(shí)計(jì)滿溢出,時(shí)計(jì)滿溢出,TFx=1,向向CPU申請(qǐng)中斷;同時(shí),定時(shí)器從申請(qǐng)中斷;同時(shí),定時(shí)器從0開始繼續(xù)開始繼續(xù)計(jì)數(shù)。計(jì)數(shù)。6.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0、T1主要內(nèi)容主要內(nèi)容6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器6.2.2 T0、T1的工作模式的工作模式6.2.3 T0、T1的使用方法的使用方法6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器1. T0、T1 模式寄存器模式寄存器TMOD 功能:確定定時(shí)器的工作模式。功能:確定定時(shí)器的工作模式。其格式為
8、:其格式為:TMOD(89H)D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0GATE外部門控制位。外部門控制位。GATE1,使用外部控制門,且,使用外部控制門,且TRx=1 當(dāng)當(dāng)P3.2(P3.3)為高時(shí)啟動(dòng)定時(shí)器,)為高時(shí)啟動(dòng)定時(shí)器, P3.2(P3.3)為)為T0、T1運(yùn)行外部控制引腳。運(yùn)行外部控制引腳。6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器GATE0,禁止外部信號(hào)控制定時(shí)器禁止外部信號(hào)控制定時(shí)器/計(jì)數(shù)器。計(jì)數(shù)器。C/T定時(shí)或計(jì)數(shù)方式選擇位定時(shí)或計(jì)數(shù)方式選擇位 C/T0,為定時(shí)器;,為定時(shí)器;C/T1,為計(jì)數(shù)器,為計(jì)數(shù)器 計(jì)數(shù)采樣:計(jì)數(shù)采樣:C
9、PU在每機(jī)器周期的在每機(jī)器周期的S5P2期間,對(duì)期間,對(duì)計(jì)數(shù)脈沖輸入引腳進(jìn)行采樣。計(jì)數(shù)脈沖輸入引腳進(jìn)行采樣。若前一機(jī)器周期采樣值為若前一機(jī)器周期采樣值為1,下一機(jī)器周期采,下一機(jī)器周期采樣值為樣值為0,則計(jì)數(shù)器增,則計(jì)數(shù)器增1,即下降沿計(jì)數(shù)即下降沿計(jì)數(shù)。6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器 M1、M0工作模式選擇位。工作模式選擇位。表表6-1 定時(shí)器定時(shí)器/計(jì)數(shù)器的工作模式計(jì)數(shù)器的工作模式M1 M0工作模式工作模式功功 能能00模式模式013位定時(shí)位定時(shí)/計(jì)數(shù)計(jì)數(shù) 01模式模式116位定時(shí)位定時(shí)/計(jì)數(shù)計(jì)數(shù)10模式模式28位初值自動(dòng)重裝定時(shí)位初值自動(dòng)重裝定時(shí)/計(jì)數(shù)計(jì)數(shù)11模式模
10、式3定時(shí)器定時(shí)器0:TL0可可8位定時(shí)或計(jì)數(shù)位定時(shí)或計(jì)數(shù) TH0為為8位定時(shí)器。位定時(shí)器。定時(shí)器定時(shí)器1:無此方式:無此方式6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器2. T0、T1控制寄存器控制寄存器TCONTCON(88H)D7D6D5D4D3D2D1D0TF1 TR1 TF0 TR0 IE1IT1IE0IT0TF1、TF0:T1、T0的溢出標(biāo)志位的溢出標(biāo)志位 計(jì)數(shù)溢出,計(jì)數(shù)溢出,TFx=1。 中斷方式:中斷方式:自動(dòng)清零;自動(dòng)清零; 查詢方式:查詢方式:軟件清零。軟件清零。6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器TR1、TR0:T1、T0啟??刂莆弧⑼?刂莆?。
11、 置置1,啟動(dòng)定時(shí)器;,啟動(dòng)定時(shí)器; 清清0,關(guān)閉定時(shí)器。,關(guān)閉定時(shí)器。注意:注意: GATE=1 ,TRx與與P3.2(P3.3)的配合控制)的配合控制。IE1、IE0:外部中斷外部中斷1、0請(qǐng)求標(biāo)志位請(qǐng)求標(biāo)志位IT1、IT0:外部中斷外部中斷1、0觸發(fā)方式選擇位觸發(fā)方式選擇位6.2.2 T0、T1的工作模式的工作模式MCS-51的的T0、T1共有共有4種工作模式種工作模式,前前三種模式下兩個(gè)定時(shí)器三種模式下兩個(gè)定時(shí)器/計(jì)數(shù)器工作原理是相同計(jì)數(shù)器工作原理是相同的,的,只有模式只有模式3下兩者才有差別。以下主要以下兩者才有差別。以下主要以T0為例進(jìn)行介紹,為例進(jìn)行介紹,T1類似。類似。模式模式
12、0與模式與模式1 的區(qū)別僅僅是計(jì)數(shù)器的位數(shù)不同,的區(qū)別僅僅是計(jì)數(shù)器的位數(shù)不同,前者是前者是13位,后者是位,后者是16位,其它完全相同,現(xiàn)在一位,其它完全相同,現(xiàn)在一般都不使用模式般都不使用模式0,故不講。,故不講。 當(dāng)設(shè)置當(dāng)設(shè)置M1M001時(shí),選擇模式時(shí),選擇模式1,為,為16位定位定時(shí)器時(shí)器/計(jì)數(shù)器。計(jì)數(shù)器。模式模式1原理結(jié)構(gòu)原理結(jié)構(gòu)模式模式1原理結(jié)構(gòu)由原理結(jié)構(gòu)由4部分構(gòu)成(下頁圖):部分構(gòu)成(下頁圖):信號(hào)源信號(hào)源運(yùn)行控制運(yùn)行控制計(jì)數(shù)器計(jì)數(shù)器溢出標(biāo)志溢出標(biāo)志1模式模式16.2.2 T0、T1的工作模式的工作模式6.2.2 T0、T1的工作模式的工作模式圖圖6-6 T0模式模式1原理結(jié)構(gòu)原
13、理結(jié)構(gòu)振蕩器振蕩器12分頻分頻TL0(8位位)TH0TF0+T0(P3.4)TR0(P3.2)GATEC/T=0C/T=1中斷中斷(8位位)01 運(yùn)行控制運(yùn)行控制計(jì)數(shù)器計(jì)數(shù)器溢出中斷溢出中斷信號(hào)源信號(hào)源6.2.2 T0、T1的工作模式的工作模式信號(hào)源信號(hào)源C/T設(shè)為設(shè)為1,為計(jì)數(shù)器,為計(jì)數(shù)器,用用P3.4引腳脈沖引腳脈沖C/T設(shè)為設(shè)為0,為定時(shí)器,為定時(shí)器,用內(nèi)部脈沖用內(nèi)部脈沖運(yùn)行控制運(yùn)行控制GATE=1,由外部信號(hào)控制運(yùn)行,由外部信號(hào)控制運(yùn)行此時(shí)應(yīng)該設(shè)置此時(shí)應(yīng)該設(shè)置TR0=1P3.2引腳為高電平,引腳為高電平,T0運(yùn)行運(yùn)行GATE=0,由內(nèi)部控制運(yùn)行由內(nèi)部控制運(yùn)行TR0設(shè)置為設(shè)置為1,T0運(yùn)
14、行運(yùn)行6.2.2 T0、T1的工作模式的工作模式計(jì)數(shù)部件計(jì)數(shù)部件由由TL0、TH0組成,是一個(gè)組成,是一個(gè)16位的加法計(jì)數(shù)器,位的加法計(jì)數(shù)器,對(duì)送來的脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)溢出后輸出由低變高,對(duì)送來的脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)溢出后輸出由低變高,設(shè)置溢出標(biāo)志。設(shè)置溢出標(biāo)志。溢出標(biāo)志:溢出標(biāo)志:TF0。當(dāng)計(jì)數(shù)部件溢出后對(duì)其置當(dāng)計(jì)數(shù)部件溢出后對(duì)其置1,向,向CPU 請(qǐng)求中斷。請(qǐng)求中斷。模式模式1定時(shí)時(shí)間的計(jì)算公式如下:定時(shí)時(shí)間的計(jì)算公式如下:定時(shí)時(shí)間定時(shí)時(shí)間=計(jì)數(shù)值計(jì)數(shù)值機(jī)器周期機(jī)器周期 =(216 - 定時(shí)初值)定時(shí)初值)振蕩周期振蕩周期12最大定時(shí)時(shí)間(初值為最大定時(shí)時(shí)間(初值為0時(shí))為:時(shí))為: 216
15、 振蕩周期振蕩周期 12。2模式模式26.2.2 T0、T1的工作模式的工作模式M1 M0 10時(shí),選擇模式時(shí),選擇模式2,為,為8位定時(shí)器位定時(shí)器/計(jì)數(shù)器,且初值自動(dòng)重裝。計(jì)數(shù)器,且初值自動(dòng)重裝。模式模式2原理結(jié)構(gòu)原理結(jié)構(gòu)原理結(jié)構(gòu)如下頁圖所示,由原理結(jié)構(gòu)如下頁圖所示,由4部分構(gòu)成:部分構(gòu)成:信號(hào)源信號(hào)源運(yùn)行控制運(yùn)行控制計(jì)數(shù)器計(jì)數(shù)器溢出標(biāo)志溢出標(biāo)志在能夠滿足計(jì)數(shù)要求時(shí),盡可能地選擇模在能夠滿足計(jì)數(shù)要求時(shí),盡可能地選擇模式式2。圖圖6-7 T0(T1)模式)模式2原理結(jié)構(gòu)原理結(jié)構(gòu)8位初值自動(dòng)重裝位初值自動(dòng)重裝振蕩器振蕩器12分頻分頻T0 (P3.4)TR0TF0中中斷斷GATE+C/T=0C/T
16、=1TL0(8位位)TH0(8位位)P3.201 運(yùn)行控制運(yùn)行控制計(jì)數(shù)器計(jì)數(shù)器溢出標(biāo)志溢出標(biāo)志信號(hào)源信號(hào)源6.2.2 T0、T1的工作模式的工作模式M1 M0 11,選擇模式,選擇模式3。邏輯結(jié)構(gòu)如圖邏輯結(jié)構(gòu)如圖6-8和和6-9所示:所示: 結(jié)構(gòu)結(jié)構(gòu): TL0、TH0分為兩個(gè)獨(dú)立的分為兩個(gè)獨(dú)立的8位計(jì)數(shù)器位計(jì)數(shù)器 TL0: 8位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器使用使用T0所有的資源和控制位所有的資源和控制位 TH0:8位定時(shí)器位定時(shí)器使用使用T1所有的資源所有的資源(中斷向量、中斷控制中斷向量、中斷控制ET1、PT1)和控制位和控制位(TR1、TF1)6.2.2 T0、T1的工作模式的工作模式3模
17、式模式3圖圖6-8 模式模式3下下T0的原理結(jié)構(gòu)圖的原理結(jié)構(gòu)圖振蕩器振蕩器12分頻分頻TR1振蕩器振蕩器T0(P3.4)TR0TF1GATE+C/T=0C/T=1TL0(8位)位)TH0P3.2中斷中斷中斷中斷TF012分頻分頻(8位)位)6.2.2 T0、T1的工作模式的工作模式T0模式模式3時(shí)時(shí)T1的工作模式的工作模式T1可以模式可以模式0模式模式2工作。工作。T1的結(jié)構(gòu)如圖的結(jié)構(gòu)如圖6-9所示所示由于由于TF1及中斷矢量被及中斷矢量被TH0占用,所以占用,所以T1僅用作僅用作波特率發(fā)生器或其它不用中斷的地方。波特率發(fā)生器或其它不用中斷的地方。T1作波特率發(fā)生器,其計(jì)數(shù)溢出直接送至串作波特
18、率發(fā)生器,其計(jì)數(shù)溢出直接送至串行口。行口。設(shè)置好工作方式,串行口波特率發(fā)生器開始設(shè)置好工作方式,串行口波特率發(fā)生器開始自動(dòng)運(yùn)行。自動(dòng)運(yùn)行。 TMOD中中T1的的M1M0=11,T1停止工作,因?yàn)橥V构ぷ?,因?yàn)門1沒有模式?jīng)]有模式3。6.2.2 T0、T1的工作模式的工作模式圖圖6-9 T0模式模式3時(shí)時(shí)T1的原理結(jié)構(gòu)的原理結(jié)構(gòu)串行口串行口重新裝入重新裝入C/T=0C/T=1C/T=1C/T=0T1(P3.5)T1(P3.5)(a)T1模式模式1振蕩器振蕩器12分頻分頻振蕩器振蕩器12分頻分頻串行口串行口TH1(8位位)TL1(8位位)TL1(8位位)TH1(8位位)(b)T1模式模式26.2.
19、2 T0、T1的工作模式的工作模式6.2.3 T0、T1的使用方法的使用方法T0、T1各有兩種功能(定時(shí)各有兩種功能(定時(shí)/計(jì)數(shù))、計(jì)數(shù))、4種或種或3種工作模式,如何選擇其功能和工作模式,是使用種工作模式,如何選擇其功能和工作模式,是使用T0、T1編寫程序需要首先解決的問題。編寫程序需要首先解決的問題。1.選擇定時(shí)和計(jì)數(shù)概念選擇定時(shí)和計(jì)數(shù)概念如果需要對(duì)單片機(jī)外部輸入的脈沖進(jìn)行計(jì)量,如果需要對(duì)單片機(jī)外部輸入的脈沖進(jìn)行計(jì)量,則選擇計(jì)數(shù)功能則選擇計(jì)數(shù)功能(如統(tǒng)計(jì)產(chǎn)品數(shù)量、輪子轉(zhuǎn)到周數(shù)(如統(tǒng)計(jì)產(chǎn)品數(shù)量、輪子轉(zhuǎn)到周數(shù)(每周產(chǎn)生的脈沖數(shù)目一定)、液滴的數(shù)目等)(每周產(chǎn)生的脈沖數(shù)目一定)、液滴的數(shù)目等);
20、否則選擇定時(shí)功能否則選擇定時(shí)功能(如定時(shí)啟動(dòng)(如定時(shí)啟動(dòng)/停止機(jī)器運(yùn)轉(zhuǎn)、停止機(jī)器運(yùn)轉(zhuǎn)、定時(shí)打開定時(shí)打開/關(guān)閉閥門、產(chǎn)生方波、產(chǎn)生某種頻率的聲關(guān)閉閥門、產(chǎn)生方波、產(chǎn)生某種頻率的聲音等)。音等)。6.2.3 T0、T1的使用方法的使用方法2.選擇工作模式選擇工作模式(1)計(jì)算計(jì)數(shù)值)計(jì)算計(jì)數(shù)值N1)計(jì)數(shù)情況)計(jì)數(shù)情況需要計(jì)的數(shù)需要計(jì)的數(shù)N往往是給定的,如計(jì)往往是給定的,如計(jì)100個(gè)數(shù)、個(gè)數(shù)、200個(gè)數(shù)等。個(gè)數(shù)等。2)定時(shí)情況)定時(shí)情況在這種情況下往往給出的是定時(shí)的時(shí)間在這種情況下往往給出的是定時(shí)的時(shí)間t根據(jù)定時(shí)器每個(gè)機(jī)器周期計(jì)根據(jù)定時(shí)器每個(gè)機(jī)器周期計(jì)1個(gè)數(shù)的規(guī)律,則計(jì)個(gè)數(shù)的規(guī)律,則計(jì)數(shù)值數(shù)值N與定
21、時(shí)時(shí)間與定時(shí)時(shí)間t、機(jī)器周期、機(jī)器周期TMC、晶振頻率、晶振頻率fosc的的關(guān)系如下:關(guān)系如下:t = N TMC 、 TMC = 12/fosc N = t / TMC = t fosc /12 (公式(公式6-1)6.2.3 T0、T1的使用方法的使用方法(2)確定工作模式)確定工作模式如果如果N256,則選擇模式,則選擇模式1;否則選擇模式;否則選擇模式2,或者選擇模式或者選擇模式3。首選模式首選模式2。3計(jì)數(shù)初值計(jì)數(shù)初值X的計(jì)算的計(jì)算計(jì)數(shù)初值計(jì)數(shù)初值X = 最大計(jì)數(shù)值最大計(jì)數(shù)值 - - 計(jì)數(shù)值計(jì)數(shù)值N (公式公式6-2)計(jì)數(shù)初值和工作模式有關(guān),即與計(jì)數(shù)位數(shù)有關(guān)計(jì)數(shù)初值和工作模式有關(guān),即
22、與計(jì)數(shù)位數(shù)有關(guān):模式模式1:16位計(jì)數(shù),位計(jì)數(shù),N=65536,(216)模式模式2:8位計(jì)數(shù),位計(jì)數(shù),N=256,(28)模式模式3:8位計(jì)數(shù),位計(jì)數(shù),N=256,(28)6.2.3 T0、T1的使用方法的使用方法 4什么情況下選擇模式什么情況下選擇模式3模式模式3是在系統(tǒng)既需要波特率發(fā)生器,又需要多是在系統(tǒng)既需要波特率發(fā)生器,又需要多個(gè)定時(shí)器個(gè)定時(shí)器/計(jì)數(shù)器,而且計(jì)數(shù)值都比較?。ㄓ?jì)數(shù)器,而且計(jì)數(shù)值都比較?。∟256)的情況下使用。的情況下使用。這時(shí)定時(shí)器這時(shí)定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T1作為波特率發(fā)生器,定時(shí)作為波特率發(fā)生器,定時(shí)器器/計(jì)數(shù)器計(jì)數(shù)器T0分為兩個(gè)分為兩個(gè)8位定時(shí)器,或者分成的兩個(gè)位
23、定時(shí)器,或者分成的兩個(gè)其中一個(gè)作其中一個(gè)作8位定時(shí)器、另一個(gè)位定時(shí)器、另一個(gè)8位計(jì)數(shù)器使用。位計(jì)數(shù)器使用。6.2.3 T0、T1的使用方法的使用方法5使用使用T0、T1編程的方法步驟編程的方法步驟 計(jì)算計(jì)數(shù)值計(jì)算計(jì)數(shù)值N。 確定工作模式。確定工作模式。 計(jì)算定時(shí)或計(jì)數(shù)的初值計(jì)算定時(shí)或計(jì)數(shù)的初值X。 編寫初始化程序:編寫初始化程序:設(shè)置設(shè)置TMOD,設(shè)置,設(shè)置TLx和和THx,(需要時(shí)開,(需要時(shí)開T0、T1中斷和總中斷),設(shè)置中斷和總中斷),設(shè)置TRx啟動(dòng)運(yùn)行。啟動(dòng)運(yùn)行。 編寫編寫T0、T1的應(yīng)用程序。的應(yīng)用程序。前前3項(xiàng)為編寫初始化程序的準(zhǔn)備,稱之為初始化項(xiàng)為編寫初始化程序的準(zhǔn)備,稱之為初始
24、化準(zhǔn)備。準(zhǔn)備。6.2.3 T0、T1的使用方法的使用方法6在運(yùn)行中讀取在運(yùn)行中讀取TLx、THx的方法的方法在在T0、T1運(yùn)行情況下,運(yùn)行情況下,TLx和和THx中的值在中的值在變化,讀的期間有可能進(jìn)位,讀出的數(shù)據(jù)不正確變化,讀的期間有可能進(jìn)位,讀出的數(shù)據(jù)不正確。正確的讀取方法如下:正確的讀取方法如下:doxh=THx;xl=TLx;while(xh!=THx);程序中的程序中的xl、xh為已經(jīng)定義過的無符號(hào)字符為已經(jīng)定義過的無符號(hào)字符型變量。型變量。6.2.3 T0、T1的使用方法的使用方法 例例6-1 對(duì)對(duì)89C52單片機(jī)編程,使用定時(shí)器單片機(jī)編程,使用定時(shí)器/ /計(jì)計(jì)數(shù)器數(shù)器T0以模式以
25、模式1定時(shí),以定時(shí),以中斷方式實(shí)現(xiàn)從中斷方式實(shí)現(xiàn)從P1.0引引腳產(chǎn)生周期為腳產(chǎn)生周期為1000s的方波。設(shè)單片機(jī)的振蕩頻的方波。設(shè)單片機(jī)的振蕩頻率為率為12MHz。分析與計(jì)算分析與計(jì)算(1)方波產(chǎn)生原理)方波產(chǎn)生原理 將將T0設(shè)為定時(shí)器,設(shè)為定時(shí)器,計(jì)算出合適的初值,定計(jì)算出合適的初值,定時(shí)到了之后對(duì)時(shí)到了之后對(duì)P1.0引腳取反即可。引腳取反即可。(2)選擇工作模式)選擇工作模式計(jì)算計(jì)數(shù)值計(jì)算計(jì)數(shù)值NP1.06.2.3 T0、T1的使用方法的使用方法 定時(shí)時(shí)間定時(shí)時(shí)間t:周期為周期為1000s的方波要求的方波要求t =周期周期/2 = 1000/2 = 500(s)對(duì)應(yīng)計(jì)數(shù)值:對(duì)應(yīng)計(jì)數(shù)值:N
26、= t/機(jī)器周期機(jī)器周期 = 500/1 = 500N=500256,所以選擇模式,所以選擇模式1。 模式字:模式字:TMOD=0000 0001B = 0 x01(3)計(jì)算初值)計(jì)算初值X X = 65536 N = 65036 = 0 xfe0c方波周期方波周期T定時(shí)時(shí)間定時(shí)時(shí)間t6.2.3 T0、T1的使用方法的使用方法C語言程序:語言程序:#include /包含特殊功能寄存器庫包含特殊功能寄存器庫sbitP1_0=P10; /定義位變量定義位變量void main( ) TMOD=0 x01; /T0用模式用模式1、定時(shí)、定時(shí)TL0=0 x0c;TH0=0 xfe;/設(shè)置定時(shí)器的初值
27、設(shè)置定時(shí)器的初值ET0=1; /允許允許T0中斷中斷 EA=1; /允許允許CPU中斷中斷TR0=1; /啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器while(1); /等待中斷等待中斷 6.2.3 T0、T1的使用方法的使用方法void time0_int(void) interrupt 1/中斷服務(wù)程序中斷服務(wù)程序TL0=0 x0c;TH0=0 xfe;/定時(shí)器重賦初值定時(shí)器重賦初值P1_0=P1_0;/P1.0取反,輸出方波取反,輸出方波匯編語言程序匯編語言程序:ORG0000HSJMPMAINORG000BH;T0中斷入口地址中斷入口地址LJMPINT_T06.2.3 T0、T1的使用方法的使用方法MAIN
28、: ;主程序主程序MOV SP,#0DFH;設(shè)置堆棧指針;設(shè)置堆棧指針MOV TMOD,#01H;T0模式模式1定時(shí)定時(shí)MOVTL0, #0CH;設(shè)置定時(shí)初值;設(shè)置定時(shí)初值MOVTH0, #0FEH SETBET0;T0開中斷開中斷SETBEA;CPU開中斷開中斷SETBTR0;啟動(dòng);啟動(dòng)T0SJMP$;等待;等待T0中斷中斷INT_T0: ;中斷服務(wù)程序中斷服務(wù)程序MOV TL0, #0CHMOVTH0, #0FEH;重裝定時(shí)初值;重裝定時(shí)初值CPLP1.0 ;P1.0取反取反RETI ;中斷返回;中斷返回END6.2.3 T0、T1的使用方法的使用方法例例6-2 設(shè)單片機(jī)的振蕩頻率為設(shè)單片
29、機(jī)的振蕩頻率為12MHz,用,用T1編編程實(shí)現(xiàn)從程實(shí)現(xiàn)從P1.0輸出頻率為輸出頻率為2KHz的方波。的方波。1、分析與計(jì)算、分析與計(jì)算(1)選擇工作模式)選擇工作模式要求輸出方波頻率為要求輸出方波頻率為2KHz,則周期為,則周期為500s,只需對(duì)只需對(duì)P1.0每每250s取反一次即可,即定時(shí)時(shí)間取反一次即可,即定時(shí)時(shí)間t為為250s。需要計(jì)算計(jì)數(shù)值需要計(jì)算計(jì)數(shù)值N計(jì)算計(jì)數(shù)值計(jì)算計(jì)數(shù)值N:N= t/ TMC = t fosc/12 =25012M/12=250N=250256,所以選擇模式所以選擇模式2。6.2.3 T0、T1的使用方法的使用方法模式字:模式字:TMOD=0010 0000 B
30、= 0 x20(2)初值)初值X計(jì)算計(jì)算 X=256N X=6則則TH1=TL1=6 2、采用中斷處理方式的程序、采用中斷處理方式的程序方波周期方波周期T定時(shí)時(shí)間定時(shí)時(shí)間t6.2.3 T0、T1的使用方法的使用方法(1)中斷方式)中斷方式C語言程序語言程序# include /包含特殊功能寄存器庫包含特殊功能寄存器庫sbit P1_0=P10;voidmain( )TMOD=0 x20; /設(shè)置工作模式設(shè)置工作模式TL1=0 x06;TH1=0 x06; /為定時(shí)器賦初值為定時(shí)器賦初值ET1=1; /允許定時(shí)允許定時(shí)1中斷中斷EA=1;TR1=1;/啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器1while(1);/等
31、待中斷等待中斷void time0_int(void) interrupt 3 P1_0=P1_0;6.2.3 T0、T1的使用方法的使用方法(2)中斷方式匯編語言程序)中斷方式匯編語言程序ORG0000HLJMPMAIN ORG001BH;中斷處理程序;中斷處理程序CPLP1.0RETIORG 0030H;主程序;主程序MAIN:MOV SP,#0DFHMOV TMOD,#20H MOV TL1,#06HMOV TH1,#06HSETB ET1;允許定時(shí)器;允許定時(shí)器1中斷中斷SETB EA;允許;允許CPU中斷中斷SETB TR1;啟動(dòng)定時(shí)器;啟動(dòng)定時(shí)器1SJMP $;等待中斷;等待中斷E
32、ND6.2.3 T0、T1的使用方法的使用方法3、采用查詢方式程序、采用查詢方式程序(1)查詢方式)查詢方式C語言程序語言程序# include sbitP1_0=P10;void main()TMOD=0 x02;TL0=0 x06;TH0=0 x06; TR0=1;while (1)while(!TF0) ;/查詢計(jì)數(shù)溢出查詢計(jì)數(shù)溢出TF0=0;P1_0=P1_0; 6.2.3 T0、T1的使用方法的使用方法(2)查詢方式匯編語言程序)查詢方式匯編語言程序MAIN:;主程序;主程序MOV TMOD,#02HMOVTL0,#06HMOVTH0,#06HSETBTR0LOOP:JNBTF0,$
33、;查詢計(jì)數(shù)溢出;查詢計(jì)數(shù)溢出CLRTF0CPLP1.0 SJMPLOOPEND6.3 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T2主要內(nèi)容主要內(nèi)容6.3.1 T2的特殊功能寄存器的特殊功能寄存器6.3.2 T2的工作方式的工作方式定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T2的功能結(jié)構(gòu)圖的功能結(jié)構(gòu)圖 CPU中斷中斷溢溢出出T2CONT2MODTH2TL2RCAP2LRCAP2HT2(P1.0)T2EX(P1.1)模模式式控控制制重裝重裝捕獲捕獲定時(shí)器定時(shí)器T2概述概述1、 T2的功能:的功能:89C52中的中的T2是一個(gè)是一個(gè)16位的、位的、具有自動(dòng)重裝載和捕獲功能的定時(shí)器具有自動(dòng)重裝載和捕獲功能的定時(shí)器/計(jì)數(shù)器。計(jì)數(shù)器。
34、2、T2的結(jié)構(gòu):的結(jié)構(gòu):除除TL2、TH2和控制寄存器和控制寄存器T2CON及及T2MOD之外,還增加了捕獲寄存器之外,還增加了捕獲寄存器RCAP2L(低字節(jié))和(低字節(jié))和RCAP2H(高字節(jié))。(高字節(jié))。 3、T2的時(shí)鐘源:的時(shí)鐘源:有兩個(gè)。有兩個(gè)。一個(gè)是內(nèi)部機(jī)器周一個(gè)是內(nèi)部機(jī)器周期,另一個(gè)是由期,另一個(gè)是由T2端輸入的外部計(jì)數(shù)脈沖端輸入的外部計(jì)數(shù)脈沖。4、T2的工作方式:的工作方式:有有4種。自動(dòng)重裝、捕獲、種。自動(dòng)重裝、捕獲、波特率發(fā)生器、可編程時(shí)鐘輸出。波特率發(fā)生器、可編程時(shí)鐘輸出。 5、 T2的專用引腳:的專用引腳:增加了兩個(gè)引腳,增加了兩個(gè)引腳,T2(P1.0)、T2EX(P1
35、.1),分別稱為時(shí)鐘,分別稱為時(shí)鐘I/O和外部觸發(fā)引腳。和外部觸發(fā)引腳。 6.3.1 T2的特殊功能寄存器的特殊功能寄存器TF2:T2溢出中斷標(biāo)志位溢出中斷標(biāo)志位 T2溢出時(shí)置位,申請(qǐng)中斷。軟件清零。溢出時(shí)置位,申請(qǐng)中斷。軟件清零。波特率發(fā)生器方式波特率發(fā)生器方式下下(RCLK1或或TCLK1),T2溢出不對(duì)溢出不對(duì)TF2進(jìn)行置位進(jìn)行置位。T2CON(C8H)D7D6D5D4D3D2D1D0TF2 EXF2 RCLK TCLK EXEN2 TR2C/T2 CP/RL21. T2控制寄存器控制寄存器T2CON 可位尋址和字節(jié)尋址可位尋址和字節(jié)尋址 功能:選擇功能:選擇T2的工作方式和工作模式。的
36、工作方式和工作模式。格式如下格式如下EXF2:T2外部觸發(fā)中斷標(biāo)志位外部觸發(fā)中斷標(biāo)志位 當(dāng)當(dāng)EXEN21,且,且T2EX引腳上引腳上有負(fù)跳變有負(fù)跳變 觸發(fā)捕獲或重裝操作時(shí),觸發(fā)捕獲或重裝操作時(shí),EXF2置置1,向,向CPU發(fā)出中發(fā)出中斷請(qǐng)求斷請(qǐng)求。 需軟件清需軟件清0。RCLK:串行口接收時(shí)鐘允許位:串行口接收時(shí)鐘允許位RCLK=1時(shí)時(shí),T2溢出信號(hào)分頻后做串行口工溢出信號(hào)分頻后做串行口工作在模式作在模式1和和3的接收時(shí)鐘。的接收時(shí)鐘。RCLK=0時(shí)時(shí),T1溢出信號(hào)分頻信后做串行口溢出信號(hào)分頻信后做串行口接收時(shí)鐘。接收時(shí)鐘。T2CON(C8H)D7D6D5D4D3D2D1D0TF2 EXF2
37、RCLK TCLK EXEN2 TR2C/T2 CP/RL26.3.1 T2的特殊功能寄存器的特殊功能寄存器6.3.1 T2的特殊功能寄存器的特殊功能寄存器TCLK:串行口發(fā)送時(shí)鐘允許位:串行口發(fā)送時(shí)鐘允許位TCLK=1時(shí)時(shí),T2溢出信號(hào)分頻后做串行口工作溢出信號(hào)分頻后做串行口工作在模式在模式1和和3的發(fā)送時(shí)鐘。的發(fā)送時(shí)鐘。TCLK=0時(shí)時(shí),T1溢出信號(hào)分頻后做串行口的發(fā)溢出信號(hào)分頻后做串行口的發(fā)送時(shí)鐘。送時(shí)鐘。EXEN2:T2外部觸發(fā)允許位外部觸發(fā)允許位EXEN2=1,T2未做串口時(shí)鐘時(shí),未做串口時(shí)鐘時(shí),T2EX引腳引腳(P1.1)的負(fù)跳變將觸發(fā))的負(fù)跳變將觸發(fā)“捕獲捕獲”或或“重裝重裝”。
38、 EXEN2=0,T2EX引腳上的負(fù)跳變對(duì)引腳上的負(fù)跳變對(duì)T2不起作不起作用。用。TR2 :T2運(yùn)行控制位運(yùn)行控制位TR2=1,啟動(dòng),啟動(dòng)T2;TR2=0,T2停止。停止。C/T2:T2的定時(shí)或計(jì)數(shù)方式選擇位的定時(shí)或計(jì)數(shù)方式選擇位 C/T2=1,T2為計(jì)數(shù)器。為計(jì)數(shù)器。從從T2(P1.0)引腳輸)引腳輸入計(jì)數(shù)脈沖行(下降沿計(jì)數(shù))。入計(jì)數(shù)脈沖行(下降沿計(jì)數(shù))。 C/T2=0,T2為定時(shí)器為定時(shí)器。用機(jī)器周期計(jì)數(shù)。用機(jī)器周期計(jì)數(shù)T2CON(C8H)D7D6D5D4D3D2D1D0TF2 EXF2 RCLK TCLK EXEN2 TR2C/T2 CP/RL26.3.1 T2的特殊功能寄存器的特殊功能
39、寄存器CP/RL2:捕獲和重裝載方式選擇位:捕獲和重裝載方式選擇位 CP/RL2=1,且且EXEN2=1,T2EX(P1.1)的負(fù)的負(fù)跳變將觸發(fā)捕獲操作。跳變將觸發(fā)捕獲操作。 CP/RL2=0,且,且EXEN2=1,T2EX的負(fù)跳變或的負(fù)跳變或T2計(jì)滿溢出時(shí),計(jì)滿溢出時(shí),觸發(fā)自動(dòng)重裝操作觸發(fā)自動(dòng)重裝操作。RCLK=1或或TCLK=1時(shí),時(shí),T2做串口的時(shí)鐘發(fā)生做串口的時(shí)鐘發(fā)生器器,這時(shí),這時(shí)CP/RL2的設(shè)置不起作用,并且的設(shè)置不起作用,并且T2溢出時(shí)會(huì)溢出時(shí)會(huì)自動(dòng)裝載。自動(dòng)裝載。6.3.1 T2的特殊功能寄存器的特殊功能寄存器T2OE:T2輸出允許位輸出允許位T2OE1,可編程時(shí)鐘輸出方式,
40、輸出方波可編程時(shí)鐘輸出方式,輸出方波信號(hào)至信號(hào)至T2(P1.0)引腳。引腳。DCEN:T2增增/減計(jì)數(shù)控制位減計(jì)數(shù)控制位DCEN l,T2遞減計(jì)數(shù)遞減計(jì)數(shù)DCEN0,T2遞增計(jì)數(shù)遞增計(jì)數(shù)T2MOD(C9H)D7 D6 D5 D4 D3 D2D1D0 T2OE DCEN 2. T2模式寄存器模式寄存器T2MOD6.3.1 T2的特殊功能寄存器的特殊功能寄存器3. 計(jì)數(shù)寄存器計(jì)數(shù)寄存器TL2、TH24. 捕獲寄存器捕獲寄存器RCAP2L、RCAP2H有兩個(gè)作用:有兩個(gè)作用:(1)捕獲計(jì)數(shù)器中的值。)捕獲計(jì)數(shù)器中的值。在捕獲方式,在捕獲方式,P1.1引腳引腳觸發(fā)時(shí),將觸發(fā)時(shí),將TL2、TH2中的數(shù)裝
41、入中的數(shù)裝入RCAP2L、RCAP2H中;中;(2)作為初值裝入計(jì)數(shù)器。)作為初值裝入計(jì)數(shù)器。在重裝計(jì)數(shù)方式,計(jì)在重裝計(jì)數(shù)方式,計(jì)數(shù)溢出后,將數(shù)溢出后,將RCAP2L、RCAP2H中的數(shù)裝入中的數(shù)裝入TL2、TH2中中6.3.1 T2的特殊功能寄存器的特殊功能寄存器6.3.2 T2的工作方式的工作方式 定時(shí)器定時(shí)器T2是一個(gè)是一個(gè)16位的定時(shí)器位的定時(shí)器/計(jì)數(shù)器,具有四計(jì)數(shù)器,具有四種工作方式:種工作方式:16位自動(dòng)重裝方式位自動(dòng)重裝方式捕獲方式捕獲方式波特率發(fā)生器方式波特率發(fā)生器方式可編程時(shí)鐘輸出方式可編程時(shí)鐘輸出方式表表6-2 定時(shí)器定時(shí)器T2的四種工作方式的四種工作方式RCLKTCLKC
42、/ / T2CP/ /RL2 T2OE工作方式工作方式000或或100自動(dòng)重裝:自動(dòng)重裝:16位定時(shí)或計(jì)數(shù)位定時(shí)或計(jì)數(shù)000或或110捕獲:捕獲:定時(shí)或計(jì)數(shù)捕獲定時(shí)或計(jì)數(shù)捕獲0/10/1001時(shí)鐘輸出時(shí)鐘輸出(T2EX可作外中斷可作外中斷)若若RCLK+TCLK=1,則同時(shí)又作波特率發(fā)生器則同時(shí)又作波特率發(fā)生器至少至少1個(gè)為個(gè)為1000波特率發(fā)生器波特率發(fā)生器(T2EX可作外中斷)可作外中斷)6.3.2 T2的工作方式的工作方式一、自動(dòng)重裝方式一、自動(dòng)重裝方式(定時(shí)或計(jì)數(shù))(定時(shí)或計(jì)數(shù))1、遞增定時(shí)、計(jì)數(shù)、遞增定時(shí)、計(jì)數(shù)CP/RL20,DCEN=0時(shí),自動(dòng)重裝方式。有時(shí),自動(dòng)重裝方式。有兩種情
43、況引起重裝,結(jié)構(gòu)如下頁圖所示。兩種情況引起重裝,結(jié)構(gòu)如下頁圖所示。(1)計(jì)數(shù)溢出重裝)計(jì)數(shù)溢出重裝 TF2置置1,產(chǎn)生溢出中斷請(qǐng)求;,產(chǎn)生溢出中斷請(qǐng)求; 將將RCAP2L和和RCAP2H的數(shù)裝入的數(shù)裝入TL2和和TH2中。中。(2)外部觸發(fā)重裝)外部觸發(fā)重裝當(dāng)當(dāng)EXEN21,并且,并且T2EX(P1.1)有負(fù)跳變時(shí))有負(fù)跳變時(shí) EXF2置置1,外部觸發(fā)中斷請(qǐng)求;,外部觸發(fā)中斷請(qǐng)求; 將將RCAP2L和和RCAP2H的數(shù)裝入的數(shù)裝入TL2和和TH2中中RCAPLRCAPHTF2TL 2TH 2EXF2EXEN2T2(P1.0)T2EX(P1.1)溢出溢出T2中斷請(qǐng)求中斷請(qǐng)求TR2振蕩器振蕩器12
44、C/T2=0C/T2= 1+ + + 圖圖6-12 重裝方式原理圖重裝方式原理圖6.3.2 T2的工作方式的工作方式2、外部控制遞減、遞增定時(shí)或計(jì)數(shù)、外部控制遞減、遞增定時(shí)或計(jì)數(shù)CP/RL20,DCEN=1,T2由外部引腳由外部引腳T2EX(P1.1) 控制遞減、遞增定時(shí)或計(jì)數(shù)??刂七f減、遞增定時(shí)或計(jì)數(shù)。(1)外部控制遞增定時(shí)、計(jì)數(shù))外部控制遞增定時(shí)、計(jì)數(shù)條件:條件:T2EX(P1.1)引腳為高電平)引腳為高電平計(jì)滿溢出時(shí):計(jì)滿溢出時(shí):TF2置置1,請(qǐng)求中斷;,請(qǐng)求中斷;將將RCAP2L和和RCAP2H中的數(shù)裝入中的數(shù)裝入TL2和和TH2中。中。決定于決定于C/T26.3.2 T2的工作方式的
45、工作方式遞增、遞減計(jì)數(shù)重裝控制遞增、遞減計(jì)數(shù)重裝控制遞減計(jì)數(shù)重裝值遞減計(jì)數(shù)重裝值遞增計(jì)數(shù)重裝值遞增計(jì)數(shù)重裝值控制遞增、遞減計(jì)數(shù)重裝控制遞增、遞減計(jì)數(shù)重裝高:遞增計(jì)數(shù)重裝高:遞增計(jì)數(shù)重裝RCAP2LRCAP2HTF2TL2TH2EXF2T2TR2振蕩器振蕩器12C/T2=0C/T2=10FFH0FFH中斷請(qǐng)求中斷請(qǐng)求TEX2(P1.1)(P1.0)6.3.2 T2的工作方式的工作方式(2)外部控制遞減定時(shí)、計(jì)數(shù))外部控制遞減定時(shí)、計(jì)數(shù)條件:條件: T2EX(P1.1)引腳為低電平)引腳為低電平計(jì)數(shù)溢出時(shí):計(jì)數(shù)溢出時(shí):TF2置置1,請(qǐng)求中斷;,請(qǐng)求中斷;將將0 xffff裝入裝入TL2和和TH2中
46、。中。遞減計(jì)數(shù)的溢出:遞減計(jì)數(shù)的溢出: TL2和和TH2與與RCAP2L和和RCAP2H的值相等的值相等6.3.2 T2的工作方式的工作方式二、捕獲方式二、捕獲方式 (可定時(shí)、計(jì)數(shù))(可定時(shí)、計(jì)數(shù))當(dāng)當(dāng)CP/RL2l,選擇捕獲方式。,選擇捕獲方式。有以下兩種情況。有以下兩種情況。T2捕獲方式結(jié)構(gòu)如下頁圖所示。捕獲方式結(jié)構(gòu)如下頁圖所示。1、捕獲定時(shí)、計(jì)數(shù)、捕獲定時(shí)、計(jì)數(shù)(1)條件與觸發(fā)捕獲)條件與觸發(fā)捕獲條件:條件:EXEN=1;觸發(fā)捕獲:觸發(fā)捕獲:T2EX(P1.1)端的信號(hào)有負(fù)跳變時(shí))端的信號(hào)有負(fù)跳變時(shí)(2)捕獲)捕獲將將TL2和和TH2的內(nèi)容裝入的內(nèi)容裝入RCAP2L和和RCAP2H中中
47、(3)EXF2置置1,產(chǎn)生觸發(fā)中斷請(qǐng)求,產(chǎn)生觸發(fā)中斷請(qǐng)求6.3.2 T2的工作方式的工作方式2、一般定時(shí)、計(jì)數(shù)、一般定時(shí)、計(jì)數(shù)(非捕獲時(shí)不會(huì)自動(dòng)重裝非捕獲時(shí)不會(huì)自動(dòng)重裝)設(shè)置設(shè)置EXEN=0計(jì)數(shù)溢出計(jì)數(shù)溢出TF2置置1,產(chǎn)生溢出中斷請(qǐng)求,產(chǎn)生溢出中斷請(qǐng)求RCAP2L RCAP2HTF2TL2TH2EXF2EXEN2T2T2EX溢出溢出中斷請(qǐng)求中斷請(qǐng)求TR2振蕩器振蕩器12C/T2=0C/T2=1+1P1.1P1.06.3.2 T2的工作方式的工作方式三、波特率發(fā)生器方式三、波特率發(fā)生器方式 RCLK=1或或TCLK 1時(shí),選擇波特率發(fā)生器方時(shí),選擇波特率發(fā)生器方式式。結(jié)構(gòu)如下頁圖所示。具有兩個(gè)
48、功能。結(jié)構(gòu)如下頁圖所示。具有兩個(gè)功能。1、功能一、功能一為串行口提供時(shí)鐘為串行口提供時(shí)鐘波特率波特率=fosc(32(65536 - (RCAP2H,RCAP2L)特點(diǎn)特點(diǎn): 1)計(jì)數(shù)滿后自動(dòng)將)計(jì)數(shù)滿后自動(dòng)將RCAP2L、RCAP2H中中的值裝入的值裝入TL2、TH2中;中; 2)不產(chǎn)生溢出中斷。)不產(chǎn)生溢出中斷。6.3.2 T2的工作方式的工作方式波特率波特率=fosc(32(65536 - (RCAP2H,RCAP2L) T2EX可以做外部中斷源可以做外部中斷源串口時(shí)鐘方式原理圖串口時(shí)鐘方式原理圖RCAP2HTL2TH2T2溢出溢出TR 22C/T2=1C/T2=0串口時(shí)鐘串口時(shí)鐘振蕩器
49、振蕩器RCAP2LEXEN2T2EX外部信號(hào)外部信號(hào)EXF2中斷申請(qǐng)中斷申請(qǐng)16=波特率波特率6.3.2 T2的工作方式的工作方式2、功能二、功能二外部中斷源外部中斷源條件:條件: EXEN2=1;中斷請(qǐng)求輸入引腳:中斷請(qǐng)求輸入引腳:P1.1觸發(fā)方式:觸發(fā)方式:下降沿下降沿中斷請(qǐng)求標(biāo)志:中斷請(qǐng)求標(biāo)志:EXF2, P1.1出現(xiàn)下降沿,出現(xiàn)下降沿, EXF2置置1。6.3.2 T2的工作方式的工作方式定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T2作為波特率發(fā)生器使用時(shí)作為波特率發(fā)生器使用時(shí)的編程方法:的編程方法:RCAP2H=0 x30;/設(shè)置波特率設(shè)置波特率RCAP2L=0 x38;TCLK=1;/選擇定時(shí)器選
50、擇定時(shí)器2的溢出脈沖的溢出脈沖/作為串口發(fā)送波特率發(fā)生器作為串口發(fā)送波特率發(fā)生器 注意:在波特率發(fā)生器工作方式下,在注意:在波特率發(fā)生器工作方式下,在 T2計(jì)計(jì)數(shù)過程中不能再讀數(shù)過程中不能再讀/寫寫 TH2和和TL2的內(nèi)容。的內(nèi)容。6.3.2 T2的工作方式的工作方式四、可編程時(shí)鐘輸出方式四、可編程時(shí)鐘輸出方式 當(dāng)當(dāng)T2OE=1,且,且C/T2=0時(shí),時(shí),T2工作于工作于時(shí)鐘輸出方時(shí)鐘輸出方式式。結(jié)構(gòu)如下頁圖所示。具有兩個(gè)功能。結(jié)構(gòu)如下頁圖所示。具有兩個(gè)功能。1、功能一、功能一時(shí)鐘輸出時(shí)鐘輸出1)輸出引腳:)輸出引腳:P1.02)輸出方波頻率:)輸出方波頻率:f=fosc(4(65536 -
51、(RCAP2H,RCAP2L)(RCAP2H,RCAP2L)= 65536 -foscf43)特點(diǎn):)特點(diǎn):自動(dòng)重裝初值自動(dòng)重裝初值 計(jì)數(shù)滿后,將計(jì)數(shù)滿后,將RCAP2L和和RCAP2H的值自動(dòng)裝入的值自動(dòng)裝入TL2和和TH2;不產(chǎn)生溢出中斷。不產(chǎn)生溢出中斷。6.3.2 T2的工作方式的工作方式四、可編程時(shí)鐘輸出方式四、可編程時(shí)鐘輸出方式 當(dāng)當(dāng)T2OE=1,且,且C/T2=0時(shí),時(shí),T2工作于工作于時(shí)鐘輸出方時(shí)鐘輸出方式式。結(jié)構(gòu)如下頁圖所示。具有兩個(gè)功能。結(jié)構(gòu)如下頁圖所示。具有兩個(gè)功能。2、功能二、功能二外部中斷源外部中斷源條件:條件: EXEN2=1;中斷請(qǐng)求輸入引腳:中斷請(qǐng)求輸入引腳:P1
52、.1觸發(fā)方式:觸發(fā)方式:下降沿下降沿中斷請(qǐng)求標(biāo)志:中斷請(qǐng)求標(biāo)志:EXF2, P1.1出現(xiàn)下降沿,出現(xiàn)下降沿, EXF2置置1。6.3.2 T2的工作方式的工作方式圖圖6-15 T2時(shí)鐘輸出方式下的原理圖時(shí)鐘輸出方式下的原理圖EXF2EXEN2T2中斷中斷T2EXP1.16.3.2 T2的工作方式的工作方式例例6-3 對(duì)單片機(jī)編程,使用對(duì)單片機(jī)編程,使用T2時(shí)鐘輸出方式,時(shí)鐘輸出方式,從從P1.0輸出周期為輸出周期為1ms的方波。設(shè)單片機(jī)的振蕩頻的方波。設(shè)單片機(jī)的振蕩頻率為率為12MHz。(1)分析與計(jì)算)分析與計(jì)算T2的時(shí)鐘輸出方式可直接輸出方波。的時(shí)鐘輸出方式可直接輸出方波。輸出方波周期為輸
53、出方波周期為1ms,則頻率,則頻率fout為為1KHz。根據(jù)公式根據(jù)公式6-6可知,計(jì)數(shù)初值可知,計(jì)數(shù)初值x=65536-fosc/ (4fout) =62536。6.3.2 T2的工作方式的工作方式(2)C語言程序清單語言程序清單# include void main()C_T2=0;/設(shè)置設(shè)置T2作定時(shí)器使用作定時(shí)器使用CP_RL2=0;/設(shè)置設(shè)置T2初值自動(dòng)重裝初值自動(dòng)重裝T2MOD=0 x02;/設(shè)置設(shè)置T2輸出時(shí)鐘輸出時(shí)鐘TL2=62536%256; /為為T2賦初值賦初值TH2=62536/256; RCAP2L=62536%256; /重裝寄存器賦初值重裝寄存器賦初值RCAP2H
54、=62536/256; TR2=1;/啟動(dòng)啟動(dòng)T2while(1);/CPU保持運(yùn)行狀態(tài)保持運(yùn)行狀態(tài)T2在工作在工作6.3.2 T2的工作方式的工作方式(3)匯編語言程序清單)匯編語言程序清單T2MOD EQU 0C9H;定義定義T2模式寄存器模式寄存器TL2 EQU 0CCH;定義定義T2計(jì)數(shù)低計(jì)數(shù)低8位寄存器位寄存器TH2 EQU 0CDHRCAP2L EQU 0CAH;定義重裝低定義重裝低8位寄存器位寄存器RCAP2H EQU 0CBHCP_RL2 BIT 0C8H;定義定義T2捕獲捕獲/重裝控制位重裝控制位C_T2 BIT 0C9H;定義定義T2計(jì)數(shù)計(jì)數(shù)/定時(shí)控制位定時(shí)控制位TR2 B
55、IT 0CAH;定義定義T2運(yùn)行控制位運(yùn)行控制位6.3.2 T2的工作方式的工作方式MAIN:CLR C_T2;設(shè)置設(shè)置T2作定時(shí)器作定時(shí)器CLR CP_RL2;設(shè)置設(shè)置T2初值自動(dòng)重裝初值自動(dòng)重裝MOV T2MOD,#02H;設(shè)置設(shè)置T2輸出時(shí)鐘輸出時(shí)鐘MOV TL2,#48H;為定時(shí)器賦初值為定時(shí)器賦初值MOV TH2,#0F4HMOV RCAP2L,#48H;重裝寄存器賦初值重裝寄存器賦初值MOV RCAP2H,#0F4HSETB TR2;啟動(dòng)啟動(dòng)T2SJMP $ ; CPU保持運(yùn)行狀態(tài)保持運(yùn)行狀態(tài)T2在工作在工作6.3.2 T2的工作方式的工作方式6.4 定時(shí)器定時(shí)器/ /計(jì)數(shù)器應(yīng)用舉
56、例計(jì)數(shù)器應(yīng)用舉例6.4 定時(shí)器應(yīng)用舉例定時(shí)器應(yīng)用舉例例例6-4 用用89C52單片機(jī)設(shè)計(jì)一程序,測(cè)量脈沖單片機(jī)設(shè)計(jì)一程序,測(cè)量脈沖信號(hào)的寬度。設(shè)單片機(jī)晶振頻率為信號(hào)的寬度。設(shè)單片機(jī)晶振頻率為12MHz。分析:分析:如圖如圖6-16所示,設(shè)置所示,設(shè)置GATE0位為位為1,在,在P3.2引腳為低電平時(shí)設(shè)置引腳為低電平時(shí)設(shè)置TR0=1,當(dāng),當(dāng)GATE信號(hào)信號(hào)為高時(shí)自動(dòng)啟動(dòng)計(jì)數(shù),當(dāng)為高時(shí)自動(dòng)啟動(dòng)計(jì)數(shù),當(dāng)GATE信號(hào)變低時(shí)自動(dòng)信號(hào)變低時(shí)自動(dòng)結(jié)束計(jì)數(shù),這時(shí)設(shè)置結(jié)束計(jì)數(shù),這時(shí)設(shè)置TR0=0,讀取計(jì)數(shù)值便可計(jì),讀取計(jì)數(shù)值便可計(jì)算出脈沖寬度,單位為算出脈沖寬度,單位為s,機(jī)器周期為,機(jī)器周期為1s。6.4 定
57、時(shí)器應(yīng)用舉例定時(shí)器應(yīng)用舉例C語言程序清單:語言程序清單:#include sbit P3_2=P32;unsigned int_test( )TMOD=0 x09;/T0以模式以模式1定時(shí),用外部門定時(shí),用外部門TL0=0;TH0=0;/設(shè)置初值為設(shè)置初值為0while(P3_2);/引腳為高等待變低引腳為高等待變低TR0=1;/開開T0內(nèi)控開關(guān)由外部門控制內(nèi)控開關(guān)由外部門控制while(!P3_2);/檢測(cè)脈沖是否來到檢測(cè)脈沖是否來到while(P3_2);/檢測(cè)脈沖是否結(jié)束檢測(cè)脈沖是否結(jié)束TR0= 0;/脈沖已結(jié)束,脈沖已結(jié)束,T0內(nèi)控開關(guān)內(nèi)控開關(guān)return (TH0*256+TL0);
58、/返回計(jì)數(shù)值返回計(jì)數(shù)值6.4 定時(shí)器應(yīng)用舉例定時(shí)器應(yīng)用舉例匯編語言程序清單:匯編語言程序清單:TEST:MOV TMOD,#09H;置置T0模式模式1定時(shí)用外部門定時(shí)用外部門MOV TL0,#00H;設(shè)置初值為設(shè)置初值為0MOV TH0,#00HJB P3.2,$ ;引腳為高等待測(cè)量下一個(gè)正脈沖引腳為高等待測(cè)量下一個(gè)正脈沖SETB TR0 ; 開開T0內(nèi)控開關(guān),由外部控制行內(nèi)控開關(guān),由外部控制行JNBP3.2,$;檢測(cè)脈沖是否來到檢測(cè)脈沖是否來到JBP3.2,$;檢測(cè)脈沖是否結(jié)束檢測(cè)脈沖是否結(jié)束CLR TR0;脈沖已結(jié)束,關(guān)內(nèi)控開關(guān)脈沖已結(jié)束,關(guān)內(nèi)控開關(guān)MOV R7,TL0;計(jì)數(shù)器計(jì)數(shù)器TL0
59、的值送的值送R7MOV R6,TH0;計(jì)數(shù)器計(jì)數(shù)器TH0的值送的值送R6RET6.4 定時(shí)器應(yīng)用舉例定時(shí)器應(yīng)用舉例例例6-5 設(shè)某單片機(jī)系統(tǒng)使用定時(shí)器較多,設(shè)某單片機(jī)系統(tǒng)使用定時(shí)器較多,T1作串行口的波特率發(fā)生器,作串行口的波特率發(fā)生器,T2作時(shí)鐘信號(hào)作時(shí)鐘信號(hào)輸出產(chǎn)生多種較復(fù)雜的報(bào)警聲;輸出產(chǎn)生多種較復(fù)雜的報(bào)警聲;另外需要對(duì)產(chǎn)另外需要對(duì)產(chǎn)品包裝進(jìn)行計(jì)數(shù),每計(jì)品包裝進(jìn)行計(jì)數(shù),每計(jì)120件使陰極接在件使陰極接在P3.7引腳的引腳的LED亮亮2s,并且發(fā)出報(bào)警聲音響并且發(fā)出報(bào)警聲音響2s。試編寫程序,實(shí)現(xiàn)對(duì)產(chǎn)品的計(jì)數(shù)和聲光報(bào)試編寫程序,實(shí)現(xiàn)對(duì)產(chǎn)品的計(jì)數(shù)和聲光報(bào)警,不用考慮串行通信和聲音的具體產(chǎn)生程
60、序。警,不用考慮串行通信和聲音的具體產(chǎn)生程序。設(shè)單片機(jī)的晶振頻率設(shè)單片機(jī)的晶振頻率fosc=6MHz。6.4 定時(shí)器應(yīng)用舉例定時(shí)器應(yīng)用舉例分析:分析:(1)關(guān)于定時(shí)器及工作模式的選擇)關(guān)于定時(shí)器及工作模式的選擇T1、T2都已經(jīng)被使用,僅剩下都已經(jīng)被使用,僅剩下T0,還需要,還需要計(jì)數(shù)和定時(shí),可以考慮把計(jì)數(shù)和定時(shí),可以考慮把T0設(shè)置為模式設(shè)置為模式3,TL0計(jì)數(shù),計(jì)數(shù),TH0定時(shí)。定時(shí)。由于計(jì)數(shù)僅由于計(jì)數(shù)僅120,雖然要求定時(shí),雖然要求定時(shí)2s,但可以,但可以用多次中斷能夠滿足要求。用多次中斷能夠滿足要求。6.4 定時(shí)器應(yīng)用舉例定時(shí)器應(yīng)用舉例(2)關(guān)于聲光報(bào)警的實(shí)現(xiàn))關(guān)于聲光報(bào)警的實(shí)現(xiàn)當(dāng)當(dāng)TL0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024科技公司與醫(yī)療機(jī)構(gòu)之間關(guān)于醫(yī)療設(shè)備研發(fā)與銷售合同
- 2025年度廠房辦公室裝修項(xiàng)目噪音控制合同范本4篇
- 個(gè)體經(jīng)營者與員工2024年勞動(dòng)協(xié)議樣式版B版
- 花煙草養(yǎng)護(hù)知識(shí)培訓(xùn)課件
- 2024跨國企業(yè)人力資源外包管理合同
- 2024版貨物運(yùn)輸安全合同書
- 2025年度園林景區(qū)草坪修剪與生態(tài)修復(fù)合同3篇
- 2024年03月廣東屆興業(yè)銀行深圳分行線上校招筆試歷年參考題庫附帶答案詳解
- 2025年度城市綜合體戶外廣告位及攤位聯(lián)合租賃及品牌推廣合同4篇
- 2025年拆除工程環(huán)境影響評(píng)價(jià)合同4篇
- 人教版八年級(jí)下冊(cè)第一單元英語Unit1 單元設(shè)計(jì)
- PEP小學(xué)六年級(jí)英語上冊(cè)選詞填空專題訓(xùn)練
- 古建筑修繕項(xiàng)目施工規(guī)程(試行)
- GA 844-2018防砸透明材料
- 化學(xué)元素周期表記憶與讀音 元素周期表口訣順口溜
- 非人力資源經(jīng)理的人力資源管理培訓(xùn)(新版)課件
- MSDS物質(zhì)安全技術(shù)資料-201膠水
- 鉬氧化物還原過程中的物相轉(zhuǎn)變規(guī)律及其動(dòng)力學(xué)機(jī)理研究
- (完整word)2019注冊(cè)消防工程師繼續(xù)教育三科試習(xí)題及答案
- 《調(diào)試件現(xiàn)場(chǎng)管理制度》
- 社區(qū)治理現(xiàn)代化課件
評(píng)論
0/150
提交評(píng)論