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

下載本文檔

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

文檔簡(jiǎn)介

1、第第5 5章章 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器5.1 5.1 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器0 0和和1 15.3 5.3 定時(shí)定時(shí)/ /計(jì)數(shù)器的應(yīng)用計(jì)數(shù)器的應(yīng)用5.1 5.1 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器0 0和和1 15.1.1 5.1.1 定時(shí)定時(shí)/ /計(jì)數(shù)器的結(jié)構(gòu)及功能計(jì)數(shù)器的結(jié)構(gòu)及功能5.1.2 5.1.2 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器0 0和和1 1的控制狀態(tài)寄存器的控制狀態(tài)寄存器5.1.3 T05.1.3 T0和和T1T1的的4 4種工作模式種工作模式5.1.1 5.1.1 定時(shí)定時(shí)/ /計(jì)數(shù)器的結(jié)構(gòu)及功能計(jì)數(shù)器的結(jié)構(gòu)及功能1 1、定時(shí)、定時(shí)/ /計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)微處理器微處理器(C

2、PUCPU)TH1TH1TMODTMODTCONTCONTL0TL0TH0TH0TL1TL1T1T1部分部分T0T0部分部分P3.5(T1)P3.5(T1)P3.4(T0)P3.4(T0)圖圖5-1 5-1 定時(shí)定時(shí)/ /計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)2 2、T0T0和和T1T1的功能選擇的功能選擇(1 1)計(jì)數(shù)功能)計(jì)數(shù)功能 就是對(duì)外部事件進(jìn)行計(jì)數(shù)。計(jì)數(shù)脈沖來(lái)自相應(yīng)就是對(duì)外部事件進(jìn)行計(jì)數(shù)。計(jì)數(shù)脈沖來(lái)自相應(yīng)的外部輸入引腳的外部輸入引腳T0T0(P3.4)P3.4)或或T1(P3.5)T1(P3.5)。當(dāng)輸入。當(dāng)輸入信號(hào)發(fā)生由信號(hào)發(fā)生由1 1至至0 0的負(fù)跳變時(shí),計(jì)數(shù)器(的負(fù)跳變時(shí),計(jì)數(shù)器(TH0TH

3、0,TL0TL0或或TH1TH1,TL1TL1)的值增)的值增1 1。計(jì)數(shù)的最高頻率一計(jì)數(shù)的最高頻率一般為振蕩頻率的般為振蕩頻率的1/241/24。(2 2)定時(shí)功能)定時(shí)功能 也是通過(guò)計(jì)數(shù)實(shí)現(xiàn)的。計(jì)數(shù)脈沖來(lái)自?xún)?nèi)部時(shí)鐘也是通過(guò)計(jì)數(shù)實(shí)現(xiàn)的。計(jì)數(shù)脈沖來(lái)自?xún)?nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期計(jì)數(shù)值增脈沖,每個(gè)機(jī)器周期計(jì)數(shù)值增1 1,每個(gè)機(jī)器周期,每個(gè)機(jī)器周期=12=12個(gè)振蕩周期,因此計(jì)數(shù)頻率為振蕩頻率的個(gè)振蕩周期,因此計(jì)數(shù)頻率為振蕩頻率的1/121/12。所以計(jì)數(shù)值乘以機(jī)器周期就是定時(shí)時(shí)間。所以計(jì)數(shù)值乘以機(jī)器周期就是定時(shí)時(shí)間。5.1.2 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器0 0和和1 1的控制狀態(tài)寄存器的控制狀態(tài)寄

4、存器1 1、模式控制寄存器、模式控制寄存器TMODTMOD 格式如下:格式如下:(1 1)GATEGATE位:門(mén)控位。當(dāng)位:門(mén)控位。當(dāng)GATE=1GATE=1時(shí),只有時(shí),只有INTOINTO或或INT1INT1為高電平且為高電平且TR0TR0或或TR1TR1置置1 1時(shí),相應(yīng)的定時(shí)時(shí),相應(yīng)的定時(shí)/ /計(jì)數(shù)器才被選通工作,可用于測(cè)量在計(jì)數(shù)器才被選通工作,可用于測(cè)量在INTXINTX端出端出現(xiàn)的正脈沖的寬度;當(dāng)現(xiàn)的正脈沖的寬度;當(dāng)GATE=0GATE=0,則只要,則只要TR0TR0和和TR1TR1置置1 1,定時(shí),定時(shí)/ /計(jì)數(shù)器就被選通。計(jì)數(shù)器就被選通。GATE C/T M1 M0 GATE C

5、/T M1 M0控制控制T1T1控制控制T0T0 (2 2)C/TC/T位:計(jì)數(shù)位:計(jì)數(shù)/ /定時(shí)功能選擇位。定時(shí)功能選擇位。C/T=0C/T=0,設(shè)置位定時(shí)器方式,計(jì)數(shù)器的輸入是內(nèi)部時(shí)鐘設(shè)置位定時(shí)器方式,計(jì)數(shù)器的輸入是內(nèi)部時(shí)鐘脈沖,其周期等于機(jī)器周期。脈沖,其周期等于機(jī)器周期。C/T=1C/T=1,設(shè)置為計(jì),設(shè)置為計(jì)數(shù)器方式,計(jì)數(shù)器輸入來(lái)自數(shù)器方式,計(jì)數(shù)器輸入來(lái)自T0T0(P3.4)P3.4)或或T1(P3.5)T1(P3.5)端外部脈沖。端外部脈沖。 M1M1、M0M0位:工作模式選擇位。位:工作模式選擇位。2 2位形成位形成4 4種編碼,種編碼,對(duì)應(yīng)對(duì)應(yīng)4 4種工作模式。見(jiàn)表種工作模式。

6、見(jiàn)表5-15-1。模式模式1 1。TLXTLX與與THXTHX構(gòu)成構(gòu)成1616位計(jì)數(shù)器。計(jì)滿(mǎn)溢出時(shí),位計(jì)數(shù)器。計(jì)滿(mǎn)溢出時(shí),1616位計(jì)位計(jì)數(shù)器回零。數(shù)器回零。模式模式2 2。8 8位自動(dòng)重裝載的定時(shí)位自動(dòng)重裝載的定時(shí)/ /計(jì)數(shù)器,每當(dāng)計(jì)數(shù)器計(jì)數(shù)器,每當(dāng)計(jì)數(shù)器TLXTLX溢出時(shí),溢出時(shí),THXTHX中的內(nèi)容重新裝載到中的內(nèi)容重新裝載到TLXTLX。表表5-1 5-1 定時(shí)定時(shí)/ /計(jì)數(shù)器工作模式計(jì)數(shù)器工作模式M1 M0M1 M0功功 能能 描描 述述0 00 0模式模式0 0。TLXTLX中低中低5 5位與位與THXTHX中的中的8 8位構(gòu)成位構(gòu)成1313位計(jì)數(shù)器。計(jì)滿(mǎn)位計(jì)數(shù)器。計(jì)滿(mǎn)溢出時(shí),溢出

7、時(shí),1313位計(jì)數(shù)器回零。位計(jì)數(shù)器回零。0 10 11 01 01 11 1模式模式3 3。對(duì)定時(shí)器。對(duì)定時(shí)器0 0,分成,分成2 2個(gè)個(gè)8 8位計(jì)數(shù)器,對(duì)于定時(shí)器位計(jì)數(shù)器,對(duì)于定時(shí)器1 1,停止計(jì)數(shù)。停止計(jì)數(shù)。TMODTMOD寄存器的單元地址為寄存器的單元地址為89H89H,不能位尋址。,不能位尋址。2 2、控制寄存器、控制寄存器TCONTCON格式如下:格式如下:TF1TF1位:定時(shí)器位:定時(shí)器1 1溢出標(biāo)志位。溢出標(biāo)志位。 當(dāng)定時(shí)當(dāng)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器1 1溢出時(shí),由硬件置溢出時(shí),由硬件置1 1。在查詢(xún)。在查詢(xún)方式時(shí),做狀態(tài)位供查詢(xún),查詢(xún)有效后由軟方式時(shí),做狀態(tài)位供查詢(xún),查詢(xún)有效后由軟

8、件清零;在中斷方式時(shí),做中斷申請(qǐng)標(biāo)志位件清零;在中斷方式時(shí),做中斷申請(qǐng)標(biāo)志位進(jìn)入中斷服務(wù)后由硬件自動(dòng)清零。進(jìn)入中斷服務(wù)后由硬件自動(dòng)清零。TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TR1TR1位:定時(shí)器位:定時(shí)器1 1運(yùn)行控制位。由軟件置位或清運(yùn)行控制位。由軟件置位或清零,置位時(shí),定時(shí)零,置位時(shí),定時(shí)/ /計(jì)數(shù)器接通工作;清零時(shí),計(jì)數(shù)器接通工作;清零時(shí),停止工作。停止工作。 TF0TF0位:定時(shí)器零溢出標(biāo)志位,同位:定時(shí)器零溢出標(biāo)志位,同TF1TF1。 TR0TR0位:定時(shí)器零運(yùn)行控制位,同位:定時(shí)器零運(yùn)行控制位

9、,同TR1TR1。 字節(jié)地址為字節(jié)地址為88H88H,位地址為,位地址為8888H H8FH8FH。3 3、定時(shí)、定時(shí)/ /計(jì)數(shù)器的初始化計(jì)數(shù)器的初始化(1 1)對(duì))對(duì)TMODTMOD賦值,以確定定時(shí)器的工作模式;賦值,以確定定時(shí)器的工作模式;(2 2)置定時(shí))置定時(shí)/ /計(jì)數(shù)器初值,直接將初值寫(xiě)入寄存計(jì)數(shù)器初值,直接將初值寫(xiě)入寄存器的器的TH0TH0、TL0TL0或或TH1TH1、TL1TL1;(3 3)根據(jù)需要,對(duì))根據(jù)需要,對(duì)IEIE置初值,開(kāi)放定時(shí)器中斷;置初值,開(kāi)放定時(shí)器中斷;(4 4)對(duì))對(duì)TCONTCON寄存器中的寄存器中的TR0TR0或或TR1TR1置位,啟動(dòng)定置位,啟動(dòng)定時(shí)時(shí)

10、/ /計(jì)數(shù)器,置位以后,計(jì)數(shù)器即按規(guī)定的工計(jì)數(shù)器,置位以后,計(jì)數(shù)器即按規(guī)定的工作模式和初值進(jìn)行計(jì)數(shù)或開(kāi)始定時(shí)。作模式和初值進(jìn)行計(jì)數(shù)或開(kāi)始定時(shí)。 初值計(jì)算:初值計(jì)算: 設(shè)計(jì)數(shù)器的最大值為設(shè)計(jì)數(shù)器的最大值為M M,則置入的初值,則置入的初值X X為:為: 計(jì)數(shù)方式:計(jì)數(shù)方式:X=M-X=M-計(jì)數(shù)值計(jì)數(shù)值 定時(shí)方式:由定時(shí)方式:由(M-X)T=(M-X)T=定時(shí)值定時(shí)值, ,得得X=M-X=M-定時(shí)值定時(shí)值/ /T T T T為計(jì)數(shù)周期,是單片機(jī)的機(jī)器周期。為計(jì)數(shù)周期,是單片機(jī)的機(jī)器周期。(模式(模式0 M0 M為為2 21313,模式,模式1 M1 M為為2 21616,模式,模式2 2和和3 M

11、3 M為為2 28 8)例如:機(jī)器周期為例如:機(jī)器周期為1 1ss 時(shí),工作在模式時(shí),工作在模式0 0,則最,則最大定時(shí)值為大定時(shí)值為:2:213131 1ss =8.192ms =8.192ms 若工作在模式若工作在模式1,1,則最大定時(shí)值為則最大定時(shí)值為: : 2 216161 1ss =65.536ms =65.536ms5.1.3 T0 T0和和T1T1的的4 4種工作模式種工作模式1 1、模式、模式0 0TL1 TH1TL1 TH1(5 5位)(位)(8 8位)位)TF1TF111T1T1引腳引腳1 1振蕩器振蕩器12TR1TR1GATEGATEINT1INT1引腳引腳控制控制C/T

12、=0C/T=0C/T=1C/T=1中斷中斷圖圖5-3 5-3 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器1 1工作模式工作模式0 0(1313位計(jì)數(shù)器)位計(jì)數(shù)器)2 2、模式、模式1 1TL1 TH1TL1 TH1(8 8位)(位)(8 8位)位)TF1TF111T1T1引腳引腳1 1振蕩器振蕩器12TR1TR1GATEGATEINT1INT1引腳引腳控制控制C/T=0C/T=0C/T=1C/T=1中斷中斷3 3、模式、模式2 2TL1 TL1 (8 8位)位)TF1TF111T1T1引腳引腳1 1振蕩器振蕩器12TR1TR1GATEGATEINT1INT1引腳引腳控制控制C/T=0C/T=0C/T=1C/T

13、=1中斷中斷TH1 TH1 (8 8位)位)重裝載重裝載圖圖5-4 5-4 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器1 1工作模式工作模式2 2(8 8位自動(dòng)裝載模式)位自動(dòng)裝載模式)4 4、模式、模式3 3TL0 TL0 (8 8位)位)11T0T0引腳引腳1 1振蕩器振蕩器12TR0TR0GATEGATEINT0INT0引腳引腳控制控制C/T=0C/T=0C/T=1C/T=1TF1TF1中斷中斷1/12fOSC1/12fOSC1/12fOSC控制控制TR1TR1TH0 TH0 (8 8位)位)TF1TF1中斷中斷圖圖5-5 5-5 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器0 0工作模式工作模式3 3(2 2個(gè)個(gè)8 8

14、位計(jì)數(shù)器)位計(jì)數(shù)器)5.2 定時(shí)計(jì)數(shù)器2 -52子系列單片機(jī)有一個(gè)具有自動(dòng)重裝載和捕獲能力的16位定時(shí)/計(jì)數(shù)器2,簡(jiǎn)稱(chēng)T2。在特殊功能寄存器組里,有5個(gè)SFR與T2有關(guān):控制寄存器T2CON、捕獲寄存器RCAP2H和RCAP2L、定時(shí)寄存器高低字節(jié)TH2和TL2。5.2.1 T2控制寄存器T2CONTF2(T2CON.7)位:T2溢出標(biāo)志位。T2計(jì)數(shù)溢出時(shí)置位,并申請(qǐng)中斷。該位只能靠軟件清零。但在波特率發(fā)生器方式下,T2溢出不置位。 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T CP/RL2 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T CP/RL2 E

15、XF2(T2CON.6)位:T2外部觸發(fā)中斷標(biāo)志位。當(dāng)EXEN2=1且T2EX引腳出現(xiàn)負(fù)跳變而造成捕獲或重裝載時(shí),EXF2置位,并申請(qǐng)中斷。該位只能靠軟件清零。RCLK(T2CON.5)位:接收時(shí)鐘選擇位??寇浖?或清0,以選擇T2或T1做串行口接收波特率發(fā)生器。1:選擇T2,0:選擇T1。TCLK(T2CON.4)位:發(fā)送時(shí)鐘選擇位??寇浖?或清0,以選擇T2或T1做串行口發(fā)送波特率發(fā)生器。1:選擇T2,0:選擇T1。EXEN2(T2CON.3)位:T2外部觸發(fā)允許標(biāo)志???軟件置1或清0。當(dāng)EXEN2=1時(shí),若T2未用做串行口波特率發(fā)生器,則在T2EX引腳出現(xiàn)負(fù)跳變時(shí),將造成T2捕獲或

16、重裝載操作,并置EXF2位,請(qǐng)求中斷;EXEN2=0時(shí),T2EX引腳信號(hào)不起作用。TR2(T2CON.2)位:T2的運(yùn)行控制位,由軟件置位或清零。TR2=1,啟動(dòng)T2運(yùn)行,TR2=0,關(guān)閉T2。C/T(T2CON.1)位:定時(shí)/計(jì)數(shù)方式選擇位。C/T=1時(shí),對(duì)T2CLK外引腳脈沖計(jì)數(shù);C/T =0時(shí),對(duì)內(nèi)部機(jī)器計(jì)數(shù)。 CP/RL2(T2CON.0)位:捕獲重裝載標(biāo)志位。CP/ RL2=1時(shí),選擇捕獲功能,此時(shí)若EXEN2=1,且T2EX引腳出現(xiàn)負(fù)跳變,則發(fā)生捕獲操作,即把TH2及TL2內(nèi)容傳送給RCAP2H及RCAP2L;當(dāng)CP/ RL2=0時(shí),選擇重裝載操作,此時(shí)T2溢出或EXEN2=1條件

17、下,有T2EX負(fù)跳變,都會(huì)產(chǎn)生重裝載操作,即把RCAP2H及RCAP2L內(nèi)容傳送給TH2及TL2。當(dāng)RCLK=1或TCLK=1時(shí),該位不起作用。5.2.2 定時(shí)/計(jì)數(shù)器T2的工作方式T2有兩種工作方式:定時(shí)/計(jì)數(shù)器方式和波特率發(fā)生器方式。1、T2的定時(shí)/計(jì)數(shù)器工作方式 T2定時(shí)/計(jì)數(shù)方式下的邏輯如圖所示。在該方式下,C/T2決定是定時(shí)方式還是計(jì)數(shù)方式。C/T2 =0時(shí),對(duì)機(jī)器周期計(jì)數(shù),作定時(shí)器使用;當(dāng)C/ T2=1時(shí),對(duì)T2CLK引腳脈沖計(jì)數(shù),用作計(jì)數(shù)器。 該方式與T0和T1完全一樣。 CP/RL2用來(lái)選擇捕獲還是重裝載。捕獲時(shí),數(shù)據(jù)由TH2及TL2傳送給RCAP2H及RCAP2L;重裝載時(shí),

18、數(shù)據(jù)傳送方向與之相反。 捕獲或重裝載發(fā)生在下述情況之下:(1)T2計(jì)數(shù)溢出時(shí),若CP/RL2=0,則捕獲。 (2)當(dāng)EXEN2=1且T2EX引腳出現(xiàn)負(fù)跳變時(shí),根據(jù)CP/RL2是0還是1,產(chǎn)生捕獲或重裝載操作。 若T2的中斷是被允許的,則T2計(jì)數(shù)溢出或捕獲及重裝載都會(huì)引發(fā)T2中斷。T2的中斷標(biāo)志必須由軟件清除。2、波特率發(fā)生器方式 當(dāng)RCLK=1或TCLK=1時(shí),T2工作在波特率發(fā)生器方式,此時(shí)的T2邏輯框圖如圖5-7所示。 此時(shí)的計(jì)數(shù)脈沖來(lái)源由C/T2決定,而此時(shí)的CP/RL2位將不起作用。 5.3 5.3 定時(shí)定時(shí)/ /計(jì)數(shù)器的應(yīng)用計(jì)數(shù)器的應(yīng)用5.3.1 5.3.1 定時(shí)定時(shí)/ /計(jì)數(shù)器模式

19、計(jì)數(shù)器模式0 0的應(yīng)用的應(yīng)用5.3.2 5.3.2 定時(shí)定時(shí)/ /計(jì)數(shù)器模式計(jì)數(shù)器模式1 1的應(yīng)用的應(yīng)用5.3.3 5.3.3 定時(shí)定時(shí)/ /計(jì)數(shù)器模式計(jì)數(shù)器模式2 2的應(yīng)用的應(yīng)用5.3.4 5.3.4 定時(shí)定時(shí)/ /計(jì)數(shù)器門(mén)控位計(jì)數(shù)器門(mén)控位GATEGATE的應(yīng)用的應(yīng)用5.3.5 5.3.5 運(yùn)行中讀定時(shí)運(yùn)行中讀定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器5.3.1 定時(shí)定時(shí)/ /計(jì)數(shù)器模式計(jì)數(shù)器模式0 0的應(yīng)用的應(yīng)用【例【例5-1 5-1 】試?yán)迷嚴(yán)肨0T0產(chǎn)生周期為產(chǎn)生周期為1ms1ms、寬度為一、寬度為一個(gè)機(jī)器周期的負(fù)脈沖串,并由個(gè)機(jī)器周期的負(fù)脈沖串,并由P1.0P1.0送出。送出。 設(shè)系統(tǒng)晶振為設(shè)系統(tǒng)晶

20、振為12MHz12MHz,則計(jì)數(shù)頻率為,則計(jì)數(shù)頻率為1MHz1MHz。 設(shè)計(jì)數(shù)初值為設(shè)計(jì)數(shù)初值為X X,則由(,則由(M-XM-X)T=T=定時(shí)值定時(shí)值 即(即(2 21313- -X X)1010-6-6=1=11010-3-3 得得: :X=7192=1110000011000BX=7192=1110000011000B。 高高8 8位給位給TH0TH0,低,低5 5位給位給TL0TL0,則,則TH0=0E0HTH0=0E0H,TL0=18HTL0=18H。 采用查詢(xún)方式,編程如下:采用查詢(xún)方式,編程如下: MOV TMODMOV TMOD,00H 00H ;設(shè)置定時(shí)器;設(shè)置定時(shí)器0 0模

21、式模式0 0 MOV TH0 MOV TH0,0E0H 0E0H ;設(shè)置計(jì)數(shù)初值;設(shè)置計(jì)數(shù)初值 MOV TL0MOV TL0,18H18H SETB TR0 SETB TR0 ;啟動(dòng)定時(shí)器;啟動(dòng)定時(shí)器0 0 T0INTT0INT:JNB TF0JNB TF0,T0INTT0INT CLR TF0 CLR TF0 CLR P1.0 CLR P1.0 SETB P1.0 SETB P1.0 MOV TH0 MOV TH0,0E0H 0E0H ;用軟件重新裝載;用軟件重新裝載T0T0 MOV TL0 MOV TL0,18H18H SJMP T0INT SJMP T0INT5.3.2 定時(shí)定時(shí)/ /計(jì)

22、數(shù)器模式計(jì)數(shù)器模式1 1的應(yīng)用的應(yīng)用【例【例5-25-2】利用利用T0T0模式模式1 1產(chǎn)生一個(gè)產(chǎn)生一個(gè)50Hz50Hz的方波,由的方波,由P1.0P1.0輸出。輸出。 設(shè)系統(tǒng)晶振為設(shè)系統(tǒng)晶振為12MHZ12MHZ,則計(jì)數(shù)頻率為,則計(jì)數(shù)頻率為1MHZ1MHZ,計(jì),計(jì)數(shù)器初值為數(shù)器初值為X X,由,由 (M-XM-X)T=T=定時(shí)值定時(shí)值 (2 21616- -X X)1010-6-6=1/=1/(50502 2) 得得: :X=55536=0D8F0HX=55536=0D8F0H。 高高8 8位位0D8H0D8H給給TH0TH0,低,低8 8位位0 0F0HF0H給給TL0TL0。 采用查詢(xún)方

23、式,編程如下:采用查詢(xún)方式,編程如下: MOV TMODMOV TMOD,01H 01H ;設(shè)置定時(shí)器;設(shè)置定時(shí)器0 0模式模式1 1 SETB TR0 SETB TR0 ;啟動(dòng)定時(shí)器;啟動(dòng)定時(shí)器0 0LOOPLOOP:MOV TH0MOV TH0,0D8H 0D8H ;設(shè)置計(jì)數(shù)初值;設(shè)置計(jì)數(shù)初值 MOV TL0MOV TL0,0F0H0F0H JNB TF0 JNB TF0, CLR TF0CLR TF0 CPL P1.0 CPL P1.0 SJMP LOOP SJMP LOOP5.3.3 定時(shí)定時(shí)/ /計(jì)數(shù)器模式計(jì)數(shù)器模式2 2的應(yīng)用的應(yīng)用【例【例5-35-3】利用利用T1T1模式模式2

24、2進(jìn)行計(jì)數(shù),每計(jì)進(jìn)行計(jì)數(shù),每計(jì)200200次進(jìn)行次進(jìn)行累加器加累加器加1 1操作。操作。計(jì)數(shù)初值:計(jì)數(shù)初值:X=M-X=M-計(jì)數(shù)值計(jì)數(shù)值=2=28 8-200=56-200=56D=38HD=38H采用查詢(xún)方式,編程如下:采用查詢(xún)方式,編程如下: MOV TMODMOV TMOD,60H 60H ;設(shè)置;設(shè)置T1T1模式模式2 2計(jì)數(shù)功能計(jì)數(shù)功能 MOV TH1MOV TH1,38H 38H ;保存計(jì)數(shù)初值;保存計(jì)數(shù)初值 MOV TL1MOV TL1,38H 38H ;設(shè)置計(jì)數(shù)初值;設(shè)置計(jì)數(shù)初值 SETB TR1 SETB TR1 ;啟動(dòng)計(jì)數(shù);啟動(dòng)計(jì)數(shù)DELDEL:JBC TF1JBC TF1

25、,LOOP LOOP ;查詢(xún)是否計(jì)數(shù)溢出;查詢(xún)是否計(jì)數(shù)溢出 AJMP DELAJMP DELLOOPLOOP:INC AINC A AJMP DEL AJMP DEL【例【例5-45-4】利用】利用T0T0的門(mén)控位的門(mén)控位GATEGATE,編程實(shí)現(xiàn)檢測(cè)外,編程實(shí)現(xiàn)檢測(cè)外部輸入脈沖的寬度。部輸入脈沖的寬度。解:外部脈沖由解:外部脈沖由INT0INT0(P3.2P3.2)輸入,其寬度為)輸入,其寬度為T(mén)PTP,如圖如圖5-85-8。T0T0工作于定時(shí)方式,模式工作于定時(shí)方式,模式1 1。 測(cè)試時(shí),當(dāng)測(cè)試時(shí),當(dāng)INT0=0INT0=0時(shí),時(shí),TR0=1TR0=1;當(dāng);當(dāng)INT0=1INT0=1時(shí),時(shí)

26、,啟動(dòng)計(jì)數(shù);當(dāng)啟動(dòng)計(jì)數(shù);當(dāng)INT0=0INT0=0時(shí),停止計(jì)數(shù)。使時(shí),停止計(jì)數(shù)。使TR0=0TR0=0,讀出讀出TH0TH0、TL0TL0的計(jì)數(shù)值,用計(jì)數(shù)值乘以定時(shí)脈的計(jì)數(shù)值,用計(jì)數(shù)值乘以定時(shí)脈沖周期即得被檢測(cè)正脈沖的寬度沖周期即得被檢測(cè)正脈沖的寬度TPTP。5.3.4 定時(shí)定時(shí)/ /計(jì)數(shù)器門(mén)控位計(jì)數(shù)器門(mén)控位GATEGATE的應(yīng)用的應(yīng)用 編程如下:編程如下: MOV TMODMOV TMOD,09H 09H ;設(shè);設(shè)T0T0為模式為模式1 1,定時(shí)方式,定時(shí)方式, GATE=1GATE=1 MOV TL0 MOV TL0,00H 00H ;設(shè)置計(jì)數(shù)初值為;設(shè)置計(jì)數(shù)初值為0 0 MOV TH0M

27、OV TH0,00H 00H MOV R0 MOV R0,30H 30H ;地址指針?biāo)停坏刂分羔標(biāo)蚏0R0 JB INT0 JB INT0, ;等待;等待INT0INT0變低變低INT0INT0啟動(dòng)啟動(dòng)T0T0TPTPT0T0計(jì)時(shí)計(jì)時(shí)停止停止T0T0計(jì)時(shí)計(jì)時(shí)讀取讀取T0T0值值圖圖5-8 5-8 利用利用GATEGATE功能來(lái)檢測(cè)脈沖的寬度功能來(lái)檢測(cè)脈沖的寬度 SETB TR0 SETB TR0 ;準(zhǔn)備啟動(dòng)定時(shí)器;準(zhǔn)備啟動(dòng)定時(shí)器0 0 JNB INT0 JNB INT0, ;等待;等待INT0INT0變高變高 JB INT0JB INT0, ;變高,啟動(dòng)計(jì)數(shù),并等待;變高,啟動(dòng)計(jì)數(shù),并等待 I

28、NT0INT0再次變低再次變低 CLR TR0 CLR TR0 ;停止計(jì)數(shù);停止計(jì)數(shù) MOV MOV R0R0,TL0 TL0 ;讀取計(jì)數(shù)值;讀取計(jì)數(shù)值 INC R0INC R0 MOV MOV R0R0,TH0TH05.3.5 5.3.5 運(yùn)行中讀定時(shí)運(yùn)行中讀定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器讀定時(shí)讀定時(shí)/ /計(jì)數(shù)器方法:計(jì)數(shù)器方法: 先讀先讀THXTHX,后讀,后讀TLXTLX,再讀,再讀THXTHX,若兩次讀得的,若兩次讀得的THXTHX沒(méi)有變化,則讀的內(nèi)容是正確的。若前后兩沒(méi)有變化,則讀的內(nèi)容是正確的。若前后兩次讀得的次讀得的THXTHX有變化,則再重復(fù)讀得的內(nèi)容就應(yīng)有變化,則再重復(fù)讀得的內(nèi)容就應(yīng)

29、該是正確的了。該是正確的了。看下面一段程序:看下面一段程序:RDTIMERDTIME:MOV AMOV A,TH0 TH0 ;讀;讀TH0TH0 MOV R0 MOV R0,TL0 TL0 ;讀;讀TL0TL0 CJNE A CJNE A,TH0TH0,RDTIMERDTIME;比較兩次讀得的;比較兩次讀得的TH0TH0, 必要時(shí)重復(fù)上述過(guò)程必要時(shí)重復(fù)上述過(guò)程 MOV R1MOV R1,A A RET RET舉例:舉例:1 1、應(yīng)用、應(yīng)用T0T0產(chǎn)生產(chǎn)生1ms1ms的定時(shí),并使的定時(shí),并使P1.0P1.0輸出周期為輸出周期為2ms2ms的方波,設(shè)晶振為的方波,設(shè)晶振為6MHz6MHz。(應(yīng)用模

30、式。(應(yīng)用模式0 0)編程如下:編程如下: STARTSTART:MOV TL0MOV TL0,0CH 0CH ;初值寫(xiě)入;初值寫(xiě)入T0T0 MOV TH0 MOV TH0,0F0H0F0H SETB TR0 SETB TR0 LOOP LOOP:JBC TF0JBC TF0,PTF0PTF0 AJMP LOOP AJMP LOOP PTF0 PTF0:MOV TL0MOV TL0,0CH 0CH ;計(jì)數(shù)初值重裝;計(jì)數(shù)初值重裝 MOV TH0MOV TH0,0F0H0F0H CPL P1.0 CPL P1.0 AJMP LOOP AJMP LOOP2 2、應(yīng)用、應(yīng)用T0T0產(chǎn)生產(chǎn)生1ms1ms

31、的定時(shí),并使的定時(shí),并使P1.0P1.0輸出周期為輸出周期為2ms2ms的方波,設(shè)晶振為的方波,設(shè)晶振為6MHz6MHz。 (應(yīng)用模式(應(yīng)用模式1 1)編程如下:編程如下: STARTSTART:MOV TMODMOV TMOD,01H01H;置工作方式;置工作方式1 1 MOV TL0 MOV TL0,0CH 0CH ;初值寫(xiě)入;初值寫(xiě)入T0T0 MOV TH0 MOV TH0,0FEH0FEH SETB TR0 SETB TR0 ;允許計(jì)數(shù);允許計(jì)數(shù) LOOPLOOP:JBC TF0JBC TF0,PTF0 PTF0 ;溢出否?;溢出否? AJMP LOOPAJMP LOOP PTF0 PTF0:MOV TL0MOV TL0,0CH

溫馨提示

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

評(píng)論

0/150

提交評(píng)論