C的定時(shí)器計(jì)數(shù)器學(xué)習(xí)教案_第1頁(yè)
C的定時(shí)器計(jì)數(shù)器學(xué)習(xí)教案_第2頁(yè)
C的定時(shí)器計(jì)數(shù)器學(xué)習(xí)教案_第3頁(yè)
C的定時(shí)器計(jì)數(shù)器學(xué)習(xí)教案_第4頁(yè)
C的定時(shí)器計(jì)數(shù)器學(xué)習(xí)教案_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、會(huì)計(jì)學(xué)1C的定時(shí)器計(jì)數(shù)器的定時(shí)器計(jì)數(shù)器2定時(shí)方法概述定時(shí)計(jì)數(shù)器結(jié)構(gòu)和工作原理定時(shí)計(jì)數(shù)器的控制寄存器 定時(shí)器的四種工作方式 定時(shí)器的應(yīng)用第1頁(yè)/共45頁(yè)3一、定時(shí)方法概述軟件定時(shí):軟件定時(shí)靠執(zhí)行一個(gè)循環(huán)程序以進(jìn)行時(shí)間延遲。特點(diǎn)是時(shí)間精確,且不需要外加硬件電路。但軟件定時(shí)要占用CPU開(kāi)銷(xiāo),因此軟件定時(shí)的時(shí)間不宜太長(zhǎng)。 采用時(shí)基電路定時(shí):特點(diǎn)是(定時(shí)功能全部由硬件電路完成)不占CPU時(shí)間,但需通過(guò)改變電路的元件參數(shù)來(lái)調(diào)節(jié)定時(shí)時(shí)間,在使用上不夠靈活方便。采用可編程芯片定時(shí):這種定時(shí)方法是通過(guò)對(duì)系統(tǒng)時(shí)鐘脈沖的計(jì)數(shù)來(lái)實(shí)現(xiàn)的。計(jì)數(shù)值通過(guò)程序設(shè)定,改變計(jì)數(shù)值,也就改變了定時(shí)時(shí)間,使用起來(lái)既靈活有方便。 結(jié)論:

2、MCS-51單片機(jī)把定時(shí)電路集成在芯片中,稱之為定時(shí)器/計(jì)數(shù)器。 8051型單片機(jī)有兩個(gè)定時(shí)/計(jì)數(shù)器,分別稱為定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1。 第2頁(yè)/共45頁(yè)4二、定時(shí)計(jì)數(shù)器結(jié)構(gòu)和工作原理定時(shí)器方式寄存器主要用于設(shè)定定時(shí)器的工作方式定時(shí)器控制寄存器主要用于控制定時(shí)器的啟動(dòng)與停止,并保存T0、T1的溢出和中斷標(biāo)志定時(shí)器0定時(shí)器1第3頁(yè)/共45頁(yè)5定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)框圖16位的定時(shí)器/計(jì)數(shù)器實(shí)質(zhì)上是一個(gè)加l計(jì)數(shù)器,可實(shí)現(xiàn)定時(shí)定時(shí)和計(jì)數(shù)計(jì)數(shù)兩種功能,其功能由軟件控制和切換。定時(shí)器屬硬件定時(shí)和計(jì)數(shù),是單片機(jī)中效率高而且工作靈活的部件。第4頁(yè)/共45頁(yè)6第5頁(yè)/共45頁(yè)7第6頁(yè)/共45頁(yè)81、工作

3、方式寄存器TMODM0M1C/T0GATE0M0M1C/ T1GATE1TMOD字節(jié)字節(jié)地址地址89H D7 D6 D5 D4 D3 D2 D1 D0控制控制T0T0控制控制T1T1方式選方式選擇擇0000:方式:方式0 00101:方式:方式1 11010:方式:方式2 21111:方式:方式3 3定時(shí)定時(shí)/ /計(jì)數(shù)選擇計(jì)數(shù)選擇0 0:定時(shí)器:定時(shí)器1 1:計(jì)數(shù)器:計(jì)數(shù)器門(mén)控位三、定時(shí)計(jì)數(shù)器的控制寄存器第7頁(yè)/共45頁(yè)9GATE:門(mén)控制位,用于控制定時(shí)器的啟動(dòng)是否受外部中斷源信號(hào)的影響。GATE=0時(shí),與外部中斷無(wú)關(guān), 由TCON寄存器中的TRx位控制啟動(dòng)。GATE=1時(shí),由控制位TRx和引

4、腳 共同控制啟動(dòng),只有在沒(méi)有外部中斷請(qǐng)求信號(hào)的情況下(即外部中斷引腳 =1時(shí)),才允許定時(shí)器啟動(dòng)。 INTxINTx第8頁(yè)/共45頁(yè)102、定時(shí)控制寄存器(TCON)當(dāng)定時(shí)器1計(jì)滿溢出時(shí),由硬件自動(dòng)使TF0置1,并申請(qǐng)中斷。對(duì)該標(biāo)志位有兩種處理方法,一種是以中斷方式工作,即TF0置1并申請(qǐng)中斷,響應(yīng)中斷后,執(zhí)行中斷服務(wù)程序,并由硬件自動(dòng)使TF0清0;另一種以查詢方式工作,即通過(guò)查詢?cè)撐皇欠駷?來(lái)判斷是否溢出,TF0置1后必須用軟件使TF0清0。GATE=0時(shí),用軟件使TR0置1即啟動(dòng)定時(shí)器1,若用軟件使TR0清0則停止定時(shí)器1。GATE=1時(shí),用軟件使TR1置1的同時(shí)外部中斷INT0的引腳輸入

5、高電平才能啟動(dòng)定時(shí)器0。第9頁(yè)/共45頁(yè)113、中斷允許控制寄存器EX0ET0EX1ET1ESET2EAIE字節(jié)字節(jié)地址地址A8HA8H D7 D6 D5 D4 D3 D2 D1 D0定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器1 1中中斷允許控制位斷允許控制位定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器0 0中中斷允許控制位斷允許控制位0 0:允許中斷:允許中斷1 1:禁止中斷響應(yīng):禁止中斷響應(yīng)中斷允許總控制位中斷允許總控制位第10頁(yè)/共45頁(yè)124、中斷優(yōu)先級(jí)寄存器IP(字節(jié)地址B8H)第11頁(yè)/共45頁(yè)13四、定時(shí)計(jì)數(shù)器的四種工作方式定時(shí)器定時(shí)器T0T0、T1T1的工作方式的工作方式第12頁(yè)/共45頁(yè)141、工作方式0(1

6、3位計(jì)數(shù)器)TR1=1TR1=1啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù)GATE0=0GATE0=0時(shí)時(shí):GATE0=1GATE0=1時(shí)時(shí):TR1=1TR1=1且且INT1=1INT1=1啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù)啟停控制定時(shí)計(jì)數(shù)選擇定時(shí)計(jì)數(shù)選擇1313位計(jì)數(shù)器位計(jì)數(shù)器第13頁(yè)/共45頁(yè)15 計(jì)數(shù)工作方式計(jì)數(shù)工作方式: : 最大的計(jì)數(shù)值為最大的計(jì)數(shù)值為81928192(2 21313) 預(yù)置的初值:預(yù)置的初值:X= 2X= 21313-N-N定時(shí)工作方式定時(shí)工作方式: :定時(shí)時(shí)間的計(jì)算公式為:定時(shí)時(shí)間的計(jì)算公式為: T=T=(2 21313計(jì)數(shù)初值)計(jì)數(shù)初值)晶振周期晶振周期1212?如晶振頻率為如晶振頻率為6MHZ/12MH

7、Z6MHZ/12MHZ,求最小定時(shí)時(shí)間和,求最小定時(shí)時(shí)間和最小定時(shí)時(shí)間最小定時(shí)時(shí)間 機(jī)器周期機(jī)器周期預(yù)置的初值:預(yù)置的初值:13212TX 晶振周期第14頁(yè)/共45頁(yè)16【例】 單片機(jī)晶振頻率為12MHz,若產(chǎn)生1ms定時(shí),采用方式0,試計(jì)算初值X。X=1110000000011000B=E018H所以(TH)=E0H,(TL)=18H。解:預(yù)置的初值: 1313362212121 10 s 8192-12 10 Hz12 7192D 1C18H 00011100000 11000BTTX晶振頻率晶振周期15141312111098/43210THTL第15頁(yè)/共45頁(yè)172、工作方式1(16

8、位計(jì)數(shù)器)1616位計(jì)數(shù)器位計(jì)數(shù)器第16頁(yè)/共45頁(yè)18 計(jì)數(shù)工作方式計(jì)數(shù)工作方式: : 最大的計(jì)數(shù)值為最大的計(jì)數(shù)值為6553665536(2 21616) 預(yù)置的初值:預(yù)置的初值:X= 2X= 21616-N-N定時(shí)工作方式定時(shí)工作方式: :定時(shí)時(shí)間的計(jì)算公式為:定時(shí)時(shí)間的計(jì)算公式為: T=T=(2 21616計(jì)數(shù)初值)計(jì)數(shù)初值)晶振周期晶振周期1212?如晶振頻率為如晶振頻率為6MHZ/12MHZ6MHZ/12MHZ,求最小定時(shí)時(shí)間和最,求最小定時(shí)時(shí)間和最小定時(shí)時(shí)間小定時(shí)時(shí)間 預(yù)置的初值:預(yù)置的初值:X= 2X= 21616-T/(-T/(晶振周期晶振周期12)12)第17頁(yè)/共45頁(yè)19

9、【例】 單片機(jī)晶振頻率為12MHz,若產(chǎn)生1ms定時(shí),采用方式1,試計(jì)算初值X。所以(TH)=FCH,(TL)=18H。解:預(yù)置的初值: 1616362212121 10 s 6553612 10 Hz12 64536D FC18H 11111100 00011000BTTX晶振頻率晶振周期1514131211109876543210THTL第18頁(yè)/共45頁(yè)20【例】【例】已知晶振頻率已知晶振頻率fosc=12MHzfosc=12MHz,使用定時(shí)器,使用定時(shí)器0 0以工作方式以工作方式1 1,在輸出周期為,在輸出周期為2ms2ms的的連續(xù)正方波脈沖。試編寫(xiě)相關(guān)程序。連續(xù)正方波脈沖。試編寫(xiě)相關(guān)

10、程序。 解:解:計(jì)算初值計(jì)算初值:TH0=FC HTH0=FC H,TL0=18 HTL0=18 H。 ORG 0000HORG 0000H LJMP MAIN LJMP MAIN ;跳轉(zhuǎn)到主程序;跳轉(zhuǎn)到主程序 ORG 000BH ORG 000BH ;T0T0的中斷入口地址的中斷入口地址 LJMP DVT0 LJMP DVT0 ;轉(zhuǎn)向中斷服務(wù)程序;轉(zhuǎn)向中斷服務(wù)程序 ORG 0100HORG 0100H MAIN MAIN:MOV SP,#60H ;MOV SP,#60H ;設(shè)堆棧指針設(shè)堆棧指針 MOV MOV TMODTMOD,#01H #01H ;置;置T0T0工作于方式工作于方式1 /1

11、 /初始化初始化TMODTMOD MOV TH0 MOV TH0,#0FCH #0FCH ;裝入計(jì)數(shù)初值裝入計(jì)數(shù)初值 /裝入初值裝入初值 MOV TL0MOV TL0,#018H #018H SETB ET0 SETB ET0 ;T0T0開(kāi)中斷開(kāi)中斷 /中斷設(shè)置中斷設(shè)置 SETB EA SETB EA ;CPUCPU開(kāi)中斷開(kāi)中斷 SETB TR0 SETB TR0 ;啟動(dòng);啟動(dòng)T0 /T0 /啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器 SJMP $ SJMP $ ;等待中斷;等待中斷 DVT0DVT0:CPL P1.0 CPL P1.0 ;取反輸出;取反輸出 MOV TH0MOV TH0,#0FCH #0FCH ;

12、重新裝入計(jì)數(shù)值重新裝入計(jì)數(shù)值 MOV TL0MOV TL0,#018H #018H RETI RETI ;中斷返回;中斷返回 ENDEND第19頁(yè)/共45頁(yè)21查詢方式:查詢方式: ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ;跳轉(zhuǎn)到主程序;跳轉(zhuǎn)到主程序 ORG 0100HORG 0100H MAIN MAIN:MOV MOV TMODTMOD,#01H #01H ;置;置T0T0工作于方式工作于方式1 /1 /初始化初始化TMODTMOD LOOP: MOV TH0 LOOP: MOV TH0,#0FCH #0FCH ;裝入計(jì)數(shù)初值裝入計(jì)數(shù)初值 /裝入初值

13、裝入初值 MOV TL0MOV TL0,#018H #018H SETB TR0 SETB TR0 ;啟動(dòng);啟動(dòng)T0 /T0 /啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器 JNB TF0JNB TF0,$ $ ;查詢;查詢TF0TF0標(biāo)志,如為標(biāo)志,如為1 1,說(shuō)明,說(shuō)明T0T0溢出,溢出, ;則往下執(zhí)行;則往下執(zhí)行 CLR TF0CLR TF0 ;清除;清除TF0TF0中斷標(biāo)志位中斷標(biāo)志位 CLR TR0 CLR TR0 ;T0T0溢出,關(guān)閉定時(shí)器溢出,關(guān)閉定時(shí)器 CPL P1.0 CPL P1.0 ;狀態(tài)取反;狀態(tài)取反 SJMP LOOPSJMP LOOP END END 第20頁(yè)/共45頁(yè)223、工作方式2(

14、自動(dòng)裝載初值的8位計(jì)數(shù)器)注:注:適用于需要重復(fù)定時(shí)或計(jì)數(shù)的場(chǎng)合。適用于需要重復(fù)定時(shí)或計(jì)數(shù)的場(chǎng)合。 定時(shí)精度比較高,但定時(shí)時(shí)間較短。定時(shí)精度比較高,但定時(shí)時(shí)間較短。用作定時(shí)或計(jì)數(shù)時(shí)的加1計(jì)數(shù)器用作賦值(保存初值)。第21頁(yè)/共45頁(yè)23例、已知晶振頻率例、已知晶振頻率fosc=6MHzfosc=6MHz,要求使用定時(shí)器,要求使用定時(shí)器0 0以工作方式以工作方式2 2產(chǎn)生產(chǎn)生100100s s定定時(shí),在輸出周期為時(shí),在輸出周期為200200s s的連續(xù)正方波脈沖。試編寫(xiě)相關(guān)程序。的連續(xù)正方波脈沖。試編寫(xiě)相關(guān)程序。 解:解:計(jì)算初值計(jì)算初值:8866221212100 10 s 2566 10 H

15、z12 206D0CEH11001110BTTX 晶振頻率晶振周期 MOV TMOD MOV TMOD,#02H#02H ;設(shè)置定時(shí)器;設(shè)置定時(shí)器0 0為工作方式為工作方式2 2 MOV TH0 MOV TH0,#0CEH #0CEH ;設(shè)置計(jì)數(shù)初值;設(shè)置計(jì)數(shù)初值 MOVMOV,TL0TL0,#0CEH#0CEH SETB TR0 SETB TR0;啟動(dòng)定時(shí);啟動(dòng)定時(shí)LOOPLOOP:JBC TF0JBC TF0,LOOP1LOOP1;查詢計(jì)數(shù)溢出;查詢計(jì)數(shù)溢出 AJMP LOOPAJMP LOOPLOOP1LOOP1:CPL P1.0CPL P1.0;輸出方波,初值自動(dòng)裝入;輸出方波,初值自

16、動(dòng)裝入 AJMP LOOPAJMP LOOP第22頁(yè)/共45頁(yè)24例例6-3 6-3 當(dāng)當(dāng)T0T0()引腳上發(fā)生負(fù)跳變時(shí),從引腳上輸出一個(gè)周期為()引腳上發(fā)生負(fù)跳變時(shí),從引腳上輸出一個(gè)周期為1ms1ms的的方波方波, ,如圖所示。(系統(tǒng)時(shí)鐘為如圖所示。(系統(tǒng)時(shí)鐘為6MHz6MHz)(1 1)工作方式選擇)工作方式選擇T0T0為方式為方式1 1計(jì)數(shù)計(jì)數(shù),初值,初值 0FFFFH0FFFFH,即外部計(jì)數(shù)輸入端,即外部計(jì)數(shù)輸入端T0T0()發(fā)生一次負(fù)跳()發(fā)生一次負(fù)跳變時(shí),變時(shí),T0T0加加1 1且溢出,溢出標(biāo)志且溢出,溢出標(biāo)志TF0TF0置置“1”1”,發(fā)中斷請(qǐng)求。在進(jìn)入,發(fā)中斷請(qǐng)求。在進(jìn)入T0T

17、0中斷程中斷程序后,啟動(dòng)序后,啟動(dòng)T1T1。T1T1定義為方式定義為方式2 2定時(shí)定時(shí)。在。在T0T0腳發(fā)生一次負(fù)跳變后,啟動(dòng)腳發(fā)生一次負(fù)跳變后,啟動(dòng)T1T1每每500500 s s產(chǎn)生一次中產(chǎn)生一次中斷,在中斷服務(wù)程序中對(duì)求反,使產(chǎn)生周期斷,在中斷服務(wù)程序中對(duì)求反,使產(chǎn)生周期1ms1ms的方波。的方波。第23頁(yè)/共45頁(yè)25(2 2)計(jì)算)計(jì)算T1T1初值初值設(shè)設(shè)T1T1的初值為的初值為X X: 則則 (2(28 8-X)-X)2 21010-6-6=5=51010-4-4 X=2 X=28 8-250=6=06H-250=6=06H(3 3)程序設(shè)計(jì))程序設(shè)計(jì) ORG 0000HORG 0

18、000H RESET: LJMP MAIN RESET: LJMP MAIN ;復(fù)位入口轉(zhuǎn)主程序;復(fù)位入口轉(zhuǎn)主程序 ORG 000BHORG 000BH LJMP IT0P LJMP IT0P ;轉(zhuǎn);轉(zhuǎn)T0T0中斷服務(wù)程序中斷服務(wù)程序 ORG 001BHORG 001BH LJMP IT1P LJMP IT1P ;轉(zhuǎn);轉(zhuǎn)T1T1中斷服務(wù)程序中斷服務(wù)程序 ORG 0100HORG 0100H MAIN: MOV SP,#60HMAIN: MOV SP,#60H ACALL PT0M2 ; ACALL PT0M2 ;調(diào)用對(duì)調(diào)用對(duì)T0T0、T1T1初始化子程序初始化子程序 LOOPLOOP: MOV

19、 CMOV C,F(xiàn)0F0 JNC LOOP JNC LOOP ;T0T0沒(méi)有產(chǎn)生中斷,等待沒(méi)有產(chǎn)生中斷,等待T0T0中斷中斷 SETB ET1 SETB ET1 ;允許;允許T1T1中斷中斷 SETB TR1 SETB TR1 ;啟動(dòng);啟動(dòng)T1T1 SJMP $ SJMP $ 第24頁(yè)/共45頁(yè)26PT0M2PT0M2:MOV TMOD,#25H MOV TMOD,#25H ;初始化,;初始化,T1T1為方式為方式2 2定時(shí),定時(shí),T0T0為方式為方式1 1計(jì)數(shù)計(jì)數(shù) MOV TL0,#0FFH MOV TL0,#0FFH ;T0T0置初值置初值 MOV TH0,#0FFHMOV TH0,#0F

20、FH SETB ET0 SETB ET0 ;允許;允許T0T0中斷中斷 MOV TL1,#06H MOV TL1,#06H ;T1T1置初值置初值 MOV TH1,#06HMOV TH1,#06H CLR F0 CLR F0 SETB EA ; SETB EA ;開(kāi)中斷開(kāi)中斷 SETB TR0SETB TR0 ;啟動(dòng);啟動(dòng)T0T0 RET RETIT0P: CLR TR0 IT0P: CLR TR0 ;T0T0中斷服務(wù)程序,停止中斷服務(wù)程序,停止T0T0計(jì)數(shù)計(jì)數(shù) SETB F0 ;SETB F0 ;建立建立T0T0產(chǎn)生中斷的標(biāo)志產(chǎn)生中斷的標(biāo)志RETIRETI IT1P: CPL P1.0 IT

21、1P: CPL P1.0 ;T1T1中斷服務(wù),位取反中斷服務(wù),位取反 RETIRETI END END第25頁(yè)/共45頁(yè)274 4、工作方式、工作方式3 3為什么定時(shí)為什么定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T1T1無(wú)工作方式無(wú)工作方式3 3??jī)蓚€(gè)獨(dú)立的計(jì)數(shù)器兩個(gè)獨(dú)立的計(jì)數(shù)器注:當(dāng)注:當(dāng)T1用作串行口的波特率發(fā)生器時(shí),用作串行口的波特率發(fā)生器時(shí),T0才工作在方式才工作在方式3。TH0TH0被固定為被固定為1 1個(gè)獨(dú)立個(gè)獨(dú)立的的8 8位定時(shí)器(無(wú)外部位定時(shí)器(無(wú)外部計(jì)數(shù)功能),并使用計(jì)數(shù)功能),并使用T1T1的資源(的資源(TR1TR1、TF1TF1)TL0TL0使用使用T0T0的資源(的資源(TR0TR0、

22、TF0TF0、INT0INT0、GATEGATE、G/TG/T)第26頁(yè)/共45頁(yè)28例:假設(shè)某MCS-51應(yīng)用系統(tǒng)的兩個(gè)外中斷源已被占用,設(shè)置T1工作在方式2,作波特率發(fā)生器用?,F(xiàn)要求增加一個(gè)外部中斷源,并控制引腳輸出一個(gè)5kHz的方波。設(shè)系統(tǒng)時(shí)鐘為12MHz。第27頁(yè)/共45頁(yè)29第28頁(yè)/共45頁(yè)30第29頁(yè)/共45頁(yè)31第30頁(yè)/共45頁(yè)32 MOV TCON,#15HMOV TCON,#15H;啟動(dòng);啟動(dòng)T0 T0 或用或用SETB TR0SETB TR0 MOV IE,#9FH MOV IE,#9FH ;允許所有中斷;允許所有中斷 SJMP $SJMP $TL0INTTL0INT:

23、MOV TL0,#0FFH MOV TL0,#0FFH ;TL0TL0中斷服務(wù)程序中斷服務(wù)程序,TL0,TL0重新裝入初值重新裝入初值 SETB SETB TR1 ;TR1 ;啟動(dòng)啟動(dòng)TH0TH0定時(shí)定時(shí) RETIRETITH0INT: MOV TH0,#9CH ;TH0TH0INT: MOV TH0,#9CH ;TH0中斷服務(wù)程序。中斷服務(wù)程序。TH0TH0重新裝入初值重新裝入初值 RETIRETI第31頁(yè)/共45頁(yè)33初始化程序應(yīng)完成如下工作:對(duì)TMOD賦值,以確定T0和T1的工作方式。計(jì)算初值,并將其寫(xiě)入TH0、TL0或TH1、TL1。中斷方式時(shí),則對(duì)IE賦值,開(kāi)放中斷。使TR0或TR1

24、置位,啟動(dòng)定時(shí)/計(jì)數(shù)器定時(shí)或計(jì)數(shù)。小結(jié):第32頁(yè)/共45頁(yè)34五、定時(shí)器的應(yīng)用1、門(mén)控制位GATE的應(yīng)用測(cè)量脈沖寬度GATE=0時(shí),與外部中斷無(wú)關(guān), 由TCON寄存器中的TRx位控制啟動(dòng)。GATE=1時(shí),由控制位TRx和引腳 共同控制啟動(dòng),只有在沒(méi)有外部中斷請(qǐng)求信號(hào)的情況下(即外部中斷引腳 =1時(shí)),才允許定時(shí)器啟動(dòng)。 INTxINTx第33頁(yè)/共45頁(yè)35ORG 0000HRESET: AJMP MAIN ;復(fù)位入口轉(zhuǎn)主程序 ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#90H ;T1為方式1定時(shí)控制字 MOV TL1,#00H MOV TH1,#00HLOOP

25、0: JB P3.3,LOOP0;INT1高,則循環(huán) SETB TR1 ;如INT1為低,啟動(dòng)T1LOOP1: JNB P3.3,LOOP1;INT1低,則循環(huán)LOOP2: JB P3.3,LOOP2 ;INT1高,則循環(huán)CLR TR1 ;停止T1計(jì)數(shù) MOV A,TL1 ;T1計(jì)數(shù)值送A將A中的T1計(jì)數(shù)值送顯示緩沖區(qū)轉(zhuǎn)換成顯示的代碼 LOOP3: LCALL DIR ;調(diào)用顯示子程序DIR顯示T1計(jì)數(shù)值 AJMP LOOP3 ; 第34頁(yè)/共45頁(yè)362、實(shí)時(shí)時(shí)鐘的設(shè)計(jì)實(shí)時(shí)時(shí)鐘實(shí)現(xiàn)的基本思想實(shí)時(shí)時(shí)鐘實(shí)現(xiàn)的基本思想: :如何獲得如何獲得1 1秒的定時(shí)秒的定時(shí)? ?可把定時(shí)時(shí)間定為可把定時(shí)時(shí)間定

26、為100ms100ms,采用中斷方式進(jìn)行溢出次數(shù)的累計(jì),計(jì)滿,采用中斷方式進(jìn)行溢出次數(shù)的累計(jì),計(jì)滿1010次,即得到秒計(jì)時(shí)。次,即得到秒計(jì)時(shí)。如何保存秒、分、時(shí)?如何保存秒、分、時(shí)?片內(nèi)片內(nèi)RAMRAM中規(guī)定中規(guī)定3 3個(gè)單元作為秒、分、時(shí)單元,具體安排如下:個(gè)單元作為秒、分、時(shí)單元,具體安排如下: 42H42H:“秒秒”單元單元 ;41H41H:“分分”單元;單元;40H40H:“時(shí)時(shí)”單元單元如何實(shí)現(xiàn)從秒到分,從分到時(shí)?如何實(shí)現(xiàn)從秒到分,從分到時(shí)?從秒到分,從分到時(shí)是通過(guò)軟件累加并進(jìn)行比較的方法來(lái)實(shí)現(xiàn)的。從秒到分,從分到時(shí)是通過(guò)軟件累加并進(jìn)行比較的方法來(lái)實(shí)現(xiàn)的。第35頁(yè)/共45頁(yè)37時(shí)鐘主

27、程序流程時(shí)鐘主程序流程中斷服務(wù)程序流程中斷服務(wù)程序流程第36頁(yè)/共45頁(yè)38例:將定時(shí)器T0擴(kuò)展為外部中斷源。解解:將定時(shí)器T0設(shè)定為方式2(自動(dòng)恢復(fù)計(jì)數(shù)初值),TH0和TF0的初值均設(shè)置為FFH,允許T0中斷,CPU開(kāi)放中斷,源程序如下:MOVTMOD,#06H MOV TH0,#0FFHMOVTL0,#0FFHSETBTR0SETBET0SETBEA T0引腳每輸入一個(gè)負(fù)跳變,TF0都會(huì)置1,向CPU請(qǐng)求中斷 T0T0腳相當(dāng)于邊沿觸發(fā)的外部中斷源輸入線。腳相當(dāng)于邊沿觸發(fā)的外部中斷源輸入線。3、作為外部中斷源第37頁(yè)/共45頁(yè)39第38頁(yè)/共45頁(yè)40第39頁(yè)/共45頁(yè)41選擇題:選擇題:1

28、 1定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T0T0在在GATE = 1GATE = 1時(shí)運(yùn)行的條件有(時(shí)運(yùn)行的條件有( )。)。A AP3.2 = 1 B.P3.2 = 1 B.設(shè)置好定時(shí)初值設(shè)置好定時(shí)初值 開(kāi)啟中開(kāi)啟中2 2對(duì)定時(shí)器對(duì)定時(shí)器 0 0 進(jìn)行關(guān)中斷操作,需要復(fù)位中斷允許控制寄存器的:進(jìn)行關(guān)中斷操作,需要復(fù)位中斷允許控制寄存器的: (A) EA (A) EA 和和 ET0ET0 (B) EA (B) EA 和和 EX0 EX0 (C) EA (C) EA 和和 ET1ET1 (D) EA (D) EA 和和 EX1EX13 3在下列寄存器中,與定時(shí)器在下列寄存器中,與定時(shí)器 / / 計(jì)數(shù)器控制

29、無(wú)關(guān)的是:計(jì)數(shù)器控制無(wú)關(guān)的是: (A) TCON(A) TCON (B) SCON (B) SCON (C) IE(C) IE (D) TMOD (D) TMOD 4 4 與定時(shí)工作方式與定時(shí)工作方式 0 0 和和 1 1 相比較,定時(shí)工作方式相比較,定時(shí)工作方式 2 2 不具備的特點(diǎn)是:不具備的特點(diǎn)是: (A) (A) 計(jì)數(shù)溢出后能自動(dòng)恢復(fù)計(jì)數(shù)初值計(jì)數(shù)溢出后能自動(dòng)恢復(fù)計(jì)數(shù)初值 (B) (B) 增加計(jì)數(shù)器的位數(shù)增加計(jì)數(shù)器的位數(shù) (C) (C) 提高了定時(shí)的精度提高了定時(shí)的精度 (D) (D) 適于循環(huán)定時(shí)和循環(huán)計(jì)數(shù)適于循環(huán)定時(shí)和循環(huán)計(jì)數(shù) 5 5MCS-51MCS-51單片機(jī)定時(shí)器工作方式單片機(jī)定時(shí)器工作方

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論