版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第六章第六章 單片微機(jī)的定時(shí)器單片微機(jī)的定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器原理及應(yīng)用原理及應(yīng)用6.1 概述概述6.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0、T16.3 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T26.4 監(jiān)視定時(shí)器(看門狗)監(jiān)視定時(shí)器(看門狗)T36.5 定時(shí)器定時(shí)器/計(jì)數(shù)器的應(yīng)用編程計(jì)數(shù)器的應(yīng)用編程第六章第六章 單片微機(jī)的定時(shí)器單片微機(jī)的定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器 原理及應(yīng)用原理及應(yīng)用定時(shí)或計(jì)數(shù)方法:定時(shí)或計(jì)數(shù)方法:1硬件法:硬件法:定時(shí)功能完全由硬件電路完成,不占用定時(shí)功能完全由硬件電路完成,不占用CPUCPU時(shí)間時(shí)間;不夠靈活、方便;不夠靈活、方便;2軟件法:軟件法:編循環(huán)程序,時(shí)間精確;占用編循環(huán)程序,時(shí)
2、間精確;占用CPUCPU;3可編程定時(shí)器計(jì)數(shù)器:可編程定時(shí)器計(jì)數(shù)器:通過軟件編程來實(shí)現(xiàn)定通過軟件編程來實(shí)現(xiàn)定時(shí)時(shí)間的改變,通過中斷或查詢方法來完成定時(shí)功時(shí)時(shí)間的改變,通過中斷或查詢方法來完成定時(shí)功能或計(jì)數(shù)功能能或計(jì)數(shù)功能6-1 概述概述定時(shí)器資源:定時(shí)器資源:80C51:T0和和T1;80C52:T0、T1、T280C552(Philips): T0、T1、T2、 T3(看門狗)(看門狗)定時(shí)器計(jì)數(shù)器的定時(shí)器計(jì)數(shù)器的核心核心:加加1 1計(jì)數(shù)器計(jì)數(shù)器其基本功能是計(jì)數(shù)加其基本功能是計(jì)數(shù)加1 1。 計(jì)數(shù)計(jì)數(shù) T0、T1 (或(或T2)引腳,)引腳,10計(jì)數(shù)增計(jì)數(shù)增l 定時(shí)定時(shí) 對單片機(jī)內(nèi)部的對單片機(jī)
3、內(nèi)部的機(jī)器周期計(jì)數(shù)機(jī)器周期計(jì)數(shù) 計(jì)數(shù)值計(jì)數(shù)值N N乘以機(jī)器周期乘以機(jī)器周期T T就是定時(shí)時(shí)間就是定時(shí)時(shí)間t t 。 波特率發(fā)生器波特率發(fā)生器 串行接口的波特率發(fā)生器串行接口的波特率發(fā)生器功能:功能:6.2 6.2 定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T0T0、T1T1圖圖61 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0、T1的內(nèi)部結(jié)構(gòu)框圖的內(nèi)部結(jié)構(gòu)框圖 T0、T1 的方式寄存器的方式寄存器TMOD6.2.1 與定時(shí)器計(jì)數(shù)器與定時(shí)器計(jì)數(shù)器T0、T1有關(guān)的特殊功能有關(guān)的特殊功能寄存器寄存器-TMOD、TCON、TH、TL、IE、IPD7 D6 D5 D4 D3 D2 D1 D0GATE C/TM1M0GATE C/TM1
4、M0T1T0M1、M0:工作方式選擇位。工作方式選擇位。M1 M0工作方式工作方式 計(jì)數(shù)器配置計(jì)數(shù)器配置 0 0方式方式0 13位計(jì)數(shù)器位計(jì)數(shù)器 0 1方式方式1 16位計(jì)數(shù)器位計(jì)數(shù)器 1 0方式方式2 自動重裝載的自動重裝載的8位計(jì)數(shù)器位計(jì)數(shù)器 1 1方式方式3 T0分為兩個(gè)分為兩個(gè)8位計(jì)數(shù)器,位計(jì)數(shù)器,T1停止計(jì)數(shù)停止計(jì)數(shù) GATE1時(shí),由外部中斷引腳時(shí),由外部中斷引腳INT0、INT1和和TR0、TR1共同來啟動定時(shí)器。當(dāng)共同來啟動定時(shí)器。當(dāng)INT0引腳為高電平時(shí),引腳為高電平時(shí),TR0置位啟動置位啟動定時(shí)器定時(shí)器T0;當(dāng)引腳;當(dāng)引腳INT1為高電平時(shí),為高電平時(shí),TR1置位,啟動定時(shí)器
5、置位,啟動定時(shí)器T1。 GATE0時(shí),僅由時(shí),僅由TR0和和TR1置位來啟動定時(shí)器置位來啟動定時(shí)器T0和和T1。 C/T0時(shí)時(shí),選擇定時(shí)功能選擇定時(shí)功能. 計(jì)數(shù)輸入信號是內(nèi)部時(shí)鐘脈沖計(jì)數(shù)輸入信號是內(nèi)部時(shí)鐘脈沖,1/12 fosc C/T1時(shí)時(shí),選擇計(jì)數(shù)功能選擇計(jì)數(shù)功能. 通過引腳通過引腳T0和和T1對外部信號進(jìn)行計(jì)數(shù)對外部信號進(jìn)行計(jì)數(shù), 在每個(gè)機(jī)器周期的在每個(gè)機(jī)器周期的S5P2期間,期間,CPU采樣引腳的輸入電平。若前一機(jī)器周期采樣采樣引腳的輸入電平。若前一機(jī)器周期采樣值為值為1,下一機(jī)器周期采樣值為,下一機(jī)器周期采樣值為0,則計(jì)數(shù)器增,則計(jì)數(shù)器增1 GATE門控位門控位CT:功能選擇位功能選
6、擇位 定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T0、T1 的控制寄存器的控制寄存器TCON 位地址位地址8FH8FH8EH8EH8DH8DH8CH8CH8BH8BH8AH8AH89H89H88H88H位名稱位名稱TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0功能功能 T1T1 中斷中斷標(biāo)志標(biāo)志啟動啟動T1T0T0中斷中斷標(biāo)志標(biāo)志啟動啟動T0中斷中斷標(biāo)志標(biāo)志觸發(fā)觸發(fā)方式方式中斷中斷標(biāo)志標(biāo)志 觸發(fā)觸發(fā)方式方式1 1)啟動控制位)啟動控制位TR0TR0、TR1TR1: =0=0,停止定時(shí)器工作;,停止定時(shí)器工作; =1=1,啟動定時(shí)器工作,啟動定時(shí)器工作2 2)溢出
7、中斷標(biāo)志位)溢出中斷標(biāo)志位TF0TF0、TF1TF1:定時(shí)器溢出使定時(shí)器溢出使TFxTFx=1=1,引起中斷請求,引起中斷請求,CPUCPU響應(yīng)響應(yīng)TxTx中中斷后,系統(tǒng)自動將斷后,系統(tǒng)自動將TFxTFx清清0 0。也可用軟件檢測也可用軟件檢測TFxTFx,這時(shí)必須軟件清,這時(shí)必須軟件清0 0。 T0、T1 的數(shù)據(jù)寄存器的數(shù)據(jù)寄存器TH1、TL1,TH0、TL0 定時(shí)器定時(shí)器/計(jì)數(shù)器中斷計(jì)數(shù)器中斷 中斷允許寄存器中斷允許寄存器IE 中斷矢量中斷矢量 定時(shí)器定時(shí)器T0T0:000BH000BH定時(shí)器定時(shí)器T1T1:001BH001BH 中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器IPEX0EX0ET0ET0
8、EX1EX1ET1ET1ESESEAEAPX0PX0PT0PT0PX1PX1PT1PT1PSPS- 復(fù)位后,這復(fù)位后,這4 4個(gè)寄存器全部清零。個(gè)寄存器全部清零。T0:有有4種種工作方式可選(方式工作方式可選(方式0,1,2,3)T1:有有3種種工作方式可選(方式工作方式可選(方式0,1,2) 方式方式0-130-13位定時(shí)器位定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器( (M10、M00) ) 最大計(jì)數(shù)值最大計(jì)數(shù)值213 = 8192,當(dāng)當(dāng)fosc=12MHZ時(shí)時(shí),Tmax=8192S6.2.2 6.2.2 定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器T0T0、T1 T1 的工作方式的工作方式B=TRx(GATE+INTx) 注
9、意:注意:TFxTFx置位后,若中斷允許,則置位后,若中斷允許,則CPUCPU進(jìn)入中斷服務(wù)程序進(jìn)入中斷服務(wù)程序, ,后由硬件自動清后由硬件自動清0 0。 若中斷禁止,可由程序查詢并由軟件清若中斷禁止,可由程序查詢并由軟件清0 0。 方式方式1-16位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器(M10、M01)最大計(jì)數(shù)值最大計(jì)數(shù)值216 = 65536,當(dāng)當(dāng)fosc=12MHZ時(shí),時(shí),Tmax=65536S 計(jì)數(shù)時(shí),計(jì)數(shù)時(shí),TLxTLx溢出后向溢出后向THxTHx進(jìn)位,進(jìn)位,THxTHx溢出后將溢出后將TFxTFx置位,如置位,如果中斷允許,果中斷允許,CPUCPU響應(yīng)中斷并轉(zhuǎn)入中斷服務(wù)程序,由內(nèi)部硬件響應(yīng)中
10、斷并轉(zhuǎn)入中斷服務(wù)程序,由內(nèi)部硬件清清TFxTFx。TFxTFx也可以由程序查詢和清零。也可以由程序查詢和清零。 方式方式2- 8位定時(shí)器位定時(shí)器/計(jì)數(shù)器自動重裝載計(jì)數(shù)器自動重裝載(M11、M00)優(yōu)點(diǎn)優(yōu)點(diǎn):定時(shí)初值可自動恢復(fù):定時(shí)初值可自動恢復(fù),TH,TH中存放初值中存放初值; ;缺點(diǎn)缺點(diǎn):計(jì)數(shù)范圍小,:計(jì)數(shù)范圍小,最大計(jì)數(shù)值為最大計(jì)數(shù)值為2 28 8= 256= 256適用范圍適用范圍:需要重復(fù)定時(shí),而定時(shí)范圍不大的應(yīng)用場合,比需要重復(fù)定時(shí),而定時(shí)范圍不大的應(yīng)用場合,比如:作為串行口如:作為串行口波特率發(fā)生器波特率發(fā)生器使用使用 方式方式3-僅僅T0有此方式,有此方式,T1無方式無方式3中斷
11、矢量中斷矢量000BH中斷矢量中斷矢量001BHT0T0分成分成2 2個(gè)個(gè)8 8位定時(shí)器:位定時(shí)器:TL0TL0定時(shí)定時(shí)/ /計(jì)數(shù)器和計(jì)數(shù)器和TH0TH0定時(shí)器;定時(shí)器;TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TF0,TR0TF0,TR0,GATEGATE;TH0TH0占用占用T1T1控制位控制位:TR1TR1、TF1TF1;只能對片內(nèi)機(jī)器周期脈沖計(jì)數(shù);只能對片內(nèi)機(jī)器周期脈沖計(jì)數(shù)定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0方式方式3 3時(shí),時(shí),T1T1的邏輯結(jié)構(gòu)圖的邏輯結(jié)構(gòu)圖 T1 T1由于其由于其TF1TF1、TR1TR1被被T0T0的的TH0TH0占用,計(jì)數(shù)器溢出時(shí),只能將輸占
12、用,計(jì)數(shù)器溢出時(shí),只能將輸出信號送至串行口,即出信號送至串行口,即用作串行口波特率發(fā)生器用作串行口波特率發(fā)生器 定時(shí)器初值的計(jì)算定時(shí)器初值的計(jì)算6.5 6.5 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的應(yīng)用編程計(jì)數(shù)器的應(yīng)用編程 機(jī)器周期時(shí)間機(jī)器周期時(shí)間定時(shí)時(shí)間定時(shí)時(shí)間初值初值LOSCLCftT2122oscf12L與工作方式有與工作方式有關(guān),關(guān),13、16、8fosc=12MHZ時(shí)時(shí),1機(jī)周機(jī)周=1 S;fosc=6MHZ 時(shí)時(shí), 1機(jī)周機(jī)周=2 S6.5.1 6.5.1 定時(shí)器的應(yīng)用定時(shí)器的應(yīng)用 定時(shí)器計(jì)數(shù)器運(yùn)行前,在數(shù)據(jù)寄存器中預(yù)先置入的定時(shí)器計(jì)數(shù)器運(yùn)行前,在數(shù)據(jù)寄存器中預(yù)先置入的常數(shù),稱為定時(shí)常數(shù)或計(jì)數(shù)
13、常數(shù)常數(shù),稱為定時(shí)常數(shù)或計(jì)數(shù)常數(shù)T TC C。 定時(shí)時(shí)間定時(shí)時(shí)間=脈沖數(shù)脈沖數(shù)脈沖周期(機(jī)器周期)脈沖周期(機(jī)器周期)定時(shí)時(shí)間定時(shí)時(shí)間t=(2L-初值初值TC) 解:解:工作方式工作方式0 0: 2 21313500500 S/2S/2 S=8192-250=7942S=8192-250=7942 =1F06H =1F06H =1111100000110B =1111100000110B TL0= TL0=0011000110B=06HB=06H TH0= TH0=1111100011111000B=F8HB=F8H【例例】 已知晶振已知晶振6MHz6MHz,要求定時(shí),要求定時(shí)0.5ms0.5
14、ms,試分別求,試分別求出出T0T0工作于方式工作于方式0 0、方式、方式1 1、方式、方式2 2時(shí)的定時(shí)初值。時(shí)的定時(shí)初值。 工作方式工作方式1 1: T0T0初值初值 =2=21616-500-500 s s/2/2 s s=65536250=65286=FF06H=65536250=65286=FF06H TH0=FFH TH0=FFH;TL0=06HTL0=06H 工作方式工作方式2 2: T0T0初值初值 =2=28 8-500-500 s s/2/2 s s=256-250=6=256-250=6 TH0=06H TH0=06H;TL0=06HTL0=06H。解:分析解:分析 采用
15、方式采用方式0定時(shí)時(shí)間定時(shí)時(shí)間 t1ms=1000S定時(shí)常數(shù):定時(shí)常數(shù):TC=213-1000/2=8192-500=7692 = 11110000 01100B用定時(shí)器用定時(shí)器T0:TMOD=00H,TH0=F0H,TL0=0CH【例例】 要求在要求在 P10引腳上輸出周期為引腳上輸出周期為2 ms的方波的方波fosc=6MHz中斷方式:中斷方式: ORG 0000HAJMP MAINORG 000BH;T0中斷矢量中斷矢量AJMP INQPORG 0030HMAIN:MOV TMOD,00H ;設(shè)設(shè)T0為定時(shí)器方式為定時(shí)器方式0 0 MOV TH0,0F0H ;寫定時(shí)常數(shù);寫定時(shí)常數(shù)( (
16、定時(shí)定時(shí)1ms)1ms) MOV TL0,0CH SETB TR0 ;啟動;啟動 T0 SETB ET0 ;允許;允許T0中斷中斷 SETB EA ;開放;開放CPU中斷中斷 AJMP $ ;定時(shí)中斷等待;定時(shí)中斷等待ORG 0100 H ;T0中斷服務(wù)程序中斷服務(wù)程序 INQP:MOV TH0,0F0H ;重寫定時(shí)常數(shù);重寫定時(shí)常數(shù) MOV TL0,0CHCPL P1.0 ;P10變反輸出變反輸出 RETI 查詢方式查詢方式ORG 0000HAJMP STORG 0030HST: MOV SP,#60HMOV TMOD,#00H;方式;方式0L1:MOV TH0,#0F0H;初值;初值MOV
17、 TL0,#0CHCPL P1.0SETB TR0L2:JBC TF0,L1SJMP L2END采用方式采用方式1 1定時(shí)時(shí)間定時(shí)時(shí)間 t1ms=1000S定時(shí)常數(shù):定時(shí)常數(shù):TC=216-1000/2=65536-500=65036 = 11111110 00001011B=FE0CH用定時(shí)器用定時(shí)器T1:TMOD=10H,TH0=FEH,TL0=0CH編程與前相同編程與前相同【例例】欲用欲用80C51產(chǎn)生兩個(gè)方波,一個(gè)方波周期為產(chǎn)生兩個(gè)方波,一個(gè)方波周期為200s,另一,另一個(gè)方波周期為個(gè)方波周期為400s,該,該80C51同時(shí)使用串行口,用定時(shí)器同時(shí)使用串行口,用定時(shí)器/計(jì)計(jì)數(shù)器作為波特
18、率發(fā)生器數(shù)器作為波特率發(fā)生器,波特率為波特率為2400, fOCS9.216 MHz 。計(jì)算:計(jì)算:TL0初值:初值:HBftTOSCCL3101100112179876256121021691010025612266180.TH0初值:初值:HTCH6641021210216910200256660.TH1、TL1初值為:初值為:分析:分析:這時(shí)這時(shí)T0采用方式采用方式3工作,其中,工作,其中,TL0產(chǎn)生產(chǎn)生100s定時(shí),由定時(shí),由 P1.0輸出方波輸出方波1TH0產(chǎn)生產(chǎn)生200s定時(shí),由定時(shí),由Pl.1輸出方波輸出方波2 ;T1設(shè)置為方式設(shè)置為方式2,作波特率發(fā)生器用。,作波特率發(fā)生器用。
19、F6H編程:編程:ORG 0000H AJMP MAINORG 000BH ;TL0的中斷入口的中斷入口AJMP ITL0ORG 00lBH;TH0的中斷入口的中斷入口AJMP ITH0ORG 0100H MAIN: MOV SP, 60H ;設(shè)棧指針;設(shè)棧指針MOV TMOD, 23H ;設(shè);設(shè)T0為方式為方式3,TI為為2 MOV TL0,0B3H ;設(shè);設(shè)TL0初值初值(100s定時(shí)定時(shí)) MOV TH0,66H ;設(shè);設(shè)TH0初值初值(200s定時(shí)定時(shí)) MOV TL1,0F6H ;設(shè);設(shè)TL1初值初值(波特率為波特率為2400) MOV TH1, 0F6H ;設(shè);設(shè) TH1初值初值
20、SETB TR0 ;啟動;啟動 TL0 SETB TR1 ;啟動;啟動TH0 SETB ET0 ;允許;允許TL0中斷中斷 SETB ET1 ;允許;允許TH0中斷中斷 SETB EA ;CPU中斷開放中斷開放 AJMP ORG 0200HITL0:MOV TL0, 0B3H ;重裝定時(shí)常數(shù);重裝定時(shí)常數(shù) CPL P10 ;輸出方波;輸出方波1(200s) RETIITH0:MOV TH0,66H ;重裝定時(shí)常數(shù);重裝定時(shí)常數(shù)CPL P11 ;輸出方波;輸出方波2(400s) RETI【例例】假如一個(gè)用戶系統(tǒng)已使用了兩個(gè)外部中斷源,假如一個(gè)用戶系統(tǒng)已使用了兩個(gè)外部中斷源,即即INT0和和INT
21、1,用戶系統(tǒng)要求從,用戶系統(tǒng)要求從P1.0引腳上引腳上輸出輸出一個(gè)一個(gè)5kHz的方波的方波,并要求采用定時(shí)器,并要求采用定時(shí)器/計(jì)數(shù)器作為串行口計(jì)數(shù)器作為串行口的的波特率發(fā)生器波特率發(fā)生器,另外還需要再增加一個(gè),另外還需要再增加一個(gè)外部中斷源外部中斷源。6.5.2 6.5.2 計(jì)數(shù)器的應(yīng)用計(jì)數(shù)器的應(yīng)用分析分析:除兩個(gè)外中斷除兩個(gè)外中斷(INT0、INT1)外,還需要)外,還需要兩個(gè)定時(shí)器兩個(gè)定時(shí)器(5KHZ和波特率發(fā)生器)和和波特率發(fā)生器)和一個(gè)計(jì)數(shù)器一個(gè)計(jì)數(shù)器(擴(kuò)展外中斷)(擴(kuò)展外中斷)把把T0設(shè)置為方式設(shè)置為方式3: TL0設(shè)置為計(jì)數(shù)器,設(shè)置為計(jì)數(shù)器, TH0只能做只能做8位定時(shí)器位定時(shí)器
22、(產(chǎn)生(產(chǎn)生5KHz方波),方波),T1就作為波特率發(fā)生器,設(shè)為方式就作為波特率發(fā)生器,設(shè)為方式2。頻率頻率5kHz即周期為即周期為200s,則定時(shí)時(shí)間,則定時(shí)時(shí)間100s,若采用,若采用12MHz的晶體振蕩器,則機(jī)器周期為的晶體振蕩器,則機(jī)器周期為1s。 計(jì)算時(shí)間常數(shù):計(jì)算時(shí)間常數(shù):TC28100/1156編程:編程:ORG 0000HSJMP MAINORG 000BHAJMP TL0INT;TL0中斷入口中斷入口 ORG 001BHAJMP TH0INT;TH0中斷入口中斷入口ORG 0030H MAIN: MOV TMOD,#27H ;T0為方式為方式3,TL0為計(jì)數(shù)方式為計(jì)數(shù)方式,
23、TH0為為 ;定時(shí)定時(shí);T1作波特率發(fā)生器,方式作波特率發(fā)生器,方式2MOV TH0,#156 ;TH0定時(shí)常數(shù)定時(shí)常數(shù)MOV TL0, #0FFH ;TL0計(jì)數(shù)常數(shù)計(jì)數(shù)常數(shù)MOV TL1,#BAUD ;BAUD根據(jù)波特率算出根據(jù)波特率算出MOV TH1,#BAUDMOV TCON,#55H ;TR0和和TR1為為1,啟動啟動TL0和和TH0MOV IE,#8AH SJMP$ORG 0100HTL0INT:MOV TL0,#0FFH;重置計(jì)數(shù)長度;重置計(jì)數(shù)長度(中斷處理中斷處理)RETITH0INT:MOV TH0,#156;重置定時(shí)常數(shù);重置定時(shí)常數(shù)CPLP1.0;P1.0引腳輸出方波引腳輸
24、出方波RETI TF1 TF1 TR1 TR1 TF0 TF0 TR0 TR0 IE1 IT1 IE0 IT0IE1 IT1 IE0 IT0GATE C/T M1 M0 GATE C/T M1 M0 GATE C/T M1 M0GATE C/T M1 M06.5.3 6.5.3 門控位門控位GATEGATE的應(yīng)用的應(yīng)用 門控位門控位GATE可用作對可用作對INTx引腳上的高電平持引腳上的高電平持續(xù)時(shí)間進(jìn)行計(jì)量。續(xù)時(shí)間進(jìn)行計(jì)量。當(dāng)當(dāng)GATE位設(shè)為位設(shè)為“1”,并設(shè)定時(shí),并設(shè)定時(shí)器器/計(jì)數(shù)器啟動位計(jì)數(shù)器啟動位TRx為為“1”,這時(shí)定時(shí)器,這時(shí)定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器定時(shí)完全取決于定時(shí)完全取決于INTx
25、引腳,僅當(dāng)引腳,僅當(dāng)INTx引腳電平為引腳電平為“1”時(shí),定時(shí)器才工作,換另一角度看,定時(shí)器實(shí)時(shí),定時(shí)器才工作,換另一角度看,定時(shí)器實(shí)際記錄的時(shí)間就是相應(yīng)際記錄的時(shí)間就是相應(yīng)INTx引腳上高電平的持續(xù)引腳上高電平的持續(xù)時(shí)間。時(shí)間。通過反相器,通過反相器,則可測得相應(yīng)則可測得相應(yīng)INTxINTx引腳上低電引腳上低電平的持續(xù)時(shí)間。平的持續(xù)時(shí)間。二個(gè)時(shí)間的和即為二個(gè)時(shí)間的和即為INTxINTx引腳上輸入引腳上輸入波形的周期,其倒數(shù)即為波形的周期,其倒數(shù)即為INTxINTx引腳上輸入波形的頻引腳上輸入波形的頻率。還可算出占空比等參數(shù)。率。還可算出占空比等參數(shù)。6.5.3 6.5.3 門控位門控位GAT
26、EGATE的應(yīng)用的應(yīng)用 【例例】利用定時(shí)器計(jì)數(shù)器測定圖示波形的一個(gè)周期長度。利用定時(shí)器計(jì)數(shù)器測定圖示波形的一個(gè)周期長度。 INT1(P3.3)TR1 置置1T1開始計(jì)時(shí)開始計(jì)時(shí)TR1清零清零分析:分析:若若GATE=1,則則T1為定時(shí)器時(shí),當(dāng)為定時(shí)器時(shí),當(dāng)TR1=1且且INT1為高為高電平時(shí),才啟動定時(shí)器。電平時(shí),才啟動定時(shí)器。查詢法查詢法: ORG 0000HSTART:MOV TMOD,#90HMOV TL1,#00H;置為最大定時(shí)值;置為最大定時(shí)值MOV TH1,#00HLP1:JBP3.3,LP1;P3.3為高電平,等待為高電平,等待 SETB TR1;當(dāng);當(dāng)P3.3為低時(shí)為低時(shí),置置
27、TR1為為1LP2: JNBP3.3,LP2;當(dāng);當(dāng)P3.3為低電平時(shí),再等待為低電平時(shí),再等待LP3:JBP3.3,LP3CLRTR1MOV 30H,TL0MOV 31H,TH0SJMP $當(dāng)當(dāng)fosc12MHz時(shí),最大被測脈寬為時(shí),最大被測脈寬為65536s。此編程實(shí)際只測量了高電平的寬度,此編程實(shí)際只測量了高電平的寬度,若被測波形除了接至若被測波形除了接至P3.3,另外同時(shí)通,另外同時(shí)通過一個(gè)反相器接至過一個(gè)反相器接至P3.2 (INT0) ,則通,則通過編程同時(shí)可以測得波形的高電平寬過編程同時(shí)可以測得波形的高電平寬度和低電平寬度。度和低電平寬度。中斷法:中斷法:【分析】設(shè)設(shè)6MHz晶振
28、晶振,T0為方式為方式1,定時(shí)溢出時(shí)間為,定時(shí)溢出時(shí)間為 100 ms 計(jì)數(shù)初值為計(jì)數(shù)初值為 FFFEH:(:(TH1)FFH,(,(TL1)FEH。 編程編程: ORG0000HSJMP MAINORG 000BH ;定時(shí)器;定時(shí)器T0中斷入口中斷入口 AJMP TIME0 ORG 00IBH ;定時(shí)器;定時(shí)器 T1中斷入口中斷入口 AJMP TIME1 ORG 0030HMAIN:MOV R0,0;清除;清除T0定時(shí)中斷次數(shù)計(jì)數(shù)器定時(shí)中斷次數(shù)計(jì)數(shù)器MOV TMOD,59H;T0為定時(shí)器為定時(shí)器,方式方式1, GATE1 ;T1為計(jì)數(shù)器、方式為計(jì)數(shù)器、方式1 MOV TH0,3CH ;T0定
29、時(shí)器初值定時(shí)器初值 MOV TL0,0B0H MOV TH1,0FFH ;T1計(jì)數(shù)器初值計(jì)數(shù)器初值 MOV TL1,0FEH SETB TR0;啟動;啟動T0定時(shí)器定時(shí)器 SETB TR1;啟動;啟動T1計(jì)數(shù)器計(jì)數(shù)器 MOV IP,08H ;T1中斷優(yōu)先級高于中斷優(yōu)先級高于T0SETB ET1 ;允許;允許T1中斷中斷 SETB ET0;允許;允許T0中斷中斷 SETB EA ;CPU開中斷開中斷SETB 20H ;設(shè);設(shè)20H為為T1計(jì)數(shù)中斷標(biāo)志計(jì)數(shù)中斷標(biāo)志LOOP:SETB F0;設(shè);設(shè)F0為為T0定時(shí)中斷標(biāo)志定時(shí)中斷標(biāo)志 JB F0,$;T0定時(shí)未溢出,等待定時(shí)未溢出,等待 JB 20H
30、,LOOP ;判;判T1若未溢出則循環(huán)若未溢出則循環(huán)SJMP $ ORG 0100HTIME0:MOV TL0,0B0H;重置;重置T0定時(shí)器初值定時(shí)器初值MOV TH0, 3CH INCR0;T0定時(shí)溢出計(jì)數(shù)器加定時(shí)溢出計(jì)數(shù)器加 1 CPL F0;T0定時(shí)中斷標(biāo)志變反定時(shí)中斷標(biāo)志變反RETIORG 0200HTIME1:CLR F0;清除;清除T0定時(shí)中斷標(biāo)志定時(shí)中斷標(biāo)志 CLR 20H;清除;清除T1計(jì)數(shù)中斷標(biāo)志計(jì)數(shù)中斷標(biāo)志 CLR ET0 ;禁止;禁止T0、T1 中斷中斷 CLR ET1CLR EA ;關(guān)中斷;關(guān)中斷 RETI 80C51可以隨時(shí)讀寫計(jì)數(shù)寄存器可以隨時(shí)讀寫計(jì)數(shù)寄存器TLx
31、和和THx (x為為0或或1) ,用于實(shí)時(shí)顯示計(jì)數(shù)值等。用于實(shí)時(shí)顯示計(jì)數(shù)值等。辦法是:辦法是:先讀先讀THx,后讀后讀TLx,再重讀再重讀THx,若兩次讀得的若兩次讀得的THx值是一樣的,則可以確定讀入的數(shù)據(jù)值是一樣的,則可以確定讀入的數(shù)據(jù)是正確的;是正確的;若兩次讀得的若兩次讀得的THx值不一致,則必須重讀。值不一致,則必須重讀。 6.5.4 6.5.4 運(yùn)行中讀定時(shí)器運(yùn)行中讀定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器例例. 飛讀飛讀RDTIME:MOVA,TH0;讀;讀TH0 MOVR0,TL0;讀;讀TL0并存入并存入R0 CJNE A,TH0,RDTIME;與上次讀入的與上次讀入的TH0比較,若不等,重
32、讀比較,若不等,重讀 MOVR1,A;存;存TH0在在R1中中 RETEND【 6- 7 】 80C51 單片機(jī)的定時(shí)器計(jì)數(shù)器單片機(jī)的定時(shí)器計(jì)數(shù)器 T0 以以定時(shí)方法在定時(shí)方法在 P3.1 引腳上輸出周期為引腳上輸出周期為 400 s ,占空,占空比為比為 9: 1的矩形脈沖,以定時(shí)工作方式的矩形脈沖,以定時(shí)工作方式 2 編程實(shí)現(xiàn)編程實(shí)現(xiàn)。并對源程序加以注釋。并對源程序加以注釋。 fosc=6 M H z ?!敬鸫稹烤匦蚊}沖高電平時(shí)間為矩形脈沖高電平時(shí)間為 3 6 0 s ,低電平,低電平時(shí)間為時(shí)間為 40 s 。機(jī)器周期為。機(jī)器周期為 2 s 。計(jì)算:計(jì)算: 360s 定時(shí)定時(shí), TC =2
33、8-360 s/2 s=256-180=76 TC=4CH 40s 定時(shí),定時(shí), TC =28-40 s/2 s=256-20=236 TC=ECH 采用查詢法編程:采用查詢法編程: ORG 0000H AJMP MAIN ORG 0030H MAIN : MOV TMOD , #02H ;定時(shí)器;定時(shí)器 T0 以方式以方式 2 定時(shí)定時(shí) MOV TH0 , #0ECH ;定時(shí);定時(shí) 40 s MOV TL0 , #0ECH CLR P3.1 ; P3.1 初始值初始值 SETB TR0 ;開啟定時(shí)器;開啟定時(shí)器 T0 LOOP : CLR P3.1 JBC TF0 ,REP ;查詢;查詢 4
34、0s 定時(shí)到,則轉(zhuǎn)定時(shí)到,則轉(zhuǎn) AJMP LOOP REP : SETB P3.1; P3 .1 輸出高電平輸出高電平 360 s MOV R7 , #09H ;定時(shí);定時(shí) 40 s X 9=360 s LOOPl : JBC TF0 ,REPI ;查詢高電平;查詢高電平 360s 定時(shí)到,則轉(zhuǎn)定時(shí)到,則轉(zhuǎn) AJMP LOOPl REPI : DJNZ R7 ,LOOPl AJMP LOOP ; 360 s 到,則轉(zhuǎn)回輸出周期波形到,則轉(zhuǎn)回輸出周期波形 END【 6-12 6-12 】 采用中斷方法設(shè)計(jì)采用中斷方法設(shè)計(jì) 8OC51 8OC51 單片機(jī)的秒、單片機(jī)的秒、分脈沖發(fā)生器。要求采用定時(shí)
35、器計(jì)數(shù)器分脈沖發(fā)生器。要求采用定時(shí)器計(jì)數(shù)器T1T1的方的方式式 1 1編程,實(shí)現(xiàn)編程,實(shí)現(xiàn) P1.0 P1.0 每秒鐘產(chǎn)生一個(gè)機(jī)器周期每秒鐘產(chǎn)生一個(gè)機(jī)器周期的正脈沖的正脈沖,P1.1 ,P1.1 每分鐘產(chǎn)生一個(gè)機(jī)器周期的正脈每分鐘產(chǎn)生一個(gè)機(jī)器周期的正脈沖。并對源程序加以注釋。晶振頻率為沖。并對源程序加以注釋。晶振頻率為12MHz 12MHz 。【答答】機(jī)器周期為機(jī)器周期為1s1s,定時(shí)器采用方式,定時(shí)器采用方式 1 1 時(shí),最時(shí),最長定時(shí)時(shí)間僅為長定時(shí)時(shí)間僅為65ms 65ms 。需要采用定時(shí)。需要采用定時(shí)溢出次數(shù)溢出次數(shù) = = 所需定時(shí)。所需定時(shí)。 如定時(shí)設(shè)為如定時(shí)設(shè)為10ms10ms,則
36、定時(shí)溢出中斷,則定時(shí)溢出中斷100100次時(shí),為次時(shí),為定時(shí)定時(shí)1S 1S 。計(jì)算:計(jì)算: TC=2TC=21616-10000/1-10000/1 TC=55536=D8F0H TC=55536=D8F0H程序如下:程序如下: ORG 0000H AJMP MAIN ORG 001BH AJMP INTER ORG 0030HMAIN : MOV TMOD , #1 0H ;T1 為定時(shí)器方式為定時(shí)器方式 1 MOV THI , #0D8H ; 1 0 ms 定時(shí)初始值定時(shí)初始值 MOV TLI , #0F0H MOV R7 , #60 ;定時(shí);定時(shí) 1 分計(jì)數(shù)器分計(jì)數(shù)器 MOV R0 ,
37、#1 00 ;定時(shí);定時(shí) 1 S 計(jì)數(shù)器計(jì)數(shù)器 SETB TRI ;開啟定時(shí)器;開啟定時(shí)器 T1 SETB ETI ;開定時(shí)器;開定時(shí)器 T1 中斷中斷 SETB EA ;開中斷;開中斷 CLR P1.0 ;初始值;初始值 CLR P1.1 AJMP $ ;定時(shí)中斷等待;定時(shí)中斷等待10ms中斷服務(wù)程序中斷服務(wù)程序 INTER : MOV THI , #0D8H MOV TLI , #0F0H ;重置;重置 10ms 定時(shí)常數(shù)定時(shí)常數(shù) DJNZ R0, REP CPL P1 . 0 ; 1 s 定時(shí)到,定時(shí)到, P1.0 取反輸出取反輸出 MOV R0 ,#1 00 CLR P1.0 DJNZ
38、 R7 ,REP ;若;若 R7 不為不為 0 ,則中斷返回,則中斷返回 CPL P1.1 ; 1 分定時(shí)到,則分定時(shí)到,則 P1.1 取反輸出取反輸出 MOV R7 , #60 ; CLR P1.0 REP : RETI END 實(shí)驗(yàn)三實(shí)驗(yàn)三 外中斷外中斷P1.0P1.7接接8個(gè)發(fā)光二極管,管腳個(gè)發(fā)光二極管,管腳INT0、INT1接兩個(gè)按鍵,分別定義為接兩個(gè)按鍵,分別定義為“L”和和“R”。要求:上電全滅,按要求:上電全滅,按 “L”(或或R)鍵,最右(左)鍵,最右(左)側(cè)燈亮,側(cè)燈亮,每按一次每按一次“L” ”(或或R)鍵,則亮的燈向左(右)鍵,則亮的燈向左(右)移一位,移一位,當(dāng)移到最左
39、(右)端時(shí),燈全滅當(dāng)移到最左(右)端時(shí),燈全滅vORG 0000HvSJMP MAINvORG 0003HvSJMP INTLvORG 0013HvSJMP INTRvORG 1000H vMAIN: SETB EX0v SETB EX1v SETB IT0v SETB IT1v SETB EAv MOV A,#0FFHv MOV P1,Av MOV R1,#0FEHv MOV R0,#7FHv MOV R3,#9v MOV R4,#9vHEAR:SJMP HEARINTL:MOV A,R1INTL:MOV A,R1 MOV P1,A MOV P1,A RL A RL A MOV R1,A M
40、OV R1,A DJNZ R3,LL DJNZ R3,LL MOV A,#0FFH MOV A,#0FFH MOV P1,A MOV P1,A MOV R1,#0FEH MOV R1,#0FEH MOV R3,#9 MOV R3,#9 LL: RETI LL: RETI INTR:MOV A,R0INTR:MOV A,R0 MOV P1,A MOV P1,A RR A RR A MOV R0,A MOV R0,A DJNZ R4,LL DJNZ R4,LL MOV A,#0FFH MOV A,#0FFH MOV P1,A MOV P1,A MOV R0,#7FH MOV R0,#7FH MOV R4,#9 MOV R4,#9 LL: RETI LL: RETI END END 使用使用 MCS-51 內(nèi)部定時(shí)內(nèi)部定時(shí)/計(jì)數(shù)器,定時(shí)一秒鐘,計(jì)數(shù)器,定時(shí)一秒鐘,CPU 運(yùn)用定運(yùn)用定時(shí)中斷方式,實(shí)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國北斗應(yīng)急預(yù)警通信行業(yè)資本規(guī)劃與股權(quán)融資戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國電氣化鐵路接觸網(wǎng)行業(yè)資本規(guī)劃與股權(quán)融資戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國消費(fèi)性服務(wù)行業(yè)營銷創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國工藝品行業(yè)并購重組擴(kuò)張戰(zhàn)略制定與實(shí)施研究報(bào)告
- 自動售賣機(jī)創(chuàng)業(yè)計(jì)劃書
- 建設(shè)生態(tài)文明-推進(jìn)科學(xué)發(fā)展
- 新員工入職培訓(xùn)課件12
- 2024年幼兒園成長手冊寄語
- 狗狗護(hù)主知識培訓(xùn)課件
- 2025年中國頭孢拉定行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略研究報(bào)告
- 重癥超聲與休克-課件
- 電梯工程師在電梯設(shè)計(jì)中的工作內(nèi)容
- 二年級數(shù)學(xué)上冊口算天天練
- 2024國家開放大學(xué)電大本科《液壓氣動技術(shù)》期末試題及答案
- GB/T 30306-2024家用和類似用途飲用水處理濾芯
- 08D800-5 民用建筑電氣設(shè)計(jì)與施工 常用電氣設(shè)備安裝與控制
- 餐飲顧問合作協(xié)議
- 新教材牛津譯林版高中英語必修第二冊全冊各單元重點(diǎn)語法精講
- 兩課 說課 單相橋式整流電路分析(獲獎)
- 九年級英語校本作業(yè)(合訂)
- 九江市第一中學(xué)2024年高考數(shù)學(xué)一模試卷含解析
評論
0/150
提交評論