



版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第五章第五章2 單片機(jī)的定時(shí)器計(jì)數(shù)器單片機(jī)的定時(shí)器計(jì)數(shù)器 第一節(jié)第一節(jié) 定時(shí)定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)和功能計(jì)數(shù)器的結(jié)構(gòu)和功能 第二節(jié)第二節(jié) 定時(shí)器定時(shí)器/計(jì)數(shù)器的工作方式計(jì)數(shù)器的工作方式 第三節(jié)第三節(jié) 定時(shí)器定時(shí)器/計(jì)數(shù)器應(yīng)用計(jì)數(shù)器應(yīng)用第一節(jié)第一節(jié) 定時(shí)器定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)和功能計(jì)數(shù)器的結(jié)構(gòu)和功能一、結(jié)構(gòu)和功能一、結(jié)構(gòu)和功能二、方式寄存器二、方式寄存器TMOD和控制寄存器和控制寄存器TCON一、結(jié)構(gòu)和功能一、結(jié)構(gòu)和功能 8051單片機(jī)內(nèi)有兩個(gè)可編程單片機(jī)內(nèi)有兩個(gè)可編程16位定時(shí)器位定時(shí)器/計(jì)數(shù)器,常稱為定時(shí)器計(jì)數(shù)器,常稱為定時(shí)器0和定時(shí)和定時(shí)器器1,簡(jiǎn)稱為,簡(jiǎn)稱為T(mén)0和和T1,每個(gè)定時(shí)計(jì)數(shù)器都由兩
2、個(gè),每個(gè)定時(shí)計(jì)數(shù)器都由兩個(gè)8位專用寄存器組成,位專用寄存器組成,T0由由TH0,TL0組成,組成,T1由由TH1,TL1組成,同時(shí)還有組成,同時(shí)還有TCON,TMOD兩個(gè)專用寄存兩個(gè)專用寄存器對(duì)其進(jìn)行控制。常用于定時(shí)控制、延時(shí)、外部計(jì)數(shù)和檢測(cè)等。器對(duì)其進(jìn)行控制。常用于定時(shí)控制、延時(shí)、外部計(jì)數(shù)和檢測(cè)等。1.結(jié)構(gòu):結(jié)構(gòu):外部控制門(mén)外部控制門(mén)2.功能:功能:a.定時(shí):定時(shí): 對(duì)機(jī)器周期進(jìn)行計(jì)數(shù),即計(jì)數(shù)脈沖來(lái)自單片機(jī)的內(nèi)部。即每對(duì)機(jī)器周期進(jìn)行計(jì)數(shù),即計(jì)數(shù)脈沖來(lái)自單片機(jī)的內(nèi)部。即每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖使得計(jì)數(shù)器加個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖使得計(jì)數(shù)器加1,直至計(jì)滿溢出。,直至計(jì)滿溢出。 一個(gè)機(jī)器周期
3、一個(gè)機(jī)器周期12*振蕩周期振蕩周期 12MHZ晶體,計(jì)數(shù)周期晶體,計(jì)數(shù)周期(機(jī)器周期機(jī)器周期)1us。即每。即每1us計(jì)數(shù)器加計(jì)數(shù)器加l。 從開(kāi)始計(jì)數(shù)到溢出這段時(shí)間就是從開(kāi)始計(jì)數(shù)到溢出這段時(shí)間就是“定時(shí)定時(shí)”時(shí)間。時(shí)間。 因此,若機(jī)器周期一定,計(jì)數(shù)初值越大,則定時(shí)越短因此,若機(jī)器周期一定,計(jì)數(shù)初值越大,則定時(shí)越短b.計(jì)數(shù):計(jì)數(shù): 對(duì)外來(lái)脈沖進(jìn)行計(jì)數(shù)。對(duì)外來(lái)脈沖進(jìn)行計(jì)數(shù)。T0(P3.4)和和T1(P3.5)兩個(gè)引腳,作為計(jì)數(shù)輸入端。兩個(gè)引腳,作為計(jì)數(shù)輸入端。外部輸入的脈沖在出現(xiàn)從外部輸入的脈沖在出現(xiàn)從1到到0的負(fù)跳變時(shí)有效,計(jì)數(shù)器的負(fù)跳變時(shí)有效,計(jì)數(shù)器進(jìn)行加進(jìn)行加1。計(jì)數(shù)方式下,單片機(jī)在每個(gè)機(jī)器
4、周期的計(jì)數(shù)方式下,單片機(jī)在每個(gè)機(jī)器周期的S5P2拍節(jié)時(shí)對(duì)外拍節(jié)時(shí)對(duì)外部計(jì)數(shù)脈沖進(jìn)行采樣。如果前一個(gè)機(jī)器周期采樣為高電平,后部計(jì)數(shù)脈沖進(jìn)行采樣。如果前一個(gè)機(jī)器周期采樣為高電平,后一個(gè)機(jī)器周期采樣為低電平,即為一個(gè)有效的計(jì)數(shù)脈沖。在下一個(gè)機(jī)器周期采樣為低電平,即為一個(gè)有效的計(jì)數(shù)脈沖。在下一機(jī)器周期的一機(jī)器周期的S3Pl進(jìn)行計(jì)數(shù)。進(jìn)行計(jì)數(shù)。即采樣計(jì)數(shù)脈沖需要即采樣計(jì)數(shù)脈沖需要2個(gè)機(jī)器周期,即個(gè)機(jī)器周期,即24個(gè)振蕩周期。個(gè)振蕩周期。 因此,計(jì)數(shù)脈沖的頻率最高為振蕩脈沖頻率的因此,計(jì)數(shù)脈沖的頻率最高為振蕩脈沖頻率的 124 TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR
5、0IE1IT1IE0IT01.控制寄存器控制寄存器TCONTF1(TCON.7, 8FH位)位)-定時(shí)器定時(shí)器T1中斷請(qǐng)求溢出標(biāo)志位。中斷請(qǐng)求溢出標(biāo)志位。TF0(TCON.5, 8DH位)位)-定時(shí)器定時(shí)器T0中斷請(qǐng)求溢出標(biāo)志位。中斷請(qǐng)求溢出標(biāo)志位。 TR1(TCON.6, 8EH位)位)-T1運(yùn)行控制位。運(yùn)行控制位。 0:關(guān)閉:關(guān)閉T1;1:?jiǎn)?dòng):?jiǎn)?dòng)T1運(yùn)行。只由軟件置位或清零。運(yùn)行。只由軟件置位或清零。TR0(TCON.4, 8CH位)位)-T0運(yùn)行控制位。運(yùn)行控制位。 0:關(guān)閉:關(guān)閉T0;1:?jiǎn)?dòng):?jiǎn)?dòng)T0運(yùn)行。運(yùn)行。只由軟件置位或清零。只由軟件置位或清零。8051設(shè)有定時(shí)設(shè)有定時(shí)/計(jì)
6、數(shù)器應(yīng)用相關(guān)的控制器,即兩個(gè)計(jì)數(shù)器應(yīng)用相關(guān)的控制器,即兩個(gè)8位專用寄存器位專用寄存器TMOD和和TCON。定。定/計(jì)工作前,必須經(jīng)過(guò)由計(jì)工作前,必須經(jīng)過(guò)由CPU將一些命令寫(xiě)入定將一些命令寫(xiě)入定/計(jì)的初始化過(guò)程。計(jì)的初始化過(guò)程。二、方式寄存器二、方式寄存器TMOD和控制寄存器和控制寄存器TCON2.方式寄存器方式寄存器TMOD (不能進(jìn)行位尋址,沒(méi)有位地址)(不能進(jìn)行位尋址,沒(méi)有位地址)GATED7D6D5D4D3D2D1D0C/TM1M0C/TM1M0GATETMOD M1 M0工作方式工作方式功功 能能 說(shuō)說(shuō) 明明0 0方式方式013位計(jì)數(shù)器位計(jì)數(shù)器0 1方式方式116位計(jì)數(shù)器位計(jì)數(shù)器1 0
7、方式方式2自動(dòng)再裝入自動(dòng)再裝入8位計(jì)數(shù)器位計(jì)數(shù)器1 1方式方式3定時(shí)器定時(shí)器0:分成兩個(gè):分成兩個(gè)8位計(jì)數(shù)器位計(jì)數(shù)器定時(shí)器定時(shí)器1:停止計(jì)數(shù):停止計(jì)數(shù)C/T-定時(shí)器定時(shí)器/計(jì)數(shù)器方式選擇計(jì)數(shù)器方式選擇位。位。 0:定時(shí)器;:定時(shí)器;1:計(jì)數(shù)器。:計(jì)數(shù)器。GATE-外部門(mén)控位。外部門(mén)控位。 0:不用外部門(mén),只將:不用外部門(mén),只將TR0/TR1置置1來(lái)啟動(dòng)定時(shí)器;來(lái)啟動(dòng)定時(shí)器; 1:使用外部門(mén),外部請(qǐng)求:使用外部門(mén),外部請(qǐng)求信號(hào)信號(hào)INT0/INT1(高電平)和(高電平)和TR0/TR1 (置(置1)共同來(lái)啟動(dòng)定)共同來(lái)啟動(dòng)定時(shí)器。時(shí)器。定時(shí)計(jì)數(shù)器定時(shí)計(jì)數(shù)器1定時(shí)計(jì)數(shù)器定時(shí)計(jì)數(shù)器01、 方式方式0
8、 (T1,T0)當(dāng)當(dāng)M1M0兩位為兩位為00時(shí),定時(shí)時(shí),定時(shí)/計(jì)數(shù)器被選為工作方式計(jì)數(shù)器被選為工作方式0,13位計(jì)數(shù)器,其邏輯結(jié)位計(jì)數(shù)器,其邏輯結(jié)構(gòu)如圖所示。構(gòu)如圖所示??刂瓶刂普袷幤髡袷幤?212TL0TL0低低5 5位位TF0TF0中斷中斷T0T0 端端C/C/ T = 0T = 0C/C/ T = 1T = 1+ +INT0INT0 端端GATEGATETR0TR0TH0TH0 高高8 8位位第二節(jié)第二節(jié) 定時(shí)器定時(shí)器/計(jì)數(shù)器的工作方式計(jì)數(shù)器的工作方式在方式在方式0下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是: 18192(213 )定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)
9、算公式為:定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為: (213一計(jì)數(shù)初值一計(jì)數(shù)初值)晶振周期晶振周期12 或或(213一計(jì)數(shù)初值一計(jì)數(shù)初值)機(jī)器周期機(jī)器周期若晶振頻率為若晶振頻率為6MHz,1個(gè)機(jī)器周期為個(gè)機(jī)器周期為1/6 x 10-6 x12=2s則最小定時(shí)時(shí)間為:則最小定時(shí)時(shí)間為: 最大定時(shí)時(shí)間為:最大定時(shí)時(shí)間為:213 0 x2s=16384s =16.384ms213 (213 -1)x2s=2s2、 方式方式1 (T1,T0)當(dāng)當(dāng)M1M0兩位為兩位為01時(shí),定時(shí)時(shí),定時(shí)/計(jì)數(shù)器被選為工作方式計(jì)數(shù)器被選為工作方式1,16位計(jì)數(shù)器,其邏輯結(jié)構(gòu)位計(jì)數(shù)器,其邏輯結(jié)構(gòu)如圖如圖 所示。所示??刂瓶刂?/p>
10、振蕩器振蕩器1212TL0TL0(8(8位位) )TF0TF0中斷中斷T0T0 端端C/C/ T = 0T = 0C/C/ T = 1T = 1+ +INT0INT0 端端GATEGATETR0TR0TH0TH0(8(8位位) )在方式在方式1下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是: 165536(216 )定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為: (216一計(jì)數(shù)初值一計(jì)數(shù)初值)晶振周期晶振周期12 或或(216一計(jì)數(shù)初值一計(jì)數(shù)初值)機(jī)器周期機(jī)器周期若晶振頻率為若晶振頻率為6MHz ,1個(gè)機(jī)器周期為個(gè)機(jī)器周期為1/6 x 10
11、-6 x12=2s則最小定時(shí)時(shí)間為:則最小定時(shí)時(shí)間為: 最大定時(shí)時(shí)間為:最大定時(shí)時(shí)間為:216 (216 -1) x2s=2s216 0 x2s=131072s =131.072ms控制控制振蕩器振蕩器1212TL0TL0(8(8位位) )TF0TF0中斷中斷T0T0 端端C/C/ T = 0T = 0C/C/ T = 1T = 1+ +INT0INT0 端端GATEGATETR0TR0TH0TH0(8(8位位) )重新裝重新裝入入3、 方式方式2 (T1,T0)當(dāng)當(dāng)M1M0兩位為兩位為10時(shí),定時(shí)時(shí),定時(shí)/計(jì)數(shù)器被選為工作方式計(jì)數(shù)器被選為工作方式2,自動(dòng)重加載自動(dòng)重加載8位計(jì)數(shù)器,位計(jì)數(shù)器,
12、其邏輯結(jié)構(gòu)如圖所示。其邏輯結(jié)構(gòu)如圖所示。方式方式0和方式和方式1有個(gè)共同的特點(diǎn),就是計(jì)數(shù)溢出后計(jì)數(shù)器全清有個(gè)共同的特點(diǎn),就是計(jì)數(shù)溢出后計(jì)數(shù)器全清0,因此,循環(huán)定時(shí)時(shí),因此,循環(huán)定時(shí)時(shí)就需要反復(fù)設(shè)定計(jì)數(shù)器初值,比較麻煩,而方式就需要反復(fù)設(shè)定計(jì)數(shù)器初值,比較麻煩,而方式2具有自動(dòng)重加載初值的功能,免去具有自動(dòng)重加載初值的功能,免去很多反復(fù)設(shè)置初值的工作。很多反復(fù)設(shè)置初值的工作。在方式在方式2下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是: 1256(28 )定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為: (28一計(jì)數(shù)初值一計(jì)數(shù)初值)晶振周期晶振
13、周期12 或或(28一計(jì)數(shù)初值一計(jì)數(shù)初值)機(jī)器周期機(jī)器周期若晶振頻率為若晶振頻率為6MHz, 1個(gè)機(jī)器周期為個(gè)機(jī)器周期為1/6 x 10-6 x12=2s則最小定時(shí)時(shí)間為:則最小定時(shí)時(shí)間為: 最大定時(shí)時(shí)間為:最大定時(shí)時(shí)間為:28(28 -1) x 2s=2s28 0 x 2s=512s控制控制振蕩器振蕩器1212TL0TL0(8(8位位) )TF0TF0中斷中斷T T0 0 端端C/C/ T = 0T = 0C/C/ T = 1T = 1+ +INT0INT0 端端GATEGATETR0TR0TH0TH0(8(8位位) )1/1/12 12 f foscosc1/1/12 12 f fosco
14、scTF1TF1中斷中斷1/1/12 12 f foscoscTR1TR14、 方式方式3(T0)當(dāng)當(dāng)M1M0兩位為兩位為11時(shí),定時(shí)時(shí),定時(shí)/計(jì)數(shù)器被選為工作方式計(jì)數(shù)器被選為工作方式3,只用于定時(shí)器只用于定時(shí)器0,T0被分被分成兩個(gè)獨(dú)立的成兩個(gè)獨(dú)立的8位計(jì)數(shù)器,其邏輯結(jié)構(gòu)如圖所示。位計(jì)數(shù)器,其邏輯結(jié)構(gòu)如圖所示。定時(shí)器定時(shí)器T0T0方式方式3 3結(jié)構(gòu)結(jié)構(gòu)控制控制振蕩器振蕩器1212TL1TL1(8(8位位) )串行口串行口T1T1(P3.5)P3.5)端端C/C/ T = 0T = 0C/C/ T = 1T = 1TH1TH1(8(8位位) )重新裝入重新裝入振蕩器振蕩器1212TL1TL1(
15、8/5(8/5位位) )T1T1(P3.5)P3.5)端端C/C/ T = 0T = 0C/C/ T = 1T = 1TH1TH1(8(8位位) )串行口串行口定時(shí)器定時(shí)器T0 用作用作方式方式3時(shí),時(shí),T1仍可用于方式仍可用于方式02結(jié)構(gòu)結(jié)構(gòu)這時(shí),僅用這時(shí),僅用C/T來(lái)切換定時(shí)或計(jì)數(shù)。來(lái)切換定時(shí)或計(jì)數(shù)。T1T1方式方式0 0或或1 1T1T1方式方式2 2在方式在方式0下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是: 18192(213 ) 213計(jì)數(shù)初值計(jì)數(shù)初值計(jì)數(shù)的脈沖數(shù)計(jì)數(shù)的脈沖數(shù)定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為: (2
16、13一一計(jì)數(shù)初值計(jì)數(shù)初值)晶振周期晶振周期12定時(shí)時(shí)間定時(shí)時(shí)間 或或(213一一計(jì)數(shù)初值計(jì)數(shù)初值)機(jī)器周期機(jī)器周期定時(shí)時(shí)間定時(shí)時(shí)間若晶振頻率為若晶振頻率為6MHz,1個(gè)機(jī)器周期為個(gè)機(jī)器周期為1/6 x 10-6 x12=2s則最小定時(shí)時(shí)間為:則最小定時(shí)時(shí)間為: 最大定時(shí)時(shí)間為:最大定時(shí)時(shí)間為:213 (213 -1)x2s=2s213 0 x2s=16384s =16.384ms第三節(jié)第三節(jié) 定時(shí)定時(shí)/計(jì)數(shù)器應(yīng)用計(jì)數(shù)器應(yīng)用我們編程時(shí),通常是求計(jì)數(shù)初值我們編程時(shí),通常是求計(jì)數(shù)初值(1)計(jì)算計(jì)數(shù)初值計(jì)算計(jì)數(shù)初值 :例例1:設(shè)單片機(jī)晶振頻率設(shè)單片機(jī)晶振頻率Fosc6MHz,使用定時(shí)器,使用定時(shí)器1以
17、方式以方式0產(chǎn)生周期為產(chǎn)生周期為200s的等寬正方波脈沖,并由的等寬正方波脈沖,并由P1.0輸出。以查詢方式完成。輸出。以查詢方式完成。 欲產(chǎn)生欲產(chǎn)生200s的等寬正方波脈沖,只需在的等寬正方波脈沖,只需在P1.0端以端以100s為周期交替輸出高低為周期交替輸出高低電平即可實(shí)現(xiàn),為此定時(shí)時(shí)間應(yīng)為電平即可實(shí)現(xiàn),為此定時(shí)時(shí)間應(yīng)為100s。使用。使用6MHz晶振,則一個(gè)機(jī)器周期晶振,則一個(gè)機(jī)器周期為為2s。方式。方式0為為13位計(jì)數(shù)結(jié)構(gòu)。位計(jì)數(shù)結(jié)構(gòu)。設(shè)待求的計(jì)數(shù)初值為設(shè)待求的計(jì)數(shù)初值為x,則:,則: (213x)2s100s,求解得:,求解得: x8142(D)=1FCEH= 11111110011
18、10B = 1111111001110B 。低。低5位和高位和高8位分位分別轉(zhuǎn)換為十六進(jìn)制數(shù),高別轉(zhuǎn)換為十六進(jìn)制數(shù),高8位為位為FEH,低,低5位為位為0EH。其中高。其中高8位放入位放入THl,即,即THlFEH;低;低5位放入位放入TLl,即,即TL10EH。(2) TMOD寄存器初始寄存器初始化化為把定時(shí)器計(jì)數(shù)器為把定時(shí)器計(jì)數(shù)器1設(shè)定為方式設(shè)定為方式0,則,則MlM000H;為實(shí)現(xiàn)定時(shí)功能,應(yīng)使;為實(shí)現(xiàn)定時(shí)功能,應(yīng)使CT0;為實(shí)現(xiàn)定時(shí)器計(jì)數(shù)器;為實(shí)現(xiàn)定時(shí)器計(jì)數(shù)器1的運(yùn)行控制,則的運(yùn)行控制,則GATE0。定時(shí)器計(jì)數(shù)器。定時(shí)器計(jì)數(shù)器0不不用,有關(guān)位設(shè)定為用,有關(guān)位設(shè)定為0。因此。因此TMOD
19、寄存器應(yīng)初始化為寄存器應(yīng)初始化為00H。(3)由定時(shí)器控制寄存器由定時(shí)器控制寄存器TCON中的中的TR1位控制定時(shí)的啟動(dòng)和停止:位控制定時(shí)的啟動(dòng)和停止:TR11啟動(dòng),啟動(dòng),TR10停止停止(4)程序設(shè)計(jì)程序設(shè)計(jì)MOVTMOD,#00HMOVTH1,#0FEHMOVTL1,#0EHSETBTR1LOOP1: JBCTF1,LOOP2SJMPLOOP1LOOP2: MOVTL1,#0EHMOVTH1,#0FEHCLRTF1CPLP1.0SJMPLOOP1在方式在方式1下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是: 165536(216 ) 216計(jì)數(shù)初值計(jì)數(shù)初值計(jì)數(shù)的脈沖
20、數(shù)計(jì)數(shù)的脈沖數(shù)定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為: (216一一計(jì)數(shù)初值計(jì)數(shù)初值)晶振周期晶振周期12 定時(shí)時(shí)間定時(shí)時(shí)間 或或(216一一計(jì)數(shù)初值計(jì)數(shù)初值)機(jī)器周期機(jī)器周期定時(shí)時(shí)間定時(shí)時(shí)間若晶振頻率為若晶振頻率為6MHz ,1個(gè)機(jī)器周期為個(gè)機(jī)器周期為1/6 x 10-6 x12=2s則最小定時(shí)時(shí)間為:則最小定時(shí)時(shí)間為: 最大定時(shí)時(shí)間為:最大定時(shí)時(shí)間為:216 (216 -1) x2s=2s216 0 x2s=131072s =131.072ms例例2:設(shè)單片機(jī)晶振頻率設(shè)單片機(jī)晶振頻率Fosc12MHz,使用定時(shí)器,使用定時(shí)器0以方式以方式1產(chǎn)生周期為產(chǎn)生
21、周期為2S的等寬正方波脈沖,并由的等寬正方波脈沖,并由P1.0輸出。輸出。以查詢方式完成。以查詢方式完成。 (1)計(jì)算計(jì)數(shù)初值計(jì)算計(jì)數(shù)初值 設(shè)待求的計(jì)數(shù)初值為設(shè)待求的計(jì)數(shù)初值為x,則:,則: (216x)1s 50000s ,求解得:,求解得: x15536D3CB0H。即。即TH03CH;TL0B0H。(2) TMOD寄存器初始化寄存器初始化 TMOD00000001B(3)程序設(shè)計(jì)程序設(shè)計(jì)ATART:MOVR2,#20MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBTR0LOOP1: JBCTF0,LOOP2SJMPLOOP1LOOP2:MOVTL0,#0B0
22、HMOVTH0,#3CHDJNZR2,LOOP1CPLP1.0MOVR2,#20SJMPLOOP1在方式在方式2下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是: 1256(28 ) 28計(jì)數(shù)初值計(jì)數(shù)初值計(jì)數(shù)的脈沖數(shù)計(jì)數(shù)的脈沖數(shù)定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為: (28一一計(jì)數(shù)初值計(jì)數(shù)初值)晶振周期晶振周期12 定時(shí)時(shí)間定時(shí)時(shí)間 或或(28一一計(jì)數(shù)初值計(jì)數(shù)初值)機(jī)器周期機(jī)器周期定時(shí)時(shí)間定時(shí)時(shí)間若晶振頻率為若晶振頻率為6MHz, 1個(gè)機(jī)器周期為個(gè)機(jī)器周期為1/6 x 10-6 x12=2s則最小定時(shí)時(shí)間為:則最小定時(shí)時(shí)間為: 最大定
23、時(shí)時(shí)間為:最大定時(shí)時(shí)間為:28(28 -1) x 2s=2s28 0 x 2s=512s例例3:使用定時(shí)器使用定時(shí)器0以工作方式以工作方式2產(chǎn)生產(chǎn)生100s定時(shí),在定時(shí),在P1.0輸出周期為輸出周期為200s的連續(xù)方波。已知晶振頻率的連續(xù)方波。已知晶振頻率fosc6MHz。(1) 計(jì)算計(jì)數(shù)初值計(jì)算計(jì)數(shù)初值 6MHz晶振下,一個(gè)機(jī)器周期為晶振下,一個(gè)機(jī)器周期為2s,以,以TH0作重裝載的預(yù)置寄存器,作重裝載的預(yù)置寄存器,TL0作作8位計(jì)數(shù)器,假位計(jì)數(shù)器,假設(shè)計(jì)數(shù)初值為設(shè)計(jì)數(shù)初值為x。則:。則: (28x)2s100s求解得:求解得: X206D11001110BCEH把把CEH分別裝入分別裝入T
24、H0和和TL0中:中: TH0CEH,TL0CEHTMOD寄存器初始化寄存器初始化(2)定時(shí)器計(jì)數(shù)器)定時(shí)器計(jì)數(shù)器0為工作方式為工作方式2,MlM010;為實(shí)現(xiàn)定時(shí)功能;為實(shí)現(xiàn)定時(shí)功能 C/T=0; 依題意依題意GATE0;定時(shí)器計(jì)數(shù)器定時(shí)器計(jì)數(shù)器1不用,有關(guān)位設(shè)定為不用,有關(guān)位設(shè)定為0。綜上情況。綜上情況TMOD寄存器的狀態(tài)應(yīng)為寄存器的狀態(tài)應(yīng)為02H。(3)程序設(shè)計(jì))程序設(shè)計(jì)(查詢方式查詢方式) :MOVTMOD,#02HMOVTH0,#0CEHMOVTL0,#0CEHSETBTR0LOOP:JBCTF0,LOOP1SJMPLOOPLOOP1:CPLP1.0SJMPLOOP例例4:用定時(shí)器用
25、定時(shí)器l 以工作方式以工作方式2計(jì)數(shù),每計(jì)計(jì)數(shù),每計(jì)100次進(jìn)行累計(jì)器加次進(jìn)行累計(jì)器加1操作操作.(1)計(jì)算計(jì)數(shù)初值計(jì)算計(jì)數(shù)初值. 28100156D9CH TH19CH,TL19CHTMOD寄存器初始化:寄存器初始化:MlM010,CT1,GATE=0因此因此 TMOD60H(2)程序設(shè)計(jì)序設(shè)計(jì)程序設(shè)計(jì)序設(shè)計(jì)CLRAMOVTMOD,#60HMOVTH1,#9CHMOVTL1,#9CHSETBTR1DEL:JBCTF1,LOOPSJMPDELLOOP:INCASJMPDEL例例5: (應(yīng)用兩個(gè)定時(shí)器)(應(yīng)用兩個(gè)定時(shí)器)設(shè)重復(fù)周期大于設(shè)重復(fù)周期大于1ms的低頻脈沖信號(hào)從的低頻脈沖信號(hào)從P3.5引
26、腳(引腳(T1)輸入。要求)輸入。要求P3.5每發(fā)每發(fā)生生1次負(fù)跳變時(shí),次負(fù)跳變時(shí),P1.0輸出輸出1個(gè)個(gè)500s同步負(fù)脈沖,同時(shí)同步負(fù)脈沖,同時(shí)P1.1輸出輸出1個(gè)個(gè)1ms的同的同步正脈沖,其波形圖如下,設(shè)步正脈沖,其波形圖如下,設(shè)fosc6MHz。P3.5P1.0P1.11ms500s1ms計(jì)算計(jì)數(shù)初值:定時(shí)器計(jì)算計(jì)數(shù)初值:定時(shí)器T0定時(shí)定時(shí)500us,使用方式,使用方式2,T1用于計(jì)數(shù)用于計(jì)數(shù)1個(gè)脈沖(每一個(gè)脈沖(每一次負(fù)跳變發(fā)生一次變化)次負(fù)跳變發(fā)生一次變化)因此同時(shí)使用兩個(gè)定時(shí)計(jì)數(shù)器,因此同時(shí)使用兩個(gè)定時(shí)計(jì)數(shù)器,T0: (28-x)2us500us x=6D=06H TH006H,T
27、L006HT1: X=28-1 X=255D=0FFH TH1=0FFH, TL1=0FFHT0用于定時(shí)用于定時(shí)CT0 ,方式,方式2 M1 M010 ,GATE=0 T1用于計(jì)數(shù)用于計(jì)數(shù)CT1 ,方式,方式2 M1 M010 ,GATE=0 TMOD寄存器初始化:寄存器初始化: TMOD62HORG 0030HSTART1: MOV TMOD,#62HMOV TH0,#06H ;T0,定時(shí),定時(shí)500usMOV TL0,#06HMOV TH1,#0FFH; T1, 計(jì)數(shù)一個(gè)脈計(jì)數(shù)一個(gè)脈沖沖MOV TL1,#0FFHSETB P1.0 CLR P1.1 SETB TR1 ; 啟動(dòng)啟動(dòng)T 1LP
28、1:JBC TF1,NEX1 SJMP LP1NEX1: CLR P1.0SETBP1.1 SETB TR0 ; 啟動(dòng)啟動(dòng)T 0LP2:JBC TF0,NEX2;定時(shí);定時(shí)500usSJMP LP2NEX2:SETB P1.0LP3:JBC TF0,NEX3SJMP LP3NEX3:CLR P1.1 ;定定2次次500us共共1msCLR TR0 ;T0停止工作停止工作AJMP LP1P3.5P1.0P1.11ms500s1ms例例6:利用定時(shí)器利用定時(shí)器0控制產(chǎn)生周期為控制產(chǎn)生周期為2ms和和100ms的方波信號(hào),分別的方波信號(hào),分別由由P1.0和和P1.1引腳輸出,引腳輸出,采用中斷方式采用中斷方式。系統(tǒng)時(shí)鐘為。系統(tǒng)時(shí)鐘為12MHz。分析:方波為分析:方波為2ms,定時(shí)時(shí)間為,定時(shí)時(shí)間為1ms。 機(jī)器周期為機(jī)器周期為1s,采用方式,采用方式0,則計(jì)數(shù)初值為,則計(jì)數(shù)初值為 X=213-1000=7192=1110000011000B TH0=E0H,TL0=18H 方波為方波為100ms,定時(shí)時(shí)間為,定時(shí)時(shí)間為50ms,可采用,可采用50次次1ms定
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省遂寧二中2025屆高一下化學(xué)期末調(diào)研模擬試題含解析
- 2025屆湖南省長(zhǎng)沙市鐵路第一中學(xué)高一下化學(xué)期末監(jiān)測(cè)試題含解析
- 江蘇省泰州市姜堰區(qū)2025屆高一化學(xué)第二學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 歌迷營(yíng)銷活動(dòng)方案
- 畢業(yè)氛圍活動(dòng)方案
- 河南聯(lián)通助老活動(dòng)方案
- 泉州團(tuán)建活動(dòng)策劃方案
- 油畫(huà)營(yíng)銷活動(dòng)方案
- 植物參賽活動(dòng)方案
- 汽車踩輪胎活動(dòng)方案
- 穿越華裾-中華服飾之美智慧樹(shù)知到期末考試答案2024年
- 咳喘疾病中氣道重塑的機(jī)制及治療靶點(diǎn)研究
- 藥店人際關(guān)系建設(shè)與溝通技巧培訓(xùn)
- 機(jī)電安裝質(zhì)量檢測(cè)報(bào)告
- 30道醫(yī)院眼科醫(yī)生崗位高頻面試問(wèn)題附考察點(diǎn)及參考回答
- 北師大版數(shù)學(xué)小學(xué)二年級(jí)下冊(cè)期末無(wú)紙筆化檢測(cè)題
- 利盟ms823dn維修手冊(cè)
- 形式發(fā)票樣本
- 直流電動(dòng)機(jī)雙閉環(huán)調(diào)速系統(tǒng)MATLAB仿真實(shí)驗(yàn)報(bào)告
- 肥胖幼兒個(gè)案跟蹤觀察記錄表
- UPS跳切試驗(yàn)報(bào)告
評(píng)論
0/150
提交評(píng)論