第6章定時(shí)器計(jì)數(shù)器_第1頁(yè)
第6章定時(shí)器計(jì)數(shù)器_第2頁(yè)
第6章定時(shí)器計(jì)數(shù)器_第3頁(yè)
第6章定時(shí)器計(jì)數(shù)器_第4頁(yè)
第6章定時(shí)器計(jì)數(shù)器_第5頁(yè)
已閱讀5頁(yè),還剩66頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第6章章 AT89S51單片機(jī)的單片機(jī)的 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 u定時(shí)器定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)u定時(shí)器定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)器的4種工作方式種工作方式u對(duì)外部輸入的計(jì)數(shù)信號(hào)的要求對(duì)外部輸入的計(jì)數(shù)信號(hào)的要求u定時(shí)器定時(shí)器/計(jì)數(shù)器的編程和應(yīng)用計(jì)數(shù)器的編程和應(yīng)用1. 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)u定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0由特殊功能寄存器由特殊功能寄存器TH0、TL0構(gòu)成,定時(shí)構(gòu)成,定時(shí)器器/計(jì)數(shù)器計(jì)數(shù)器T1由特殊功能寄存器由特殊功能寄存器TH1、TL1構(gòu)成。構(gòu)成。 AT89S51單片機(jī)的定時(shí)器單片機(jī)的定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)框圖計(jì)數(shù)器結(jié)構(gòu)框圖u具有定時(shí)器和計(jì)數(shù)器具有定時(shí)

2、器和計(jì)數(shù)器2種工作模式種工作模式,4種工作方式種工作方式(方式方式0、方、方式式1、方式、方式2和方式和方式3)。)。uTMOD用于選擇定時(shí)器用于選擇定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0、T1的工作模式和工作方的工作模式和工作方式。式。uTCON用于控制用于控制T0、T1的啟動(dòng)和停止計(jì)數(shù),包含了的啟動(dòng)和停止計(jì)數(shù),包含了T0、T1的的狀態(tài)。狀態(tài)。uT0、T1不論是工作在定時(shí)器模式還是計(jì)數(shù)器模式,都是對(duì)脈不論是工作在定時(shí)器模式還是計(jì)數(shù)器模式,都是對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù),只是計(jì)數(shù)信號(hào)的來(lái)源不同。沖信號(hào)進(jìn)行計(jì)數(shù),只是計(jì)數(shù)信號(hào)的來(lái)源不同。u計(jì)數(shù)器模式計(jì)數(shù)器模式是對(duì)加在是對(duì)加在T0(P3.4)和)和T1(P3.5)兩個(gè)引

3、腳上的)兩個(gè)引腳上的外部脈沖進(jìn)行計(jì)數(shù)。外部脈沖進(jìn)行計(jì)數(shù)。u定時(shí)器工作模式定時(shí)器工作模式是對(duì)單片機(jī)的時(shí)鐘振蕩器信號(hào)經(jīng)片內(nèi)是對(duì)單片機(jī)的時(shí)鐘振蕩器信號(hào)經(jīng)片內(nèi)12分頻分頻后的內(nèi)部脈沖信號(hào)計(jì)數(shù)。由于時(shí)鐘頻率是定值,所以可后的內(nèi)部脈沖信號(hào)計(jì)數(shù)。由于時(shí)鐘頻率是定值,所以可根據(jù)根據(jù)計(jì)數(shù)值計(jì)數(shù)值可可計(jì)算出定時(shí)時(shí)間計(jì)算出定時(shí)時(shí)間。u計(jì)數(shù)器的起始計(jì)數(shù)都是計(jì)數(shù)器的起始計(jì)數(shù)都是從計(jì)數(shù)器初值開始從計(jì)數(shù)器初值開始的。單片機(jī)復(fù)位時(shí)的。單片機(jī)復(fù)位時(shí)計(jì)數(shù)器的初值為計(jì)數(shù)器的初值為0,也可用指令給計(jì)數(shù)器裝入一個(gè)新的初值。,也可用指令給計(jì)數(shù)器裝入一個(gè)新的初值。AT89S51的定時(shí)器的定時(shí)器/計(jì)數(shù)器屬于增計(jì)數(shù)器屬于增1計(jì)數(shù)器。計(jì)數(shù)器。1

4、.1 工作方式控制寄存器工作方式控制寄存器TMODu用于選擇定時(shí)器用于選擇定時(shí)器/計(jì)數(shù)器的工作模式和工作方式,計(jì)數(shù)器的工作模式和工作方式,字節(jié)地址字節(jié)地址為為89H,不能位尋址。,不能位尋址。u8位分為兩組,位分為兩組,高高4位位控制控制T1,低低4位位控制控制T0。1)GATE門控位門控位。 0:僅由運(yùn)行控制位僅由運(yùn)行控制位TRx(x = 0,1)來(lái)控制定時(shí)器)來(lái)控制定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器運(yùn)行。運(yùn)行。 1:用外中斷引腳(用外中斷引腳( 或或 )上的電平與運(yùn)行控制位)上的電平與運(yùn)行控制位TRx共共同來(lái)控制定時(shí)器同來(lái)控制定時(shí)器/計(jì)數(shù)器運(yùn)行。計(jì)數(shù)器運(yùn)行。2)M1、M0工作方式選擇位工作方式選擇位M1

5、、M0共有共有4種編碼種編碼,對(duì)應(yīng)于,對(duì)應(yīng)于4種工作方式種工作方式的選擇的選擇3)C/ 計(jì)數(shù)器模式和定時(shí)器模式選擇位計(jì)數(shù)器模式和定時(shí)器模式選擇位0:為定時(shí)器工作模式,對(duì)單片機(jī)的晶體振蕩器為定時(shí)器工作模式,對(duì)單片機(jī)的晶體振蕩器12分頻后的脈沖分頻后的脈沖進(jìn)行計(jì)數(shù)。進(jìn)行計(jì)數(shù)。1:為計(jì)數(shù)器工作模式,計(jì)數(shù)器對(duì)外部輸入引腳為計(jì)數(shù)器工作模式,計(jì)數(shù)器對(duì)外部輸入引腳T0(P3.4)或)或T1(P3.5)的外部脈沖(負(fù)跳變)計(jì)數(shù)。)的外部脈沖(負(fù)跳變)計(jì)數(shù)。T1.2 定時(shí)器定時(shí)器/計(jì)數(shù)器控制寄存器計(jì)數(shù)器控制寄存器TCONu字節(jié)地址為字節(jié)地址為88H,可位尋址,位地址為,可位尋址,位地址為88H8FH。1)TF1

6、、TF0計(jì)數(shù)溢出標(biāo)志位。計(jì)數(shù)溢出標(biāo)志位。當(dāng)計(jì)數(shù)器計(jì)數(shù)溢出時(shí),該位置當(dāng)計(jì)數(shù)器計(jì)數(shù)溢出時(shí),該位置“1”。使用查詢方式時(shí),此位作為狀態(tài)位供使用查詢方式時(shí),此位作為狀態(tài)位供CPU查詢,但應(yīng)注意查詢,但應(yīng)注意查詢有效后,應(yīng)使用軟件及時(shí)將該位清查詢有效后,應(yīng)使用軟件及時(shí)將該位清“0”。使用中斷方式時(shí),此位作為中斷請(qǐng)求標(biāo)志位,進(jìn)入中斷服使用中斷方式時(shí),此位作為中斷請(qǐng)求標(biāo)志位,進(jìn)入中斷服務(wù)程序后由硬件自動(dòng)清務(wù)程序后由硬件自動(dòng)清“0”。2)TR1、TR0計(jì)數(shù)運(yùn)行控制位。計(jì)數(shù)運(yùn)行控制位。TR1位(或位(或TR0位)位)= 1,啟動(dòng)定時(shí)器,啟動(dòng)定時(shí)器/計(jì)數(shù)器工作的必要條件。計(jì)數(shù)器工作的必要條件。TR1位(或位(或T

7、R0位)位) = 0,停止定時(shí)器,停止定時(shí)器/計(jì)數(shù)器工作。計(jì)數(shù)器工作。該位可由軟件置該位可由軟件置“1”或清或清“0”。2.1 方式方式0uM1、M0=00時(shí),被設(shè)置為工作方式時(shí),被設(shè)置為工作方式0。u13位位計(jì)數(shù)器,由計(jì)數(shù)器,由TLx(x = 0,1)低低5位位和和THx高高8位位構(gòu)成。構(gòu)成。TLx低低5位溢出則向位溢出則向THx進(jìn)位,進(jìn)位,THx計(jì)數(shù)溢出則把計(jì)數(shù)溢出則把TCON中的溢出標(biāo)中的溢出標(biāo)志位志位TFx置置“1”。uC/ 位位控制的電子開關(guān)決定了定時(shí)器控制的電子開關(guān)決定了定時(shí)器/計(jì)數(shù)器的兩種工作模計(jì)數(shù)器的兩種工作模式。式。1)C/ =0,電子開關(guān)打在上面位置,電子開關(guān)打在上面位置,

8、T1(或(或T0)為定時(shí))為定時(shí)器工作模式,把時(shí)鐘振蕩器器工作模式,把時(shí)鐘振蕩器12分頻后的脈沖作為計(jì)數(shù)信號(hào)。分頻后的脈沖作為計(jì)數(shù)信號(hào)。2)C/ =1,電子開關(guān)打在下面位置,電子開關(guān)打在下面位置,T1(或(或T0)為計(jì)數(shù))為計(jì)數(shù)器工作模式,計(jì)數(shù)脈沖為器工作模式,計(jì)數(shù)脈沖為P3.4(或(或P3.5)引腳上的外部輸入)引腳上的外部輸入脈沖,當(dāng)引腳上發(fā)生負(fù)跳變時(shí),計(jì)數(shù)器加脈沖,當(dāng)引腳上發(fā)生負(fù)跳變時(shí),計(jì)數(shù)器加1。TTTuGATE位狀態(tài)位狀態(tài)決定定時(shí)器決定定時(shí)器/計(jì)數(shù)器的運(yùn)行控制取決計(jì)數(shù)器的運(yùn)行控制取決TRx一個(gè)一個(gè)條件條件還是還是TRx和和 x(x = 0,1)引腳狀態(tài))引腳狀態(tài)兩個(gè)條件兩個(gè)條件。1)

9、 GATE = 0,A點(diǎn)電位恒為點(diǎn)電位恒為1,B點(diǎn)電位點(diǎn)電位僅取決于僅取決于TRx狀狀態(tài)態(tài)。TRx = 1,B點(diǎn)為高電平,控制端控制電子開關(guān)閉合,允點(diǎn)為高電平,控制端控制電子開關(guān)閉合,允許許T1(或(或T0)對(duì)脈沖計(jì)數(shù)。)對(duì)脈沖計(jì)數(shù)。TRx = 0,B點(diǎn)為低電平,電子開點(diǎn)為低電平,電子開關(guān)斷開,禁止關(guān)斷開,禁止T1(或(或T0)計(jì)數(shù)。)計(jì)數(shù)。2) GATE = 1,B點(diǎn)電位由點(diǎn)電位由 (x = 0,1)的輸入電平和)的輸入電平和TRx的狀態(tài)這兩個(gè)條件來(lái)確定。當(dāng)?shù)臓顟B(tài)這兩個(gè)條件來(lái)確定。當(dāng)TRx = 1,且,且 =1時(shí),時(shí),B點(diǎn)才為點(diǎn)才為1,控制端控制電子開關(guān)閉合,允許,控制端控制電子開關(guān)閉合,允

10、許T1(或(或T0)計(jì)數(shù)。)計(jì)數(shù)。故這種情況下計(jì)數(shù)器是否計(jì)數(shù)是由故這種情況下計(jì)數(shù)器是否計(jì)數(shù)是由TRx和和 兩個(gè)條件兩個(gè)條件來(lái)共來(lái)共同控制的。同控制的。INTINTxINTxINTx2.2 方式方式1u當(dāng)當(dāng)M1、M0=01時(shí),定時(shí)器時(shí),定時(shí)器/計(jì)數(shù)器工作于計(jì)數(shù)器工作于方式方式1。u方式方式1為為16位計(jì)數(shù)器位計(jì)數(shù)器,由,由THx高高8位和位和TLx低低8位構(gòu)成(位構(gòu)成(x = 0,1),),有關(guān)控制狀態(tài)位的含義(有關(guān)控制狀態(tài)位的含義(GATE、C/ 、TFx、TRx)與方式)與方式0相相同。同。T2.3 方式方式2u方式方式0和方式和方式1的最大特點(diǎn)是計(jì)數(shù)溢出后,計(jì)數(shù)器為全的最大特點(diǎn)是計(jì)數(shù)溢出后

11、,計(jì)數(shù)器為全0。因此。因此在循環(huán)定時(shí)或循環(huán)計(jì)數(shù)應(yīng)用時(shí)就在循環(huán)定時(shí)或循環(huán)計(jì)數(shù)應(yīng)用時(shí)就存在用指令反復(fù)裝入計(jì)數(shù)初存在用指令反復(fù)裝入計(jì)數(shù)初值的值的問(wèn)題問(wèn)題。這不僅影響定時(shí)精度,也給程序設(shè)計(jì)帶來(lái)麻煩。這不僅影響定時(shí)精度,也給程序設(shè)計(jì)帶來(lái)麻煩。u方式方式2就是針對(duì)此問(wèn)題而設(shè)置的。就是針對(duì)此問(wèn)題而設(shè)置的。u當(dāng)當(dāng)M1、M0為為10時(shí),定時(shí)器時(shí),定時(shí)器/計(jì)數(shù)器處于工作方式計(jì)數(shù)器處于工作方式2。u定時(shí)器定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)器的方式方式2為自動(dòng)恢復(fù)初值為自動(dòng)恢復(fù)初值(初值自動(dòng)裝入)的(初值自動(dòng)裝入)的8位位定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器。uTLx(x = 0,1)作為常數(shù)緩沖器,當(dāng))作為常數(shù)緩沖器,當(dāng)TLx計(jì)數(shù)溢出時(shí),

12、在溢出計(jì)數(shù)溢出時(shí),在溢出標(biāo)志標(biāo)志TFx置置“1”的同時(shí),還的同時(shí),還自動(dòng)將自動(dòng)將THx中的初值送至中的初值送至TLx,使使TLx從初值開始重新計(jì)數(shù)。從初值開始重新計(jì)數(shù)。方式方式2工作過(guò)程工作過(guò)程u該方式可省去用戶軟件中重裝初值的該方式可省去用戶軟件中重裝初值的指令執(zhí)行時(shí)間,簡(jiǎn)化定時(shí)初值的計(jì)算方指令執(zhí)行時(shí)間,簡(jiǎn)化定時(shí)初值的計(jì)算方法,可以法,可以相當(dāng)精確地確定相當(dāng)精確地確定定時(shí)時(shí)間定時(shí)時(shí)間。2.4 方式方式3為為增加一個(gè)增加一個(gè)8位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器而設(shè),使而設(shè),使AT89S51單片機(jī)具有單片機(jī)具有3個(gè)個(gè)定時(shí)器定時(shí)器/計(jì)數(shù)器。計(jì)數(shù)器。方式方式3只適用于只適用于T0,T1不能工作在方式不能

13、工作在方式3。T1處于方式處于方式3時(shí)相當(dāng)時(shí)相當(dāng)于于TR1= 0,停止計(jì)數(shù)(此時(shí),停止計(jì)數(shù)(此時(shí)T1可用來(lái)作為串行口波特率產(chǎn)生器)。可用來(lái)作為串行口波特率產(chǎn)生器)。1工作方式工作方式3下的下的T0TMOD的低的低2位為位為11時(shí),時(shí),T0的工作方式被選為方式的工作方式被選為方式3。定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0分為兩個(gè)獨(dú)立的分為兩個(gè)獨(dú)立的8位計(jì)數(shù)器位計(jì)數(shù)器TL0和和TH0,TL0使用使用T0的狀態(tài)控制位的狀態(tài)控制位C/ 、GATE、TR0、TF0 。TH0被被固定為一個(gè)固定為一個(gè)8位定時(shí)器位定時(shí)器(不能作為外部計(jì)數(shù)模式),并(不能作為外部計(jì)數(shù)模式),并使用定時(shí)器使用定時(shí)器T1的狀態(tài)控制位的狀態(tài)

14、控制位TR1和和TF1,同時(shí)占用定時(shí)器,同時(shí)占用定時(shí)器T1的的中斷請(qǐng)求源中斷請(qǐng)求源TF1。T 2T0工作在方式工作在方式3時(shí)時(shí)T1的各種工作方式的各種工作方式 一般情況下,一般情況下,當(dāng)當(dāng)T1用作串行口的波特率發(fā)生器時(shí),用作串行口的波特率發(fā)生器時(shí),T0才工作才工作在方式在方式3。T0處于工作方式處于工作方式3時(shí),時(shí),T1可定為方式可定為方式0、方式、方式1和方和方式式2,用來(lái)作為串行口的波特率發(fā)生器,或不需要中斷的場(chǎng)合。,用來(lái)作為串行口的波特率發(fā)生器,或不需要中斷的場(chǎng)合。1)T1工作在方式工作在方式0T1的控制字中的控制字中M1、M0 = 00時(shí),時(shí),T1工作在方式工作在方式0。 T0工作在方

15、式工作在方式3時(shí)時(shí)T1為方式為方式0的工作示意圖的工作示意圖2)T1工作在方式工作在方式1當(dāng)當(dāng)T1的控制字中的控制字中M1、M0 = 01時(shí),時(shí),T1工作在方式工作在方式1。 T0工作在方式工作在方式3時(shí)時(shí)T1為方式為方式1的工作示意圖的工作示意圖3)T1工作在方式工作在方式2當(dāng)當(dāng)T1的控制字中的控制字中M1、M0 = 10時(shí),時(shí),T1的工作方式為方式的工作方式為方式2。 T0工作在方式工作在方式3時(shí)時(shí)T1為方式為方式2的工作示意圖的工作示意圖4)T1設(shè)置在方式設(shè)置在方式3當(dāng)當(dāng)T0設(shè)置在方式設(shè)置在方式3,再把,再把T1也設(shè)成方式也設(shè)成方式3,此時(shí),此時(shí)T1停止計(jì)數(shù)停止計(jì)數(shù)。3. 對(duì)外部輸入的計(jì)

16、數(shù)信號(hào)的要求對(duì)外部輸入的計(jì)數(shù)信號(hào)的要求u當(dāng)定時(shí)器當(dāng)定時(shí)器/計(jì)數(shù)器工作在計(jì)數(shù)器模式時(shí),計(jì)數(shù)器工作在計(jì)數(shù)器模式時(shí),計(jì)數(shù)脈沖來(lái)自外部輸計(jì)數(shù)脈沖來(lái)自外部輸入引腳入引腳T0或或T1。u當(dāng)輸入信號(hào)產(chǎn)生當(dāng)輸入信號(hào)產(chǎn)生負(fù)跳變負(fù)跳變時(shí),計(jì)數(shù)器的值增時(shí),計(jì)數(shù)器的值增1。u每個(gè)機(jī)器周期每個(gè)機(jī)器周期的的S5P2期間,都期間,都對(duì)外部輸入引腳對(duì)外部輸入引腳T0或或T1進(jìn)行采進(jìn)行采樣。如在第一個(gè)機(jī)器周期中采得的值為樣。如在第一個(gè)機(jī)器周期中采得的值為1,而在下一個(gè)機(jī)器周,而在下一個(gè)機(jī)器周期中采得的值為期中采得的值為0,則在緊跟著的再下一個(gè)機(jī)器周期,則在緊跟著的再下一個(gè)機(jī)器周期S3P1期間,期間,計(jì)數(shù)器加計(jì)數(shù)器加1。由于。由

17、于確認(rèn)一次確認(rèn)一次負(fù)跳變負(fù)跳變要花要花2個(gè)個(gè)機(jī)器周期機(jī)器周期,因此,因此,外部輸入的計(jì)數(shù)脈沖的外部輸入的計(jì)數(shù)脈沖的最高頻率最高頻率為系統(tǒng)振蕩器頻率的為系統(tǒng)振蕩器頻率的1/24。 u對(duì)于外部輸入信號(hào)的對(duì)于外部輸入信號(hào)的占空比占空比并沒(méi)有什么限制并沒(méi)有什么限制,但為了確保給定,但為了確保給定電平在變化之前能被采樣一次,則這一電平電平在變化之前能被采樣一次,則這一電平至少要保持一個(gè)機(jī)器至少要保持一個(gè)機(jī)器周期周期。Tcy為機(jī)器周期為機(jī)器周期4. 定時(shí)器定時(shí)器/計(jì)數(shù)器的編程和應(yīng)用計(jì)數(shù)器的編程和應(yīng)用u 4種方式,方式種方式,方式0與方式與方式1基本相同,只是計(jì)數(shù)位數(shù)不同?;鞠嗤?,只是計(jì)數(shù)位數(shù)不同。u 方

18、式方式0初值計(jì)算復(fù)雜,初值計(jì)算復(fù)雜,一般不用方式一般不用方式0,而,而用方式用方式1。方式方式1的應(yīng)用的應(yīng)用例:例:假設(shè)系統(tǒng)時(shí)鐘頻率采用假設(shè)系統(tǒng)時(shí)鐘頻率采用6MHz,在在P1.0引腳上輸出一個(gè)引腳上輸出一個(gè)周期為周期為2ms的的方波方波。基本思想基本思想:方波周期:方波周期T0確定,確定,T0每隔每隔1ms計(jì)數(shù)溢出計(jì)數(shù)溢出1次,即次,即T0每隔每隔1ms產(chǎn)生一次中斷,產(chǎn)生一次中斷,CPU響應(yīng)中斷后,在中斷服務(wù)子程響應(yīng)中斷后,在中斷服務(wù)子程序中對(duì)序中對(duì)P1.0取反取反。為此要做如下幾步工作。為此要做如下幾步工作。 P1.0引腳上輸出周期為引腳上輸出周期為2ms的方波的方波1)計(jì)算計(jì)數(shù)初值)計(jì)算計(jì)

19、數(shù)初值X機(jī)器周期機(jī)器周期 = 2 s = 2 106s設(shè)需要設(shè)需要裝入裝入T0的的初值為初值為X,則有:,則有:(216X) 2 106=1 103 216X=500 X=65036X化為十六進(jìn)制數(shù),即:化為十六進(jìn)制數(shù),即: 65036 = FE0CH 。T0的的初值初值為為TH0 =FEH,TL0 = 0CH。2)初始化程序設(shè)計(jì))初始化程序設(shè)計(jì)采用定時(shí)器采用定時(shí)器中斷方式中斷方式工作。包括定時(shí)器初始化和中斷系統(tǒng)工作。包括定時(shí)器初始化和中斷系統(tǒng)初始化,主要是對(duì)初始化,主要是對(duì)寄存器寄存器IP、IE、TCON、TMOD的相應(yīng)位的相應(yīng)位進(jìn)行正確的設(shè)置,并將計(jì)數(shù)初值送入定時(shí)器中。進(jìn)行正確的設(shè)置,并將

20、計(jì)數(shù)初值送入定時(shí)器中。3)程序設(shè)計(jì))程序設(shè)計(jì)中斷服務(wù)子程序除了完成所要求的中斷服務(wù)子程序除了完成所要求的產(chǎn)生方波產(chǎn)生方波的工作之外,的工作之外,還要注意將計(jì)數(shù)還要注意將計(jì)數(shù)初值重新裝入定時(shí)器初值重新裝入定時(shí)器,為下一次產(chǎn)生中斷做,為下一次產(chǎn)生中斷做準(zhǔn)備。準(zhǔn)備。 ORG 0000H ;程序入口;程序入口RESET: AJMP MAIN ;轉(zhuǎn)主程序;轉(zhuǎn)主程序 ORG 000BH ;T0中斷入口中斷入口 AJMP IT0P ;轉(zhuǎn);轉(zhuǎn)T0中斷處理程序中斷處理程序IT0P ORG 0100H ;主程序入口;主程序入口MAIN: MOV SP,#60H ;設(shè)堆棧指針;設(shè)堆棧指針 MOV TMOD,#01H

21、 ;設(shè)置;設(shè)置T0為方式為方式1定時(shí)定時(shí) ACALL PT0M0 ;調(diào)用初始化子程序;調(diào)用初始化子程序PT0M0HERE: AJMP HERE ;原地循環(huán),等待中斷;原地循環(huán),等待中斷PT0M0: MOV TL0,#0CH;T0初始化,裝初值的低初始化,裝初值的低8位位 MOV TH0,#0FEH ;裝初值的高;裝初值的高8位位 SETB ET0;允許;允許T0中斷中斷 SETB EA ;總中斷允許;總中斷允許 SETB TR0;啟動(dòng);啟動(dòng)T0 RETIT0P: MOV TL0,#0CH;中斷子程序,;中斷子程序,T0重裝初值重裝初值 MOV TH0,#0FEH CPL P1.0 ;P1.0的

22、狀態(tài)取反的狀態(tài)取反 RETI程序說(shuō)明:程序說(shuō)明:u當(dāng)單片機(jī)復(fù)位時(shí),從程序入口當(dāng)單片機(jī)復(fù)位時(shí),從程序入口0000H跳向主程序跳向主程序MAIN處執(zhí)行。其中處執(zhí)行。其中調(diào)用了調(diào)用了T0初始化子程序初始化子程序PT0M0。u子程序返回后,子程序返回后,程序執(zhí)行程序執(zhí)行“AJMP HERE”指令,則循環(huán)等待。指令,則循環(huán)等待。當(dāng)當(dāng)響應(yīng)響應(yīng)T0定時(shí)中斷定時(shí)中斷時(shí),則跳向時(shí),則跳向T0中斷入口,再?gòu)闹袛嗳肟?,再?gòu)腡0中斷入口跳向中斷入口跳向IT0P標(biāo)標(biāo)號(hào)處執(zhí)行號(hào)處執(zhí)行T0中斷服務(wù)子程序。中斷服務(wù)子程序。u當(dāng)當(dāng)執(zhí)行完中斷返回的指令執(zhí)行完中斷返回的指令“RETI”后,又返回?cái)帱c(diǎn)處繼續(xù)執(zhí)行循環(huán)后,又返回?cái)帱c(diǎn)處繼

23、續(xù)執(zhí)行循環(huán)指令指令“AJMP HERE”。u在程序中,在程序中,“AJMP HERE” 是一段主程序。當(dāng)下一次定時(shí)器是一段主程序。當(dāng)下一次定時(shí)器T0的的1ms定時(shí)中斷發(fā)生時(shí),再跳向定時(shí)中斷發(fā)生時(shí),再跳向T0中斷入口,重復(fù)執(zhí)行上述過(guò)程。中斷入口,重復(fù)執(zhí)行上述過(guò)程。u如如CPU不做其他工作,不做其他工作,也可用查詢方式也可用查詢方式進(jìn)行控制,程序要簡(jiǎn)單得多。進(jìn)行控制,程序要簡(jiǎn)單得多。查詢方式參考程序:查詢方式參考程序: MOV TMOD,#01H ;設(shè)置;設(shè)置T0為方式為方式1LOOP:MOV TH0,#0FEH ;T0置初值置初值 MOV TL0,# 0CH SETB TR0 ;接通;接通T0L

24、OOP1: JNB TF0,LOOP1 ;查;查TF0,TF0 =0, T0未溢出;未溢出; ;TF0 =1, T0溢出,溢出, CLR TR0 ;T0溢出,溢出, 關(guān)斷關(guān)斷T0 CPL P1.0 ;P1.0的狀態(tài)求反的狀態(tài)求反 SJMP LOOP查詢查詢程序雖簡(jiǎn)單程序雖簡(jiǎn)單,但,但CPU必須要不斷查詢必須要不斷查詢TF0標(biāo)志,工作標(biāo)志,工作效效率低率低。例例: 系統(tǒng)時(shí)鐘為系統(tǒng)時(shí)鐘為6MHz,編寫定時(shí)器,編寫定時(shí)器T0產(chǎn)生產(chǎn)生1s定時(shí)的程序。定時(shí)的程序?;舅枷耄夯舅枷耄翰捎枚〞r(shí)器模式。因采用定時(shí)器模式。因定時(shí)時(shí)間較長(zhǎng)定時(shí)時(shí)間較長(zhǎng),首先確定,首先確定采用哪一種工作方式采用哪一種工作方式。時(shí)鐘

25、為。時(shí)鐘為6MHz的條件下,定時(shí)器各種的條件下,定時(shí)器各種工作方式最長(zhǎng)可定時(shí)時(shí)間:工作方式最長(zhǎng)可定時(shí)時(shí)間:方式方式0最長(zhǎng)可定時(shí)最長(zhǎng)可定時(shí)16.384ms;方式方式1最長(zhǎng)可定時(shí)最長(zhǎng)可定時(shí)131.072ms;方式方式2最長(zhǎng)可定時(shí)最長(zhǎng)可定時(shí)512 s??煽蛇x選方式方式1,每隔,每隔100ms中斷一次中斷一次,中斷中斷10次次為為1s。1)計(jì)算計(jì)數(shù)初值)計(jì)算計(jì)數(shù)初值X(216 X) 2 106 = 101X = 15536 = 3CB0H因此因此 TH0 = 3CH,TL0 = B0H。2)10次計(jì)數(shù)的實(shí)現(xiàn)次計(jì)數(shù)的實(shí)現(xiàn)對(duì)于中斷對(duì)于中斷10次的計(jì)數(shù),采用次的計(jì)數(shù),采用B寄存器寄存器作為作為中斷次數(shù)計(jì)數(shù)器

26、中斷次數(shù)計(jì)數(shù)器。3)程序設(shè)計(jì))程序設(shè)計(jì)ORG0000H;程序運(yùn)行入口;程序運(yùn)行入口RESET: LJMP MAIN ;跳向主程序入口;跳向主程序入口MAIN ORG000BH ;T0的中斷入口的中斷入口 LJMP IT0P;轉(zhuǎn);轉(zhuǎn)T0中斷處理子程序中斷處理子程序IT0P ORG1000H;主程序入口;主程序入口MAIN: MOVSP,#60H;設(shè)堆棧指針;設(shè)堆棧指針 MOVB,#0AH;設(shè)循環(huán)次數(shù);設(shè)循環(huán)次數(shù)10次次 MOVTMOD,#01H;設(shè)置;設(shè)置T0工作在方式工作在方式1定時(shí)定時(shí) MOV TL0,#0B0H ;給;給T0設(shè)初值設(shè)初值 MOV TH0,#3CH SETBET0;允許;允許

27、T0中斷中斷 SETBEA ;總中斷允許;總中斷允許 SETBTR0;啟動(dòng);啟動(dòng)T0HERE: SJMPHERE;原地循環(huán),等待中斷;原地循環(huán),等待中斷IT0P: MOVTL0,#0B0H ;T0中斷子程序,中斷子程序,T0重裝初值重裝初值 MOVTH0,#3CH DJNZB,RTURN;B中斷次數(shù)計(jì)數(shù),減中斷次數(shù)計(jì)數(shù),減1非非0則則;中斷返回;中斷返回 CLRTR0 ;1s定時(shí)時(shí)間到,停止定時(shí)時(shí)間到,停止T0工作工作SETBF0;1s定時(shí)時(shí)間到標(biāo)志定時(shí)時(shí)間到標(biāo)志F0置置1RTURN:RETI程序說(shuō)明:程序說(shuō)明:u不論不論1s定時(shí)時(shí)間是否已到,都返回到定時(shí)時(shí)間是否已到,都返回到“SJMP HE

28、RE”指指令處。令處。u“SJMP HERE”指令實(shí)際是一段主程序。在這段主程序指令實(shí)際是一段主程序。在這段主程序中中再通過(guò)對(duì)再通過(guò)對(duì)F0標(biāo)志標(biāo)志的的判定判定,可知,可知1s定時(shí)是否到,再進(jìn)行具體定時(shí)是否到,再進(jìn)行具體處理。處理。方式方式2的應(yīng)用的應(yīng)用u方式方式2是一個(gè)可以是一個(gè)可以自動(dòng)重新裝載初值自動(dòng)重新裝載初值的的8位計(jì)數(shù)器位計(jì)數(shù)器/定時(shí)器。定時(shí)器??煽墒∪ナ∪ブ匮b初值指令。重裝初值指令。u當(dāng)某個(gè)定時(shí)器當(dāng)某個(gè)定時(shí)器/計(jì)數(shù)器不使用時(shí),可計(jì)數(shù)器不使用時(shí),可擴(kuò)展一個(gè)擴(kuò)展一個(gè)負(fù)跳沿觸發(fā)負(fù)跳沿觸發(fā)的的外中斷源外中斷源。例例:擴(kuò)展一個(gè)擴(kuò)展一個(gè)負(fù)跳沿觸發(fā)的外部中斷源負(fù)跳沿觸發(fā)的外部中斷源,把定時(shí)器,把定

29、時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0腳腳作為作為外部中斷請(qǐng)求輸入端外部中斷請(qǐng)求輸入端,溢出標(biāo)志,溢出標(biāo)志TF0作為外中斷請(qǐng)作為外中斷請(qǐng)求標(biāo)志。求標(biāo)志?;舅枷耄夯舅枷耄涸O(shè)為方式設(shè)為方式2(自動(dòng)裝入常數(shù)方式)計(jì)數(shù)模式,(自動(dòng)裝入常數(shù)方式)計(jì)數(shù)模式,TH0、TL0初值初值均為均為0FFH。當(dāng)。當(dāng)T0腳發(fā)生負(fù)跳變時(shí),腳發(fā)生負(fù)跳變時(shí),T0計(jì)數(shù)計(jì)數(shù)溢出,溢出,TF0置置“1”,單片機(jī)發(fā)出中斷請(qǐng)求。,單片機(jī)發(fā)出中斷請(qǐng)求。初始化程序:初始化程序: ORG0000H AJMP IINI;跳到初始化程序;跳到初始化程序 ORG000BH AJMP IT0P;跳到外中斷處理程序;跳到外中斷處理程序IINI:MOV TMOD,

30、#06H;設(shè)置;設(shè)置T0為方式為方式2 MOV TL0,#0FFH;設(shè);設(shè)T0初值初值 MOV TH0,#0FFH SETB ET0;允許;允許T0中斷中斷 SETB EA;總中斷允許;總中斷允許 SETB TR0;啟動(dòng);啟動(dòng)T0 IT0P: 外中斷處理程序段外中斷處理程序段 程序說(shuō)明:程序說(shuō)明:u當(dāng)連接在當(dāng)連接在P3.4(T0腳)的外部中斷請(qǐng)求輸入腳電平發(fā)生負(fù)腳)的外部中斷請(qǐng)求輸入腳電平發(fā)生負(fù)跳變時(shí),跳變時(shí),TL0加加1,產(chǎn)生溢出,產(chǎn)生溢出,TF0置置“1”,向單片機(jī)發(fā)出,向單片機(jī)發(fā)出中斷請(qǐng)求,同時(shí)中斷請(qǐng)求,同時(shí)TH0的內(nèi)容的內(nèi)容0FFH送送TL0,即,即TL0恢復(fù)初值恢復(fù)初值0FFH。uP

31、3.4腳相當(dāng)于一個(gè)腳相當(dāng)于一個(gè)負(fù)跳沿負(fù)跳沿觸發(fā)的觸發(fā)的外中斷請(qǐng)求源外中斷請(qǐng)求源輸入輸入。對(duì)。對(duì)P3.5也可做類似的處理。也可做類似的處理。例例: 當(dāng)當(dāng)T0(P3.4)引腳上發(fā)生負(fù)跳變時(shí),作為)引腳上發(fā)生負(fù)跳變時(shí),作為P1.0引腳產(chǎn)生方波引腳產(chǎn)生方波的啟動(dòng)信號(hào)。開始從的啟動(dòng)信號(hào)。開始從P1.0腳腳上輸出一個(gè)上輸出一個(gè)周期為周期為1ms的的方波方波(系統(tǒng)(系統(tǒng)時(shí)鐘時(shí)鐘6MHz)。)?;舅枷耄夯舅枷耄簎T0設(shè)為設(shè)為方式方式1計(jì)數(shù)計(jì)數(shù),初值初值為為FFFFH。當(dāng)外部計(jì)數(shù)輸入端。當(dāng)外部計(jì)數(shù)輸入端T0發(fā)生一次負(fù)跳變發(fā)生一次負(fù)跳變時(shí),時(shí),T0加加1且且溢出溢出,溢出標(biāo)志,溢出標(biāo)志TF0置置“1”,向向C

32、PU發(fā)出中斷請(qǐng)求,此時(shí)發(fā)出中斷請(qǐng)求,此時(shí)T0相當(dāng)于一個(gè)相當(dāng)于一個(gè)負(fù)跳沿觸發(fā)負(fù)跳沿觸發(fā)的外部的外部中斷源。中斷源。u進(jìn)入進(jìn)入T0中斷程序后,中斷程序后,F(xiàn)0標(biāo)志置標(biāo)志置“1”,說(shuō)明,說(shuō)明T0引腳上已接引腳上已接收過(guò)負(fù)跳變信號(hào)。收過(guò)負(fù)跳變信號(hào)。uT1定義為定義為方式方式2定時(shí)定時(shí)。在。在T0引腳產(chǎn)生一次負(fù)跳變后,啟動(dòng)引腳產(chǎn)生一次負(fù)跳變后,啟動(dòng)T1每每500 s產(chǎn)生一次中斷產(chǎn)生一次中斷,在,在中斷服務(wù)子程序中斷服務(wù)子程序中對(duì)中對(duì)P1.0求反求反,使使P1.0產(chǎn)生產(chǎn)生周期周期1ms的方波。由于省去重新裝初值指令,所以的方波。由于省去重新裝初值指令,所以可產(chǎn)生可產(chǎn)生精確精確的定時(shí)時(shí)間。的定時(shí)時(shí)間。2)計(jì)

33、算)計(jì)算T1的初值的初值設(shè)設(shè)T1的初值為的初值為x,則,則(28 x) 2 106 = 5 104 x = 28 250 = 6 = 06H3)程序設(shè)計(jì))程序設(shè)計(jì) ORG 0000H;程序入口;程序入口RESET:LJMP MAIN ;跳向主程序;跳向主程序MAIN ORG 000BH;T0的中斷入口的中斷入口 LJMP IT0P ;轉(zhuǎn);轉(zhuǎn)T0中斷服務(wù)程序中斷服務(wù)程序 ORG 001BH;T1的中斷入口的中斷入口 LJMP IT1P ; 轉(zhuǎn)轉(zhuǎn)T1中斷服務(wù)程序中斷服務(wù)程序 ORG 0100H;主程序入口;主程序入口MAIN:MOV SP,#60H ;設(shè)堆棧指針;設(shè)堆棧指針 ACALL PT0M2

34、;調(diào)用對(duì);調(diào)用對(duì)T0,T1初始化子程序初始化子程序LOOP:MOV C,F(xiàn)0 ;T0是否產(chǎn)生過(guò)中斷,若產(chǎn)生過(guò),是否產(chǎn)生過(guò)中斷,若產(chǎn)生過(guò),F(xiàn)0置置1 JNC LOOP;T0未產(chǎn)生中斷,未產(chǎn)生中斷,C=0,則跳到,則跳到LOOP,;等待;等待T0中斷中斷 SETB ET1 ;允許;允許T1產(chǎn)生定時(shí)中斷產(chǎn)生定時(shí)中斷 SETB TR1 ;啟動(dòng);啟動(dòng)T1HERE:AJMP HEREPT0M2: MOV TMOD,#25H ;對(duì);對(duì)T0,T1初始化,初始化,T0方式方式1計(jì)數(shù),計(jì)數(shù),;T1方式方式2定時(shí)定時(shí) MOV TL0,#0FFH ;T0置初值置初值 MOV TH0,#0FFH SETB ET0;允許

35、;允許T0中斷中斷 MOV TL1,#06H;T1置初值置初值 MOV TH1,#06H CLR F0;把;把T0已發(fā)生中斷標(biāo)志已發(fā)生中斷標(biāo)志F0清清0 SETB EA;總中斷允許;總中斷允許 SETB TR0;啟動(dòng);啟動(dòng)T0 RETIT0P: CLRTR0 ;T0中斷服務(wù)程序中斷服務(wù)程序,停止,停止T0計(jì)數(shù)計(jì)數(shù) SETBF0 ;把;把T0引腳接收過(guò)負(fù)脈沖標(biāo)志引腳接收過(guò)負(fù)脈沖標(biāo)志F0置置1,;即接收過(guò)負(fù)跳變;即接收過(guò)負(fù)跳變 RETIIT1P: CPL P1.0;T1中斷服務(wù)程序中斷服務(wù)程序,P1.0位取反位取反 RETI程序說(shuō)明:程序說(shuō)明:u當(dāng)單片機(jī)復(fù)位時(shí),從當(dāng)單片機(jī)復(fù)位時(shí),從0000H跳向主

36、程序跳向主程序MAIN處執(zhí)行程序處執(zhí)行程序。其中調(diào)用了對(duì)。其中調(diào)用了對(duì)T0,T1初始化子程序初始化子程序PT0M2。u子程序返回后執(zhí)行標(biāo)號(hào)子程序返回后執(zhí)行標(biāo)號(hào)LOOP處指令,循環(huán)等待處指令,循環(huán)等待T0引腳上引腳上負(fù)脈沖的到來(lái)。負(fù)脈沖的到來(lái)。u由于負(fù)脈沖到來(lái)的標(biāo)志位由于負(fù)脈沖到來(lái)的標(biāo)志位F0的復(fù)位初始值為的復(fù)位初始值為0,所以程序,所以程序就在標(biāo)號(hào)就在標(biāo)號(hào)LOOP處循環(huán)等待。處循環(huán)等待。方式方式3的應(yīng)用的應(yīng)用u方式方式3下的下的T0和和T1大不相同大不相同。T0工作在方式工作在方式3,TL0和和TH0被分成兩個(gè)獨(dú)立的被分成兩個(gè)獨(dú)立的8位定時(shí)器位定時(shí)器/計(jì)數(shù)器。其中,計(jì)數(shù)器。其中,TL0可作可作

37、為為8位的定時(shí)器位的定時(shí)器/計(jì)數(shù)器,而計(jì)數(shù)器,而TH0只能作為只能作為8位的定時(shí)器位的定時(shí)器。此時(shí)。此時(shí)T1只能工作在方式只能工作在方式0、1或或2。u一般情況下,當(dāng)一般情況下,當(dāng)T1用作用作串行口波特率發(fā)生器串行口波特率發(fā)生器時(shí),時(shí),T0才設(shè)才設(shè)置為置為方式方式3。常把定時(shí)器。常把定時(shí)器T1設(shè)置為設(shè)置為方式方式2,用作波特率發(fā)生器。,用作波特率發(fā)生器。例:例:假設(shè)某假設(shè)某AT89S51單片機(jī)應(yīng)用系統(tǒng)的兩個(gè)外部中斷源已被單片機(jī)應(yīng)用系統(tǒng)的兩個(gè)外部中斷源已被占用,設(shè)置占用,設(shè)置T1工作在方式工作在方式2,用作波特率發(fā)生器,用作波特率發(fā)生器。現(xiàn)?,F(xiàn)要求增加要求增加一個(gè)一個(gè)外部中斷源外部中斷源,并,并

38、控制控制P1.0引腳輸出一個(gè)引腳輸出一個(gè)5kHz(周期為(周期為200 s)的)的方波方波。設(shè)時(shí)鐘為。設(shè)時(shí)鐘為12MHz。基本思想:基本思想:設(shè)置設(shè)置TL0工作在方式工作在方式3計(jì)數(shù)模式,計(jì)數(shù)模式,TL0的初值設(shè)為的初值設(shè)為0FFH,當(dāng),當(dāng)檢測(cè)到檢測(cè)到T0腳信號(hào)出現(xiàn)腳信號(hào)出現(xiàn)負(fù)跳變負(fù)跳變時(shí),時(shí),TL0溢出,同時(shí)向溢出,同時(shí)向CPU申請(qǐng)中斷,這里申請(qǐng)中斷,這里T0腳作為一個(gè)負(fù)跳沿觸發(fā)的外部中斷請(qǐng)腳作為一個(gè)負(fù)跳沿觸發(fā)的外部中斷請(qǐng)求輸入端求輸入端。在中斷處理子程序中,啟動(dòng)。在中斷處理子程序中,啟動(dòng)TH0,TH0事先被設(shè)置事先被設(shè)置為為方式方式3的的100 s定時(shí)定時(shí),從而,從而控制控制P1.0輸出周

39、期為輸出周期為200 s的方波的方波信號(hào)信號(hào)。(1)初值)初值X計(jì)算計(jì)算 TL0的的初值初值設(shè)為設(shè)為0FFH。 5kHz方波方波的的周期為周期為200 s,因此,因此TH0的定時(shí)時(shí)間為的定時(shí)時(shí)間為100 s。 初值初值X計(jì)算:計(jì)算:(28 X) 1 106 = 1 104 X = 28 100 = 156 = 9CH(2)程序設(shè)計(jì))程序設(shè)計(jì)ORG 0000H LJMPMAIN ORG 000BH ;TL0中斷入口,中斷入口,TL0使用使用T0的中斷的中斷 LJMP TL0INT ;跳向跳向TL0中斷服務(wù)程序,中斷服務(wù)程序, TL0占用占用T0中斷中斷 ORG 001BH ;TH0中斷入口,中斷

40、入口,T0為方式為方式3時(shí),時(shí),TH0 ;使用了;使用了T1的中斷的中斷LJMP TH0INT;跳向;跳向TH0中斷服務(wù)程序中斷服務(wù)程序 ORG 0100H;主程序入口;主程序入口MAIN: MOV TMOD,#27H ;T0方式方式3,T1方式方式2定時(shí)作串定時(shí)作串 ;行口波特率發(fā)生器;行口波特率發(fā)生器 MOV TL0,#0FFH ;置;置TL0初值初值 MOV TH0,#9CH ;置;置TH0初值初值 MOV TL1,#datal ;TL1裝入串口波特率常數(shù)裝入串口波特率常數(shù)MOV TH1,#datah ;TH1裝入串口波特率常數(shù)裝入串口波特率常數(shù) MOV TCON,#15H ;允許;允許

41、T0中斷中斷 MOV IE,#9FH;設(shè)置中斷允許,總中斷允許,;設(shè)置中斷允許,總中斷允許,;TH0、TL0中斷允許中斷允許HERE: AJMP HERE;循環(huán)等待;循環(huán)等待TL0INT: MOV TL0,#0FFH;TL0中斷服務(wù)處理子程序,中斷服務(wù)處理子程序,TL0 ;重新裝入初值;重新裝入初值 SETB TR1;開始啟動(dòng);開始啟動(dòng)TH0定時(shí)定時(shí) RETITH0INT:MOV TH0,#9CH;TH0中斷服務(wù)程序,中斷服務(wù)程序,TH0重新重新;裝入初值;裝入初值 CPLP1.0;P1.0位取反輸出位取反輸出 RETI u門控制位門控制位GATEx的應(yīng)用的應(yīng)用測(cè)量脈沖寬度測(cè)量脈沖寬度測(cè)量測(cè)量

42、 (P3.3)引腳上正脈沖的寬度。)引腳上正脈沖的寬度。INT1例:例:門控位門控位GATE1可使可使T1的啟動(dòng)計(jì)數(shù)受的啟動(dòng)計(jì)數(shù)受 的控制,的控制,當(dāng)當(dāng)GATE1 = 1,TR1=1時(shí),時(shí),只有只有 INT1*引腳輸入高電平時(shí)引腳輸入高電平時(shí),T1才被允許計(jì)數(shù)才被允許計(jì)數(shù)??蓽y(cè)量??蓽y(cè)量 引腳引腳 (P3.3)上正脈沖的寬)上正脈沖的寬度。度。INT1INT1 ORG0000HRESET: AJMP MAIN ;復(fù)位入口轉(zhuǎn)主程序;復(fù)位入口轉(zhuǎn)主程序 ORG 0100H;主程序入口;主程序入口MAIN: MOV SP,#60H MOVTMOD,#90H;向;向TMOD寫控制字,寫控制字,T1為方為

43、方;式;式1定時(shí),定時(shí),GATE1 = 1 MOV TL1,#00H MOV TH1,#00HLOOP0: JB P3.3,LOOP0;等待;等待 降低降低 SETB TR1;如;如 為低,啟動(dòng)為低,啟動(dòng)T1INT1INT1LOOP1:JNB P3.3,LOOP1;等待;等待 升高升高LOOP2:JB P3.3,LOOP2 ; 為高,為高, 此時(shí)計(jì)數(shù)器計(jì)數(shù),此時(shí)計(jì)數(shù)器計(jì)數(shù), ;等待;等待 降低降低 CLR TR1 ;停止;停止T1計(jì)數(shù)計(jì)數(shù) MOV A,TL1 ;T1計(jì)數(shù)值送計(jì)數(shù)值送A ;將;將T1計(jì)數(shù)值送顯示器計(jì)數(shù)值送顯示器 END執(zhí)行以上程序,使執(zhí)行以上程序,使 引腳上出現(xiàn)的引腳上出現(xiàn)的正脈

44、沖寬度正脈沖寬度以以機(jī)器機(jī)器周期數(shù)周期數(shù)的形式顯示在顯示器上。的形式顯示在顯示器上。將A中的T1計(jì)數(shù)值送到顯示器顯示INT1INT1INT1INT1u實(shí)時(shí)時(shí)鐘的設(shè)計(jì)實(shí)時(shí)時(shí)鐘的設(shè)計(jì)1實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘的基本思想實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘的基本思想最小計(jì)時(shí)單位是最小計(jì)時(shí)單位是秒秒,如何獲得,如何獲得1s的定時(shí)時(shí)間的定時(shí)時(shí)間呢呢?定時(shí)器?定時(shí)器方式方式1,最大定時(shí)時(shí)間也只能最大定時(shí)時(shí)間也只能131ms。可將定時(shí)器的定時(shí)時(shí)間定為??蓪⒍〞r(shí)器的定時(shí)時(shí)間定為100ms,中斷方式進(jìn)行溢出次數(shù)的累計(jì),中斷方式進(jìn)行溢出次數(shù)的累計(jì),計(jì)滿計(jì)滿10次次,即得秒計(jì)時(shí)。,即得秒計(jì)時(shí)。片內(nèi)片內(nèi)RAM規(guī)定規(guī)定3個(gè)單元個(gè)單元為為秒、分、時(shí)秒、分、時(shí)單元單元:42H:“秒秒”單元;單元;41H:“分分”單元;單元;40H:“時(shí)時(shí)”單元單元從秒到分,從分到時(shí)從秒到分,從分到時(shí)是是通過(guò)軟件累加通過(guò)軟件累加并比較來(lái)實(shí)現(xiàn)。要求并比較來(lái)實(shí)現(xiàn)。要求每滿每滿1秒,則秒,則“秒秒”單元單元42H中的內(nèi)容加中的內(nèi)容加1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論