單片機(jī)原理與接口技術(shù)6課件_第1頁
單片機(jī)原理與接口技術(shù)6課件_第2頁
單片機(jī)原理與接口技術(shù)6課件_第3頁
單片機(jī)原理與接口技術(shù)6課件_第4頁
單片機(jī)原理與接口技術(shù)6課件_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第六章定時(shí)器及應(yīng)用§6.1定時(shí)器概述§6.2定時(shí)器的控制§6.3定時(shí)器的四種模式及應(yīng)用單片機(jī)原理與接口技術(shù)6§6.1定時(shí)器概述§6.1.189C51定時(shí)器結(jié)構(gòu)§6.1.289C51定時(shí)器功能單片機(jī)原理與接口技術(shù)6§6.1.189C51定時(shí)器結(jié)構(gòu)有兩個16位的定時(shí)器/計(jì)數(shù)器:

定時(shí)器0(T0)

定時(shí)器1(T1)。都是16位加1計(jì)數(shù)器。T0由兩個8位特殊功能寄存器TH0和TL0構(gòu)成;T1由TH1和TL1構(gòu)成。如圖單片機(jī)原理與接口技術(shù)6§6.1.189C51定時(shí)器結(jié)構(gòu)單片機(jī)原理與接口技術(shù)6§6.1.289C51定時(shí)器功能每個定時(shí)器都可由軟件設(shè)置為定時(shí)工作方式或計(jì)數(shù)工作方式。定時(shí)器工作不占用CPU時(shí)間,除非定時(shí)器/計(jì)數(shù)器溢出,才能中斷CPU的當(dāng)前操作。每個定時(shí)器/計(jì)數(shù)器有四種工作模式。

模式0-3單片機(jī)原理與接口技術(shù)6定時(shí)工作方式簡介:定時(shí)脈沖為單片機(jī)片內(nèi)振蕩器輸出經(jīng)12

分頻后的脈沖,即每個機(jī)器周期使定時(shí)器(T0或T1)的

數(shù)值加1直至計(jì)滿溢出。當(dāng)采用12MHz晶振時(shí),一個機(jī)器周期為1μs,計(jì)數(shù)頻率為1MHz。單片機(jī)原理與接口技術(shù)6計(jì)數(shù)工作方式簡介:通過引腳P3.4(T0)和P3.5(T1)對外部脈沖信號計(jì)數(shù)。當(dāng)輸入脈沖信號產(chǎn)生由1至0的下降沿時(shí)定時(shí)器的值加1。CPU檢測一個1至0的跳變需要兩個機(jī)器周期,故最高計(jì)數(shù)頻率為振蕩頻率的1/24。為了確保某個電平在變化之前被采樣一次,要求電平保持時(shí)間至少是一個完整的機(jī)器周期。圖單片機(jī)原理與接口技術(shù)6§6.2定時(shí)器的控制

§6.2.1工作模式寄存器TMOD§6.2.2控制器寄存器TCON單片機(jī)原理與接口技術(shù)6§6.2.1工作模式寄存器TMODTMOD用于控制T0和T1的工作模式。TMOD不能位尋址,只能用字節(jié)設(shè)置定時(shí)器的工作模式,低半字節(jié)設(shè)置T0,高半字節(jié)設(shè)置T1。系統(tǒng)復(fù)位時(shí),TMOD的所有位被清0。TMOD各位的定義格式如圖所示:單片機(jī)原理與接口技術(shù)6GATEC/TM1M0GATEM1C/TM0定時(shí)器T1定時(shí)器T0TMOD(89H)D7D6D5D4D3D2D1D0圖工作模式寄存器TMOD的位定義單片機(jī)原理與接口技術(shù)6TMOD各位的功能①

M1和M0—操作模式控制位。兩位可形成四種編碼,對應(yīng)于四種模式。見表6-1。單片機(jī)原理與接口技術(shù)6表6-1M1,M0控制的四種工作模式單片機(jī)原理與接口技術(shù)6②C/T—計(jì)數(shù)器/定時(shí)器方式選擇位。

C/T=0,設(shè)置為定時(shí)方式。定時(shí)器計(jì)數(shù)8051片內(nèi)脈沖,即對機(jī)器周期計(jì)數(shù)。

C/T=1,設(shè)置為計(jì)數(shù)方式。計(jì)數(shù)器的輸入來自T0(P3.4)或T1(P3.5)端的外部脈沖。TMOD各位的功能單片機(jī)原理與接口技術(shù)6

③GATE—門控位。

GATE=0,只要用軟件使TR0(或TR1)置1就可以啟動定時(shí)器,而不管INT0(或INT1)的電平是高還是低。

GATE=1,只有INT0(或INT1)引腳為高電平且由軟件使TR0(或TR1)置1時(shí),才能啟動定時(shí)器工作。TMOD各位的功能單片機(jī)原理與接口技術(shù)6§6.2.2控制器寄存器TCONTCON可位尋址。系統(tǒng)復(fù)位時(shí),TCON的所有位被清0。

TCON各位的定義格式如圖所示。單片機(jī)原理與接口技術(shù)6TF1TR1TF0TR0IE1IE0IT1IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H圖控制寄存器TCON的位定義單片機(jī)原理與接口技術(shù)6TCON各位的功能①TF1(TCON.7)—T1溢出標(biāo)志位。當(dāng)T1溢出時(shí),由硬件自動使中斷觸發(fā)器TF1置1,并CPU申請中斷。當(dāng)CPU響應(yīng)中斷進(jìn)入中斷服務(wù)程序后,TF1由被硬件自動清0。TF1也可以用軟件清0。②TF0(TCON.5)—T0溢出標(biāo)志位。其功能和操作情況同TF1。單片機(jī)原理與接口技術(shù)6③TR1(TCON.6)—T1運(yùn)行控制位??赏ㄟ^軟件置1(TR1=1)或清0(TR1=0)來啟動或關(guān)閉T1。在程序中用指令“SETBTR1”使TR1位置1,定時(shí)器T1便開始計(jì)數(shù)。④TR0(TCON.4)—T0運(yùn)行控制位。其功能和操作情況同TR1。TCON各位的功能單片機(jī)原理與接口技術(shù)6⑤IE1,IT1,IE0,IT0(TCON.3~TCON.0)—外部中斷INT1,INT0請求及請求方式控制位。前一章已經(jīng)講過。TCON各位的功能單片機(jī)原理與接口技術(shù)6§6.3定時(shí)器的四種模式及應(yīng)用

§6.3.1模式0及其應(yīng)用§6.3.2模式1及其應(yīng)用§6.3.3模式2及其應(yīng)用§6.3.4模式3及其應(yīng)用§6.3.5綜合應(yīng)用舉例單片機(jī)原理與接口技術(shù)6§6.3.1模式0及其應(yīng)用一、模式0工作特點(diǎn)二、模式0的邏輯電路結(jié)構(gòu)三、模式0的應(yīng)用舉例單片機(jī)原理與接口技術(shù)6一、模式0工作特點(diǎn)T0、T1為13位計(jì)數(shù)器。TH0的8位和TL0的低5位TH1的8位和TL1的低5位以下以T0說明:TH0TL0D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0D12D11D10D9D8D7D6D5///D4D3D2D1D0單片機(jī)原理與接口技術(shù)6TH0溢出時(shí),向中斷標(biāo)志TF0進(jìn)位(硬件置位TF0),并申請中斷。T0是否溢出可查詢TF0是否被置位,以產(chǎn)生T0中斷。定時(shí)時(shí)間為:

t=(213-T0初值)×振蕩周期×12單片機(jī)原理與接口技術(shù)6二、模式0的邏輯電路結(jié)構(gòu)如圖單片機(jī)原理與接口技術(shù)6二、模式0的邏輯電路結(jié)構(gòu)單片機(jī)原理與接口技術(shù)6二、模式0的邏輯電路結(jié)構(gòu)C/T=0時(shí):控制開關(guān)接通振蕩器12分頻輸出端,T0對機(jī)器周期計(jì)數(shù)。這是定時(shí)工作方式。其定時(shí)時(shí)間為:t=(213-T0初值)×振蕩周期×12

C/T=l時(shí):控制開關(guān)使引腳T0(P3.4)與13位計(jì)數(shù)器相連,外部計(jì)數(shù)脈沖由引腳T0(P3.4)輸入,當(dāng)外部信號電平發(fā)生由1到0跳變時(shí),計(jì)數(shù)器加1。這時(shí),T0成為外部事件計(jì)數(shù)器。這就是計(jì)數(shù)工作方式。單片機(jī)原理與接口技術(shù)6二、模式0的邏輯電路結(jié)構(gòu)GATE=O時(shí),或門輸出A點(diǎn)電位保持為1,“或”門被封鎖。于是,引腳INTO輸入信號無效。這時(shí),“或”門輸出的l打開“與”門。B點(diǎn)電位取決于TRO的狀態(tài),于是,由TRO一位就可控制計(jì)數(shù)開關(guān)K,開啟或關(guān)斷TO。若軟件使TRO置1便接通計(jì)數(shù)開關(guān)K,啟動TO在原上加1計(jì)數(shù),直至溢出。溢出時(shí),13位寄存器清O,TF0置位,并申請中斷,TO從0重新開始計(jì)數(shù)。若TRO=0,則關(guān)斷計(jì)數(shù)開關(guān)K,停止計(jì)數(shù)。單片機(jī)原理與接口技術(shù)6二、模式0的邏輯電路結(jié)構(gòu)GATE=l時(shí)A點(diǎn)電位取決于INT0(P3.2)引腳的輸入電平。僅當(dāng)INT0輸入高電平,且TR0=1時(shí),B點(diǎn)才是高電平,計(jì)數(shù)開關(guān)K閉合,T0開始計(jì)數(shù)。當(dāng)INT0由1變0時(shí),T0停止計(jì)數(shù)。這一特性可以用來測量在INT0端出現(xiàn)的正脈沖的寬度。單片機(jī)原理與接口技術(shù)6三、模式0的應(yīng)用舉例例6-1:設(shè)定時(shí)器T0選擇工作模式0,定時(shí)時(shí)間為1ms,fosc=6MHz。試確定T0初值,計(jì)算最大定時(shí)時(shí)間T。單片機(jī)原理與接口技術(shù)6解:模式0,13位計(jì)數(shù)器。(1)試確定T0初值X

(213-X)×1/6×10-6×12=1×10-3sX=7692D=1111000001100B=1E0CHT0的低5位:01100B=0CH即(TL0)=0CHT0的高8位:11110000B=F0H即(TH0)=F0H(2)計(jì)算最大定時(shí)時(shí)間TT0的最大定時(shí)時(shí)間對應(yīng)于13位計(jì)數(shù)器T0的各位全為1,即(TL0)=1FH,(TH0)=FFH.

T=(213-0)×1/6×10-6×12=16.384ms單片機(jī)原理與接口技術(shù)6例6-2:上例中,定時(shí)時(shí)間1ms,編程。在P1.0的引腳上產(chǎn)生輸出周期為2ms的方波。設(shè)T0工作在模式0,定時(shí)時(shí)間為1ms,定時(shí)時(shí)間到,P1.0取反。

單片機(jī)原理與接口技術(shù)6解:(1)計(jì)算T0初值X

計(jì)算步驟見例6-1。

結(jié)果:(TH0)=0F0H,(TL0)=0CH。單片機(jī)原理與接口技術(shù)6例6-2(2)程序清單:

初始化引導(dǎo)程序ORG0000HRESET:AJMPMAIN;跳過中斷服務(wù)程序區(qū)ORG000BH;中斷服務(wù)程序入口AJMPITOP單片機(jī)原理與接口技術(shù)6例6-2主程序:

ORG0100HMAIN:MOVSP,#60H;設(shè)堆棧指針ACALLPTOMDHERE:AJMPHERE;等待PTOMD:MOVTMOD,#00H;選擇工作模式MOVTL0,#0CH;送初值MOVTH0,#0F0HSETBTR0;啟動定時(shí)SETBET0;T0開中斷SETBEA;CPU開中斷RET單片機(jī)原理與接口技術(shù)6例6-2中斷服務(wù)程序ORG0120HITOP:MOVTL0,#0CH;重新裝如初值MOVTH0,#0F0HCPLP1.0;P1.0取反RETI單片機(jī)原理與接口技術(shù)6例6-3利用T0的工作模式0產(chǎn)生1ms定時(shí),在P1.0引腳輸出周期為2ms的方波。設(shè)單片機(jī)晶振頻率fosc=12MHz。編程實(shí)現(xiàn)其功能。單片機(jī)原理與接口技術(shù)6例6-3解:

要在P1.0引腳輸出周期為2ms的方波,只要使P1.0每隔1ms取反一次即可。

(1)選擇工作模式

T0的模式字為TMOD=00H,即M1M0=00,C/T=0,GATE=0,其余位為0。單片機(jī)原理與接口技術(shù)6(2)計(jì)算1ms定時(shí)時(shí)T0的初值(213-X)×1/12×10-6×12=1×10-3sX=7193D=1110000011000BT0的低5位:11000B=18H即(TL0)=18HT0的高8位:11100000B=E0H即(TH0)=E0H例6-3單片機(jī)原理與接口技術(shù)6例6-3(3)采用查詢方式的程序清單MOVTMOD,#00H;設(shè)置T0為模式0MOVTL0,#18H;送初值MOVTH0,#0E0HSETBTR0;啟動定時(shí)LOOP:JBCTF0,NEXT;查詢定時(shí)時(shí)間到否SJMPLOOPNEXT:MOVTL0,#18H;重裝計(jì)數(shù)初值MOVTH0,#0E0HCPLP1.0;取反SJMPLOOP;重復(fù)循環(huán)單片機(jī)原理與接口技術(shù)6例6-3(4)采用定時(shí)器溢出中斷方式的程序主程序

ORG0000HRESET:AJMPMAIN;跳過中斷服務(wù)程序區(qū)

ORG0030HMAIN:MOVTMOD,#00H;設(shè)置T0為模式0MOVTL0,#18H;送初值MOVTH0,#0E0HSETBEA;CPU開中斷SETBET0;T0中斷允許SETBTR0;啟動定時(shí)HERE:SJMPHERE;等待中斷,虛擬主程序單片機(jī)原理與接口技術(shù)6例6-3中斷服務(wù)程序ORG000BHAJMPCTC0ORG0120HCTC0:MOVTL0,#18H;重新裝如初值MOVTH0,#0E0HCPLP1.0;P1.0取反RETI單片機(jī)原理與接口技術(shù)6§6.3.2模式1及其應(yīng)用一、模式1工作特點(diǎn)二、模式1的邏輯電路結(jié)構(gòu)三、模式1的應(yīng)用舉例單片機(jī)原理與接口技術(shù)6一、模式1工作特點(diǎn)該模式對應(yīng)的是一個16位的定時(shí)器/計(jì)數(shù)器。用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為:

t=(216-初值)×振蕩周期×12用于計(jì)數(shù)工作方式時(shí),計(jì)數(shù)長度最大為:216=65536(個外部脈沖)單片機(jī)原理與接口技術(shù)6二、模式1的邏輯電路結(jié)構(gòu)

圖6-8單片機(jī)原理與接口技術(shù)6二、模式1的邏輯電路結(jié)構(gòu)單片機(jī)原理與接口技術(shù)6三、模式1的應(yīng)用舉例例6-4:

用定時(shí)器T1產(chǎn)生一個50Hz的方波,由P1.1輸出,使用程序查詢方式,fosc=12MHz。單片機(jī)原理與接口技術(shù)6(例6-4)解:∵方波周期T=1/50=0.02s=20ms

∴用T1定時(shí)10ms

計(jì)數(shù)初值X為:

10×1000us=(216-X)×(1/12)×12us

X=216-12×10×1000/12=65536-10000=55536=D8F0H單片機(jī)原理與接口技術(shù)6(例6-4)源程序清單:

MOVTMOD,#10H;設(shè)置T1為模式1SETBTR1;啟動定時(shí)LOOP:MOVTL1,#0D8H;送初值MOVTH1,#0F0H

JNBTF1,$

;查詢定時(shí)時(shí)間到否

CLRTF1;產(chǎn)生溢出,清標(biāo)志位CPLP1.1;取反SJMPLOOP;重復(fù)循環(huán)單片機(jī)原理與接口技術(shù)6§6.3.3模式2及其應(yīng)用一、模式2工作特點(diǎn)二、模式2的邏輯電路結(jié)構(gòu)三、模式2的應(yīng)用舉例單片機(jī)原理與接口技術(shù)6一、模式2工作特點(diǎn)把TL0(TL1)配置成一個可以自動重裝載的8位定時(shí)器/計(jì)數(shù)器.在程序初始化時(shí),TL0和TH0由軟件賦予相同的初值。用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為:

t=(28-TH0初值)×振蕩周期×12

用于計(jì)數(shù)工作方式時(shí),計(jì)數(shù)長度最大為:

28=256(個外部脈沖)單片機(jī)原理與接口技術(shù)6一、模式2工作特點(diǎn)該模式可省去軟件中重裝常數(shù)的語句,并可產(chǎn)生相當(dāng)精確的定時(shí)時(shí)間,適合于作串行口波特率發(fā)生器。TL0計(jì)數(shù)溢出時(shí),不僅使溢出中斷標(biāo)志位TF0置1,而且還自動把TH0中的內(nèi)容重新裝載到TL0中。TL0用作8位計(jì)數(shù)器,TH0用以保存初值。單片機(jī)原理與接口技術(shù)6二、模式2的邏輯電路結(jié)構(gòu)如圖單片機(jī)原理與接口技術(shù)6三、模式2的應(yīng)用舉例例6-5:

當(dāng)P3.4引腳上的電平發(fā)生負(fù)跳變時(shí),從P1.0輸出一個500μs的同步脈沖。請編程序?qū)崿F(xiàn)該功能。查詢方式,fosc=6MHz。單片機(jī)原理與接口技術(shù)6(例6-5)解:(1)模式選擇

選T0為模式2,外部事件計(jì)數(shù)方式。當(dāng)P3.4引腳上的電平發(fā)生負(fù)跳變時(shí),T0計(jì)數(shù)器加1,溢出標(biāo)志TF0置1;然后改變T0為500μs定時(shí)工作方式,并使P1.0輸出由1變?yōu)?。T0定時(shí)到產(chǎn)生溢出,使P1.0輸出恢復(fù)高電平,T0又恢復(fù)外部事件計(jì)數(shù)方式。

如圖所示。單片機(jī)原理與接口技術(shù)6(例6-5)(2)計(jì)算初值

T0工作在外部事件計(jì)數(shù)方式,當(dāng)計(jì)數(shù)到28時(shí),計(jì)數(shù)器就會溢出。設(shè)計(jì)數(shù)初值為X,當(dāng)再出現(xiàn)一次外部事件時(shí),計(jì)數(shù)器溢出。則:X+1=28

X=28

-1=11111111B=0FFH

T0工作在定時(shí)工作方式,晶振頻率為6MHz,500μs相當(dāng)于250個機(jī)器周期。因此,初值X為(28-X)×2μs=500μs

X=6=06H單片機(jī)原理與接口技術(shù)6(例6-5)(3)程序清單START:MOVTMOD,#06H;置T0為模式2,計(jì)數(shù)方式MOVTL0,#0FFH;T0計(jì)數(shù)器初值MOVTH0,#0FFHSETBTR0;啟動T0計(jì)數(shù)LOOP1:JBCTF0,PTFO1

;查詢T0溢出標(biāo)志,;TF0=1時(shí)轉(zhuǎn),且清TF0=0SJMPLOOP1;PTFO1:

CLRTR0;停止計(jì)數(shù)

MOVTMOD,#02H;置T0為模式2,定時(shí)方式MOVTL0,#06H;送初值,定時(shí)500μsMOVTH0,#06H單片機(jī)原理與接口技術(shù)6(例6-5)

CLRP1.0;P1.0清0SETBTR0;啟動定時(shí)500μsLOOP2:JBCTF0,PTFO2

;查詢T0溢出標(biāo)志,;TF0=1時(shí)轉(zhuǎn),且清TF0=0;(第一個500μs到否?)

SJMPLOOP2

PTFO2:

SETBP1.0;P1.0置1CLRTR0;停止計(jì)數(shù)

SJMPSTART單片機(jī)原理與接口技術(shù)6例6-6:

利用定時(shí)器T1的模式2對外部信號計(jì)數(shù)。要求每計(jì)滿100次,將P1.0端取反。單片機(jī)原理與接口技術(shù)6(例6-6)解:(1)選擇模式外部信號由T1(P3.5)引腳輸入,每發(fā)生一次負(fù)跳變計(jì)數(shù)器加1,每輸入100個脈沖,計(jì)數(shù)器發(fā)生溢出中斷,中斷服務(wù)程序?qū)1.0取反一次。

T1計(jì)數(shù)工作方式模式2的模式字為(TMOD)=60H。

T0不用時(shí),TMOD的低4位可任取,但不能進(jìn)入模式3,一般取0。單片機(jī)原理與接口技術(shù)6(例6-6)(2)計(jì)算T1的計(jì)數(shù)初值

X=28

-100=156=9CH

因此:TL1的初值為9CH,重裝初值寄存器TH1=9CH。單片機(jī)原理與接口技術(shù)6(例6-6)(3)程序清單

MAIN:MOVTMOD,#60H;置T1為模式2,計(jì)數(shù)方式MOVTL1,#9CH;T1計(jì)數(shù)器初值MOVTH1,#9CHMOVIE,#88H;定時(shí)器開中斷

SETBTR1;啟動T1計(jì)數(shù)

HERE:SJMPHERE;等待中斷

ORG001BH;中斷服務(wù)程序入口

CPLP1.0RETI單片機(jī)原理與接口技術(shù)6§6.3.4模式3及其應(yīng)用一、模式3的特點(diǎn)及邏輯電路結(jié)構(gòu)二、模式3應(yīng)用舉例單片機(jī)原理與接口技術(shù)6一、模式3的特點(diǎn)及邏輯電路結(jié)構(gòu)工作模式3對T0和T1大不相同。T0設(shè)置為模式3,TL0和TH0被分成兩個相互獨(dú)立的8位計(jì)數(shù)器。T1無工作模式3狀態(tài)。在T0用作模式3時(shí),T1仍可設(shè)置為模式0~2。單片機(jī)原理與接口技術(shù)6一、模式3的特點(diǎn)及邏輯電路結(jié)構(gòu)T0模式3的邏輯電路結(jié)構(gòu)如圖所示。單片機(jī)原理與接口技術(shù)6一、模式3的特點(diǎn)及邏輯電路結(jié)構(gòu)TL0用原T0的各控制位、引腳和中斷源,即C/T,GATE,TR0,TF0,T0(P3.4)引腳,INT0(P3.2)引腳。TL0可工作在定時(shí)器方式和計(jì)數(shù)器方式。其功能和操作與模式0、模式1相同(只是8位)。TH0只可用作簡單的內(nèi)部定時(shí)功能。TH0占用了定時(shí)器T1的控制位TR1和T1的中斷標(biāo)志TF1,其啟動和關(guān)閉僅受TR1的控制。單片機(jī)原理與接口技術(shù)6T0模式3下T1的邏輯電路結(jié)構(gòu)定時(shí)器T1無工作模式3狀態(tài)。在T0用作模式3時(shí),T1仍可設(shè)置為模式0~2。T0模式3下T1的邏輯電路結(jié)構(gòu)如圖所示由于TR1和TF1被定時(shí)器T0占用,計(jì)數(shù)器開關(guān)K已被接通,此時(shí),僅用T1控制位,C/T切換其定時(shí)或計(jì)數(shù)器工作方式就可使T1運(yùn)行。當(dāng)計(jì)數(shù)器溢出時(shí),只能將輸出送入串行口或用于不需要中斷的場合。一般作波特率發(fā)生器單片機(jī)原理與接口技術(shù)6二、模式3的應(yīng)用舉例例6-7:

設(shè)某用戶系統(tǒng)已使用了兩個外部中斷源,并置定時(shí)器T1工作在模式2,作串行口波特率發(fā)生器用?,F(xiàn)要求再增加一個外部中斷源,并由P1.0引腳輸出一個5kHz的方波。Fosc=12MHz.單片機(jī)原理與接口技術(shù)6(例6-7)解:(1)工作模式

可設(shè)置T0工作在模式3計(jì)數(shù)器方式,把T0的引腳作附加的外部中斷輸入端,TL0的計(jì)數(shù)初值為FFH,當(dāng)檢測到T0引腳電平出現(xiàn)由1至0的負(fù)跳變時(shí),TL0產(chǎn)生溢出,申請中斷。

T0模式3下,TL0作計(jì)數(shù)用,而TH0用作8位的定時(shí)器,定時(shí)控制P1.0引腳輸出5kHz的方波信號。單片機(jī)原理與接口技術(shù)6(例6-7)(2)計(jì)算初值TL0的計(jì)數(shù)初值為FFH。TH0的計(jì)數(shù)初值X為:

P1.0方波周期T=1/(5kHz)=0.2ms=200μs

用TH0作定時(shí)100μs時(shí),

X=256-100×12/12=156單片機(jī)原理與接口技術(shù)6(例6-7)(3)程序清單

MOVTMOD,#27H;T0為模式3,計(jì)數(shù)方式

;T1為模式2,定時(shí)方式

MOVTL0,#0FFH;TL0計(jì)數(shù)初值MOVTH0,#156;TH0計(jì)數(shù)初值

MOVTL1,#data;data是根據(jù)波特率;要求設(shè)置的常數(shù)(初值)MOVTH1,#dataMOVTCON,#55H;外中斷0、1邊沿觸發(fā),;啟動T0,T1MOVIE,#9FH;開放全部中斷…單片機(jī)原理與接口技術(shù)6(例6-7)TL0溢出中斷服務(wù)程序(由000BH轉(zhuǎn)來)TL0INT:MOVTL0,#0FFH;TL0重賦初值(中斷處理)

RETITH0溢出TH0溢出中斷服務(wù)程序(由001BH轉(zhuǎn)來)TH0INT:MOVTH0,#156;TH0重賦初值

CPLP1.0;P1.0取反輸出

RETI串行口及外部中斷0,外部中斷1的服務(wù)程序略。單片機(jī)原理與接口技術(shù)6§6.3.5綜合應(yīng)用舉例例6-8:

設(shè)時(shí)鐘頻率為6MHz。編寫利用T0產(chǎn)生1s定時(shí)的程序。單片機(jī)原理與接口技術(shù)6(例6-8)解:(1)定時(shí)器T0工作模式的確定∵模式0最長可定時(shí)16.384ms;

模式1最長可定時(shí)131.072ms;

模式2最長可定時(shí)512μs;∴定時(shí)1s,可選用模式1,每隔100ms中斷一次,中斷10次為1s。單片機(jī)原理與接口技術(shù)6(例6-8)(2)求計(jì)數(shù)器初值X∵(216-X)×12/(6×106)=100×10-3s∴X=15536=3CB0H

因此:(TL0)=0B0H(TH0)=3CH單片機(jī)原理與接口技術(shù)6(例6-8)(3)實(shí)現(xiàn)方法對于中斷10次計(jì)數(shù),可使T0工作在計(jì)數(shù)方式,也可用循環(huán)程序的方法實(shí)現(xiàn)。本例采用循環(huán)程序法。單片機(jī)原理與接口技術(shù)6(例6-8)(4)源程序清單

ORG0000HAJMPMAIN;上電,轉(zhuǎn)向主程序

ORG000BH

;T0中斷服務(wù)程序入口地址AJMPSERVE

;轉(zhuǎn)向中斷服務(wù)程序

ORG0030H

;主程序單片機(jī)原理與接口技術(shù)6(例6-8)MAIN:MOVSP,#60H;設(shè)堆棧指針

MOVB,#0AH;設(shè)循環(huán)次數(shù)

MOVTMOD,#01H;T0工作于模式1

MOVTL0,#0B0H;裝計(jì)數(shù)值低8位MOVTH0,#3CH

;裝計(jì)數(shù)值高8位

SETBTR0;啟動定時(shí)SETBET0;T0開中斷SETBEA;CPU開中斷SJMP$;等待中斷單片機(jī)原理與接口技術(shù)6(例6-8)SERVE:MOVTL0,#0B0H;重新賦初值MOVTH0,#3CH

DJNZB,LOOP;B-1不為0,繼續(xù)定時(shí)

CLRTR0;1s定時(shí)到,停止T0工作LOOP:RETI

;中斷返回

END單片機(jī)原理與接口技術(shù)6§6.3.5綜合應(yīng)用舉例例6-9:

設(shè)計(jì)實(shí)時(shí)時(shí)鐘程序。

時(shí)鐘就是以秒、分、時(shí)為單位進(jìn)行計(jì)時(shí)。用定時(shí)器與中斷的聯(lián)合應(yīng)用。單片機(jī)原理與接口技術(shù)6(例6-9)解:(1)實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)的基本方法

①計(jì)算計(jì)數(shù)初值。時(shí)鐘計(jì)時(shí)的最小單位是秒,但使用單片機(jī)定時(shí)器/計(jì)數(shù)器進(jìn)行定時(shí),即使按方式1工作,其最大定時(shí)時(shí)間也只能達(dá)131ms。因此,可把定時(shí)器的定時(shí)時(shí)間定為100ms,計(jì)數(shù)溢出10次即得到時(shí)鐘計(jì)時(shí)的最小單位—秒;而10次計(jì)數(shù)可用軟件方法實(shí)現(xiàn)。單片機(jī)原理與接口技術(shù)6(例6-9)假定使用定時(shí)器T0,以工作模式1進(jìn)行100ms的定時(shí)。如fosc=6MHz,則計(jì)數(shù)初值X為:∵(216-X)×12/(6×106)=100×10-3s∴X=15536=3CB0H因此:

(TL0)=0B0H(TH0)=3CH單片機(jī)原理與接口技術(shù)6(例6-9)②采用定時(shí)方式進(jìn)行溢出次數(shù)的累計(jì),計(jì)滿10次即得到秒計(jì)時(shí)。③從秒到分和從分到時(shí)的計(jì)時(shí)是通過累計(jì)和數(shù)值比較實(shí)現(xiàn)的。④時(shí)鐘顯示即及顯示緩沖區(qū)部分在這里略,可自行設(shè)計(jì)。單片機(jī)原理與接口技術(shù)6(例6-9)(2)程序流程及程序清單①主程序(MAIN)的主要功能

進(jìn)行定時(shí)器T1的初始化編程并啟動T1,然后通過反復(fù)調(diào)用顯示子程序,等待100ms定時(shí)中斷的到來。其流程如圖所示。單片機(jī)原理與接口技術(shù)6設(shè)T1為模式1設(shè)中斷次數(shù)清計(jì)時(shí)單元開中斷啟動T1調(diào)用顯示子程序等待定時(shí)中斷圖時(shí)鐘主程序流程單片機(jī)原理與接口技術(shù)6(例6-9)(2)程序流程及程序清單

②中斷服務(wù)程序(PITO)的主要功能

進(jìn)行計(jì)時(shí)操作。程序開始先判斷計(jì)數(shù)溢出時(shí)候滿了10次,不滿表明還沒達(dá)到最小計(jì)時(shí)單位—秒,中斷返回;如滿10次則表示已達(dá)到最小計(jì)時(shí)單位—秒,程序繼續(xù)向下運(yùn)行,進(jìn)行計(jì)時(shí)操作。要求滿1秒則“秒位”32H單元內(nèi)容加1,滿60s則“分位”31H單元內(nèi)容加1,滿60min則“時(shí)位”30H單元內(nèi)容加1,滿24h則30H,31H,32H單元內(nèi)容全部清0。中斷服務(wù)程序流程如圖所示。單片機(jī)原理與接口技術(shù)6保護(hù)現(xiàn)場賦計(jì)數(shù)初值到1s?(32H)加1(32H)=60?(32H)清0(31H)加1(31H)=60?(31H)清0(30H)加1(30H)=24?(30H)清0恢復(fù)現(xiàn)場返回入口aaNNNNYYYY

中斷服務(wù)程序流程圖單片機(jī)原理與接口技術(shù)6ORG0000HAJMPMAINORG001BH;T1的中斷入口地址AJMPSERVE;轉(zhuǎn)向中斷服務(wù)程序

ORG0030H;主程序MAIN:MOVSP,#60H;設(shè)堆棧指針MOVTMOD,#10H;T1工作于模式1MOV20H,#0AH;設(shè)循環(huán)次數(shù)(例6-9)③源程序如下:單片機(jī)原理與接口技術(shù)6

CLRA

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論