版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
定時(shí)計(jì)數(shù)器及其應(yīng)用第1頁,課件共68頁,創(chuàng)作于2023年2月
定時(shí)/計(jì)數(shù)器是單片機(jī)系統(tǒng)一個(gè)重要的部件,其工作方式靈活、編程簡(jiǎn)單、使用方便,可用來實(shí)現(xiàn)定時(shí)控制、延時(shí)、頻率測(cè)量、脈寬測(cè)量、信號(hào)發(fā)生、信號(hào)檢測(cè)等。此外,定時(shí)/計(jì)數(shù)器還可作為串行通信中波特率發(fā)生器。80C51定時(shí)/計(jì)數(shù)器第2頁,課件共68頁,創(chuàng)作于2023年2月在工業(yè)檢測(cè)、控制中,很多場(chǎng)合都要用到計(jì)數(shù)或者定時(shí)功能。例如對(duì)外部脈沖進(jìn)行計(jì)數(shù)、產(chǎn)生精確的定時(shí)時(shí)間、作串行口的波特率發(fā)聲器等。MCS-51單片機(jī)內(nèi)部有兩個(gè)可編程的定時(shí)器/計(jì)數(shù)器,以滿足這方面的需要。它們具有兩種工作模數(shù)(計(jì)數(shù)器模式、定時(shí)器模式)和四種工作方式(方式0、方式1、方式2、方式3),其控制字均在相應(yīng)的特殊功能寄存器(SFR)中,通過對(duì)它的SFR的編程,可以方便的選擇工作模數(shù)和工作方式。第3頁,課件共68頁,創(chuàng)作于2023年2月定時(shí)器/計(jì)數(shù)器:Timer/Counter
本質(zhì)上都是加法計(jì)數(shù)器,當(dāng)對(duì)固定周期的脈沖信號(hào)計(jì)數(shù)時(shí)是定時(shí)器,對(duì)脈沖長度不確定的信號(hào)計(jì)數(shù)時(shí)是計(jì)數(shù)器。每接收到一個(gè)計(jì)數(shù)脈沖,加法計(jì)數(shù)器的值就加一,當(dāng)計(jì)滿時(shí)發(fā)生溢出,并從0開始繼續(xù)計(jì)數(shù)。加法計(jì)數(shù)器的計(jì)滿溢出信號(hào)就是定時(shí)/計(jì)數(shù)器的輸出,該信號(hào)使TCON的某位(TF0或TF1位)置一,作為定時(shí)器/計(jì)數(shù)器的溢出中斷標(biāo)志。第4頁,課件共68頁,創(chuàng)作于2023年2月1.定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)6.1定時(shí)器的結(jié)構(gòu)及工作原理內(nèi)部總線工作方式工作方式TH
1TL
1TH
0TL
0TCONTMODT
1(P3.5)T
0(P3.4)微處理器定時(shí)器:對(duì)片內(nèi)機(jī)器時(shí)鐘(周期方波)進(jìn)行計(jì)數(shù)計(jì)數(shù)器:對(duì)Tx引腳輸入的負(fù)脈沖進(jìn)行計(jì)數(shù)第5頁,課件共68頁,創(chuàng)作于2023年2月80C51單片機(jī)內(nèi)部有兩個(gè)定時(shí)/計(jì)數(shù)器T0和T1,其核心是計(jì)數(shù)器,基本功能是加1。對(duì)外部事件脈沖(下降沿)計(jì)數(shù),是計(jì)數(shù)器;對(duì)片內(nèi)機(jī)周脈沖計(jì)數(shù),是定時(shí)器。計(jì)數(shù)器由二個(gè)8位計(jì)數(shù)器組成。定時(shí)時(shí)間和計(jì)數(shù)值可以編程設(shè)定,其方法是在計(jì)數(shù)器內(nèi)設(shè)置一個(gè)初值,然后加1計(jì)滿后溢出。調(diào)整計(jì)數(shù)器初值,可調(diào)整從初值到計(jì)滿溢出的數(shù)值,即調(diào)整了定時(shí)時(shí)間和計(jì)數(shù)值。定時(shí)/計(jì)數(shù)器作為計(jì)數(shù)器時(shí),外部事件脈沖必須從規(guī)定的引腳輸入。且外部脈沖的最高頻率不能超過時(shí)鐘頻率的1/24。2.定時(shí)/計(jì)數(shù)器概述第6頁,課件共68頁,創(chuàng)作于2023年2月定時(shí)器計(jì)數(shù)器的功能:定時(shí)和計(jì)數(shù)。1.計(jì)數(shù)功能
計(jì)數(shù):對(duì)外部事件進(jìn)行計(jì)數(shù)。
外部事件的發(fā)生以輸入脈沖表示,因此計(jì)數(shù)功能的實(shí)質(zhì)就是對(duì)外來脈沖進(jìn)行計(jì)數(shù)。
計(jì)數(shù)輸入端:T0(P3.4)和T1(P3.5)。
外部輸入的脈沖在負(fù)跳變時(shí)有效,進(jìn)行計(jì)數(shù)器加1(加法計(jì)數(shù))。第7頁,課件共68頁,創(chuàng)作于2023年2月第8頁,課件共68頁,創(chuàng)作于2023年2月2.定時(shí)功能實(shí)現(xiàn)方法:通過計(jì)數(shù)器的計(jì)數(shù)實(shí)現(xiàn)。與計(jì)數(shù)功能的不同之處:計(jì)數(shù)脈沖來自單片機(jī)的內(nèi)部,即每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖,也就是每個(gè)機(jī)器周期計(jì)數(shù)器加1。一個(gè)機(jī)器周期=12個(gè)振蕩周期,故,計(jì)數(shù)頻率為振蕩頻率的1/12。若:?jiǎn)纹瑱C(jī)晶振=6MHz,則計(jì)數(shù)頻率為0.5MHz,
2微秒計(jì)數(shù)器加1.第9頁,課件共68頁,創(chuàng)作于2023年2月
定時(shí)器工作方式的特點(diǎn):當(dāng)定時(shí)器設(shè)置了某種工作方式之后,定時(shí)器就會(huì)按設(shè)定的工作方式獨(dú)立運(yùn)行,不再占用CPU的操作時(shí)間,除非定時(shí)器計(jì)滿溢出,才可能中斷CPU當(dāng)前操作。
因此,定時(shí)器/計(jì)數(shù)器是一種可編程部件。編程:在定時(shí)器/計(jì)數(shù)器開始工作之前,CPU必須將一些命令(稱為控制字)寫入定時(shí)器/計(jì)數(shù)器,決定T0、T1的工作方式。第10頁,課件共68頁,創(chuàng)作于2023年2月將控制字寫入定時(shí)器/計(jì)數(shù)器的過程叫定時(shí)器/計(jì)數(shù)器的初始化。
初始化內(nèi)容:
規(guī)定T0、T1的工作方式;將工作方式控制字寫入方式寄存器
規(guī)定T0、T1的工作狀態(tài);將工作狀態(tài)控制字寫入控制寄存器
賦定時(shí)/計(jì)數(shù)初值。第11頁,課件共68頁,創(chuàng)作于2023年2月高4位控制T1低4位控制T0門控位計(jì)數(shù)/定時(shí)方式選擇工作方式選擇門控位計(jì)數(shù)/定時(shí)方式選擇工作方式選擇GC/TM1M0GC/TM1M0TMOD用于設(shè)定定時(shí)/計(jì)數(shù)器的工作方式低4位用于控制T0,高4位用于控制T1。1.工作方式控制寄存器TMOD⑴M1M0——工作方式選擇位M1M0工作方式功能00方式013位計(jì)數(shù)器,TH高8位和TL低5位01方式116位計(jì)數(shù)器10方式2兩個(gè)8位計(jì)數(shù)器,初值自動(dòng)裝入11方式3兩個(gè)8位計(jì)數(shù)器,僅適用T06.2定時(shí)器的控制第12頁,課件共68頁,創(chuàng)作于2023年2月⑵C/T——計(jì)數(shù)/定時(shí)方式選擇位
C/T=1,計(jì)數(shù)工作方式,對(duì)外部事件脈沖計(jì)數(shù),用作計(jì)數(shù)器。
C/T=0,定時(shí)工作方式,對(duì)片內(nèi)機(jī)周脈沖計(jì)數(shù),用作定時(shí)器。⑶GATE——門控位
GATE=0,運(yùn)行只受TCON中運(yùn)行控制位TR0/TR1的控制。
GATE=1,運(yùn)行同時(shí)受TR0/TR1和外中斷輸入信號(hào)的雙重控制。只有當(dāng)INT0/INT1=1且TR0/TR1=1,T0/T1才能運(yùn)行。
TMOD字節(jié)地址89H,不能位操作,設(shè)置TMOD須用字節(jié)操作指令。第13頁,課件共68頁,創(chuàng)作于2023年2月設(shè)定時(shí)器1為定時(shí)工作方式,要求由軟件啟動(dòng)定時(shí)器1,按方式2工作。定時(shí)器0為計(jì)數(shù)方式,要求由軟件啟動(dòng)定時(shí)器0,按方式1工作。
MOVTMOD,#25H。
位序號(hào)
D7D6D5D4
D3D2D1D0位符號(hào)GATE
0C/T0M10M00GATE0C/T1M10M01第14頁,課件共68頁,創(chuàng)作于2023年2月TCON低4位與外中斷、有關(guān),已在中斷中敘述。高4位與定時(shí)/計(jì)數(shù)器T0、T1有關(guān)。⑴TF1:定時(shí)/計(jì)數(shù)器T1溢出標(biāo)志。⑵TF0:定時(shí)/計(jì)數(shù)器T0溢出標(biāo)志。⑶TR1:定時(shí)/計(jì)數(shù)器T1運(yùn)行控制位。TR1=1,T1運(yùn)行;TR1=0,T1停。⑷TR0:定時(shí)/計(jì)數(shù)器T0運(yùn)行控制位。TR0=1,T0運(yùn)行;TR0=0,T0停。TCON的字節(jié)地址為88H,每一位有位地址,均可位操作。2.控制寄存器TCONTCONT1中斷標(biāo)志T1運(yùn)行標(biāo)志T0中斷標(biāo)志T0運(yùn)行標(biāo)志INT1中斷標(biāo)志INT1觸發(fā)方式INT0中斷標(biāo)志INT0觸發(fā)方式位名稱TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H第15頁,課件共68頁,創(chuàng)作于2023年2月6.3定時(shí)器/計(jì)數(shù)器的四種工作方式四種工作方式:即方式0、方式1、方式2和方式3。其中:方式0、1和2下,T0和T1的工作方式相同,方式3下,兩個(gè)定時(shí)器的工作方式不同。6.3.1方式013位計(jì)數(shù)結(jié)構(gòu)的工作方式。圖6-2是定時(shí)器/計(jì)數(shù)器0在工作方式0下的邏輯結(jié)構(gòu)。
T1的結(jié)構(gòu)和操作與T0完全相同。第16頁,課件共68頁,創(chuàng)作于2023年2月計(jì)數(shù)脈沖輸入定時(shí)器/計(jì)數(shù)器共有四種工作方式1.方式0—13位方式TF0T0TR0GATEINT01≥1&C/T=1振蕩器1/12C/T=0TL0TH08位低5位13位計(jì)數(shù)器定時(shí)器計(jì)數(shù)器第17頁,課件共68頁,創(chuàng)作于2023年2月定時(shí)時(shí)間的計(jì)算公式為:
T=(MT0初值)×振蕩周期×
12(或TC=MT/T0)其中:T——定時(shí)器的定時(shí)時(shí)間,即設(shè)計(jì)任務(wù)要求的定時(shí)時(shí)間;
M——計(jì)數(shù)器的模值;
T0——定時(shí)器需要預(yù)置的初值。若設(shè)初值T0=0,則定時(shí)器定時(shí)時(shí)間為最大。若設(shè)單片機(jī)系統(tǒng)主頻為12MHz,則各種工作方式定時(shí)器的最大定時(shí)時(shí)間為:工作方式0:Tmax=213×1s=8.192ms工作方式1:Tmax=216×1s=65.536ms工作方式2和3:Tmax=28×1s=0.256ms第18頁,課件共68頁,創(chuàng)作于2023年2月當(dāng)GATE=0時(shí),
若TR0=1,接通計(jì)數(shù)控制K,啟動(dòng)T0在原計(jì)數(shù)值上加1計(jì)數(shù),直至溢出。若TR0=0,則關(guān)斷控制開關(guān),停止計(jì)數(shù)。當(dāng)GATE=1,且TR0=1時(shí),
或門、與門全部打開,外信號(hào)電平通過引腳直接開啟或關(guān)斷定時(shí)器計(jì)數(shù)。輸入1電平時(shí),允許計(jì)數(shù),否則停止計(jì)數(shù)。第19頁,課件共68頁,創(chuàng)作于2023年2月由于定時(shí)器/計(jì)數(shù)器以加1方式計(jì)數(shù),當(dāng)定時(shí)器/計(jì)數(shù)器用于計(jì)數(shù)工作方式時(shí),假定要求的計(jì)數(shù)長度為N,則應(yīng)裝入定時(shí)器/計(jì)數(shù)器的初值
X=213-N。在方式0下,計(jì)數(shù)的長度范圍為1~8192。
第20頁,課件共68頁,創(chuàng)作于2023年2月當(dāng)工作于定時(shí)狀態(tài)時(shí),由于定時(shí)器/計(jì)數(shù)器是計(jì)數(shù)內(nèi)部的機(jī)器周期,每個(gè)機(jī)器周期包括12個(gè)振蕩周期,若晶振頻率為6MHz,則:機(jī)器周期Tp=12/晶振頻率=12/(6×106)=2us若需要的定時(shí)時(shí)間:Tc,則需要的機(jī)器周期數(shù)N=Tc/Tp。則應(yīng)裝入定時(shí)器/計(jì)數(shù)器的初值X=213-N。若晶振頻率為6MHz,則當(dāng)X=8191時(shí),具有最小的定時(shí)時(shí)間為2us;當(dāng)X=0時(shí),具有最大的定時(shí)時(shí)間為16384us。第21頁,課件共68頁,創(chuàng)作于2023年2月其中:N與工作方式有關(guān):方式0時(shí),N=13;
方式1時(shí),N=16;
方式2、3時(shí),N=8。 機(jī)周時(shí)間與主振頻率有關(guān):機(jī)周時(shí)間=12/fosc
fosc=12MHZ時(shí),1機(jī)周=1S;
fosc=6MHZ
時(shí),1機(jī)周=2S。80C51定時(shí)/計(jì)數(shù)初值計(jì)算公式:第22頁,課件共68頁,創(chuàng)作于2023年2月解:⑴工作方式0:
213–500S/2S=8192-250=7942=1F06H 1F06H化成二進(jìn)制: 1F06H=0001111100000110B =00011111000
00110B其中:低5位00110前添加3位000送入TL0 TL0=00000110B=06H;
高8位11111000B送入TH0TH0=11111000B=F8H。【例】已知晶振6MHz,要求定時(shí)0.5ms,試分別求出T0工作于方式0、方式1、方式2、方式3時(shí)的定時(shí)初值。第23頁,課件共68頁,創(chuàng)作于2023年2月⑵工作方式1:
T0初值=216-500s/2s=65536–250=65286=FF06HTH0=FFH;TL0=06H。⑶工作方式2:
T0初值=28-500s/2s=256-250=6TH0=06H;TL0=06H。⑷工作方式3:
T0方式3時(shí),被拆成兩個(gè)8位定時(shí)器,定時(shí)初值可分別計(jì)算,計(jì)算方法同方式2。兩個(gè)定時(shí)初值一個(gè)裝入TL0,另一個(gè)裝入TH0。因此:
TH0=06H;TL0=06H。從上例中看到,方式0時(shí)計(jì)算定時(shí)初值比較麻煩,根據(jù)公式計(jì)算出數(shù)值后,還要變換一下,容易出錯(cuò),不如直接用方式1,且方式0計(jì)數(shù)范圍比方式1小,方式0完全可以用方式1代替,方式0與方式1相比,無任何優(yōu)點(diǎn)。第24頁,課件共68頁,創(chuàng)作于2023年2月6.3.2方式1計(jì)數(shù)器由TH8位和TL8位構(gòu)成。當(dāng)定時(shí)器/計(jì)數(shù)器用于計(jì)數(shù)工作方式時(shí),假定要求的計(jì)數(shù)長度為N,則應(yīng)裝入定時(shí)器/計(jì)數(shù)器的初值X=216-N。在方式0下,計(jì)數(shù)的長度范圍為1~65536。當(dāng)工作于定時(shí)狀態(tài)時(shí),若需要的定時(shí)時(shí)間為Tc,則需要的機(jī)器周期數(shù)N=Tc/Tp(Tp=機(jī)器周期),則應(yīng)裝入定時(shí)器/計(jì)數(shù)器的初值X=216-N。若晶振頻率為6MHz,則當(dāng)X=65535時(shí),具有最小的定時(shí)時(shí)間為2us;當(dāng)N=65536時(shí),具有最大的定時(shí)時(shí)間為131072us≈131ms。第25頁,課件共68頁,創(chuàng)作于2023年2月圖6-3T0(或T1)方式1結(jié)構(gòu)――16位計(jì)數(shù)器第26頁,課件共68頁,創(chuàng)作于2023年2月例:設(shè)單片機(jī)晶振頻率fosc=6MHz,使用定時(shí)器1以方式1產(chǎn)生周期為500us的等寬正方波脈沖,并由P1.7輸出。以中斷方式完成。 (1)計(jì)算計(jì)數(shù)初值 設(shè)待求的計(jì)數(shù)初值為X,則: (216-X)×2us=250us
得:X=65411=FFA1H,則:TH1=FFH,TL1=A1H。(2)TMOD寄存器初始化
第27頁,課件共68頁,創(chuàng)作于2023年2月位序號(hào)
D7D6D5D4
D3D2D1D0位符號(hào)GATEC/TM1M0GATEC/TM1M000100000M1M0=10,C/T=0,GATE=0
所以:TMOD=10H第28頁,課件共68頁,創(chuàng)作于2023年2月(3)程序清單:
ORG 0000H AJMP MAIN
ORG 001BH
AJMP TIMER1 ORG 1000HMAIN:MOV TMOD,#10H ;設(shè)置T1工作方式1 MOV TH1, #0FFH ;設(shè)置計(jì)數(shù)初值
MOV TL1, #A1H ;
SETB EA ;開中斷第29頁,課件共68頁,創(chuàng)作于2023年2月
SETB ET1 ;定時(shí)器1允許中斷LOOP: SETB TR1 ;定時(shí)開始HERE:SJMP$ ;等待中斷
TIMER1:MOV TH1,#0FFH
;T1中斷服務(wù)程序 ;重新設(shè)置計(jì)數(shù)初值
MOV TL1, #A1H
;
CPL P1.7 RETI END ;程序結(jié)束第30頁,課件共68頁,創(chuàng)作于2023年2月6.3.3.方式2方式2具有自動(dòng)重新加載功能,即自動(dòng)加載計(jì)數(shù)初值。在該工作方式下,把16位計(jì)數(shù)器分為兩部分,即以TL作計(jì)數(shù)器,以TH作預(yù)置寄存器,初始化時(shí)把計(jì)數(shù)初值分別裝入TL和TH中。當(dāng)計(jì)數(shù)溢出時(shí),由預(yù)置寄存器TH以硬件方法自動(dòng)給計(jì)數(shù)器TL重新加載,繼續(xù)計(jì)數(shù),循環(huán)重復(fù)。第31頁,課件共68頁,創(chuàng)作于2023年2月當(dāng)定時(shí)器/計(jì)數(shù)器用于計(jì)數(shù)工作方式時(shí),假定要求的計(jì)數(shù)長度為N,則應(yīng)裝入定時(shí)器/計(jì)數(shù)器的初值X=28-N。在方式0下,計(jì)數(shù)的長度范圍為1~256。當(dāng)工作于定時(shí)狀態(tài)時(shí),若需要的定時(shí)時(shí)間為Tc,則需要的機(jī)器周期數(shù)N=Tc/Tp,(Tp為機(jī)器周期),則應(yīng)裝入定時(shí)器/計(jì)數(shù)器的初值X=28-N。若晶振頻率為6MHz,則當(dāng)X=255時(shí),具有最小的定時(shí)時(shí)間為2us;當(dāng)X=0時(shí),具有最大的定時(shí)時(shí)間為512us。
第32頁,課件共68頁,創(chuàng)作于2023年2月圖6-4T0(或T1)方式2結(jié)構(gòu)――8位計(jì)數(shù)器第33頁,課件共68頁,創(chuàng)作于2023年2月例:有一自動(dòng)罐裝藥粒系統(tǒng),每瓶罐裝藥粒100片,每滿一瓶,累加器A加1操作,若滿200瓶,向P1.0輸出0,然后停止計(jì)數(shù)。要求用定時(shí)器1以工作方式2計(jì)數(shù)。(1)計(jì)算計(jì)數(shù)初值設(shè)待求的計(jì)數(shù)初值為X,則: (28-X)=100得: X=156=38H,
則: TH1=38H,TL1=38H。(2)TMOD寄存器初始化第34頁,課件共68頁,創(chuàng)作于2023年2月
M1M0=10,=1,GATE=0
因此:TMOD=60H(3)程序清單:
ORG 1000H MOV TMOD,#60H ;設(shè)置T1工作方式
MOV TH1, #38H ;設(shè)置計(jì)數(shù)初值
MOV TL1, #38H 位序號(hào)
D7D6D5D4
D3D2D1D0位符號(hào)GATEC/TM1M0GATEC/TM1M001100000第35頁,課件共68頁,創(chuàng)作于2023年2月
MOVA,#00H MOV IE, #00H ;禁止中斷
SETB TR1 ;啟動(dòng)計(jì)數(shù)CHECK:JBC TF1,LOOP ;查詢計(jì)數(shù)溢出
AJMP CHECKLOOP:INC A
CJNE A,#200,CHECK CLR P1.0 ;清零P1.0 CLR TR1 ;停止計(jì)數(shù)器1的運(yùn)行
END ;程序結(jié)束第36頁,課件共68頁,創(chuàng)作于2023年2月
6.3.4.方式3
前三種工作方式下,T0和T1的設(shè)置和使用是完全相同的。但是在工作方式3下,二者的設(shè)置和使用卻是不同的,因此要分開介紹。 (1)在工作方式3下,T0被拆成兩個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0。其中TL0既可以作計(jì)數(shù)使用,又可以作定時(shí)使用。
T0的各控制位、引腳和中斷源,即、GATE、TR0、TF0
和T0(P3.4)引腳、(P3.2)引腳全歸它使用。功能和操作與方式1完全相同,而且邏輯電路結(jié)構(gòu)也很相似,如圖6-5所示。
第37頁,課件共68頁,創(chuàng)作于2023年2月
圖6-5T0工作方式3邏輯結(jié)構(gòu)第38頁,課件共68頁,創(chuàng)作于2023年2月而此時(shí)TH0只可用作簡(jiǎn)單的定時(shí)器使用。而且由于T0的控制位已被TL0獨(dú)占,因此只好借用定時(shí)器/計(jì)數(shù)器1的控制位TR1和TF1,即以計(jì)數(shù)溢出去置位TF1,而定時(shí)的啟動(dòng)和停止則受TR1的狀態(tài)控制。由于TL0既能作定時(shí)器使用也能作計(jì)數(shù)器使用,而TH0只能作定時(shí)器使用,卻不能作計(jì)數(shù)器使用。因此,在工作方式3下,定時(shí)器/計(jì)數(shù)器0可以構(gòu)成兩個(gè)定時(shí)器或一個(gè)定時(shí)器和一個(gè)計(jì)數(shù)器。
第39頁,課件共68頁,創(chuàng)作于2023年2月(2)工作方式3下的定時(shí)器/計(jì)數(shù)器1
如果T0已工作在工作方式3,則T1只能工作在方式0、1或方式2下,因?yàn)樗倪\(yùn)行控制位TR1及計(jì)數(shù)溢出標(biāo)志位TF1已被T0借用,如圖6-6所示。第40頁,課件共68頁,創(chuàng)作于2023年2月此時(shí),T1通常是作為串行口的波特率發(fā)生器使用,以確定串行通信的速率。因?yàn)橐呀?jīng)沒有計(jì)數(shù)溢出標(biāo)志位TF1可供使用,因此只能把計(jì)數(shù)溢出直接送給串行口。若將T1強(qiáng)行設(shè)置為模式3,就會(huì)使T1立即停止工作。第41頁,課件共68頁,創(chuàng)作于2023年2月例設(shè)定時(shí)器/計(jì)數(shù)器T0工作于方式3,TL0和TH0作為兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器分別產(chǎn)生250us和500us的定時(shí)中斷,使P1.1和P1.2產(chǎn)生500us和1000us的方波。設(shè)晶振頻率為6MHz。(1)計(jì)算計(jì)數(shù)初值
TL0的計(jì)數(shù)初值=256-250us/2us=131=83HTH0的計(jì)數(shù)初值=256-500us/2us=06H因此,TL0=83H,TH0=06H。
(2)TMOD寄存器初始化第42頁,課件共68頁,創(chuàng)作于2023年2月
M1M0=11,=0,GATE=0,同時(shí)設(shè)T1工作于方式0因此:TMOD=03H位序號(hào)
D7D6D5D4
D3D2D1D0位符號(hào)GATEC/TM1M0GATEC/TM1M000000011第43頁,課件共68頁,創(chuàng)作于2023年2月(3)程序清單:
ORG 0000H AJMPMAIN
ORG 000BH
;T0 AJMP TIMER0
ORG 001BH
;T1 AJMP TIMER1
ORG 1000HMAIN: MOV TMOD,#03H MOV TL0, #83H MOV TH0, #06H 第44頁,課件共68頁,創(chuàng)作于2023年2月
SETB TR0 ;啟動(dòng)定時(shí)器運(yùn)行
SETB TR1 SETB ET0 ;允許定時(shí)/計(jì)數(shù)器中斷
SETB ET1 SETB EA ;總中斷允許
SJMP $ ;等待中斷
TIMER0: MOV TL0,#83H CPL P1.1 RETI TIMER1: MOV TH0, #06H CPL P1.2 RETI END 第45頁,課件共68頁,創(chuàng)作于2023年2月
定時(shí)/計(jì)數(shù)器應(yīng)用步驟⑴合理選擇定時(shí)/計(jì)數(shù)器工作方式⑵計(jì)算定時(shí)/計(jì)數(shù)器定時(shí)初值(按上述公式計(jì)算)⑶編制應(yīng)用程序
①定時(shí)/計(jì)數(shù)器的初始化
包括定義TMOD、寫入定時(shí)初值、設(shè)置中斷系統(tǒng)、啟動(dòng)定時(shí)/計(jì)數(shù)器運(yùn)行等。②正確編制定時(shí)/計(jì)數(shù)器中斷服務(wù)程序
注意是否需要重裝定時(shí)初值,若需要連續(xù)反復(fù)使用原定時(shí)時(shí)間,且未工作在方式2,則應(yīng)在中斷服務(wù)程序中重裝定時(shí)初值。第46頁,課件共68頁,創(chuàng)作于2023年2月【例】試用T1方式2編制程序,在P1.0引腳輸出周期為400S的脈沖方波,已知fosc=12MHZ。解:①計(jì)算定時(shí)初值
T1初值=28-200s/1s=256–200=56=38HTH1=38H;TL1=38H②設(shè)置TMOD:
0
0
10
0000B=20HT0控制位,與T1無關(guān)
T1方式2T1定時(shí)器
T1啟動(dòng)與無關(guān)第47頁,課件共68頁,創(chuàng)作于2023年2月③編制程序如下:
ORG 0000H
;復(fù)位地址
LJMP MAIN ;轉(zhuǎn)主程序
ORG 001BH
;T1中斷入口地址
LJMP IT1 ;轉(zhuǎn)T1中斷服務(wù)程序
ORG 0100H
;主程序首地址MAIN:
MOV TMOD,#20H ;置T1定時(shí)器方式2 MOV TL1,#38H ;置定時(shí)初值
MOV TH1,#38H ;置定時(shí)初值備份
MOV IP,#00001000B;置T1高優(yōu)先級(jí)
MOV IE,#0FFH ;全部開中
SETB TR1 ;T1運(yùn)行
SJMP $ ;等待T1中斷
ORG0200H
;T1中斷服務(wù)程序首地址IT1:
CPLP1.0;輸出波形取反首地址
RETI;中斷返回第48頁,課件共68頁,創(chuàng)作于2023年2月【課堂練習(xí)題】
參照以上例題工作方式2,按下列要求分別修改程序: ①脈沖方波從P3.0輸出; ②fosc=6MHz; ③脈沖方波脈寬為100s; ④用定時(shí)/計(jì)數(shù)器T0;第49頁,課件共68頁,創(chuàng)作于2023年2月【例】已知晶振12MHZ,參閱圖5-15,要求利用定時(shí)器T0使圖中發(fā)光二極管D進(jìn)行秒閃爍。
解:發(fā)光二極管進(jìn)行秒閃爍。即一秒鐘一亮一暗,亮500ms,暗500ms。晶振12MHz,每機(jī)周1s,T0方式1最大定時(shí)只能65ms余。
取T0定時(shí)50ms,計(jì)數(shù)10次,即可實(shí)現(xiàn)500ms定時(shí)。
第50頁,課件共68頁,創(chuàng)作于2023年2月①計(jì)算定時(shí)初值
T0初值=216-50000s/1s=65536–50000=15536=3CB0HTH0=3CH;TL0=B0H。②設(shè)置TMOD:
0000
0
0
01B=01HT0方式1
T0
與無關(guān)
T1控制位第51頁,課件共68頁,創(chuàng)作于2023年2月③編制程序如下:
ORG 0000H
;復(fù)位地址
LJMP MAIN ;轉(zhuǎn)主程序
ORG 000BH
;T0中斷入口地址
LJMP IT0 ;轉(zhuǎn)T0中斷服務(wù)程序
ORG 0100H
;主程序首地址MAIN:MOV TMOD,#01H ;置T0定時(shí)器方式1 MOV TH0,#3CH ;置T0初值50ms MOV TL0,#0B0H ; MOV IE,#10000010B;T0開中
MOV R7,#0AH ;置50ms計(jì)數(shù)器初值
SETB TR0 ;T0運(yùn)行
SJMP $ ;等待中斷
ORG0200HITO:MOVTH0,#3CH;重置T0初值50msMOVTLO,#0BOH
DJNZR7,GORET
;判500ms到否?CPLP1.7;500ms到,輸出取反
MOVR7,#0AH;恢復(fù)50ms計(jì)數(shù)器初值GORET:RETI
第52頁,課件共68頁,創(chuàng)作于2023年2月【例】已知fosc=6MHz,檢測(cè)T0引腳上的脈沖數(shù),并將1s內(nèi)的脈沖數(shù)顯示在顯示屏上,每隔1s刷新一次顯示值(設(shè)一秒內(nèi)脈沖數(shù)≤65535個(gè))。
根據(jù)題目要求,T0用作計(jì)數(shù)器方式1,T1用作定時(shí)器方式1,定時(shí)100ms。
第53頁,課件共68頁,創(chuàng)作于2023年2月3)編制程序如下:
ORG0000HLJMPMAIN;轉(zhuǎn)主程序
0RG000BHLJMPIT0;轉(zhuǎn)T0中斷服務(wù)程序
ORG001BHLJMPITl;轉(zhuǎn)T1中斷服務(wù)程序
ORG0100HMAIN:MOVSP,#60H;置堆棧
MOVTMOD,#15H;置T0計(jì)數(shù)器方式1,T1定時(shí)器方式1MOVTH0,#00H;置T0初值
MOVTL0,#00H;
MOVTH1,#3CH;置T1初值
MOVTL1,#0BOH;
SETBPT1;置T1為高優(yōu)先級(jí)
MOVIE,#10001101B;TO、串口不開中,其余開中
SETBTR0;TO啟動(dòng)
SETBTRl;T1啟動(dòng)
MOVR7,#OAH;置lOOms計(jì)數(shù)器初值LDIR:LCALLDIR;調(diào)用顯示子程序,并等待中斷
SJMPLDIR;循環(huán)顯示T0中斷服務(wù)程序沒有編寫.第54頁,課件共68頁,創(chuàng)作于2023年2月
ORG0200H;T1中斷服務(wù)程序首地址ITl:MOVTHl,#3CH;重置T1初值
MOVTL1,#0BOH;
DJNZR7,GORET;判1s到否?1s未到轉(zhuǎn)返回
CLRTR0;1s到,T0停
MOV30H,TL0;記錄ls內(nèi)T0引腳脈沖個(gè)數(shù)
MOV31H,THO;
MOVTLO,#00H;脈沖計(jì)數(shù)器T0清0MOVTH0,#00H;
SETBTR0;TO重新運(yùn)行
MOVR7,#0AH;恢復(fù)lOOms計(jì)數(shù)器初值
PUSHAcc;保護(hù)現(xiàn)場(chǎng)
PUSHPSW;
PUSHDPH;
PUSHDPL;
LCALLWORK;調(diào)用數(shù)據(jù)處理子程序
POPDPL;恢復(fù)現(xiàn)場(chǎng)
POPDPH;
POPPSW;
POPAcc;GORET:RETI;T1中斷返回
第55頁,課件共68頁,創(chuàng)作于2023年2月【例】已知fosc=6MHz,試編寫24小時(shí)模擬電子鐘程序,秒分時(shí)數(shù)分別存在R1、R2、R3中,可直接調(diào)用顯示程序DIR。解:
ORG0000H;復(fù)位地址
LJMPIT0;轉(zhuǎn)主程序
ORG000BH;T0中斷入口地址
LJMPIT0;T0中斷,轉(zhuǎn)T0中斷服務(wù)子程序IT0ORG1000H;主程序首地址START:MOVR1,#0;秒計(jì)數(shù)器清0MOVR2,#0;分計(jì)數(shù)器清0MOVR3,#0;時(shí)計(jì)數(shù)器清0MOVR4,#0;500S計(jì)數(shù)器清0MOVR5,#0;100ms計(jì)數(shù)器清0MOVTMOD,#02H;置T0定時(shí)器方式2MOVTL0,#06H;置T0定時(shí)初值500SMOVTH0,#06H;用于自動(dòng)恢復(fù)定時(shí)初值
SETBTR0;啟動(dòng)T0WAIT:LCALLDIR;顯示時(shí)鐘時(shí)分秒并等待中斷
SJMPWAIT;循環(huán)顯示
ORG0200H;T0中斷服務(wù)程序首地址IT0:
MOVTH0,#3CH;重置T0初值50mSMOVTL0,#0B0H;DJNZR7,GORET;判500mS到否?
CPLP1.7;500mS到,輸出取反
MOVR7,#0AH;恢復(fù)50mS計(jì)數(shù)器初值GORET:RETI;第56頁,課件共68頁,創(chuàng)作于2023年2月
ORG 2000H ;T0中斷服務(wù)子程序首地址IT0:
INC R4 ;500S計(jì)數(shù)器計(jì)數(shù)
CJNE R4,#200,IT01;判100ms滿否?IT01:
JC IT06 ;未滿100ms,轉(zhuǎn)返回
MOVR4,#0 ;滿100ms,500S計(jì)數(shù)器清0 INCR5 ;100ms計(jì)數(shù)器計(jì)數(shù)
CJNER5,#10,IT02 ;判1s滿否?IT02:
JC IT06 ;未滿1s,轉(zhuǎn)返回
MOV R5,#0 ;滿1s,100ms計(jì)數(shù)器清0 INC R1 ;秒計(jì)數(shù)器加1 CJNER1,#60,IT03 ;判60秒滿否?IT03:
JC IT06 ;未滿60秒,轉(zhuǎn)返回
MOV R1,#0 ;滿60秒,秒計(jì)數(shù)器清0INC R2 ;分計(jì)數(shù)器加1CJNE R2,#60,IT04 ;判60分滿否?IT04:
JC IT06 ;未滿60分,轉(zhuǎn)返回
MOV R2,#0 ;滿60分,分計(jì)數(shù)器清0INC R3 ;時(shí)計(jì)數(shù)器加1CJNE R3,#24,IT05 ;判24小時(shí)滿否?IT05:
JC IT06 ;未滿24小時(shí),轉(zhuǎn)返回
MOV R3,#0 ;滿24小時(shí),時(shí)計(jì)數(shù)器清0IT06:
RETI ;返回第57頁,課件共68頁,創(chuàng)作于2023年2月解:利用定時(shí)/計(jì)數(shù)器T0擴(kuò)展成外中斷時(shí)須有兩個(gè)條件:
一是外部觸發(fā)脈沖從P3.4輸入(下降沿有效);
二是將定時(shí)/計(jì)數(shù)器設(shè)置成計(jì)數(shù)臨界狀態(tài),即定時(shí)初值為FFH,再來一個(gè)脈沖即能溢出觸發(fā)中斷。【例】因外中斷INT0、INT1已被占用,試?yán)枚〞r(shí)/計(jì)數(shù)器T0擴(kuò)展成外中斷。第58頁,課件共68頁,創(chuàng)作于2023年2月編程如下:
ORG0000H
;復(fù)位地址
LJMPSTART;復(fù)位,轉(zhuǎn)初始化程序START
ORG000BH
;T0中斷入口地址
LJMPIT0;轉(zhuǎn)T0中斷服務(wù)子程序IT0
ORG1000H
;初始化程序首地址START:
MOVSP,#60H;置堆棧
MOVTMOD,#06H;置T0計(jì)數(shù)器方式2(見P132)MOVTH0,#0FFH;置T0初值
MOVTL0,#0FFH;SETBPT0;置T0為高優(yōu)先級(jí)(見P121)MOVIE,#0FFH;全部開中
SETBTR0;T0啟動(dòng)
SJMPMAIN;轉(zhuǎn)主程序,并等待T0中斷
ORG2000H
;T0中斷服務(wù)子程序首地址IT0:
…;T0中斷服務(wù)子程序
RETI;第59頁,課件共68頁,創(chuàng)作于2023年2月6-4、設(shè)系統(tǒng)時(shí)鐘為6MHz,利用T0和P1.0產(chǎn)生連續(xù)矩形脈沖,高電平為50us,低電平為300us。根據(jù)題意,編寫程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,#00H ;定時(shí)器/計(jì)數(shù)器T0為定時(shí)方式0 MOV TL0,#4AH ;定時(shí)300μs初值賦值
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《壽司店策劃》課件
- 《種苗檔案建設(shè)》課件
- 二次函數(shù)復(fù)習(xí)課件
- 2024-2025學(xué)年廣東省清遠(yuǎn)市四校聯(lián)考高一上學(xué)期11月期中聯(lián)考物理試題(解析版)
- 單位管理制度集粹匯編職員管理十篇
- 《危險(xiǎn)管理與保險(xiǎn)》課件
- 單位管理制度匯編大合集職工管理十篇
- 三年級(jí)數(shù)學(xué)欣賞與設(shè)計(jì)課件
- 單位管理制度分享大全【人事管理篇】十篇
- 《孔徑孔容計(jì)算》課件
- 2024法務(wù)部門合規(guī)風(fēng)險(xiǎn)管理實(shí)踐模板
- 學(xué)??蒲刑幪庨L述職報(bào)告范文
- 護(hù)理文書書寫規(guī)范
- 2023-2024學(xué)年安徽省阜陽市臨泉縣八年級(jí)(上)期末數(shù)學(xué)試卷(含解析)
- 2016-2023年江蘇醫(yī)藥職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 部編版五年級(jí)語文上冊(cè)期末 小古文閱讀 試卷附答案
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)建設(shè)方案
- 江蘇南京鼓樓區(qū)2023-2024九年級(jí)上學(xué)期期末語文試卷及答案
- 醫(yī)療試劑服務(wù)方案
- 精準(zhǔn)醫(yī)療的商業(yè)模式
- 2023-2024學(xué)年四川省成都市金牛區(qū)八年級(jí)(上)期末數(shù)學(xué)試卷
評(píng)論
0/150
提交評(píng)論