第五章定時(shí)計(jì)數(shù)器_第1頁
第五章定時(shí)計(jì)數(shù)器_第2頁
第五章定時(shí)計(jì)數(shù)器_第3頁
第五章定時(shí)計(jì)數(shù)器_第4頁
第五章定時(shí)計(jì)數(shù)器_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第5章章 定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器 定時(shí)定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)及工作原理計(jì)數(shù)器的結(jié)構(gòu)及工作原理 定時(shí)定時(shí)/計(jì)數(shù)器方式和控制寄存器計(jì)數(shù)器方式和控制寄存器 定時(shí)定時(shí)/計(jì)數(shù)器的工作方式計(jì)數(shù)器的工作方式 定時(shí)定時(shí)/計(jì)數(shù)器的編程舉例計(jì)數(shù)器的編程舉例 運(yùn)行中讀定時(shí)運(yùn)行中讀定時(shí)/計(jì)數(shù)器值計(jì)數(shù)器值 定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器2 l單片機(jī)的單片機(jī)的51子系列有兩個(gè)子系列有兩個(gè)16位的定時(shí)位的定時(shí)/計(jì)數(shù)器:定時(shí)計(jì)數(shù)器:定時(shí) 器器0和定時(shí)器和定時(shí)器1。 l均可用作定時(shí)器或事件計(jì)數(shù)器,為單片機(jī)系統(tǒng)提供均可用作定時(shí)器或事件計(jì)數(shù)器,為單片機(jī)系統(tǒng)提供 計(jì)數(shù)和定時(shí)功能。以實(shí)現(xiàn)控制系統(tǒng)中所要求的定時(shí)計(jì)數(shù)和定時(shí)功能。以實(shí)現(xiàn)控制系統(tǒng)中所要

2、求的定時(shí) 或延時(shí)控制、外部事件計(jì)數(shù)?;蜓訒r(shí)控制、外部事件計(jì)數(shù)。 l52子系列單片機(jī)子系列單片機(jī)(8032/8052)除了有上述除了有上述2個(gè)定時(shí)個(gè)定時(shí)/計(jì)計(jì) 數(shù)器外,還有一個(gè)定時(shí)計(jì)數(shù)器數(shù)器外,還有一個(gè)定時(shí)計(jì)數(shù)器2,后者的功能比前兩,后者的功能比前兩 者強(qiáng)。者強(qiáng)。 5.1 定時(shí)定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)及工作原理計(jì)數(shù)器的結(jié)構(gòu)及工作原理 l定時(shí)定時(shí)/計(jì)數(shù)器的核心部件是一個(gè)加計(jì)數(shù)器的核心部件是一個(gè)加1計(jì)數(shù)器,其脈沖計(jì)數(shù)器,其脈沖 有兩個(gè)來源:外部脈沖源、系統(tǒng)的時(shí)鐘振蕩器。有兩個(gè)來源:外部脈沖源、系統(tǒng)的時(shí)鐘振蕩器。 l計(jì)數(shù)器對(duì)兩個(gè)脈沖源之一進(jìn)行輸入計(jì)數(shù),每輸入一計(jì)數(shù)器對(duì)兩個(gè)脈沖源之一進(jìn)行輸入計(jì)數(shù),每輸入一 個(gè)

3、脈沖,計(jì)數(shù)值加個(gè)脈沖,計(jì)數(shù)值加1。當(dāng)計(jì)數(shù)到計(jì)數(shù)值為全。當(dāng)計(jì)數(shù)到計(jì)數(shù)值為全1時(shí),再輸時(shí),再輸 入一個(gè)脈沖就使計(jì)數(shù)值回零,同時(shí)從最高位溢出一個(gè)入一個(gè)脈沖就使計(jì)數(shù)值回零,同時(shí)從最高位溢出一個(gè) 脈沖使特殊功能寄存器脈沖使特殊功能寄存器TCON(定時(shí)器控制寄存器定時(shí)器控制寄存器)的的 某一位某一位TFx置置1,作為計(jì)數(shù)器的溢出中斷標(biāo)志。,作為計(jì)數(shù)器的溢出中斷標(biāo)志。 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)框圖 振蕩器振蕩器1212 加加1 1 計(jì)數(shù)器計(jì)數(shù)器 TFxTFx 中斷中斷 TXTX端端 C/T=0C/T=0 C/T=1C/T=1 控制信號(hào)控制信號(hào)TRxTRx l若工作于定時(shí)狀態(tài),則表示定時(shí)時(shí)間到;若工作于計(jì)若工作于定

4、時(shí)狀態(tài),則表示定時(shí)時(shí)間到;若工作于計(jì) 數(shù)狀態(tài),則表示計(jì)數(shù)回零。所以,加數(shù)狀態(tài),則表示計(jì)數(shù)回零。所以,加1計(jì)數(shù)器的基本功計(jì)數(shù)器的基本功 能是對(duì)輸入脈沖進(jìn)行計(jì)數(shù)。能是對(duì)輸入脈沖進(jìn)行計(jì)數(shù)。 l用作定時(shí)器時(shí)用作定時(shí)器時(shí),在每個(gè)機(jī)器周期計(jì)數(shù)器加在每個(gè)機(jī)器周期計(jì)數(shù)器加1,所以可以把所以可以把 它看作累加機(jī)器周期它看作累加機(jī)器周期,1個(gè)機(jī)器周期包括個(gè)機(jī)器周期包括12個(gè)振蕩周期個(gè)振蕩周期,則則 計(jì)數(shù)頻率為振蕩頻率的十二分之一。計(jì)數(shù)頻率為振蕩頻率的十二分之一。 l工作于何種方式,取決于脈沖源,當(dāng)脈沖源為時(shí)鐘工作于何種方式,取決于脈沖源,當(dāng)脈沖源為時(shí)鐘 振蕩器振蕩器(等間隔脈沖序列等間隔脈沖序列)時(shí),由于計(jì)數(shù)脈沖

5、為一時(shí)間基時(shí),由于計(jì)數(shù)脈沖為一時(shí)間基 準(zhǔn),脈沖數(shù)乘以脈沖間隔就是定時(shí)時(shí)間,表現(xiàn)為定時(shí)準(zhǔn),脈沖數(shù)乘以脈沖間隔就是定時(shí)時(shí)間,表現(xiàn)為定時(shí) 功能;當(dāng)脈沖源為間隔不等的外部脈沖發(fā)生器時(shí),就功能;當(dāng)脈沖源為間隔不等的外部脈沖發(fā)生器時(shí),就 是外部事件的計(jì)數(shù)器,表現(xiàn)為計(jì)數(shù)功能。是外部事件的計(jì)數(shù)器,表現(xiàn)為計(jì)數(shù)功能。 l用作計(jì)數(shù)器時(shí),計(jì)數(shù)脈沖來自外部輸入引腳用作計(jì)數(shù)器時(shí),計(jì)數(shù)脈沖來自外部輸入引腳T0或或T1, 當(dāng)輸入信號(hào)發(fā)生一個(gè)由當(dāng)輸入信號(hào)發(fā)生一個(gè)由1到到0的跳變時(shí),計(jì)數(shù)器加的跳變時(shí),計(jì)數(shù)器加1。在。在 每個(gè)機(jī)器周期的每個(gè)機(jī)器周期的S5P2期間采樣外部輸入信號(hào),當(dāng)一個(gè)周期間采樣外部輸入信號(hào),當(dāng)一個(gè)周 期的采樣值為

6、高電平、下一個(gè)周期的采樣值為低電平時(shí),期的采樣值為高電平、下一個(gè)周期的采樣值為低電平時(shí), 計(jì)數(shù)器加計(jì)數(shù)器加1。新的計(jì)數(shù)值在緊接著檢測(cè)到一個(gè)跳變后的。新的計(jì)數(shù)值在緊接著檢測(cè)到一個(gè)跳變后的 下一個(gè)周期的下一個(gè)周期的S3P1期間在寄存器中出現(xiàn)。即在第一個(gè)機(jī)期間在寄存器中出現(xiàn)。即在第一個(gè)機(jī) 器周期的器周期的S5P2檢測(cè)到高電平,在第二個(gè)機(jī)器周期的檢測(cè)到高電平,在第二個(gè)機(jī)器周期的S5P2 檢測(cè)到低電平,在第三個(gè)機(jī)器周期的檢測(cè)到低電平,在第三個(gè)機(jī)器周期的S3P1改變計(jì)數(shù)值。改變計(jì)數(shù)值。 由于識(shí)別一個(gè)從由于識(shí)別一個(gè)從1到到0的跳變要用兩個(gè)機(jī)器周期,所以最的跳變要用兩個(gè)機(jī)器周期,所以最 快的計(jì)數(shù)頻率是振蕩器頻

7、率的二十四分之一。對(duì)外部輸快的計(jì)數(shù)頻率是振蕩器頻率的二十四分之一。對(duì)外部輸 入信號(hào)的占空比沒有限制,為確保某一給定的電平在變?nèi)胄盘?hào)的占空比沒有限制,為確保某一給定的電平在變 化之前至少被采樣一次,該信號(hào)至少保持一個(gè)完整的機(jī)化之前至少被采樣一次,該信號(hào)至少保持一個(gè)完整的機(jī) 器周期。器周期。 l圖中的兩個(gè)模擬開關(guān),前者決定定時(shí)圖中的兩個(gè)模擬開關(guān),前者決定定時(shí)/計(jì)數(shù)器工作狀態(tài):計(jì)數(shù)器工作狀態(tài): 計(jì)數(shù)還是定時(shí);后者受控制信號(hào)的控制,決定脈沖源是否計(jì)數(shù)還是定時(shí);后者受控制信號(hào)的控制,決定脈沖源是否 加到計(jì)數(shù)器輸入端,即決定了加加到計(jì)數(shù)器輸入端,即決定了加1計(jì)數(shù)器的開啟與運(yùn)行。計(jì)數(shù)器的開啟與運(yùn)行。 對(duì)輸入

8、信號(hào)的基本要求 Tp Tp Tp Tp TpTp為機(jī)器周期為機(jī)器周期 l在實(shí)際線路中,這兩個(gè)模擬開關(guān)由在實(shí)際線路中,這兩個(gè)模擬開關(guān)由TMOD與與TCON的相的相 應(yīng)位控制。用戶可通過對(duì)應(yīng)位控制。用戶可通過對(duì)TMOD和和TCON的各位進(jìn)行寫入的各位進(jìn)行寫入 或更改操作,從而選擇不同的工作狀態(tài)或啟動(dòng)工作,并可或更改操作,從而選擇不同的工作狀態(tài)或啟動(dòng)工作,并可 設(shè)置相應(yīng)的控制條件,即定時(shí)設(shè)置相應(yīng)的控制條件,即定時(shí)/計(jì)數(shù)器是可編程的。計(jì)數(shù)器是可編程的。 l16位的加位的加1計(jì)數(shù)器由兩個(gè)計(jì)數(shù)器由兩個(gè)8位的特殊功能寄存器位的特殊功能寄存器THx和和 TLx組成組成(x=0或或1)。 l由特殊功能寄存器由特

9、殊功能寄存器TMOD控制,可被程控為不同的組合控制,可被程控為不同的組合 狀態(tài),從而形成定時(shí)狀態(tài),從而形成定時(shí)/計(jì)數(shù)器的四種工作方式。計(jì)數(shù)器的四種工作方式。 TMOD、TCON與T0、T1結(jié)構(gòu)框圖 微微 處處 理理 器器 P P TH1TH1 TL1TL1TH0TH0TL0TL0 TCONTCON TMODTMOD 工作工作 方式方式 工作工作 方式方式 5.2 定時(shí)定時(shí)/計(jì)數(shù)器方式和控制寄存器計(jì)數(shù)器方式和控制寄存器 l由結(jié)構(gòu)框圖可以看到,特殊功能寄存器由結(jié)構(gòu)框圖可以看到,特殊功能寄存器TMOD和和TCON 用來確定定時(shí)用來確定定時(shí)/計(jì)數(shù)器的工作方式,并控制其功能。計(jì)數(shù)器的工作方式,并控制其功

10、能。 l每當(dāng)執(zhí)行一條改變每當(dāng)執(zhí)行一條改變TMOD和和TCON內(nèi)容的指令時(shí),所改內(nèi)容的指令時(shí),所改 變的值在下一條指令的第一個(gè)機(jī)器周期的變的值在下一條指令的第一個(gè)機(jī)器周期的S1P1期間進(jìn)入特期間進(jìn)入特 殊功能寄存器,并立即產(chǎn)生效果。殊功能寄存器,并立即產(chǎn)生效果。 lTMOD控制定時(shí)控制定時(shí)/計(jì)數(shù)器的工作方式;計(jì)數(shù)器的工作方式; lTCON控制定時(shí)器控制定時(shí)器T0、T1的啟動(dòng)和停止計(jì)數(shù),并包含了的啟動(dòng)和停止計(jì)數(shù),并包含了 定時(shí)器的狀態(tài)。定時(shí)器的狀態(tài)。 5.2.1 定時(shí)器工作方式控制寄存器定時(shí)器工作方式控制寄存器TMOD的格式的格式 位位 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1

11、0 GATE C/T M1 M0 GATE C/T M1 M0GATE C/T M1 M0 GATE C/T M1 M0 定時(shí)器定時(shí)器1 1 定時(shí)器定時(shí)器0 0 lGATE:選通控制。當(dāng)選通控制。當(dāng)GATE=1時(shí),同時(shí)時(shí),同時(shí)INTx為高電平,為高電平, 且且TRx置位時(shí),選通定時(shí)器置位時(shí),選通定時(shí)器x。當(dāng)。當(dāng)GATE=0時(shí),每當(dāng)時(shí),每當(dāng)TRx 置位時(shí),就選通定時(shí)器置位時(shí),就選通定時(shí)器x。 lC/T:選擇定時(shí)器功能還是計(jì)數(shù)器功能。該位置位時(shí)選擇選擇定時(shí)器功能還是計(jì)數(shù)器功能。該位置位時(shí)選擇 計(jì)數(shù)器功能計(jì)數(shù)器功能(計(jì)數(shù)出現(xiàn)在計(jì)數(shù)出現(xiàn)在T0或或T1引腳上的負(fù)跳變引腳上的負(fù)跳變);該位;該位 清零時(shí)選

12、擇定時(shí)器功能清零時(shí)選擇定時(shí)器功能(計(jì)機(jī)器周期計(jì)機(jī)器周期)。 lM1M0:這兩位指定定時(shí)這兩位指定定時(shí)/計(jì)數(shù)器的工作方式計(jì)數(shù)器的工作方式,可形成四種可形成四種 編碼,對(duì)應(yīng)四種工作方式:編碼,對(duì)應(yīng)四種工作方式: M1M1M0M0方式方式說明說明 0 00 00 0TLxTLx低低5 5位與位與THxTHx中中8 8位構(gòu)成位構(gòu)成1313位計(jì)數(shù)器位計(jì)數(shù)器 0 01 11 1TLxTLx與與THxTHx構(gòu)成構(gòu)成1616位計(jì)數(shù)器位計(jì)數(shù)器 1 10 02 2可自動(dòng)再裝入的可自動(dòng)再裝入的8 8位計(jì)數(shù)器位計(jì)數(shù)器, ,當(dāng)當(dāng)TLxTLx計(jì)數(shù)溢出時(shí)計(jì)數(shù)溢出時(shí),THx,THx內(nèi)容自動(dòng)內(nèi)容自動(dòng) 裝入裝入TLxTLx。 1

13、 11 13 3對(duì)定時(shí)器對(duì)定時(shí)器0,0,分成兩個(gè)分成兩個(gè)8 8位的計(jì)數(shù)器;對(duì)定時(shí)器位的計(jì)數(shù)器;對(duì)定時(shí)器1,1,停止計(jì)數(shù)。停止計(jì)數(shù)。 5.2.2 定時(shí)器控制寄存器定時(shí)器控制寄存器TCON的格式的格式 位位7 76 65 54 43 32 21 10 0 TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0 lTF1:定時(shí)器:定時(shí)器1溢出標(biāo)志位。當(dāng)定時(shí)溢出標(biāo)志位。當(dāng)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器1溢出時(shí),由溢出時(shí),由 內(nèi)部硬件置位,申請(qǐng)中斷。當(dāng)單片機(jī)轉(zhuǎn)向中斷服務(wù)程序后,內(nèi)部硬件置位,申請(qǐng)中斷。當(dāng)單片機(jī)轉(zhuǎn)向中斷服務(wù)程序后, 由內(nèi)部硬件自動(dòng)清除。由內(nèi)部硬件自動(dòng)清除。 l

14、TR1:定時(shí)器:定時(shí)器1的運(yùn)行控制位。由軟件置位的運(yùn)行控制位。由軟件置位/清除來控制定清除來控制定 時(shí)時(shí)/計(jì)數(shù)器計(jì)數(shù)器1的開啟的開啟/關(guān)閉。關(guān)閉。 lTF0:定時(shí)器:定時(shí)器0溢出標(biāo)志位。當(dāng)定時(shí)溢出標(biāo)志位。當(dāng)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器0溢出時(shí),由溢出時(shí),由 內(nèi)部硬件置位,申請(qǐng)中斷。當(dāng)單片機(jī)進(jìn)入中斷服務(wù)程序后,內(nèi)部硬件置位,申請(qǐng)中斷。當(dāng)單片機(jī)進(jìn)入中斷服務(wù)程序后, 由內(nèi)部硬件自動(dòng)清除。由內(nèi)部硬件自動(dòng)清除。 lTR0:定時(shí)器:定時(shí)器0的運(yùn)行控制位。由軟件置位的運(yùn)行控制位。由軟件置位/清除來控制定清除來控制定 時(shí)時(shí)/計(jì)數(shù)器計(jì)數(shù)器0的開啟的開啟/關(guān)閉。關(guān)閉。 lIE1:外部中斷:外部中斷1邊沿觸發(fā)請(qǐng)求標(biāo)志位。當(dāng)邊

15、沿觸發(fā)請(qǐng)求標(biāo)志位。當(dāng)IT1=0時(shí),每個(gè)機(jī)器時(shí),每個(gè)機(jī)器 周期的周期的S5P2采樣采樣INT1,若,若INT1為低電平,將直接觸發(fā)外部中斷。為低電平,將直接觸發(fā)外部中斷。 當(dāng)當(dāng)IT1=1時(shí),當(dāng)?shù)谝粋€(gè)機(jī)器周期采樣到時(shí),當(dāng)?shù)谝粋€(gè)機(jī)器周期采樣到INT1為高電平、第二個(gè)為高電平、第二個(gè) 機(jī)器周期采樣到機(jī)器周期采樣到INT1為低電平時(shí),由硬件置位中斷標(biāo)志為低電平時(shí),由硬件置位中斷標(biāo)志IE1, 并以此向并以此向CPU請(qǐng)求中斷,當(dāng)請(qǐng)求中斷,當(dāng)CPU響應(yīng)中斷、轉(zhuǎn)向中斷服務(wù)程序響應(yīng)中斷、轉(zhuǎn)向中斷服務(wù)程序 后由硬件清除。后由硬件清除。 lIT1:外部中斷:外部中斷1類型控制位。控制外部中斷類型控制位。控制外部中斷1

16、是選擇邊沿觸發(fā)是選擇邊沿觸發(fā) 還是電平觸發(fā)方式。當(dāng)還是電平觸發(fā)方式。當(dāng)IT1=0時(shí),選擇為電平觸發(fā)方式,時(shí),選擇為電平觸發(fā)方式,INT1低低 電平有效;當(dāng)電平有效;當(dāng)IT1=1時(shí),選擇為邊沿觸發(fā)方式,當(dāng)時(shí),選擇為邊沿觸發(fā)方式,當(dāng)INT1輸入腳上輸入腳上 出現(xiàn)電平由高到低的負(fù)跳變時(shí)有效。出現(xiàn)電平由高到低的負(fù)跳變時(shí)有效。IT1由軟件置位或清除。由軟件置位或清除。 lIE0:外部中斷:外部中斷1邊沿觸發(fā)請(qǐng)求標(biāo)志位。當(dāng)邊沿觸發(fā)請(qǐng)求標(biāo)志位。當(dāng)IT0=0時(shí),每個(gè)機(jī)器時(shí),每個(gè)機(jī)器 周期的周期的S5P2采樣采樣INT0,若,若INT0為低電平,將直接觸發(fā)外部中斷。為低電平,將直接觸發(fā)外部中斷。 當(dāng)當(dāng)IT0=1

17、時(shí),當(dāng)?shù)谝粋€(gè)機(jī)器周期采樣到時(shí),當(dāng)?shù)谝粋€(gè)機(jī)器周期采樣到INT0為高電平、第二個(gè)為高電平、第二個(gè) 機(jī)器周期采樣到機(jī)器周期采樣到INT0為低電平時(shí),由硬件置位中斷標(biāo)志為低電平時(shí),由硬件置位中斷標(biāo)志IE0, 并以此向并以此向CPU請(qǐng)求中斷,當(dāng)請(qǐng)求中斷,當(dāng)CPU響應(yīng)中斷、轉(zhuǎn)向中斷服務(wù)程序響應(yīng)中斷、轉(zhuǎn)向中斷服務(wù)程序 后由硬件清除。后由硬件清除。 lIT0:外部中斷:外部中斷0類型控制位??刂仆獠恐袛囝愋涂刂莆弧?刂仆獠恐袛?是選擇邊沿觸發(fā)是選擇邊沿觸發(fā) 還是電平觸發(fā)方式。當(dāng)還是電平觸發(fā)方式。當(dāng)IT0=0時(shí),選擇為電平觸發(fā)方式,時(shí),選擇為電平觸發(fā)方式,INT0低低 電平有效;當(dāng)電平有效;當(dāng)IT0=1時(shí),選擇

18、為邊沿觸發(fā)方式,當(dāng)時(shí),選擇為邊沿觸發(fā)方式,當(dāng)INT0輸入腳上輸入腳上 出現(xiàn)電平由高到低的負(fù)跳變時(shí)有效。出現(xiàn)電平由高到低的負(fù)跳變時(shí)有效。IT0由軟件置位或清除。由軟件置位或清除。 l由于定時(shí)由于定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0、T1是可編程的,所有在任何一個(gè)定時(shí)是可編程的,所有在任何一個(gè)定時(shí)/ 計(jì)數(shù)器開始工作之前,必須對(duì)其寫入相應(yīng)的控制字。計(jì)數(shù)器開始工作之前,必須對(duì)其寫入相應(yīng)的控制字。 5.3 定時(shí)定時(shí)/計(jì)數(shù)器的工作方式計(jì)數(shù)器的工作方式 l寄存器寄存器TMOD中的中的M1、M0兩位的四種不同取值,導(dǎo)致了兩位的四種不同取值,導(dǎo)致了THx、 TLx的四種不同組合,從而形成定時(shí)的四種不同組合,從而形成定時(shí)/計(jì)數(shù)

19、器的四種不同工作方計(jì)數(shù)器的四種不同工作方 式。式。 l其中前三種工作方式對(duì)兩者都是一樣的,方式其中前三種工作方式對(duì)兩者都是一樣的,方式3對(duì)兩者是不同對(duì)兩者是不同 的??梢哉f,只有定時(shí)的??梢哉f,只有定時(shí)/計(jì)數(shù)器計(jì)數(shù)器0有方式有方式3。 5.3.1 方式方式0 振蕩器振蕩器1212 TFxTFx中斷中斷 TxTx端端 C/T=0C/T=0 C/T=1C/T=1 GATEGATE INTxINTx端端 TRxTRx TLxTLx ( (低低5 5位位) ) THxTHx (8(8位位) ) 控制控制 轉(zhuǎn)主程序轉(zhuǎn)主程序 ORG 000BH;T0中斷服務(wù)程序中斷服務(wù)程序 MOV TL0,#30H MO

20、V TH0,#0F8H;重新送重新送2mS時(shí)間常數(shù)初值時(shí)間常數(shù)初值 RLA;(A)左環(huán)移一次左環(huán)移一次 MOV P1,A;送送P1口顯示口顯示 RET MAIN: MOV TMOD,#01H ;送控制方式字送控制方式字 MOV TL0,#30H;T0初始化初始化 MOV TH0,#0F8H MOV A,#01H;累加器累加器A置初值置初值 SETB TR0;啟動(dòng)啟動(dòng)T0計(jì)數(shù)計(jì)數(shù) SETB ET0 ;允許允許T0中斷中斷 SETB EA;CPU開中斷開中斷 SJMP $;等待中斷發(fā)生等待中斷發(fā)生(無事可做無事可做) 例例5-3. 設(shè)定時(shí)設(shè)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0工作于方式工作于方式3,TL0、TH

21、0作作 為兩個(gè)獨(dú)立的為兩個(gè)獨(dú)立的8位定時(shí)位定時(shí)/計(jì)數(shù)器,分別產(chǎn)生計(jì)數(shù)器,分別產(chǎn)生250 S和和 500 S的定時(shí)中斷,使的定時(shí)中斷,使P1.1和和P1.2產(chǎn)生產(chǎn)生500 S和和1000 S 的方波。設(shè)晶振頻率為的方波。設(shè)晶振頻率為6MHz。 P1.1 P1.2 解答:解答: TL0 計(jì)數(shù)個(gè)數(shù) 計(jì)數(shù)個(gè)數(shù):250 s/2 s=125 初值初值: 28-125=131=83H TH0 計(jì)數(shù)個(gè)數(shù)計(jì)數(shù)個(gè)數(shù):500 s/2 s=250 初值初值: 28-250=6=06H 編程如下:編程如下: ORG 0000H LJMP MAIN;轉(zhuǎn)主程序轉(zhuǎn)主程序 ORG 000BH;定時(shí)器定時(shí)器0中斷服務(wù)子程序入口中

22、斷服務(wù)子程序入口 LJMP TINT0 ORG 001BH;定時(shí)器定時(shí)器1中斷服務(wù)子程序入口中斷服務(wù)子程序入口 LJMP TINT1 MAIN: MOV TMOD,#03H ;T0工作方式工作方式3 MOV TL0,#83H;TL0送時(shí)間常數(shù)送時(shí)間常數(shù) MOV TH0,#06H;TH0送時(shí)間常數(shù)送時(shí)間常數(shù) SETB TR0;啟動(dòng)定時(shí)啟動(dòng)定時(shí) SETB TR1 ; ;等價(jià)于等價(jià)于MOV TCON,#50H MOV TCON,#50H SETB ET0;允許中斷允許中斷 SETB ET1 ; ;等價(jià)于等價(jià)于MOV IE,#8AHMOV IE,#8AH SETB EA;CPU開中斷開中斷 SJMP

23、$;等待等待 TINT0:MOV TL0,#83H;定時(shí)器定時(shí)器0中斷服務(wù)子程序中斷服務(wù)子程序 CPLP1.1 RETI TINT1:MOV TH0,#06H;定時(shí)器定時(shí)器1中斷服務(wù)子程序中斷服務(wù)子程序 CPLP1.2 RETI 例例5-4. 設(shè)定時(shí)設(shè)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器0工作于方式工作于方式2,TL0為為8位計(jì)數(shù)器位計(jì)數(shù)器, 產(chǎn)生產(chǎn)生500 s定時(shí)中斷定時(shí)中斷,在中斷服務(wù)程序中將在中斷服務(wù)程序中將(A)減減1,然后然后 送送P1口顯示口顯示,設(shè)晶振為設(shè)晶振為6MHz。 編程如下編程如下: ORG 0000H AJMP MAIN;轉(zhuǎn)主程序轉(zhuǎn)主程序 ORG 000BH DECA;T0中斷服務(wù)子程序

24、中斷服務(wù)子程序 MOV P1,A RETI MAIN:MOV TMOD,#02H ;初始化初始化 MOV TL0,#06H;送送500 S時(shí)間常數(shù)時(shí)間常數(shù) MOV TH0,#06H SETB TR0;啟動(dòng)啟動(dòng)T0計(jì)數(shù)計(jì)數(shù) SETB ET0;允許允許T0中斷中斷 SETB EA;CPU開中斷開中斷 SJMP $ 5.5 運(yùn)行中讀定時(shí)運(yùn)行中讀定時(shí)/計(jì)數(shù)器值計(jì)數(shù)器值 l在在MCS-51中,隨時(shí)可以讀寫計(jì)數(shù)寄存器的內(nèi)容,但是讀中,隨時(shí)可以讀寫計(jì)數(shù)寄存器的內(nèi)容,但是讀 取時(shí)需要特別加以注意;取時(shí)需要特別加以注意; l由于不能在同一時(shí)刻讀取由于不能在同一時(shí)刻讀取THx和和TLx的內(nèi)容。如不注意,的內(nèi)容。如

25、不注意, 讀取的計(jì)數(shù)器有可能出錯(cuò)。讀取的計(jì)數(shù)器有可能出錯(cuò)。 l比如先讀比如先讀(TLx),后讀,后讀(THx),由于定時(shí)器在不斷運(yùn)行,由于定時(shí)器在不斷運(yùn)行, 讀讀(THx)前,若恰好產(chǎn)生前,若恰好產(chǎn)生TLx溢出向溢出向THx進(jìn)位,則讀得的進(jìn)位,則讀得的 (TLx)完全不對(duì)。完全不對(duì)。 l同樣先讀同樣先讀(THx)再讀再讀(TLx)也可能出錯(cuò)(同樣問題)。也可能出錯(cuò)(同樣問題)。 l解決錯(cuò)讀問題的一種方法是解決錯(cuò)讀問題的一種方法是:先讀先讀(THx),后讀,后讀(TLx),再,再 讀讀(THx),若,若2次讀得的次讀得的(THx)沒有發(fā)生變化,則可確定讀得沒有發(fā)生變化,則可確定讀得 的內(nèi)容是正確

26、的,否則再重復(fù)上述讀的內(nèi)容是正確的,否則再重復(fù)上述讀THx、TLx過程,這樣過程,這樣 讀得的讀得的(THx),(TLx)就是正確的。就是正確的。 l下面程序把讀得的下面程序把讀得的TH0、TL0放在放在R1、R0中:中: RDTIME: MOVA,TH0;讀讀(TH0) MOVR0,TL0;讀讀(TL0) CJNEA,TH0,RDTIME ;比較比較2次讀次讀 得的得的(TH0),不同重讀不同重讀 MOVR1,A RET 5.6 定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器2 l只有只有52子系列單片機(jī)擁有定時(shí)子系列單片機(jī)擁有定時(shí)/計(jì)數(shù)器計(jì)數(shù)器2。 l定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器2是一個(gè)具有是一個(gè)具有16位自動(dòng)重裝載或

27、捕獲能力的定位自動(dòng)重裝載或捕獲能力的定 時(shí)時(shí)/計(jì)數(shù)器,特殊功能寄存器計(jì)數(shù)器,特殊功能寄存器T2CON是它的控制寄存器。是它的控制寄存器。 l定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器2具有兩種工作方式:定時(shí)具有兩種工作方式:定時(shí)/計(jì)數(shù)器方式和波計(jì)數(shù)器方式和波 特率發(fā)生器方式。特率發(fā)生器方式。 5.6.1 定時(shí)定時(shí)/計(jì)數(shù)器方式計(jì)數(shù)器方式 RCAP2HRCAP2H RCAP2LRCAP2L TH2TH2TL2TL2 C C ININ C C ININ C C OUTOUT C C OUTOUT CP/RL2CP/RL2 T2EXT2EX EXEN2EXEN2 EXF2EXF2 中斷中斷 置置TF2TF2 置置 EXF

28、2EXF2 TF2TF2 振蕩器振蕩器1212 T2T2 C/T2C/T2 TR2TR2 & & & & ll & & ll & & l用作定時(shí)器時(shí),寄存器用作定時(shí)器時(shí),寄存器TH2和和TL2對(duì)機(jī)器周期計(jì)數(shù);對(duì)機(jī)器周期計(jì)數(shù); l用作計(jì)數(shù)器時(shí),外部計(jì)數(shù)脈沖由用作計(jì)數(shù)器時(shí),外部計(jì)數(shù)脈沖由T2(P1.0)輸入,工作情況輸入,工作情況 和時(shí)序關(guān)系與定時(shí)和時(shí)序關(guān)系與定時(shí)/計(jì)數(shù)器計(jì)數(shù)器0和和1的完全一樣,對(duì)外部計(jì)數(shù)脈的完全一樣,對(duì)外部計(jì)數(shù)脈 沖的要求也與定時(shí)沖的要求也與定時(shí)/計(jì)數(shù)器計(jì)數(shù)器0和和1的完全一樣。的完全一樣。 l在定時(shí)器和計(jì)數(shù)器工作方式下,可以通過對(duì)在定時(shí)器和計(jì)數(shù)器工作方式下,可以通過對(duì)T2CO

29、N中的中的 控制位控制位CP/RL2的操作來選擇捕獲能力或重裝載能力,的操作來選擇捕獲能力或重裝載能力, TH2和和TL2內(nèi)容的捕獲或自動(dòng)重裝載通過一對(duì)捕獲內(nèi)容的捕獲或自動(dòng)重裝載通過一對(duì)捕獲/重裝載重裝載 寄存器寄存器RCAP2H和和RCAP2L來實(shí)現(xiàn),來實(shí)現(xiàn),TH2、TL2和和 RCAP2H、RCAP2L之間接有雙向緩沖器之間接有雙向緩沖器(三態(tài)門三態(tài)門)。當(dāng)。當(dāng) CP/RL2=1時(shí),選擇捕獲功能,數(shù)據(jù)傳送方向?yàn)榘褧r(shí),選擇捕獲功能,數(shù)據(jù)傳送方向?yàn)榘裈H2和和 TL2中的內(nèi)容自動(dòng)裝入中的內(nèi)容自動(dòng)裝入RCAP2H和和RCAP2L;當(dāng);當(dāng) CP/RL2=0時(shí),選擇自動(dòng)重裝載功能,數(shù)據(jù)傳送方向?yàn)榘褧r(shí)

30、,選擇自動(dòng)重裝載功能,數(shù)據(jù)傳送方向?yàn)榘?RCAP2H和和RCAP2L的數(shù)據(jù)自動(dòng)裝入的數(shù)據(jù)自動(dòng)裝入TH2和和TL2。 l捕獲或自動(dòng)重裝載發(fā)生在下述情況下:捕獲或自動(dòng)重裝載發(fā)生在下述情況下: 定時(shí)器定時(shí)器2的寄存器的寄存器TH2和和TL2溢出時(shí):溢出時(shí): 當(dāng)寄存器當(dāng)寄存器TH2和和TL2溢出時(shí),如果溢出時(shí),如果CP/RL2=0,則打開重,則打開重 裝載的三態(tài)緩沖器,把裝載的三態(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)EXEN2=1且且T2EX(P1.1)端的信號(hào)有負(fù)跳

31、變時(shí):端的信號(hào)有負(fù)跳變時(shí): 當(dāng)當(dāng)EXEN2=1且且T2EX(P1.1)端的信號(hào)有負(fù)跳變時(shí),根據(jù)端的信號(hào)有負(fù)跳變時(shí),根據(jù) CP/RL2是是1或或0,發(fā)生捕獲操作或自動(dòng)重裝載操作,同時(shí),發(fā)生捕獲操作或自動(dòng)重裝載操作,同時(shí) 標(biāo)志標(biāo)志EXF2置位,申請(qǐng)中斷。置位,申請(qǐng)中斷。 l如果定時(shí)如果定時(shí)/計(jì)數(shù)器計(jì)數(shù)器2的中斷是被允許的,不管發(fā)生的中斷是被允許的,不管發(fā)生TF2=1還還 是是EXF2=1,CPU都會(huì)響應(yīng)中斷,中斷的入口地址為都會(huì)響應(yīng)中斷,中斷的入口地址為002BH。 響應(yīng)中斷后,應(yīng)當(dāng)用軟件清除中斷標(biāo)志,以避免無休止地響應(yīng)中斷后,應(yīng)當(dāng)用軟件清除中斷標(biāo)志,以避免無休止地 發(fā)生中斷。發(fā)生中斷。TF2、E

32、XF2都是直接可尋址位,可采用都是直接可尋址位,可采用CLR TF2和和CLR EXF2指令實(shí)現(xiàn)撤消中斷申請(qǐng)的功能。指令實(shí)現(xiàn)撤消中斷申請(qǐng)的功能。 5.6.2 波特率發(fā)生器方式波特率發(fā)生器方式 RCAP2HRCAP2H RCAP2LRCAP2L TH2TH2TL2TL2 C CIN IN C CIN IN C COUT OUT C COUT OUT C/T2C/T2 TR2TR2 OSC2OSC2 T2T2 2 2 定時(shí)器定時(shí)器1 1 溢出溢出 SMOD=0SMOD=0SMOD=1SMOD=1 0 10 1 0 10 1 1616 RCLKRCLK TCLKTCLK 1616TXCLOCKTXC

33、LOCK RXCLOCKRXCLOCK T2EXT2EX EXEN2EXEN2 EXF2EXF2 & & & & l波特率發(fā)生器用于控制串行口的數(shù)據(jù)傳輸速率。在波特率發(fā)生器用于控制串行口的數(shù)據(jù)傳輸速率。在 T2CON中的中的RCLK和和TCLK兩位用于選擇定時(shí)兩位用于選擇定時(shí)/計(jì)數(shù)器計(jì)數(shù)器1或或 2作為串行通訊的波特率發(fā)生器。作為串行通訊的波特率發(fā)生器。 uRCLK和和TCLK兩位的值用來控制兩位的值用來控制2個(gè)電子開關(guān)的位置。個(gè)電子開關(guān)的位置。 u當(dāng)這兩位為當(dāng)這兩位為0時(shí),選用定時(shí)時(shí),選用定時(shí)/計(jì)數(shù)器計(jì)數(shù)器1作為波特率發(fā)生器;作為波特率發(fā)生器; 當(dāng)這兩位為當(dāng)這兩位為1時(shí),選用定時(shí)時(shí),選用定時(shí)

34、/計(jì)數(shù)器計(jì)數(shù)器2作為波特率發(fā)生器。作為波特率發(fā)生器。 u其中其中RCLK選擇串行通訊接收波特率發(fā)生器,選擇串行通訊接收波特率發(fā)生器,TCLK選選 擇發(fā)送波特率發(fā)生器。擇發(fā)送波特率發(fā)生器。 l當(dāng)選用定時(shí)當(dāng)選用定時(shí)/計(jì)數(shù)器計(jì)數(shù)器2作波特率發(fā)生器時(shí),其溢出脈沖用作作波特率發(fā)生器時(shí),其溢出脈沖用作 串行口的時(shí)鐘,時(shí)鐘頻率可由內(nèi)部時(shí)鐘決定,也可由外部串行口的時(shí)鐘,時(shí)鐘頻率可由內(nèi)部時(shí)鐘決定,也可由外部 時(shí)鐘決定。時(shí)鐘決定。 u如果如果C/T=0,選用外部時(shí)鐘,時(shí)鐘信號(hào)由,選用外部時(shí)鐘,時(shí)鐘信號(hào)由T2(P1.0)端輸端輸 入,每當(dāng)外部脈沖負(fù)跳變時(shí),計(jì)數(shù)器值加入,每當(dāng)外部脈沖負(fù)跳變時(shí),計(jì)數(shù)器值加1,外部脈沖頻

35、,外部脈沖頻 率不能超過振蕩器頻率的率不能超過振蕩器頻率的1/24。由于溢出時(shí),。由于溢出時(shí),RCAP2H和和 RCAP2L的內(nèi)容自動(dòng)裝載到的內(nèi)容自動(dòng)裝載到TH2和和TL2,所以波特率的值,所以波特率的值 還決定于裝載值。還決定于裝載值。 l當(dāng)定時(shí)當(dāng)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器2用作波特率發(fā)生器時(shí),如果用作波特率發(fā)生器時(shí),如果EXEN2置位,置位, 則則T2EX端的信號(hào)發(fā)生負(fù)跳變時(shí),端的信號(hào)發(fā)生負(fù)跳變時(shí),EXF2將置位,但不會(huì)發(fā)將置位,但不會(huì)發(fā) 生重裝載或捕獲操作,此時(shí)生重裝載或捕獲操作,此時(shí)T2EX可以作為一個(gè)附加的外可以作為一個(gè)附加的外 部中斷源。部中斷源。 l在波特率工作方式下,在波特率工作方式下

36、,TH2、TL2和和RCAP2H、 RCAP2L的內(nèi)容不能讀或被修改。的內(nèi)容不能讀或被修改。 5.6.3 定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器2控制寄存器控制寄存器T2CON T2C / TR2TR2EXEN2EXEN2TCLKTCLKRCLKRCLKEXF2EXF2TF2TF2含義含義 0 01 12 23 34 45 56 67 7位位 RL2CP/ lTF2(T2CON.7):定時(shí)器:定時(shí)器2溢出標(biāo)志。當(dāng)定時(shí)器溢出標(biāo)志。當(dāng)定時(shí)器2溢出時(shí)置溢出時(shí)置 位,向位,向CPU申請(qǐng)中斷。申請(qǐng)中斷。TF2只能用軟件清除。但當(dāng)定時(shí)只能用軟件清除。但當(dāng)定時(shí)/計(jì)計(jì) 數(shù)器數(shù)器2工作于波特率發(fā)生器時(shí)工作于波特率發(fā)生器時(shí)(RCLK=1或或TCLK=1),定時(shí),定時(shí) 器溢出不對(duì)器溢出不對(duì)TF2置位。置位。 lEXF2(T2CON.6):定時(shí)器:定時(shí)器2外部標(biāo)志。當(dāng)外部標(biāo)志。當(dāng)EXEN2=1且且 T2EX引腳上出現(xiàn)負(fù)跳變而造成捕獲或重裝載時(shí),引腳上出現(xiàn)負(fù)跳變而造成捕獲或重裝載時(shí),EXF2置置 位,向位,向CPU申請(qǐng)中斷,此時(shí)如果允許定時(shí)器申請(qǐng)中斷,此時(shí)如果允許定時(shí)器2中斷,中斷,CPU將將 響應(yīng)中斷,轉(zhuǎn)到中斷服務(wù)程序執(zhí)行。響應(yīng)中斷,轉(zhuǎn)到中斷服務(wù)程序執(zhí)行。EXF2必

溫馨提示

  • 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. 人人文庫(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)論