單片機定時概念_第1頁
單片機定時概念_第2頁
單片機定時概念_第3頁
單片機定時概念_第4頁
單片機定時概念_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機定時概念第1頁,共47頁,2022年,5月20日,2點46分,星期二上圖為定時器結(jié)構(gòu)框圖80C51單片機內(nèi)部有兩個定時/計數(shù)器T0和T1,其核心是計數(shù)器,基本功能是加1(加1計數(shù))。對外部事件脈沖(下降沿)計數(shù),是計數(shù)器;對片內(nèi)機器脈沖計數(shù),是定時器。計數(shù)器由二個8位計數(shù)器組成。第2頁,共47頁,2022年,5月20日,2點46分,星期二 定時時間和計數(shù)值可以編程設(shè)定,其方法是在計數(shù)器內(nèi)設(shè)置一個初值,然后加1計滿后溢出。調(diào)整計數(shù)器初值,可調(diào)整從初值到計滿溢出的數(shù)值,即調(diào)整了定時時間和計數(shù)值。 定時/計數(shù)器作為計數(shù)器時,外部事件脈沖必須從規(guī)定的引腳輸入。 定時器均采用加一定時2、 定時/計

2、數(shù)器的控制寄存器TMOD:設(shè)定定時器/計數(shù)器T0、T1的工作模式和 工作方式。 TCON:控制T0、T1的啟動和停止計數(shù),同時包 含了T0、T1的狀態(tài),即各定時計數(shù)器是 否計數(shù)時間到(即是否需要服務(wù))。第3頁,共47頁,2022年,5月20日,2點46分,星期二TCON低4位與外中斷INT有關(guān),已在中斷中敘述。 高4位與定時/計數(shù)器T0、T1有關(guān)。TF1:定時/計數(shù)器T1溢出標(biāo)志。 TF0:定時/計數(shù)器T0溢出標(biāo)志。TR1:定時/計數(shù)器T1運行控制位。 TR1=1,T1運行;TR1=0,T1停。 TR0:定時/計數(shù)器T0運行控制位。 TR0=1,T0運行;TR0=0,T0停。第4頁,共47頁,

3、2022年,5月20日,2點46分,星期二2、 定時/計數(shù)器工作方式控制寄存器TMODTMOD用于設(shè)定定時/計數(shù)器的工作方式低4位用于控制T0,高4位用于控制T1。 M1M0 工作方式選擇位第5頁,共47頁,2022年,5月20日,2點46分,星期二 C/T 計數(shù)/定時方式選擇位 C/T=1,計數(shù)工作方式,對外部事件脈沖計數(shù),用作計數(shù)器。 C/T=0,定時工作方式,對片內(nèi)機周脈沖計數(shù),用作定時器。 GATE 門控位,見下圖 GATE=0,運行只受TCON中運行控制位TR0/TR1的控制。 GATE=1,運行同時受TR0/TR1和外中斷輸入信號的雙重控制。 只有當(dāng)INT0/INT1=1且TR0/

4、TR1=1,T0/T1才能運行。 當(dāng)GATE=1且 TR0/TR1=1時,用做對INT0/INT1輸入脈沖高 電平長度的測量TMOD字節(jié)地址89H,不能位操作,設(shè)置TMOD須用字節(jié)操作指令。 第6頁,共47頁,2022年,5月20日,2點46分,星期二3、 定時/計數(shù)器工作方式(1) 工作方式0 13位計數(shù)器,由TL0低5位和TH0 8位組成,TL0低5位計數(shù)滿時不向TL0第6位進位,而是向TH0進位,13位計滿溢出,TF0置“1”。最大計數(shù)值213 = 8192。所有工作方式0計數(shù)都可以用方式1代替,因此,方式0比較少用(2) 工作方式1:16位定時計數(shù)器 第7頁,共47頁,2022年,5月

5、20日,2點46分,星期二 THx/TLx賦初值:THx賦高8位,TLx賦低8位工作方式1 的編程要點: TMOD選方式: 寫“M1,M0”=01 b 選方式1 若不用門控位,直接用軟件寫TRx控制啟/停 若使用門控位,先置位TRx,然后由INTx端 的高/低電平來控制其啟/停第8頁,共47頁,2022年,5月20日,2點46分,星期二 定時器(方式1)應(yīng)用程序舉例:分析:已知fosc = 6MHz 則: (振蕩周期)1Tc=1/6MHz (機器周期)1Tm=12Tc=12/6MHz=2S 粗略地說:Tmin 2S 16位定時器最大數(shù)值為:216=65536=0FFFFH+1 故選擇方式 1

6、工作可以得到: Tmax = 655362 = 131072S131.072mS若晶振頻率為6MHz,計算單片機的最小與最大定時時間:第9頁,共47頁,2022年,5月20日,2點46分,星期二分析:已知fosc = 6MHz 則: (機器周期)1Tm=12Tc=12/6MHz=2S 100mS2 S = 50000 16位定時器最大數(shù)值為: 216 = 65536 (=0FFFFH+1) 故選擇方式1工作可以滿足要求。計算初值:6553650000=15536=3CB0H要求對T0產(chǎn)生100mS定時進行初始化。(晶振=6MHz)第10頁,共47頁,2022年,5月20日,2點46分,星期二G

7、ATE C / T M1 M0 GATE C / T M1 M0由分析得知:T0選擇方式1,初值=3CB0H X X X X 0 0 0 1初始化:MOV TMOD,#01H ;選 T0 方式 1 MOV TH0, #3CH ;賦初值高8位 MOV TL0, #0B0H ;賦初值低8位 若需要定時器0產(chǎn)生中斷還應(yīng)當(dāng)寫如下語句: SETB ET0 ;開T0中斷允許 SETB EA ;開總中斷允許 SETB TR0 ;啟動 T0定時以及相應(yīng)的中斷服務(wù)程序。第11頁,共47頁,2022年,5月20日,2點46分,星期二(3)工作方式2:8 位自動重裝的定時/計數(shù)器 THx/TLx賦相同初值(X=0或

8、1) 在TLx計數(shù)達到0FFH 再加“1”時,TL0 將溢出, “TFx”位置1,提出中斷請求并 使THx中的值自動重裝(Copy)進TLx第12頁,共47頁,2022年,5月20日,2點46分,星期二 TMOD寄存器選方式: 寫“M1,M0” = 10 b 選中方式2分析:fosc = 6MHz 1機器周期 = 2 S 1KHz方波周期 = 1 mS 半個方波周期 =500S 500uS2 uS = 250 若選擇方式2 工作,8位定時器最大數(shù)值為: 28 =256 =0FFH + 1 可以滿足要求。計算初值:256250=6從P1.0 腳輸出頻率=1KHz方波。設(shè):晶振=6MHz。利用T1

9、定時中斷。定時器(方式2)應(yīng)用程序舉例:第13頁,共47頁,2022年,5月20日,2點46分,星期二所以初始化程序為: MOV TMOD,#20H MOV TH0, #6 MOV TL0, #6 SETB ET1 SETB EA SETB TR1 第14頁,共47頁,2022年,5月20日,2點46分,星期二4、 定時/計數(shù)器的應(yīng)用1、計算定時/計數(shù)初值80C51定時/計數(shù)初值計算公式:定時時間計數(shù)周期數(shù)機器周期長度 =(n初值N) f初值n(時間t f)其中: n與工作方式有關(guān): 方式0時,n=13; 方式1時,n=16; 方式2、3時,n=8。機器周期與主振頻率有關(guān):機器周期=12/fo

10、sc,f=12MHZ時,1機周=1S; f=6MHZ 時,1機周=2S。 第15頁,共47頁,2022年,5月20日,2點46分,星期二【例1】 已知晶振6MHz,要求定時0.5ms,試分別求出T0工作于方式1、方式2時的定時初值。解: 工作方式1: T0初值 =216-500s/2s =65536250=65286=0FF06H TH0=0FFH;TL0=06H。 工作方式2: T0初值 =28-500s/2s=256-250=6 TH0=06H;TL0=06H。第16頁,共47頁,2022年,5月20日,2點46分,星期二定時器/計數(shù)器的編程和應(yīng)用 采用中斷的定時初始化過程: (1)設(shè)置中

11、斷寄存器(tmod寄存器,開中斷、優(yōu)先級、啟動計數(shù)),以及定時初值的寫入。 (2)定時時間計數(shù)周期數(shù)機器周期長度 =(n初值N) f初值n(時間t f) (3)對于較長時間的定時,可以采用與循環(huán)程序相結(jié)合進行設(shè)計 采用中斷方式,定時時間到在執(zhí)行中斷服務(wù)后返回的 時候會將tf0或tf1清零。第17頁,共47頁,2022年,5月20日,2點46分,星期二例5-1 假設(shè)系統(tǒng)時鐘頻率采用6MHz,要在P1.0上輸出一個周期為2ms的方波,如圖所示。第18頁,共47頁,2022年,5月20日,2點46分,星期二(1)計算初值X 設(shè)初值為X,則有: 延時時間為1ms,相當(dāng)于500個機器周期長度,因此可以采

12、用方式1,計數(shù)初始值為 X = 216-500 = 65036 X化為16進制,即X=0FE0CH=11111110,00001100B。 所以,T0的初值為: TH0=0FEH TL0=0CH因此可以用定時器0,選擇工作方式1,每定時中斷一次,執(zhí)行一次P1.0的取反操作。 由于方式1不能循環(huán)計數(shù),因此,每執(zhí)行一次中斷還要重裝初期進行計數(shù)。第19頁,共47頁,2022年,5月20日,2點46分,星期二(2)初始化程序設(shè)計:對寄存器IP、IE、TCON、TMOD的相應(yīng)位進行正確設(shè)置,將計數(shù)初值送入定時器中。 (3)程序設(shè)計 ORG 0000HRESET: LJMP MAIN ;轉(zhuǎn)主程序 ORG

13、000BH ;T0的中斷入口 LJMP IT0P ;轉(zhuǎn)T0中斷處理程序IT0P ORG 0100HMAIN: MOV SP,#60H ;設(shè)堆棧指針 MOV TMOD,#01H ;設(shè)置T0為方式1 MOV TL0,#0CH;T0中斷服務(wù)程序,T0重新置初值 MOV TH0,#0FEH SETB ET0 ;允許T0中斷 SETB EA ;CPU開中斷 SETB TR0 ;啟動T0 SJMP $第20頁,共47頁,2022年,5月20日,2點46分,星期二ITOP: MOV TL0,#0CH;T0中斷服務(wù)子程序,T0置初值 MOV TH0,#0FEH CPL P1.0 ;P1.0的狀態(tài)取反 RETI

14、 END第21頁,共47頁,2022年,5月20日,2點46分,星期二例6-2 假設(shè)系統(tǒng)時鐘為6MHz,編寫定時器T0產(chǎn)生1秒定時的程序。(1)T0工作方式的確定定時時間較長,采用哪一種工作方式? 由各種工作方式的特性,可計算出: 方式0最長可定時16.384ms; 方式1最長可定時131.072ms; 方式2最長可定時512s。選方式1,每隔100ms中斷一次,中斷10次為1s。(2)計算計數(shù)初值 因為:100ms=50000個機器周期 所以:X=65536-50000=15536=3CB0H 因此:TH0=3CH,TL0=B0H 第22頁,共47頁,2022年,5月20日,2點46分,星期

15、二(3)10次計數(shù)的實現(xiàn) 采用循環(huán)程序法。(4) 參考程序 : ORG 0000HRESET: LJMP MAIN ;上電,轉(zhuǎn)主程序入口MAIN ORG 000BH ;T0的中斷入口 LJMP IT0P;轉(zhuǎn)T0中斷處理程序IT0P ORG 1000H MAIN: MOV SP,#60H ;設(shè)堆棧指針 MOV R1,#0AH ;設(shè)循環(huán)次數(shù)10次 MOV TMOD,#01H ;設(shè)T0工作在方式1 MOV TL0,#0B0H ;給T0設(shè)初值 MOV TH0,#3CH 第23頁,共47頁,2022年,5月20日,2點46分,星期二 SETB ET0 ;允許T0中斷 SETB EA ;CPU開放中斷 S

16、ETB TR0 ;啟動T0 HERE: SJMP HERE ;等待中斷 ITOP: MOV TL0,#0B0H ;T0中斷子程序,重裝初值 MOV TH0,#3CH ; DJNZ R1,LOOP CLR TR0 ;1s定時時間到,停止T0工作 LOOP: RETI 如要使P1口所接8盞等每秒左移跑動一位,應(yīng)該怎么處理?第24頁,共47頁,2022年,5月20日,2點46分,星期二 查詢方式的參考程序: 查詢方式主要利用的是:當(dāng)計數(shù)器定時時間到的時候會自動的把中斷標(biāo)志位TF1或TF0置為1,因此,啟動定時后,只要評定對應(yīng)的服務(wù)標(biāo)志位TF0或TF1是否為1就可以判斷是否定時時間到,即是否要開始執(zhí)行

17、服務(wù)程序。5-1的查詢方式的參考程序可以寫為:第25頁,共47頁,2022年,5月20日,2點46分,星期二例5-1 假設(shè)系統(tǒng)時鐘頻率采用6MHz,要在P1.0上輸出一個周期為2ms的方波,如圖所示。第26頁,共47頁,2022年,5月20日,2點46分,星期二ORG 0000LJMP MAINORG 0100HMAIN: MOV TMOD,#01H ;設(shè)置T0為方式1 LOOP: MOV TH0,#0FEH ;T0置初值 MOV TL0,# 0CH SETB TR0 ;接通T0LOOP1:JNB TF0,LOOP1 ;查詢TF0標(biāo)志 CLR TF0 ; CPL P1.0 ;P1.0的狀態(tài)求反

18、 SJMP LOOP第27頁,共47頁,2022年,5月20日,2點46分,星期二門控制位GATE的應(yīng)用測量脈沖寬度GATE1可使定時器/計數(shù)器T1的啟動計數(shù)受INT1*的控制,可測量引腳INT1或INT0引腳上正脈沖的寬度(機器周期數(shù))。第28頁,共47頁,2022年,5月20日,2點46分,星期二如上圖所示:測量引腳INT1(P3.3)上正脈沖的寬度。第29頁,共47頁,2022年,5月20日,2點46分,星期二參考程序: ORG 0000HRESET: AJMP MAIN ;復(fù)位入口轉(zhuǎn)主程序 ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#90H ;T1為方式

19、1定時控制字 MOV TL1,#00H MOV TH1,#00H MOV R0,#30HLOOP0: JB P3.3,LOOP0;INT1*高,則循環(huán) SETB TR1;如INT1*為低,啟動T1LOOP1: JNB P3.3,LOOP1;INT1*低,則循環(huán)等待LOOP2: JB P3.3,LOOP2 ;INT1*高,則循環(huán)等待(兩個等待的意義?)第30頁,共47頁,2022年,5月20日,2點46分,星期二 CLR TR1;停止T1計數(shù) MOV R0,TL1;T1計數(shù)值送A INC R0 MOV R0,TH1;T1計數(shù)值送A SJMP $ END執(zhí)行程序,使INT1*引腳上出現(xiàn)的正脈沖寬度

20、以機器周期數(shù)的形式存放在30H和31H單元。第31頁,共47頁,2022年,5月20日,2點46分,星期二例3、書本P125例題53測量高低電平持續(xù)時間ORG 0000HLJMP MAINORG 0100HMAIN:MOV TMOD,#10011001B;MOV TH1,#00HMOV TL1,#00HMOV TH0,#00HMOV TL0,#00H第32頁,共47頁,2022年,5月20日,2點46分,星期二 WAIT1:JB P3.2,$ SETB TR0 ;被測為低時開始計數(shù),此時P3.2為高WAIT2:JNB P3.2,WAIT1;即被測信號為高電平,等待WAIT3:JB P3.2,W

21、AIT2 ;等待計數(shù)完成CLR TR0 ;計數(shù)完關(guān)閉T0,輸入信號由低變?yōu)楦唠娖絊ETB TR1;啟動T1后t1開始工作WAIT3:JB P3.3 WAIT3;表示波形電平為高,繼續(xù)計數(shù)CLR TR1;關(guān)T1MOV R0,#35HMOV R0,TL0INV R0MOV R0,TH0 ;T0用于保存低電平時間INC R0MOV R0,TL1INV R0MOV R0,TH1 ;T1用于保存高電平時間END第33頁,共47頁,2022年,5月20日,2點46分,星期二例6-3 當(dāng)T0(P3.4)引腳上發(fā)生負(fù)跳變時,從P1.0引腳上輸出一個周期為1ms的方波,如圖所示。(系統(tǒng)時鐘為6MHz)(1)工作

22、方式選擇T0為方式1計數(shù),初值 0FFFFH,即外部計數(shù)輸入端T0(P3.4)發(fā)生一次負(fù)跳變時,T0加1且溢出,溢出標(biāo)志TF0置“1”,發(fā)中斷請求。說明T0腳已接收了負(fù)跳變信號。第34頁,共47頁,2022年,5月20日,2點46分,星期二T1定義為方式2定時。在T0腳發(fā)生一次負(fù)跳變后,啟動T1每500s產(chǎn)生一次中斷,在中斷服務(wù)程序中對P1.0求反,使P1.0產(chǎn)生周期1ms的方波。注意方式2可以循環(huán)計數(shù)(2)計算T1初值設(shè)T1的初值為X: 因為 1MS=1000um=2250個機器周期 所以 X=28-250=6=06H T0的初值為:0ffffh(3)程序設(shè)計 ORG 0000H RESET

23、: LJMP MAIN ;復(fù)位入口轉(zhuǎn)主程序 ORG 001BH LJMP IT1P ;轉(zhuǎn)T1中斷服務(wù)程序第35頁,共47頁,2022年,5月20日,2點46分,星期二MAIN: MOV TMOD,#00100101H ;初始化,T1為方式2定 時,T0為方式1計數(shù) SETB EA SETB ET1 ;允許T1中斷 MOV TL0,#0FFH ;T0置初值 MOV TH0,#0FFH MOV TL1,#06H ;T1置初值 MOV TH1,#06H SETB TR0 ;啟動T0 JNB TF0,$ CLR TR0 SETB TR1 ;啟動T1 HERE: AJMP HEREIT1P: CPL P

24、1.0;T1中斷服務(wù),P1.0位取反 RETI第36頁,共47頁,2022年,5月20日,2點46分,星期二實訓(xùn)題目:1、手動控制跑馬燈的跑動(中斷)org 0000hljmp mainorg 0003hljmp zd0main:setb easetb ex0setb it0mov ip,#00000001bmov a,#0fehmov p1,asjmp $zd0: rl a mov p1,aretiend第37頁,共47頁,2022年,5月20日,2點46分,星期二2、計程器的實現(xiàn)(中斷)org 0000hljmp mainorg 0003hljmp zd0main:setb easetb

25、ex0setb it0mov ip,#00000001bmov a,#00hmov p1,asjmp $zd0:add a,#2 mov b,a cpl a mov p1,a mov a,b retiend第38頁,共47頁,2022年,5月20日,2點46分,星期二2、計程器的實現(xiàn)(中斷)改:org 0000hljmp mainorg 0003hljmp zd0org 0013hljmp zd1org 0100hmain:setb easetb ex0setb ex1setb it0setb it1mov a,#00hmov p1,asjmp $zd0:add a,#2 mov b,a cp

26、l a mov p1,a mov a,b retizd1:mov a,#00h retiend第39頁,共47頁,2022年,5月20日,2點46分,星期二1、手動控制跑馬燈的跑動(中斷)改:org 0000hljmp mainorg 0003hljmp zd0main: setb easetb ex0setb it0mov ip,#00000001bmov r7,#08hmov a,#0fehmov p1,asjmp $zd0: rl a mov p1,a lcall delay djnz r7,zd0 mov r7,#08h retidelay:(1秒)end第40頁,共47頁,2022年

27、,5月20日,2點46分,星期二定時練習(xí):8、內(nèi)部30H單元內(nèi)容為55h,定時30ms,否則定時15ms,進行初始化編程。9、利用T0通過P1.0輸出一個矩形波,高電平為50um,低電平為300um。10、用T1實現(xiàn)P1.0和P1.1分別輸出周期為2ms和500us的方波。(定時1ms和250us,1ms看成4個250us)第41頁,共47頁,2022年,5月20日,2點46分,星期二8、內(nèi)部30H單元內(nèi)容為55h,定時30ms,否則定時15ms,進行初始化編程。ORG 0000HLJMP MAINORG 000BHLJMP IT0PORG 0100HMAIN:MOV TMOD,#000000

28、01B SETB EA SETB ET0 CJNE 30H,#55H,AA MOV DPTR,#NUM1 MOV TH0,DPH MOV TL0,DPL SETB TR0 SJMP $AA: MOV DPTR,#NUM2 MOV TH0,DPH MOV TL0,DPL SETB TR0 SJMP $IT0P: RETI END第42頁,共47頁,2022年,5月20日,2點46分,星期二9、利用T0通過P1.0輸出一個矩形波,高電平為50um,低電平為300um。ORG 0000HLJMP MAINORG 000BHLJMP IT0PORG 0100HMAIN:MOV TMOD,#00000010B SETB EA SETB ET0 MOV T

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論