




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片微機(jī)的定時(shí)器第一頁(yè),共六十四頁(yè),2022年,8月28日內(nèi)容介紹6.1概述6.2定時(shí)器/計(jì)數(shù)器T0、T16.3定時(shí)器/計(jì)數(shù)器T26.4監(jiān)視定時(shí)器(看門(mén)狗)T36.5定時(shí)器/計(jì)數(shù)器的應(yīng)用編程第二頁(yè),共六十四頁(yè),2022年,8月28日
在時(shí)序控制系統(tǒng)中,為了實(shí)現(xiàn)定時(shí)或計(jì)數(shù),通??刹捎靡韵氯N方法:1.硬件法硬件定時(shí)功能完全由硬件電路完成,不占用CPU時(shí)間。但當(dāng)要求改變定時(shí)時(shí)間時(shí),只能通過(guò)改變電路中的元件參數(shù)來(lái)實(shí)現(xiàn),很不靈活。2.軟件法軟件定時(shí)是執(zhí)行一段循環(huán)程序來(lái)進(jìn)行時(shí)間延時(shí),優(yōu)點(diǎn)是無(wú)額外的硬件開(kāi)銷(xiāo),時(shí)間比較精確。但犧牲了CPU的時(shí)間。
§1概述第三頁(yè),共六十四頁(yè),2022年,8月28日3.可編程定時(shí)器/計(jì)數(shù)器 可編程定時(shí)器/計(jì)數(shù)器最大特點(diǎn)是可以通過(guò)軟件編程來(lái)實(shí)現(xiàn)定時(shí)時(shí)間的改變,通過(guò)中斷或查詢(xún)方法來(lái)完成定時(shí)功能或計(jì)數(shù)功能。有專(zhuān)門(mén)的可編程定時(shí)器/計(jì)數(shù)器芯片可供選用,比如Intel8253。還有一些日歷時(shí)鐘芯片,如菲利浦公司的PCF8583等。目前在單片微機(jī)中均已配備了定時(shí)器/計(jì)數(shù)器(timer/counter)。
第四頁(yè),共六十四頁(yè),2022年,8月28日80C51芯片內(nèi)包含有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器:T0和T1;而80C52包含有三個(gè)16位的定時(shí)器/計(jì)數(shù)器:T0、T1和T2;在80C51系列的部分產(chǎn)品(如Philips公司的80C552)中,還包含有一個(gè)用做看門(mén)狗的8位定時(shí)器(T3)。 若是對(duì)單片微機(jī)的T0、T1或T2引腳上輸入的一個(gè)1到0的跳變進(jìn)行計(jì)數(shù)增l,即是計(jì)數(shù)功能。若是對(duì)單片微機(jī)內(nèi)部的機(jī)器周期進(jìn)行計(jì)數(shù),從而得到定時(shí),這就是定時(shí)功能。第五頁(yè),共六十四頁(yè),2022年,8月28日定時(shí)器/計(jì)數(shù)器的核心是一個(gè)加1計(jì)數(shù)器,其基本功能是計(jì)數(shù)加1。定時(shí)功能和計(jì)數(shù)功能的設(shè)定和控制都是通過(guò)軟件來(lái)設(shè)定的。8051的定時(shí)器/計(jì)數(shù)器的邏輯功能結(jié)構(gòu)框圖如下圖所示。8051的定時(shí)器/計(jì)數(shù)器除了可用作定時(shí)器或計(jì)數(shù)器之外,還可用作串行接口的波特率發(fā)生器。第六頁(yè),共六十四頁(yè),2022年,8月28日定時(shí)器/計(jì)數(shù)器T0、T1的內(nèi)部結(jié)構(gòu)簡(jiǎn)圖示于圖-1中。從圖中可以看出,定時(shí)器/計(jì)數(shù)器T0、T1由以下幾部分組成:
計(jì)數(shù)器TH0、TL0和TH1、TL1;
特殊功能寄存器TMOD、TCON;
時(shí)鐘分頻器;
輸入引腳T0、T1。§2定時(shí)器/計(jì)數(shù)器T0、T1第七頁(yè),共六十四頁(yè),2022年,8月28日
⒈定時(shí)器/計(jì)數(shù)器T0、T1的方式寄存器——TMOD,
字節(jié)地址為89H。TMOD的格式如下:低4位用來(lái)定義T0,高4位用來(lái)定義T1§2.1與定時(shí)器/計(jì)數(shù)器T0、T1有關(guān)的特殊功能寄存器D7 D6 D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0第八頁(yè),共六十四頁(yè),2022年,8月28日D7 D6 D5D4 D3D2D1D0GATEC/TM1M0GATEC/TM1M0T1T0各位的意義如下:
GATE——門(mén)控位。GATE=1時(shí),由外部中斷引腳、和TR0、TR1共同來(lái)啟動(dòng)定時(shí)器。當(dāng)INT0引腳為高電平時(shí),TR0置位啟動(dòng)定時(shí)器T0;當(dāng)INT1引腳為高電平時(shí),TR1置位,啟動(dòng)定時(shí)器T1。
GATE=0時(shí),僅由TR0和TR1置位來(lái)啟動(dòng)定時(shí)器T0和T1。
第九頁(yè),共六十四頁(yè),2022年,8月28日
C/T——功能選擇位。C/T=1時(shí),選擇計(jì)數(shù)功能;C/T=0時(shí),選擇定時(shí)功能。T0、T1的計(jì)數(shù)、定時(shí)功能是通過(guò)TMOD中的位來(lái)選擇的。
①定時(shí)器,設(shè)置C/T=0計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期使寄存器的值增1。每個(gè)機(jī)器周期等于12個(gè)振蕩周期,故計(jì)數(shù)速率為振蕩周期的1/12。當(dāng)采用12MHz的晶體時(shí),計(jì)數(shù)速率為1MHz。定時(shí)器的定時(shí)時(shí)間,與系統(tǒng)的振蕩頻率fosc、計(jì)數(shù)器的長(zhǎng)度和初始值等有關(guān)。
第十頁(yè),共六十四頁(yè),2022年,8月28日
②計(jì)數(shù)器,設(shè)置C/T=1 這時(shí),通過(guò)引腳T0(P3.4)和T1(P3.5)對(duì)外部信號(hào)進(jìn)行計(jì)數(shù)。在每個(gè)機(jī)器周期的S5P2期間,CPU采樣引腳的輸入電平。若前一機(jī)器周期采樣值為1,下一機(jī)器周期采樣值為0,則計(jì)數(shù)器增1,此后的機(jī)器周期S3P1期間,新的計(jì)數(shù)值裝入計(jì)數(shù)器。所以檢測(cè)一個(gè)1到0的跳變需要兩個(gè)機(jī)器周期,故計(jì)數(shù)脈沖頻率不能高于振蕩脈沖頻率的1/24。第十一頁(yè),共六十四頁(yè),2022年,8月28日
M1、M0——工作方式選擇位。由于有M1和M0兩位,可以有四種工作方式,如表-1所示。
⒉定時(shí)器/計(jì)數(shù)器T0、T1的控制寄存器——TCON控制寄存器TCON是一個(gè)逐位定義的8位寄存器,字節(jié)地址為88H,位尋址的地址為88H~8FH。其格式如下:位地址8FH8EH8DH8CH8BH8AH89H88H位功能TF1TR1TF0TR0IE1IT1IE0IT0其中各位的意義如下:第十二頁(yè),共六十四頁(yè),2022年,8月28日
TF1(TCON.7)——定時(shí)器/計(jì)數(shù)器T1的溢出標(biāo)志。T1溢出時(shí),該位由內(nèi)部硬件置位。若中斷開(kāi)放,即響應(yīng)中斷,進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清0;若中斷禁止,可用于判跳,用軟件清0。
TR1(TCON.6)——T1的運(yùn)行控制位。 用軟件控制,置l時(shí),啟動(dòng)T1;清0時(shí),停止T1。
TF0(TCON.5)——T0的溢出標(biāo)志。T0溢出時(shí),該位由內(nèi)部硬件置位。若中斷開(kāi)放,即響應(yīng)中斷,進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清0;若中斷禁止,可用于判跳,用軟件清0。
TR0(TCON.4)——T0的運(yùn)行控制位。用軟件控制,置1時(shí),啟動(dòng)T0;清0時(shí),停止T0。位地址8FH8EH8DH8CH8BH8AH89H88H位功能TF1TR1TF0TR0IE1IT1IE0IT0第十三頁(yè),共六十四頁(yè),2022年,8月28日
IE1(TCON.3)——外部中斷1下降沿觸發(fā)標(biāo)志位。
IE0(TCON.I)——外部中斷0下降沿觸發(fā)標(biāo)志位。
IT1(TCON.0)——外部中斷1觸發(fā)類(lèi)型選擇位。
IT0(TCON.0)——外部中斷0觸發(fā)類(lèi)型選擇位。TCON的低4位與中斷有關(guān),已在第五章“中斷系統(tǒng)”中討論過(guò)。
復(fù)位后,TCON的所有位均清0。T0和T1均是關(guān)斷的。
⒊定時(shí)器/計(jì)數(shù)器T0、T1的數(shù)據(jù)寄存器由TH1(地址為8DH)、TL1(地址為8BH)和TH0(地址為8CH)、TL0(地址為8AH)寄存器所組成。復(fù)位后,所有這四個(gè)寄存器全部清零。第十四頁(yè),共六十四頁(yè),2022年,8月28日⒋定時(shí)器/計(jì)數(shù)器中斷
⑴中斷允許寄存器IE
EA位--中斷允許總控制位ET0位、ET1位、ET2位--T0、T1和T2的中斷允許控制位。某位=0,則禁止對(duì)應(yīng)定時(shí)器/計(jì)數(shù)器的中斷。某位=1,則允許對(duì)應(yīng)定時(shí)器/計(jì)數(shù)器的中斷。
⑵中斷矢量 定時(shí)器T0:000BH 定時(shí)器T1:001BH 定時(shí)器T2:002BH第十五頁(yè),共六十四頁(yè),2022年,8月28日
⑶中斷優(yōu)先級(jí)寄存器IP
PT0位、PT1位、PT2位--T0、T1和T2中斷優(yōu)先級(jí)控制位。某位為0,則相應(yīng)的定時(shí)器/計(jì)數(shù)器的中斷為低優(yōu)先級(jí);某位為1,則相應(yīng)的定時(shí)器/計(jì)數(shù)器的中斷為高優(yōu)先級(jí)。第十六頁(yè),共六十四頁(yè),2022年,8月28日
根據(jù)對(duì)TMOD寄存器中M1和M0的設(shè)定,T0可選擇四種不同的工作方式,而T1只具有三種工作方式(即方式0、方式1和方式2)。⒈方式0:13位定時(shí)器/計(jì)數(shù)器當(dāng)TMOD中的M1=0、M0=0時(shí),選定方式0工作。方式0時(shí)的結(jié)構(gòu)如圖-2所示。這種方式下,計(jì)數(shù)寄存器由13位組成,即THx高八位(作計(jì)數(shù)器)和TLx的低5位(32分頻的定標(biāo)器)構(gòu)成。TLx的高3位未用。計(jì)數(shù)時(shí),TLx的低5位溢出后向THx進(jìn)位,THx溢出后將TFx置位,并向CPU申請(qǐng)中斷?!?.2定時(shí)器/計(jì)數(shù)器T0、T1的工作方式第十七頁(yè),共六十四頁(yè),2022年,8月28日從圖–2中可看到:C/T位的電平為“0”或“1”,用來(lái)設(shè)定是作定時(shí)器或計(jì)數(shù)器。門(mén)控位GATE可用作對(duì)INTx引腳上的高電平時(shí)間進(jìn)行計(jì)量。由圖–2上可看出,當(dāng)GATE=0時(shí),A點(diǎn)為高電平,定時(shí)器/計(jì)數(shù)器的啟動(dòng)/停止由TRx決定。TRx=1,定時(shí)器/計(jì)數(shù)器啟動(dòng);TRx=0,定時(shí)器/計(jì)數(shù)器停止。當(dāng)GATE=1時(shí)A點(diǎn)的電位由INTx決定,因而B(niǎo)點(diǎn)的電位就由TRx和INTx決定,即定時(shí)器/計(jì)數(shù)器的啟動(dòng)/停止由TRx和INTx兩個(gè)條件決定。
計(jì)數(shù)溢出時(shí),TFx置位。如果中斷允許,CPU響應(yīng)中斷并轉(zhuǎn)入中斷服務(wù)程序,由內(nèi)部硬件清TFx。TFx也可以由程序查詢(xún)和清零。
第十八頁(yè),共六十四頁(yè),2022年,8月28日⒉方式1:16位定時(shí)器/計(jì)數(shù)器
當(dāng)TMOD中的M1=0、M0=l時(shí),選定方式1工作。
方式1時(shí),T0、T1的邏輯結(jié)構(gòu)如圖-3所示。這種方式下,計(jì)數(shù)寄存器由16位組成,THx高八位和TLx的低8位。 計(jì)數(shù)時(shí),TLx溢出后向THx進(jìn)位,THx溢出后將TFx置位,如果中斷允許,CPU響應(yīng)中斷并轉(zhuǎn)入中斷服務(wù)程序,由內(nèi)部硬件清TFx。TFx也可以由程序查詢(xún)和清零。第十九頁(yè),共六十四頁(yè),2022年,8月28日
⒊方式2:定時(shí)常數(shù)自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器
當(dāng)TMOD中的M1=1、M0=0時(shí),選定方式2工作。這種方式是將16位計(jì)數(shù)寄存器分為兩個(gè)8位寄存器,組成一個(gè)可重載的8位計(jì)數(shù)寄存器。方式2時(shí)定時(shí)器/計(jì)數(shù)器T0、T1的邏輯結(jié)構(gòu)如圖-4所示。在方式2中,TLx作為8位計(jì)數(shù)寄存器,THx作為8位計(jì)數(shù)常數(shù)寄存器。當(dāng)TLx計(jì)數(shù)溢出時(shí),一方面將TFx置位,并向CPU申請(qǐng)中斷;另一方面將THx的內(nèi)容重新裝入TLx中,繼續(xù)計(jì)數(shù)。重新裝入不影響THx的內(nèi)容。方式2適合于作為串行口波特率發(fā)生器使用。第二十頁(yè),共六十四頁(yè),2022年,8月28日
⒋方式3當(dāng)TMOD中的M1=l、M0=1時(shí),選定方式3工作。這種方式是是將T0分為一個(gè)8位定時(shí)器/計(jì)數(shù)器和一個(gè)8位定時(shí)器,TL0用于8位定時(shí)器/計(jì)數(shù)器,TH0用于8位定時(shí)器。方式3時(shí)定時(shí)器/計(jì)數(shù)器T0、T1邏輯結(jié)構(gòu)分別如圖–5、圖–6所示。⑴工作方式3下的定時(shí)器/計(jì)數(shù)器T0方式3時(shí),T0的結(jié)構(gòu)見(jiàn)圖–5所示。其工作與方式0時(shí)相同,只是此時(shí)的計(jì)數(shù)器為8位計(jì)數(shù)器TL0,它占用了T0的GATE、INT0、啟動(dòng)/停止控制位TR0、T0引腳(P3.4)以及
計(jì)數(shù)溢出標(biāo)志位TF0和T0的中斷矢量(地址為000BH)等。第二十一頁(yè),共六十四頁(yè),2022年,8月28日
TH0所構(gòu)成的定時(shí)器只能作為定時(shí)器用,因?yàn)榇藭r(shí)的外部引腳T0已為定時(shí)器/計(jì)數(shù)器TL0所占用。這時(shí)它占用了T1的啟動(dòng)/停止控制位TR1、計(jì)數(shù)溢出標(biāo)志位TF1及T1中斷矢量(地址為001BH)。T0方式3時(shí),T1的結(jié)構(gòu)如圖6–6所示,T1只可選方式0、1或2。由于此時(shí)計(jì)數(shù)溢出標(biāo)志位TF1及T1中斷矢量(地址為001BH)已被TH0所占用,所以T1僅能作為波特率發(fā)生器或其它不用中斷的地方。作串行口波特率發(fā)生器時(shí),T1的計(jì)數(shù)輸出直接去串行口,只需設(shè)置好工作方式,串行口波特率發(fā)生器自動(dòng)開(kāi)始運(yùn)行,如要停止工作,只需向T1送一個(gè)設(shè)為工作方式3的控制字即可。第二十二頁(yè),共六十四頁(yè),2022年,8月28日
⒈定時(shí)器/計(jì)數(shù)器溢出率的計(jì)算
定時(shí)器/計(jì)數(shù)器運(yùn)行前,在其中預(yù)先置入的常數(shù),稱(chēng)為定時(shí)常數(shù)或計(jì)數(shù)常數(shù)(TC)。由于計(jì)數(shù)器是加1(向上)計(jì)數(shù)的,故而預(yù)先置入的常數(shù)均應(yīng)為補(bǔ)碼。其中:
t——定時(shí)時(shí)間, TC——機(jī)器周期。L——計(jì)數(shù)器的長(zhǎng)度,Fosc——晶體振蕩器頻率。
TC—定時(shí)器/計(jì)數(shù)器初值,即定時(shí)常數(shù)或計(jì)數(shù)常數(shù)。
§3定時(shí)器/計(jì)數(shù)器的應(yīng)用編程§3.1定時(shí)器的應(yīng)用第二十三頁(yè),共六十四頁(yè),2022年,8月28日定時(shí)/計(jì)數(shù)器的溢出率即為定時(shí)時(shí)間的倒數(shù),即:對(duì)于T0及T1:方式0 L=13213=8192方式1 L=16216=65536方式2 L=828=256對(duì)于T2:L=16216=65536因此,根據(jù)要求的定時(shí)時(shí)間t、設(shè)定的定時(shí)器工作方式(確定L)及晶體振蕩頻率fosc,可計(jì)算出TC值(十進(jìn)制數(shù)),再將其轉(zhuǎn)換成二進(jìn)制數(shù)TCB,然后再分別送入THi、TLi(對(duì)于T0,i=0;對(duì)于T1,i=l)。第二十四頁(yè),共六十四頁(yè),2022年,8月28日對(duì)于定時(shí)器/計(jì)數(shù)器T0、T1:方式0時(shí):TCB=TCH+TCL,TCH—高8位,TCL—低5位MOVTHi,#TCH ;送高8位MOVTLi,#TCL ;送低5位(高3位為0)方式1時(shí):TCB=TCH+TCL,TCH—高8位,TCL—低8位MOVTHi,#TCH ;送高8位MOVTLi,#TCL ;送低8位。方式2時(shí):TCB——8位重裝載MOVTHi,#TCB ;送高8位
MOVTLi,#TCB ;送低8位。對(duì)于定時(shí)器/計(jì)數(shù)器T2:與T0、T1的方式1相同。第二十五頁(yè),共六十四頁(yè),2022年,8月28日
例1.要求在P1.0引腳上產(chǎn)生周期為2ms的方波輸出。分析:設(shè)晶體振蕩器的頻率為fosc=6MHz??墒褂肨0作定時(shí)器,設(shè)為方式0,設(shè)定lms的定時(shí),每隔1ms使P1.0引腳上的電平變反。解:(1)定時(shí)常數(shù)計(jì)算振蕩器的頻率fosc=6MHz,機(jī)器周期為2μs,方式0計(jì)數(shù)器長(zhǎng)度L=13(213=8192),定時(shí)時(shí)間t=1ms=0.001s定時(shí)常數(shù):第二十六頁(yè),共六十四頁(yè),2022年,8月28日TC為7692=1E0CH,二進(jìn)制數(shù):TCB=00011110000
01100B,取低13位,其中高8位TCH=F0H,低5位為T(mén)CL=0CH。計(jì)數(shù)長(zhǎng)度為13,定時(shí)為(8192—7692)×2μs=0.001S。TMOD的設(shè)定(即控制字):第二十七頁(yè),共六十四頁(yè),2022年,8月28日(2)編程 ORG 0000 AJMP MAIN ORG 000BH ;T0中斷矢量 AJMPINQP ORG 0030HMAIN:MOVTMOD,#00H;設(shè)T0為定時(shí)器方式0 MOV TH0,#0F0H;寫(xiě)定時(shí)常數(shù)(定時(shí)1ms) MOV TL0,#0CH SETB TR0;啟動(dòng)T0 SETB ET0;允許T0中斷 SETB EA;開(kāi)放CPU中斷 AJMP$ ;定時(shí)中斷等待
第二十八頁(yè),共六十四頁(yè),2022年,8月28日
ORG XXXXH;T0中斷服務(wù)程序INQP:MOVTH0,#0F0H;重寫(xiě)定時(shí)常數(shù)
MOVTL0,#0CH CPL P1.0 ;P1.0變反輸出
RETI;中斷返回
例2.使用T1的方式1,設(shè)定1ms的定時(shí)。同樣,在P1.0引腳上產(chǎn)生周期為2ms的方波輸出。設(shè)晶體振蕩器的頻率為fosc=6MHz。解:
⑴定時(shí)常數(shù)計(jì)算振蕩器的頻率fosc=6MHz=6×106Hz,方式1計(jì)數(shù)器長(zhǎng)度L=16,2L=216=65536定時(shí)時(shí)間t=1ms=0.001s定時(shí)常數(shù):第二十九頁(yè),共六十四頁(yè),2022年,8月28日定時(shí)常數(shù)TC轉(zhuǎn)換成二進(jìn)制TCB=11111110
00001100B=FE0CH所以TCH=FEH(高8位),TCL=0CH(低8位)TMOD的設(shè)定(即控制字)第三十頁(yè),共六十四頁(yè),2022年,8月28日⑵
編程 ORG0000H AJMPMAIN ORG 001BH ;T1中斷矢量地址 AJMPINQP ORG 100H ;主程序入口MAIN:MOVTMOD,#10H ;T1為定時(shí)器方式1 MOV TH1,#0FEH ;寫(xiě)定時(shí)常數(shù),定時(shí)1ms MOV TL1,#0CH SETB TR1 ;啟動(dòng)T1 SETB ET1 ;允許T1中斷 SETB EA ;開(kāi)放CPU中斷 AJMP $ ORG 00XXH ;中斷服務(wù)程序 INQP:MOVTH1,#0FEH ;重寫(xiě)定時(shí)常數(shù) MOV TL1,#0CH CPL P1.0 ;P1.0變反輸出 RETI ;中斷返第三十一頁(yè),共六十四頁(yè),2022年,8月28日例3.欲用80C51產(chǎn)生兩個(gè)方波,一個(gè)周期為200μs,另一個(gè)周期為400μs,該80C51同時(shí)使用串行口,用定時(shí)器/計(jì)數(shù)器作為波特率發(fā)生器。解:⑴這時(shí)T0采用方式3工作,其中,TL0產(chǎn)生200μs定時(shí),由P1.0輸出方波;TH0產(chǎn)生400μs定時(shí),由Pl.1輸出方波;T1設(shè)置為方式2作波特率發(fā)生器用。focs=9.216MHz。第三十二頁(yè),共六十四頁(yè),2022年,8月28日
定時(shí)常數(shù)計(jì)算?TL0定時(shí)常數(shù)為T(mén)CL0:tl0=100μs單位μs,為十進(jìn)數(shù)制數(shù)值。十六進(jìn)制數(shù)值為T(mén)CBL0=B3H。?TH0定時(shí)常數(shù)為T(mén)CH0:定時(shí)時(shí)間為th0=200μs單位μs,為十進(jìn)制數(shù)值。十六進(jìn)制的值為T(mén)CBH0=66H。?TH1的波特率(詳細(xì)計(jì)算見(jiàn)串行口部分)設(shè)波特率為2400,則定時(shí)常數(shù)為T(mén)C2=F6H(1/波特率=(1/2400)S=(1/24)x104μs第三十三頁(yè),共六十四頁(yè),2022年,8月28日⑵編程 ORG0000H AJMPMAIN ORG000BH ;TL0的中斷入口 AJMPITL0 ORG00lBH ;TH0的中斷入口 AJMPITH0 ORG0100HMAIN:MOVSP,#60H ;設(shè)棧指針MOVTMOD,#23H ;設(shè)T0為方式3,TI為2MOVTL0,#0B3H;設(shè)TL0初值(100μs定時(shí))MOVTH0,#66H;設(shè)TH0初值(200μs定時(shí))MOVTL1,#0F6H;設(shè)TL1初值(波特率為2400)MOVTH1,#0F6H;設(shè)TH1初值 第三十四頁(yè),共六十四頁(yè),2022年,8月28日 SETB TR0;啟動(dòng)TL0 SETB TR1;啟動(dòng)TH0 SETB ET0;允許TL0中斷 SETB ET1;允許TH0中斷 SETB EA;CPU中斷開(kāi)放 AJMP $ ORG 0200HITL0:MOVTL0,#0B3H ;重裝定時(shí)常數(shù) CPL P1.0 ;輸出方波(200μs) RETIITH0:MOVTH0,#66H ;重裝定時(shí)常數(shù) CPL P1.1 ;輸出方波(400μs) RETI第三十五頁(yè),共六十四頁(yè),2022年,8月28日當(dāng)TMOD寄存器中C/T位設(shè)置為“1”時(shí),定時(shí)器/計(jì)數(shù)器作為計(jì)數(shù)器使用,可對(duì)來(lái)自單片微機(jī)引腳T0或T1上的負(fù)跳變脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)溢出時(shí)可申請(qǐng)中斷,也可查詢(xún)溢出標(biāo)志位TFx。例4.假如一個(gè)用戶(hù)系統(tǒng)已使用了二個(gè)外部中斷源,即INT0和INT1,用戶(hù)系統(tǒng)要求從P1.0引腳上輸出一個(gè)5KHz的方波,并要求采用定時(shí)器/計(jì)數(shù)器作為串行口的波特率發(fā)生器,另外還需要再增加一個(gè)外部中斷源。 ⑴為了不增加其他硬件開(kāi)銷(xiāo),可以把T0設(shè)置為方式3,這時(shí)可把單片微機(jī)的引腳T0作為外部中斷源,TL0設(shè)置為計(jì)數(shù)器,但計(jì)數(shù)器的定時(shí)常數(shù)設(shè)為FFH,這樣當(dāng)T0引腳上出現(xiàn)從“1”至“0”的負(fù)跳變時(shí),TL0計(jì)數(shù)溢出,申請(qǐng)中斷,相當(dāng)于一個(gè)邊沿觸發(fā)的外部中斷源?!?.2計(jì)數(shù)器的應(yīng)用第三十六頁(yè),共六十四頁(yè),2022年,8月28日在T0方式3下,TH0只能做8位定時(shí)器,用來(lái)產(chǎn)生5KHz方波的定時(shí)。TH0只能做8位定時(shí)器,用來(lái)產(chǎn)生5KHz方波的定時(shí)。當(dāng)T0設(shè)置為方式3之后,T1就作為串行口的波特率發(fā)生器,設(shè)為方式2。由P1.0引腳上輸出5KH頻率的方波,而方波周期為200μs,則要求定時(shí)時(shí)間為100μs,若采用12MHz的晶體振蕩器,則機(jī)器周期為1μs。計(jì)算時(shí)間常數(shù):(28-TC)×1μs=100μs ∴TC=256-100=156⑵編程: ORG 0000H SJMP MAIN ORG 000BH AJMP TL0INT ;TL0中斷入口第三十七頁(yè),共六十四頁(yè),2022年,8月28日
ORG 001BH AJMP TH0INT ;TH0中斷入口 ORG 0030HMAIN: MOV TMOD,#27H;設(shè)T0為方式3, ;TL0為計(jì)數(shù)器方式,TH0為定時(shí)器方式,T1作波特率發(fā)生器,方式2。 MOV TH0,#156 ;TH0定時(shí)常數(shù)。 MOV TL0,#0FFH ;TL0計(jì)數(shù)常數(shù) MOV TL1,#BAUD
;BAUD根據(jù)波特率算出的時(shí)間常數(shù)。 MOV TH1,#BAUD MOV TCON,#55H
;置TR0和TR1為“1”,啟動(dòng)TL0和TH0。
第三十八頁(yè),共六十四頁(yè),2022年,8月28日
SETB ET0 ;允許TR0中斷 SETB ET1 ;允許TR1中斷 SETB EA ;允許CPU中斷 SJMP $ ;中斷等待。 ORG 0100HTL0INT: MOV TL0,#0FFH ;重置計(jì)數(shù)長(zhǎng)度
┇(中斷處理) RETITH0INT: MOV TH0,#156 ;重置定時(shí)常數(shù) CPL P1.0 ;P1.0引腳輸出方波 RETI第三十九頁(yè),共六十四頁(yè),2022年,8月28日門(mén)控位GATE可用作對(duì)INTx引腳上的高電平持續(xù)時(shí)間進(jìn)行計(jì)量。當(dāng)GATE位設(shè)為“1”,并設(shè)定時(shí)器/計(jì)數(shù)器啟動(dòng)位TRx為“1”,這時(shí)定時(shí)器/計(jì)數(shù)器定時(shí)完全取決于INTx引腳,僅當(dāng)INTx引腳電平為“1”時(shí),定時(shí)器才工作,換另一角度看,定時(shí)器實(shí)際記錄的時(shí)間就是相應(yīng)INTx引腳上高電平的持續(xù)時(shí)間。通過(guò)反相器,則可測(cè)得相應(yīng)INTx引腳上低電平的持續(xù)時(shí)間。二個(gè)時(shí)間的和即為INTx引腳上輸入波形的周期,其倒數(shù)即為INTx引腳上輸入波形的頻率。還可算出占空比等參數(shù)。
§5.3門(mén)控位GATE的應(yīng)用第四十頁(yè),共六十四頁(yè),2022年,8月28日例5.利用定時(shí)器/計(jì)數(shù)器測(cè)定圖6-11所示波形的一個(gè)周期長(zhǎng)度。利用門(mén)控信號(hào)GATE啟動(dòng)定時(shí)器的方法。設(shè)如圖示,T0為定時(shí)器,為高電平時(shí),啟動(dòng)定時(shí)器;T1為計(jì)數(shù)器,T1的電平由1到0,計(jì)數(shù)器計(jì)數(shù)。第四十一頁(yè),共六十四頁(yè),2022年,8月28日P3.3(INT1)TR1置1T1開(kāi)始計(jì)時(shí)TR1清零圖6–11波形脈沖寬度測(cè)試原理編程如下:⑴查詢(xún)法 ORG0000HSTART:MOVTMOD,#90H
;設(shè)置T1為定時(shí)器方式1,GATA位置“1” MOV TL1,#00H ;置為最大定時(shí)值 MOV TH1,#00H LP1:JB P3.3,LP1 ;P3.3為高電平,等待
SETBTR1;當(dāng)P3.3為低電平時(shí),置TR1位為“1”第四十二頁(yè),共六十四頁(yè),2022年,8月28日
LP2: JNB P3.3,LP2 ;當(dāng)P3.3為低電平時(shí),再等待LP3: JB P3.3,LP3 ;當(dāng)P3.3為高電平時(shí),T1開(kāi)始定時(shí)計(jì)數(shù) CLR TR1;當(dāng)P3.3為低電平時(shí),高電平脈寬定時(shí)計(jì)數(shù)結(jié)束 SJMP $當(dāng)fosc=12MHz時(shí),機(jī)器周期為1μs,本方案最大被測(cè)脈沖寬度為65536μs(65.536ms)。由于靠軟件進(jìn)行啟動(dòng)和停止計(jì)數(shù),存在一定的測(cè)量誤差。若被測(cè)波形除了接至P3.3,另外同時(shí)通過(guò)一個(gè)反相器接至P3.2(INT0
),則通過(guò)編程同時(shí)可以測(cè)得波形的高電平寬度和低電平寬度。第四十三頁(yè),共六十四頁(yè),2022年,8月28日⑵中斷法對(duì)于脈沖寬度大于65.536ms的脈沖,可以采用對(duì)定時(shí)溢出次數(shù)進(jìn)行計(jì)數(shù)的方法。這樣,脈寬為(定時(shí)溢出時(shí)間×溢出次數(shù))+定時(shí)時(shí)間。利用定時(shí)器/計(jì)數(shù)器來(lái)測(cè)定脈沖周期的方法參見(jiàn)圖6-12。(1)設(shè)定晶體振蕩器為6MHz,機(jī)器周期Tc為2μs,定時(shí)器/計(jì)數(shù)器T0為方式1,定時(shí)溢出時(shí)間為100ms,則T0定時(shí)時(shí)間常數(shù)為:(TH0)=3CH,(TL0)=B0H第四十四頁(yè),共六十四頁(yè),2022年,8月28日因?yàn)橥獠棵}沖同時(shí)接至T1的輸入引腳T1,所以T1腳上對(duì)下降沿計(jì)數(shù)二次,即為外部脈沖的一個(gè)周期時(shí)間?,F(xiàn)設(shè)T1為計(jì)數(shù)器。計(jì)數(shù)值為2。當(dāng)計(jì)數(shù)值為1時(shí),啟動(dòng)定時(shí)器;當(dāng)計(jì)數(shù)值為2時(shí),中斷計(jì)數(shù)器T1,并停止定時(shí)器T0的定時(shí);T1中斷優(yōu)先級(jí)設(shè)為高于定時(shí)器T0。計(jì)數(shù)初值為FFFEH:即(TH1)=FFH,(TL0)=FEH。(2)編程 ORG 0000H SJMP MAIN ORG 000BH ;定時(shí)器T0中斷入口 AJMP TIMEO
ORG 00IBH ;定時(shí)器T1中斷入口 AJMPTIMEI
第四十五頁(yè),共六十四頁(yè),2022年,8月28日 ORG 0030HMAIN:MOVR0,#0 ;清除T0定時(shí)中斷次數(shù)計(jì)數(shù)器 MOV TMOD,#59H ;設(shè)T0為定時(shí)器方式1,門(mén)控位GATE=1,設(shè)T1為計(jì)數(shù)器方式1 MOV TH0,#3CH ;T0定時(shí)器初值 MOV TLO,#0B0H MOV TH1,#0FFH ;T1計(jì)數(shù)器初值 MOV TL1,#0FEH SETB TR0 ;啟動(dòng)T0定時(shí)器 SETB TR1 ;啟動(dòng)T1計(jì)數(shù)器 MOV IP,#08H ;T1中斷優(yōu)先級(jí)高于T0 第四十六頁(yè),共六十四頁(yè),2022年,8月28日
SETB ET1 ;允許T1中斷 SETB ET0 ;允許T0中斷 SETB EA ;CPU開(kāi)中斷 SETB 20H ;設(shè)20H為T(mén)1計(jì)數(shù)中斷標(biāo)志LOOP:SETBF0 ;設(shè)用戶(hù)標(biāo)志F0為T(mén)0定時(shí)中斷標(biāo)志
JBF0,$ ;T0定時(shí)未溢出,等待 JB20H,LOOP;判T1計(jì)數(shù)溢出,若未溢出則循環(huán),否則結(jié)束。 SJMP $ ORG 0100H TIMEO:MOVTL0,#0B0H;重置T0定時(shí)器初值 MOV TH0,#3CH
第四十七頁(yè),共六十四頁(yè),2022年,8月28日
INC R0 ;T0定時(shí)溢出計(jì)數(shù)器加1 CPLF0 ;清除T0定時(shí)中斷標(biāo)志 RETI ORG 0200HTIMEI:CLRF0 ;清除T0定時(shí)中斷標(biāo)志 CLR20H ;清除T1計(jì)數(shù)中斷標(biāo)志 CLRET0;禁止T0、T1中斷 CLRET1 CLREA ;關(guān)中斷
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度臨時(shí)保安服務(wù)合同-活動(dòng)期間安全保衛(wèi)
- 2025年度知識(shí)產(chǎn)權(quán)質(zhì)押合同終止及質(zhì)權(quán)實(shí)現(xiàn)協(xié)議
- 產(chǎn)品發(fā)布營(yíng)銷(xiāo)策略規(guī)劃
- 影視制作發(fā)行合作框架協(xié)議
- 智能能源管理系統(tǒng)建設(shè)投資協(xié)議
- 家具企業(yè)家具設(shè)計(jì)與制造預(yù)案
- 哈他瑜伽介紹課件:哈他瑜伽-身心平衡的藝術(shù)
- 小學(xué)生心理輔導(dǎo)觀后感
- 網(wǎng)絡(luò)購(gòu)物平臺(tái)合作運(yùn)營(yíng)協(xié)議書(shū)
- 娛樂(lè)項(xiàng)目節(jié)目制作授權(quán)協(xié)議
- 第1章 跨境電商概述
- 2024-2030年中國(guó)長(zhǎng)管拖車(chē)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 《高等教育學(xué)》近年考試真題題庫(kù)(含答案)
- 2024福建省廈門(mén)市總工會(huì)擬錄用人員筆試歷年典型考題及考點(diǎn)剖析附答案帶詳解
- 2024風(fēng)力發(fā)電機(jī)組預(yù)應(yīng)力基礎(chǔ)錨栓籠組合件技術(shù)規(guī)范
- 供熱管道施工組織設(shè)計(jì)
- 浙江省中小學(xué)心理健康教育教師上崗資格證書(shū)管理辦法(修訂)
- 2024年青島港灣職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)審定版
- 2024年時(shí)事政治題(考點(diǎn)梳理)
- 2023全國(guó)乙卷語(yǔ)文真題試卷及答案解析
- JavaWeb程序設(shè)計(jì) 教案 第1章 JavaWeb開(kāi)發(fā)環(huán)境配置-2學(xué)時(shí)
評(píng)論
0/150
提交評(píng)論