




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第6 6章章 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器6.1 定時(shí)器定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)與定時(shí)計(jì)數(shù)器的計(jì)數(shù)與定時(shí)6.2 定時(shí)器定時(shí)器/計(jì)數(shù)器的控制計(jì)數(shù)器的控制6.3 定時(shí)器定時(shí)器/計(jì)數(shù)器的編程計(jì)數(shù)器的編程6.4 定時(shí)器定時(shí)器/計(jì)數(shù)器的工作方式計(jì)數(shù)器的工作方式6.5 定時(shí)器定時(shí)器/計(jì)數(shù)器的綜合應(yīng)用舉例計(jì)數(shù)器的綜合應(yīng)用舉例第第6 6章章 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器定時(shí)器定時(shí)器/ /計(jì)數(shù)器與計(jì)數(shù)器與CPUCPU并行工作,實(shí)現(xiàn)定時(shí)并行工作,實(shí)現(xiàn)定時(shí)/ /計(jì)數(shù)功能,計(jì)數(shù)功能,并以定時(shí)并以定時(shí)/ /計(jì)數(shù)的結(jié)果對(duì)單片機(jī)系統(tǒng)進(jìn)行控制。本章主要計(jì)數(shù)的結(jié)果對(duì)單片機(jī)系統(tǒng)進(jìn)行控制。本章主要介紹介紹MCS-51MCS-51
2、系列單片機(jī)定時(shí)器系列單片機(jī)定時(shí)器/ /計(jì)數(shù)器的控制方法、工作計(jì)數(shù)器的控制方法、工作方式、簡(jiǎn)單應(yīng)用。方式、簡(jiǎn)單應(yīng)用。6.1 6.1 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的計(jì)數(shù)與定時(shí)計(jì)數(shù)器的計(jì)數(shù)與定時(shí)MCS-51MCS-51系列單片機(jī)定時(shí)器系列單片機(jī)定時(shí)器/ /計(jì)數(shù)器的功能是用以實(shí)現(xiàn)定計(jì)數(shù)器的功能是用以實(shí)現(xiàn)定時(shí)、計(jì)數(shù),并以定時(shí)、計(jì)數(shù)的結(jié)果進(jìn)行控制。時(shí)、計(jì)數(shù),并以定時(shí)、計(jì)數(shù)的結(jié)果進(jìn)行控制。80518051內(nèi)部有兩個(gè)內(nèi)部有兩個(gè)1616位可編程的定時(shí)器位可編程的定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0和和T1T1。T0T0(T1T1)由兩個(gè))由兩個(gè)8 8位寄存器位寄存器TH0TH0(TH1TH1)和)和TL0TL0(TL1
3、TL1)拼裝)拼裝而成。其中而成。其中TH0TH0(TH1TH1)為高)為高8 8位,位,TL1TL1(TH1TH1)為低)為低8 8位。位。T0T0和和T1T1有有定時(shí)和計(jì)數(shù)定時(shí)和計(jì)數(shù)兩種工作模式。兩種工作模式。圖圖6-16-1是是MCS-51MCS-51系列單片機(jī)定時(shí)器系列單片機(jī)定時(shí)器/ /計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)圖。計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)圖。6.1 6.1 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的計(jì)數(shù)與定時(shí)計(jì)數(shù)器的計(jì)數(shù)與定時(shí)6.1.1 6.1.1 計(jì)數(shù)計(jì)數(shù)計(jì)數(shù)就是對(duì)來(lái)自單片機(jī)外部的事件進(jìn)行計(jì)數(shù),為了與請(qǐng)求中斷的計(jì)數(shù)就是對(duì)來(lái)自單片機(jī)外部的事件進(jìn)行計(jì)數(shù),為了與請(qǐng)求中斷的外部事件區(qū)分開(kāi),稱(chēng)此種外部事件為外部計(jì)數(shù)事件。外部
4、計(jì)數(shù)事件由外部事件區(qū)分開(kāi),稱(chēng)此種外部事件為外部計(jì)數(shù)事件。外部計(jì)數(shù)事件由脈沖引入,單片機(jī)的脈沖引入,單片機(jī)的P3.4P3.4(T0T0)和)和P3.5P3.5(T1T1)即為外部計(jì)數(shù)脈沖的輸)即為外部計(jì)數(shù)脈沖的輸入端。所謂計(jì)數(shù),就是對(duì)有效計(jì)數(shù)脈沖的計(jì)數(shù)。入端。所謂計(jì)數(shù),就是對(duì)有效計(jì)數(shù)脈沖的計(jì)數(shù)。注意:注意:5151系列單片機(jī)的兩個(gè)定時(shí)器系列單片機(jī)的兩個(gè)定時(shí)器/ /計(jì)數(shù)器采用加法計(jì)數(shù)結(jié)構(gòu)。計(jì)數(shù)器采用加法計(jì)數(shù)結(jié)構(gòu)。單片機(jī)在每個(gè)機(jī)器周期對(duì)單片機(jī)在每個(gè)機(jī)器周期對(duì)P3.4P3.4(T0T0)和)和P3.5P3.5(T1T1)進(jìn)行采樣,若)進(jìn)行采樣,若在一個(gè)機(jī)器周期采樣到高電平,在下一個(gè)機(jī)器周期采樣到低電平
5、,即在一個(gè)機(jī)器周期采樣到高電平,在下一個(gè)機(jī)器周期采樣到低電平,即得到一個(gè)有效的計(jì)數(shù)脈沖。計(jì)數(shù)寄存器在下一個(gè)機(jī)器周期自動(dòng)加得到一個(gè)有效的計(jì)數(shù)脈沖。計(jì)數(shù)寄存器在下一個(gè)機(jī)器周期自動(dòng)加1 1。6.1.2 6.1.2 定時(shí)定時(shí)MCS-51MCS-51系列單片機(jī)中的計(jì)數(shù)器除了可以作為計(jì)數(shù)之用外,系列單片機(jī)中的計(jì)數(shù)器除了可以作為計(jì)數(shù)之用外,還可以用作時(shí)鐘完成定時(shí)功能。定時(shí)就是對(duì)來(lái)自單片機(jī)內(nèi)還可以用作時(shí)鐘完成定時(shí)功能。定時(shí)就是對(duì)來(lái)自單片機(jī)內(nèi)部的計(jì)數(shù)脈沖進(jìn)行計(jì)數(shù)。部的計(jì)數(shù)脈沖進(jìn)行計(jì)數(shù)。注意:在定時(shí)模式下,注意:在定時(shí)模式下,5151系列單片機(jī)的計(jì)數(shù)源是晶振的系列單片機(jī)的計(jì)數(shù)源是晶振的1212分頻產(chǎn)生的脈沖。分頻
6、產(chǎn)生的脈沖。6.2.1 6.2.1 定時(shí)方式寄存器定時(shí)方式寄存器TMODTMOD定時(shí)方式寄存器定時(shí)方式寄存器TMODTMOD是單片機(jī)專(zhuān)門(mén)用來(lái)控制兩個(gè)定時(shí)器是單片機(jī)專(zhuān)門(mén)用來(lái)控制兩個(gè)定時(shí)器/ /計(jì)數(shù)器的工作方式的寄存器。這個(gè)寄存器的各位定義如計(jì)數(shù)器的工作方式的寄存器。這個(gè)寄存器的各位定義如下:下:6.2.1 6.2.1 定時(shí)方式寄存器定時(shí)方式寄存器TMODTMOD下面介紹與定時(shí)器下面介紹與定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0相關(guān)的相關(guān)的TMODTMOD的低的低4 4位。位。GATEGATE門(mén)控位。由圖門(mén)控位。由圖6-26-2可以看出,可以看出,GATE=0GATE=0時(shí),由時(shí),由TR0TR0來(lái)啟動(dòng)定時(shí)
7、來(lái)啟動(dòng)定時(shí)/ /計(jì)數(shù);計(jì)數(shù);GATE=1GATE=1時(shí),由時(shí),由TR0TR0和(和(P3.2P3.2)共同啟動(dòng)定時(shí))共同啟動(dòng)定時(shí)/ /計(jì)數(shù),只有當(dāng)二者同計(jì)數(shù),只有當(dāng)二者同時(shí)為時(shí)為1 1時(shí)才進(jìn)行計(jì)數(shù)操作。時(shí)才進(jìn)行計(jì)數(shù)操作。 定時(shí)定時(shí)/ /計(jì)數(shù)模式選擇位。計(jì)數(shù)模式選擇位。 =0=0時(shí),處于定時(shí)模式,內(nèi)部計(jì)數(shù)脈沖是對(duì)晶振進(jìn)行時(shí),處于定時(shí)模式,內(nèi)部計(jì)數(shù)脈沖是對(duì)晶振進(jìn)行1212分頻分頻產(chǎn)生的;產(chǎn)生的; =1=1時(shí),處于計(jì)數(shù)模式,外部計(jì)數(shù)脈沖由時(shí),處于計(jì)數(shù)模式,外部計(jì)數(shù)脈沖由T0T0(P3.4P3.4)引入。)引入。6.2.1 6.2.1 定時(shí)方式寄存器定時(shí)方式寄存器TMODTMODM1M1、M0M0工作
8、方式選擇位。工作方式選擇位。M1M1、M0M0與定時(shí)器與定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0的四種工作方式有下面的對(duì)的四種工作方式有下面的對(duì)應(yīng)關(guān)系:應(yīng)關(guān)系:0000工作方式工作方式0 00101工作方式工作方式1 11010工作方式工作方式2 21111工作方式工作方式3 36.2.1 6.2.1 定時(shí)方式寄存器定時(shí)方式寄存器TMODTMODTMODTMOD對(duì)定時(shí)器對(duì)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T1T1的控制與對(duì)的控制與對(duì)T0T0的控制類(lèi)似,此的控制類(lèi)似,此時(shí),門(mén)控位時(shí),門(mén)控位GATEGATE所控制的定時(shí)所控制的定時(shí)/ /計(jì)數(shù)啟動(dòng)由計(jì)數(shù)啟動(dòng)由TR1TR1和(和(P3.3P3.3)共同參與完成。共同參與
9、完成。TMODTMOD對(duì)定時(shí)器對(duì)定時(shí)器/ /計(jì)數(shù)器的控制由軟件進(jìn)行設(shè)定,大大提計(jì)數(shù)器的控制由軟件進(jìn)行設(shè)定,大大提高了控制的靈活性。高了控制的靈活性。6.2.2 6.2.2 定時(shí)控制寄存器定時(shí)控制寄存器TCONTCON定時(shí)控制寄存器定時(shí)控制寄存器TCONTCON既參與中斷控制又參與定時(shí)控制。既參與中斷控制又參與定時(shí)控制。此處只對(duì)與定時(shí)控制功能有關(guān)的控制位進(jìn)行回顧。此處只對(duì)與定時(shí)控制功能有關(guān)的控制位進(jìn)行回顧。6.2.2 6.2.2 定時(shí)控制寄存器定時(shí)控制寄存器TCONTCONTCONTCON的高四位進(jìn)行定時(shí)的高四位進(jìn)行定時(shí)/ /計(jì)數(shù)控制計(jì)數(shù)控制TF0TF0(TCON.5TCON.5)定時(shí)器定時(shí)器/
10、 /計(jì)數(shù)器計(jì)數(shù)器T0T0的溢出中斷標(biāo)志位,當(dāng)?shù)囊绯鲋袛鄻?biāo)志位,當(dāng)T0T0定定時(shí)(或計(jì)數(shù))結(jié)束時(shí),由硬件自動(dòng)置時(shí)(或計(jì)數(shù))結(jié)束時(shí),由硬件自動(dòng)置1 1。TF1TF1(TCON.7TCON.7)定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T1T1的溢出中斷標(biāo)志位,當(dāng)?shù)囊绯鲋袛鄻?biāo)志位,當(dāng)T1T1定定時(shí)(或計(jì)數(shù))結(jié)束時(shí),由硬件自動(dòng)置時(shí)(或計(jì)數(shù))結(jié)束時(shí),由硬件自動(dòng)置1 1。TR0TR0(TCON.4TCON.4)定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0的啟動(dòng)停止控制位,由軟件的啟動(dòng)停止控制位,由軟件設(shè)定。設(shè)定。TR0=0TR0=0,停止,停止T0T0定時(shí)(或計(jì)數(shù));定時(shí)(或計(jì)數(shù));TR0=1TR0=1,啟動(dòng),啟動(dòng)T0T0
11、定時(shí)(或計(jì)定時(shí)(或計(jì)數(shù))。數(shù))。TR1TR1(TCON.6TCON.6)定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T1T1的啟動(dòng)停止控制位,由軟件的啟動(dòng)停止控制位,由軟件進(jìn)行設(shè)定。進(jìn)行設(shè)定。TR1=0TR1=0,停止,停止T1T1定時(shí)(或計(jì)數(shù));定時(shí)(或計(jì)數(shù));TR1=1TR1=1,啟動(dòng),啟動(dòng)T1T1定時(shí)(或定時(shí)(或計(jì)數(shù))。計(jì)數(shù))。6.2.3 6.2.3 定時(shí)器定時(shí)器/ /計(jì)數(shù)器工作原理計(jì)數(shù)器工作原理定時(shí)器定時(shí)器/ /計(jì)數(shù)器工作原理如圖計(jì)數(shù)器工作原理如圖6-26-2所示。所示。6.2.3 6.2.3 定時(shí)器定時(shí)器/ /計(jì)數(shù)器工作原理計(jì)數(shù)器工作原理當(dāng)當(dāng) =0=0時(shí),為定時(shí)工作模式,計(jì)數(shù)脈沖是晶振的時(shí),為定時(shí)
12、工作模式,計(jì)數(shù)脈沖是晶振的1212分頻。分頻。當(dāng)當(dāng) =1=1時(shí),為計(jì)數(shù)工作模式,外部計(jì)數(shù)脈沖由時(shí),為計(jì)數(shù)工作模式,外部計(jì)數(shù)脈沖由TiTi(P3.P3.(i+4i+4)引入。)引入。6.2.3 6.2.3 定時(shí)器定時(shí)器/ /計(jì)數(shù)器工作原理計(jì)數(shù)器工作原理當(dāng)當(dāng)GATE=0GATE=0時(shí),或門(mén)輸出為高電平,與引腳(時(shí),或門(mén)輸出為高電平,與引腳(P3.P3.(2+i2+i)無(wú)關(guān)。此時(shí)與門(mén)的輸出僅由無(wú)關(guān)。此時(shí)與門(mén)的輸出僅由TRiTRi決定。決定。TRi=1TRi=1,與門(mén)輸出高,與門(mén)輸出高電平,接通模擬控制開(kāi)關(guān),引入計(jì)數(shù)脈沖,進(jìn)行定時(shí)電平,接通模擬控制開(kāi)關(guān),引入計(jì)數(shù)脈沖,進(jìn)行定時(shí)/ /計(jì)計(jì)數(shù)操作。數(shù)操作。
13、TRi=0TRi=0,與門(mén)輸出低電平,斷開(kāi)模擬控制開(kāi)關(guān),與門(mén)輸出低電平,斷開(kāi)模擬控制開(kāi)關(guān),定時(shí)定時(shí)/ /計(jì)數(shù)停止。計(jì)數(shù)停止。6.2.3 6.2.3 定時(shí)器定時(shí)器/ /計(jì)數(shù)器工作原理計(jì)數(shù)器工作原理當(dāng)當(dāng)GATE=1GATE=1時(shí),或門(mén)的輸出由引腳時(shí),或門(mén)的輸出由引腳 (P3.P3.(2+i2+i)決定,因此與門(mén)的輸出由)決定,因此與門(mén)的輸出由TRiTRi和引腳和引腳(P3.P3.(2+i2+i)共同決定。若)共同決定。若TRi=1TRi=1,而,而 (P3.P3.(2+i2+i)為高電平,則與門(mén)輸出高電平,接通模擬控制開(kāi)關(guān),進(jìn)行為高電平,則與門(mén)輸出高電平,接通模擬控制開(kāi)關(guān),進(jìn)行定時(shí)定時(shí)/ /計(jì)數(shù);
14、若計(jì)數(shù);若TRi=1TRi=1,而(,而(P3.P3.(2+i2+i)為低電平,則定)為低電平,則定時(shí)時(shí)/ /計(jì)數(shù)停止。計(jì)數(shù)停止。6.2.3 6.2.3 定時(shí)器定時(shí)器/ /計(jì)數(shù)器工作原理計(jì)數(shù)器工作原理當(dāng)模擬控制開(kāi)關(guān)接通時(shí),計(jì)數(shù)寄存器在計(jì)數(shù)脈沖的作用當(dāng)模擬控制開(kāi)關(guān)接通時(shí),計(jì)數(shù)寄存器在計(jì)數(shù)脈沖的作用下進(jìn)行增下進(jìn)行增1 1計(jì)數(shù),當(dāng)計(jì)數(shù)溢出時(shí)向計(jì)數(shù)溢出標(biāo)志位計(jì)數(shù),當(dāng)計(jì)數(shù)溢出時(shí)向計(jì)數(shù)溢出標(biāo)志位TFiTFi進(jìn)位。進(jìn)位。6.3.1 6.3.1 中斷方式中斷方式定時(shí)器定時(shí)器/ /計(jì)數(shù)器在中斷方式下的編程步驟如下:計(jì)數(shù)器在中斷方式下的編程步驟如下:(1 1)開(kāi)中斷)開(kāi)中斷(2 2)設(shè)置中斷優(yōu)先級(jí))設(shè)置中斷優(yōu)先級(jí)
15、 (3 3)TMODTMOD初始化初始化(4 4)設(shè)置定時(shí))設(shè)置定時(shí)/ /計(jì)數(shù)初值計(jì)數(shù)初值(5 5)啟動(dòng)定時(shí))啟動(dòng)定時(shí)/ /計(jì)數(shù)計(jì)數(shù)(6 6)編寫(xiě)定時(shí))編寫(xiě)定時(shí)/ /計(jì)數(shù)中斷處理程序計(jì)數(shù)中斷處理程序6.3.2 6.3.2 查詢(xún)方式查詢(xún)方式定時(shí)器定時(shí)器/ /計(jì)數(shù)器在查詢(xún)方式下的編程步驟如下:計(jì)數(shù)器在查詢(xún)方式下的編程步驟如下:(1 1)關(guān)中斷)關(guān)中斷(2 2)TMODTMOD初始化初始化(3 3)設(shè)置定時(shí))設(shè)置定時(shí)/ /計(jì)數(shù)初值計(jì)數(shù)初值(4 4)啟動(dòng)定時(shí))啟動(dòng)定時(shí)/ /計(jì)數(shù)計(jì)數(shù)(5 5)查詢(xún))查詢(xún)TFiTFi及相關(guān)處理及相關(guān)處理6.4 6.4 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的工作方式計(jì)數(shù)器的工作方式定時(shí)
16、器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0和和T1T1在方式在方式0 0下的工作情況完全相同。此時(shí)下的工作情況完全相同。此時(shí)的計(jì)數(shù)寄存器為的計(jì)數(shù)寄存器為1313位,構(gòu)成如下:位,構(gòu)成如下:方式方式0 0下的計(jì)數(shù)溢出值為下的計(jì)數(shù)溢出值為81928192(213213)。則:)。則:計(jì)數(shù)次數(shù)計(jì)數(shù)次數(shù)=8192-=8192-計(jì)數(shù)初值計(jì)數(shù)初值 (公式(公式6-16-1)定時(shí)時(shí)間定時(shí)時(shí)間= =(8192-8192-計(jì)數(shù)初值)計(jì)數(shù)初值)機(jī)器周期機(jī)器周期(公式(公式6-26-2)6.4.1 6.4.1 工作方式工作方式0 0方式方式0 0沒(méi)有充分利用沒(méi)有充分利用1616位計(jì)數(shù)寄存器的計(jì)數(shù)范圍,這是位計(jì)數(shù)寄存器的計(jì)數(shù)
17、范圍,這是為了與為了與MCS-48MCS-48系列單片機(jī)兼容。系列單片機(jī)兼容。1313位的計(jì)數(shù)寄存器的初始位的計(jì)數(shù)寄存器的初始化有些煩瑣,步驟如下:化有些煩瑣,步驟如下:(1 1)由公式)由公式6-16-1和和6-26-2計(jì)算出十進(jìn)制的計(jì)數(shù)初值。計(jì)算出十進(jìn)制的計(jì)數(shù)初值。(2 2)若計(jì)數(shù)初值小于)若計(jì)數(shù)初值小于3232(2525),將其送入),將其送入TLiTLi,將,將0 0送送入入THiTHi,完成計(jì)數(shù)寄存器初始化。,完成計(jì)數(shù)寄存器初始化。(3 3)若計(jì)數(shù)初值不小于)若計(jì)數(shù)初值不小于3232,先將其轉(zhuǎn)化為二進(jìn)制形式。,先將其轉(zhuǎn)化為二進(jìn)制形式。補(bǔ)足補(bǔ)足1313位后,將低位后,將低5 5位送入位
18、送入TLiTLi,將高,將高8 8位送入位送入THiTHi,完成計(jì),完成計(jì)數(shù)寄存器初始化。數(shù)寄存器初始化。6.4.1 6.4.1 工作方式工作方式0 0【例例6-16-1】 設(shè)設(shè)fOSC=6MHzfOSC=6MHz,定時(shí)器,定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0以工作方式以工作方式0 0定時(shí)定時(shí)2ms2ms,編寫(xiě)初始化程序。,編寫(xiě)初始化程序。說(shuō)明:說(shuō)明:fOSCfOSC即為晶振頻率。即為晶振頻率。首先計(jì)算計(jì)數(shù)初值。首先計(jì)算計(jì)數(shù)初值。 根據(jù)公式根據(jù)公式6-26-2有:有:定時(shí)時(shí)間定時(shí)時(shí)間= =(8192-8192-計(jì)數(shù)初值)計(jì)數(shù)初值)12fOSC12fOSC計(jì)數(shù)初值計(jì)數(shù)初值=8192-=8192-定時(shí)
19、時(shí)間定時(shí)時(shí)間fOSC/12fOSC/12 =8192-2000 =8192-20006MHz/126MHz/12 =7192 =7192 =0E018H=11100000 11000B =0E018H=11100000 11000B6.4.1 6.4.1 工作方式工作方式0 0設(shè)置設(shè)置TMODTMOD。對(duì)。對(duì)T0T0的工作方式進(jìn)行選擇,因此設(shè)置的工作方式進(jìn)行選擇,因此設(shè)置TMODTMOD的的低低4 4位。位。定時(shí),定時(shí), 為為0 0;方式方式0 0,M1M0M1M0的組合為的組合為0000;與外部脈沖無(wú)關(guān),與外部脈沖無(wú)關(guān),GATEGATE為為0 0。初始化程序如下:初始化程序如下: MOV T
20、MOD MOV TMOD,#00H#00H ;設(shè)置;設(shè)置TMODTMOD MOV TH0 MOV TH0,#0E0H#0E0H ;設(shè)置計(jì)數(shù)初值;設(shè)置計(jì)數(shù)初值 MOV TL0MOV TL0,#18H#18H SETB TR0 SETB TR0 ;啟動(dòng)定時(shí);啟動(dòng)定時(shí)6.4.1 6.4.1 工作方式工作方式0 0【例例6-26-2】設(shè)設(shè)fosc=6MHzfosc=6MHz,定時(shí)器,定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1以工作方式以工作方式0 0實(shí)現(xiàn)在實(shí)現(xiàn)在P2P2口口8 8個(gè)引腳產(chǎn)生頻率為個(gè)引腳產(chǎn)生頻率為250Hz250Hz的等寬方波。的等寬方波。光 盤(pán) 提 供光 盤(pán) 提 供 P r o t e u sP
21、r o t e u s 仿 真 文 件仿 真 文 件 , , 運(yùn) 行 仿 真 文 件 夾運(yùn) 行 仿 真 文 件 夾 第第 6 6 章章LT6_2LT6_2.DSN LT6_2LT6_2.DSN ,觀(guān)察運(yùn)行結(jié)果,并進(jìn)一步分析源程序。,觀(guān)察運(yùn)行結(jié)果,并進(jìn)一步分析源程序。圖圖6-3 P2.X6-3 P2.X引腳輸出的方波(仿真截圖)引腳輸出的方波(仿真截圖)6.4.1 6.4.1 工作方式工作方式0 0(1 1)首先計(jì)算定時(shí)時(shí)間。)首先計(jì)算定時(shí)時(shí)間。方波頻率為方波頻率為250Hz250Hz,則周期為,則周期為4ms4ms。即。即P2P2口口8 8個(gè)引腳每個(gè)引腳每2ms2ms取反一次,定時(shí)時(shí)間為取反一
22、次,定時(shí)時(shí)間為2ms2ms。(2 2)計(jì)算計(jì)數(shù)初值。)計(jì)算計(jì)數(shù)初值。如例如例6-16-1所述,計(jì)數(shù)初值為所述,計(jì)數(shù)初值為=0E018H=11100000 11000B=0E018H=11100000 11000B(3 3)設(shè)置)設(shè)置TMODTMOD。對(duì)。對(duì)T1T1的工作方式進(jìn)行選擇,因此設(shè)置的工作方式進(jìn)行選擇,因此設(shè)置TMODTMOD的高的高4 4位。位。6.4.1 6.4.1 工作方式工作方式0 0定時(shí),定時(shí), 為為0 0;方式方式0 0,M1M0M1M0的組合為的組合為0000;與外部脈沖無(wú)關(guān),與外部脈沖無(wú)關(guān),GATEGATE為為0 0。(4 4)編制程序(中斷方式)如下:)編制程序(中斷
23、方式)如下: ORG 0000HORG 0000H LJMP MAIN LJMP MAIN ORG 001BH ORG 001BH AJMP SFT1 AJMP SFT1 ORG 0050H ORG 0050HMAIN: MOV A,#00HMAIN: MOV A,#00H6.4.1 6.4.1 工作方式工作方式0 0 SETB EA SETB EA ; ;開(kāi)中斷開(kāi)中斷 SETB ET1SETB ET1 MOV IP,#0 MOV IP,#0 ; ;設(shè)置中斷優(yōu)先級(jí)設(shè)置中斷優(yōu)先級(jí) MOV TMOD,#00H MOV TMOD,#00H ; ;設(shè)置設(shè)置TMODTMOD,T1T1工作工作 ; ;方式
24、方式0 0,計(jì)時(shí),計(jì)時(shí) MOV TH1,#0E0H MOV TH1,#0E0H ; ;設(shè)置計(jì)數(shù)初值設(shè)置計(jì)數(shù)初值 MOV TL1,#18HMOV TL1,#18H SETB TR1 ; SETB TR1 ;啟動(dòng)定時(shí)啟動(dòng)定時(shí)6.4.1 6.4.1 工作方式工作方式0 0 SJMP $ SJMP $ ORG 0100H ORG 0100HSFT1: MOV TH1,#0E0H ;SFT1: MOV TH1,#0E0H ;重新設(shè)置計(jì)數(shù)初值重新設(shè)置計(jì)數(shù)初值 MOV TL1,#18HMOV TL1,#18H CPL A CPL A MOV P2,A MOV P2,A RETI RETI END END注意
25、:由于一次計(jì)數(shù)溢出時(shí)計(jì)數(shù)寄存器的內(nèi)容為注意:由于一次計(jì)數(shù)溢出時(shí)計(jì)數(shù)寄存器的內(nèi)容為0 0,在,在下次計(jì)數(shù)前需要重新為計(jì)數(shù)寄存器賦初值。下次計(jì)數(shù)前需要重新為計(jì)數(shù)寄存器賦初值。6.4.2 6.4.2 工作方式工作方式1 1定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0和和T1T1在方式在方式0 0下的工作情況完全相同。下的工作情況完全相同。此時(shí)的計(jì)數(shù)寄存器為此時(shí)的計(jì)數(shù)寄存器為1616位,構(gòu)成如下:位,構(gòu)成如下: 方式方式1 1下的計(jì)數(shù)溢出值為下的計(jì)數(shù)溢出值為6553665536(216216)。則:)。則:計(jì)數(shù)次數(shù)計(jì)數(shù)次數(shù)=65536-=65536-計(jì)數(shù)初值計(jì)數(shù)初值 (公式(公式6-36-3)定時(shí)時(shí)間定時(shí)時(shí)
26、間= =(65536-65536-計(jì)數(shù)初值)計(jì)數(shù)初值)機(jī)器周期(公式機(jī)器周期(公式6-46-4)6.4.2 6.4.2 工作方式工作方式1 1方式方式1 1利用了全部利用了全部1616位計(jì)數(shù)寄存器的計(jì)數(shù)范圍,計(jì)數(shù)寄位計(jì)數(shù)寄存器的計(jì)數(shù)范圍,計(jì)數(shù)寄存器的初始化步驟如下:存器的初始化步驟如下:(1 1)由公式)由公式6-36-3和和6-46-4計(jì)算出十進(jìn)制的計(jì)數(shù)初值。計(jì)算出十進(jìn)制的計(jì)數(shù)初值。(2 2)若計(jì)數(shù)初值小于)若計(jì)數(shù)初值小于256256(2828),將其送入),將其送入TLiTLi,將,將0 0送送入入THiTHi,完成計(jì)數(shù)寄存器初始化。,完成計(jì)數(shù)寄存器初始化。(3 3)若計(jì)數(shù)初值不小于)若計(jì)
27、數(shù)初值不小于256256,將其轉(zhuǎn)化為十六進(jìn)制形式,將其轉(zhuǎn)化為十六進(jìn)制形式,再將高低字節(jié)分別送入再將高低字節(jié)分別送入THiTHi和和TLiTLi,完成計(jì)數(shù)寄存器初始化。,完成計(jì)數(shù)寄存器初始化。6.4.2 6.4.2 工作方式工作方式1 1【例例6-36-3】設(shè)設(shè)fosc=12MHzfosc=12MHz,定時(shí)器,定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0以工作方式以工作方式1 1實(shí)現(xiàn)在實(shí)現(xiàn)在P2P2口口8 8個(gè)引腳產(chǎn)生頻率為個(gè)引腳產(chǎn)生頻率為250Hz250Hz的等寬方波。的等寬方波。光 盤(pán) 提 供光 盤(pán) 提 供 P r o t e u sP r o t e u s 仿 真 文 件仿 真 文 件 , , 運(yùn) 行
28、 仿 真 文 件 夾運(yùn) 行 仿 真 文 件 夾 第第 6 6 章章LT6_3LT6_3.DSN LT6_3LT6_3.DSN ,觀(guān)察運(yùn)行結(jié)果,并進(jìn)一步分析源程序。,觀(guān)察運(yùn)行結(jié)果,并進(jìn)一步分析源程序。圖圖6-4 P2.X6-4 P2.X引腳輸出的方波(仿真截圖)引腳輸出的方波(仿真截圖)6.4.2 6.4.2 工作方式工作方式1 1(1 1)首先計(jì)算定時(shí)時(shí)間。)首先計(jì)算定時(shí)時(shí)間。方波頻率為方波頻率為250Hz250Hz,則周期為,則周期為4ms4ms。即即P2P2口口8 8個(gè)引腳每個(gè)引腳每2ms2ms取反一次,定時(shí)時(shí)間為取反一次,定時(shí)時(shí)間為2ms2ms。計(jì)算計(jì)數(shù)初值。根據(jù)公式計(jì)算計(jì)數(shù)初值。根據(jù)公
29、式6-46-4有:有:定時(shí)時(shí)間定時(shí)時(shí)間 = =(65536-65536-計(jì)數(shù)初值)計(jì)數(shù)初值)12fOSC12fOSC計(jì)數(shù)初值計(jì)數(shù)初值 = 65536-= 65536-定時(shí)時(shí)間定時(shí)時(shí)間fOSC/12fOSC/12 = 65536-2000 = 65536-200012MHz/1212MHz/12 = 63536=0F8 30H = 63536=0F8 30H6.4.2 6.4.2 工作方式工作方式1 1(2 2)設(shè)置)設(shè)置TMODTMOD。對(duì)。對(duì)T0T0的工作方式進(jìn)行選擇,因此設(shè)置的工作方式進(jìn)行選擇,因此設(shè)置TMODTMOD的低的低4 4位。位。定時(shí),定時(shí), 為為0 0;方式方式1 1,M1M0
30、M1M0的組合為的組合為0101;與外部脈沖無(wú)關(guān),與外部脈沖無(wú)關(guān),GATEGATE為為0 0。(3 3)編制程序(查詢(xún)方式)如下:)編制程序(查詢(xún)方式)如下:ORGORG0000H0000HAJMPAJMPMAINMAIN6.4.2 6.4.2 工作方式工作方式1 1 ORG ORG 0050H0050HMAIN: MOV MAIN: MOV A,#00HA,#00H CLR CLR EA EA ; ;關(guān)中斷關(guān)中斷 MOV MOV TMOD,#01H ;TMOD,#01H ;設(shè)置設(shè)置TMODTMOD,T0T0工作方工作方 ; ;式式1 1,計(jì)時(shí),計(jì)時(shí) MOV MOV TH0,#0F8H ;TH
31、0,#0F8H ;設(shè)置計(jì)數(shù)初值設(shè)置計(jì)數(shù)初值 MOV MOV TL0,#30HTL0,#30H SETB SETB TR0 ;TR0 ;啟動(dòng)定時(shí)啟動(dòng)定時(shí)6.4.2 6.4.2 工作方式工作方式1 1WAIT: JNB WAIT: JNB TF0,WAITTF0,WAIT CLR CLR TF0 TF0 ; ;注意:將注意:將TF0TF0軟件清軟件清0 0 MOV MOV TH0,#0F8HTH0,#0F8H MOV MOV TL0,#30HTL0,#30H CPL CPL A A MOV MOV P2,AP2,A SJMP WAIT SJMP WAIT END END6.4.2 6.4.2 工作
32、方式工作方式1 1【例例6-46-4】 設(shè)設(shè)fOSC=6MHzfOSC=6MHz,編程實(shí)現(xiàn)以定時(shí)器,編程實(shí)現(xiàn)以定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0方式方式1 1定時(shí)控制在定時(shí)控制在P2P2口口8 8個(gè)引腳產(chǎn)生周期為個(gè)引腳產(chǎn)生周期為2s2s的方波。的方波。光 盤(pán) 提 供光 盤(pán) 提 供 P r o t e u sP r o t e u s 仿 真 文 件仿 真 文 件 , , 運(yùn) 行 仿 真 文 件 夾運(yùn) 行 仿 真 文 件 夾 第第 6 6 章章LT6_4LT6_4.DSN LT6_4LT6_4.DSN ,觀(guān)察運(yùn)行結(jié)果,并進(jìn)一步分析源程序。,觀(guān)察運(yùn)行結(jié)果,并進(jìn)一步分析源程序。圖圖6-5 P2.X6-
33、5 P2.X引腳輸出的方波(仿真截圖)引腳輸出的方波(仿真截圖)6.4.2 6.4.2 工作方式工作方式1 1(1 1)首先計(jì)算定時(shí)時(shí)間。方波周期為)首先計(jì)算定時(shí)時(shí)間。方波周期為2s2s。即即P2P2口口8 8個(gè)引腳每個(gè)引腳每1s1s取反一次,定時(shí)時(shí)間為取反一次,定時(shí)時(shí)間為1s1s。(2 2)計(jì)算計(jì)數(shù)初值。)計(jì)算計(jì)數(shù)初值。 根據(jù)公式根據(jù)公式6-46-4有:有:定時(shí)時(shí)間定時(shí)時(shí)間= =(65536-65536-計(jì)數(shù)初值)計(jì)數(shù)初值)12fOSC12fOSC計(jì)數(shù)初值計(jì)數(shù)初值=65536-=65536-定時(shí)時(shí)間定時(shí)時(shí)間fosc/12fosc/12 =6 =66MHz/126MHz/12 =65536-5
34、000000 =65536-50000006.4.2 6.4.2 工作方式工作方式1 1這里,計(jì)數(shù)初值大于計(jì)數(shù)溢出值,說(shuō)明定時(shí)不能一次完這里,計(jì)數(shù)初值大于計(jì)數(shù)溢出值,說(shuō)明定時(shí)不能一次完成??紤]到成??紤]到500000=50000500000=500001010,設(shè)一次計(jì)數(shù)次數(shù)為,設(shè)一次計(jì)數(shù)次數(shù)為5000050000,則則計(jì)數(shù)初值計(jì)數(shù)初值=65536-50000=15536=3C B0H=65536-50000=15536=3C B0H這樣的定時(shí)需要這樣的定時(shí)需要1010次才能完成題目要求,每次定時(shí)次才能完成題目要求,每次定時(shí)0.10.1秒。秒。6.4.2 6.4.2 工作方式工作方式1 1(3
35、 3)設(shè)置)設(shè)置TMODTMOD。對(duì)。對(duì)T0T0的工作方式進(jìn)行選擇,因此設(shè)置的工作方式進(jìn)行選擇,因此設(shè)置TMODTMOD的低的低4 4位。位。定時(shí),定時(shí), 為為0 0;方式方式0 0,M1M0M1M0的組合為的組合為0101;與外部脈沖無(wú)關(guān),與外部脈沖無(wú)關(guān),GATEGATE為為0 0。6.4.2 6.4.2 工作方式工作方式1 1(4 4)編制程序(中斷方式)如下:)編制程序(中斷方式)如下: ORGORG 0000H0000H AJMP AJMP MAINMAIN ORG ORG 000BH000BH AJMP AJMP SFT0SFT06.4.2 6.4.2 工作方式工作方式1 1 ORG
36、 0050H ORG 0050HMAIN: MOV A,#00HMAIN: MOV A,#00H SETB EA ; SETB EA ;開(kāi)中斷開(kāi)中斷 SETB ET0SETB ET0 MOV IP,#0 ; MOV IP,#0 ;設(shè)置中斷優(yōu)先級(jí)設(shè)置中斷優(yōu)先級(jí) MOV TMOD,#01H ;MOV TMOD,#01H ;設(shè)置設(shè)置TMODTMOD,T0T0工作工作 ; ;方式方式1 1,計(jì)時(shí),計(jì)時(shí) MOV TH0,#3CH ;MOV TH0,#3CH ;設(shè)置計(jì)數(shù)初值設(shè)置計(jì)數(shù)初值 MOV TL0,#0B0HMOV TL0,#0B0H MOV R7,#10 ; MOV R7,#10 ;設(shè)置定時(shí)次數(shù)設(shè)置
37、定時(shí)次數(shù) SETB TR0 ;SETB TR0 ;啟動(dòng)定時(shí)啟動(dòng)定時(shí)6.4.2 6.4.2 工作方式工作方式1 1 SJMP SJMP$ $ ORG ORG 0100H0100HSFT0: MOV SFT0: MOV TH0,#3CH ;TH0,#3CH ;注意:重新設(shè)置計(jì)數(shù)注意:重新設(shè)置計(jì)數(shù) ; ;初值初值 MOV MOV TL0,#0B0HTL0,#0B0H DJNZ DJNZ R7,WAIT ;R7,WAIT ;定時(shí)不夠定時(shí)不夠1s1s則等待則等待 MOV MOV R7,#10R7,#10 CPL A CPL A MOV MOV P2,AP2,AWAIT: RETIWAIT: RETI E
38、ND END6.4.2 6.4.2 工作方式工作方式1 1【例例6-56-5】設(shè)設(shè)fOSC=12MHzfOSC=12MHz,編程測(cè)試,編程測(cè)試 引入的外部引入的外部脈沖信號(hào)的高電平寬度(機(jī)器周期數(shù))。參看仿真文件:脈沖信號(hào)的高電平寬度(機(jī)器周期數(shù))。參看仿真文件:測(cè)脈寬測(cè)脈寬.DSN.DSN分析:分析:外部脈沖來(lái)自外部脈沖來(lái)自 ,應(yīng)由,應(yīng)由T0T0的外部控制電路進(jìn)行定的外部控制電路進(jìn)行定時(shí)。時(shí)。測(cè)試測(cè)試 的高電平寬度,即高電平時(shí)進(jìn)行定時(shí),低電平時(shí)的高電平寬度,即高電平時(shí)進(jìn)行定時(shí),低電平時(shí)停止定時(shí),應(yīng)設(shè)置停止定時(shí),應(yīng)設(shè)置T0T0的門(mén)控位的門(mén)控位GATEGATE為為1 1。6.4.2 6.4.2
39、工作方式工作方式1 1T0T0用來(lái)累加高電平的寬度,計(jì)數(shù)初值為用來(lái)累加高電平的寬度,計(jì)數(shù)初值為0 0,應(yīng)選擇計(jì)數(shù),應(yīng)選擇計(jì)數(shù)范圍大的工作方式,令其方式范圍大的工作方式,令其方式1 1定時(shí);定時(shí);編制程序(查詢(xún)方式)如下編制程序(查詢(xún)方式)如下 ORG ORG0000H0000H AJMP AJMPMAINMAIN ORG ORG0050H0050HMAIN: CLR EX0MAIN: CLR EX0 CLR CLRET0ET0 MOV MOVTMOD,#9 ;T0TMOD,#9 ;T0方式方式1 1,GateGate1 1 MOV MOVTH0,#0 ;TH0,#0 ;計(jì)數(shù)器清計(jì)數(shù)器清0 0
40、MOV MOVTL0,#0TL0,#06.4.2 6.4.2 工作方式工作方式1 1 CLR CLRET0ET0 MOV MOVTMOD,#9TMOD,#9 ;T0 ;T0方式方式1 1,GateGate1 1 MOV MOVTH0,#0 ;TH0,#0 ;計(jì)數(shù)器清計(jì)數(shù)器清0 0 MOV MOVTL0,#0TL0,#0W1: JB P3.2,W1 ;W1: JB P3.2,W1 ;讓過(guò)高電平讓過(guò)高電平 SETB TR0SETB TR0 ; ;啟動(dòng)定時(shí)計(jì)數(shù)啟動(dòng)定時(shí)計(jì)數(shù)6.4.2 6.4.2 工作方式工作方式1 1W2: W2: JNB P3.2,W2 ; JNB P3.2,W2 ;等候上升沿,自
41、動(dòng)啟動(dòng)計(jì)數(shù)等候上升沿,自動(dòng)啟動(dòng)計(jì)數(shù)W3:JB P3.2,W3 ;W3:JB P3.2,W3 ;定時(shí)計(jì)數(shù)定時(shí)計(jì)數(shù) CLR TR0 ;CLR TR0 ;停止定時(shí)計(jì)數(shù)停止定時(shí)計(jì)數(shù) MOV 30H,TL0 ;MOV 30H,TL0 ;將脈沖寬度存入在將脈沖寬度存入在31H31H、 ;30H;30H寄存器中寄存器中 MOV 31H,TH0MOV 31H,TH06.4.3 6.4.3 工作方式工作方式2 2由于每次定時(shí)由于每次定時(shí)/ /計(jì)數(shù)之后計(jì)數(shù)寄存器的內(nèi)容為計(jì)數(shù)之后計(jì)數(shù)寄存器的內(nèi)容為0 0,在下一,在下一次定時(shí)次定時(shí)/ /計(jì)數(shù)后都要進(jìn)行初值重載。在方式計(jì)數(shù)后都要進(jìn)行初值重載。在方式0 0和方式和方式1
42、 1中,中,初值重載是由軟件實(shí)現(xiàn)的。如果需要多次進(jìn)行定時(shí)初值重載是由軟件實(shí)現(xiàn)的。如果需要多次進(jìn)行定時(shí)/ /計(jì)數(shù),計(jì)數(shù),則需占用較多則需占用較多CPUCPU時(shí)間。時(shí)間。定時(shí)器定時(shí)器/ /計(jì)數(shù)器在方式計(jì)數(shù)器在方式2 2下可由硬件實(shí)現(xiàn)初值重載。下可由硬件實(shí)現(xiàn)初值重載。T0T0和和T1T1在方式在方式2 2下為下為8 8位定時(shí)器位定時(shí)器/ /計(jì)數(shù)器,二者的工作情計(jì)數(shù)器,二者的工作情況相同。由況相同。由TLiTLi充當(dāng)計(jì)數(shù)寄存器,由充當(dāng)計(jì)數(shù)寄存器,由THiTHi充當(dāng)初值重載寄存充當(dāng)初值重載寄存器,如圖器,如圖6-36-3所示。所示。6.4.3 6.4.3 工作方式工作方式2 2圖6-6 定時(shí)器/計(jì)數(shù)器方
43、式2下的初值重載6.4.3 6.4.3 工作方式工作方式2 2在方式在方式2 2下,當(dāng)?shù)拖?,?dāng)?shù)? 8位計(jì)數(shù)器產(chǎn)生計(jì)數(shù)溢出時(shí),一方面會(huì)位計(jì)數(shù)器產(chǎn)生計(jì)數(shù)溢出時(shí),一方面會(huì)把溢出信號(hào)寫(xiě)入把溢出信號(hào)寫(xiě)入TFiTFi,一方面會(huì)啟動(dòng),一方面會(huì)啟動(dòng)THiTHi自動(dòng)為自動(dòng)為T(mén)LiTLi賦初值。賦初值。方式方式2 2下的計(jì)數(shù)溢出值為下的計(jì)數(shù)溢出值為256256(2828)。則:)。則:計(jì)數(shù)次數(shù)計(jì)數(shù)次數(shù)=256-=256-計(jì)數(shù)初值計(jì)數(shù)初值 (公式(公式6-56-5)定時(shí)時(shí)間定時(shí)時(shí)間= =(256-256-計(jì)數(shù)初值)計(jì)數(shù)初值)機(jī)器周期機(jī)器周期 (公式(公式6-66-6)6.4.3 6.4.3 工作方式工作方式2 2
44、方式方式2 2只利用了低只利用了低8 8位計(jì)數(shù)寄存器,因此計(jì)數(shù)初值一定小位計(jì)數(shù)寄存器,因此計(jì)數(shù)初值一定小于于256256,計(jì)數(shù)器的初始化步驟如下:,計(jì)數(shù)器的初始化步驟如下:(1 1)由公式)由公式6-56-5和和6-66-6計(jì)算出十進(jìn)制的計(jì)數(shù)初值。計(jì)算出十進(jìn)制的計(jì)數(shù)初值。(2 2)將計(jì)數(shù)初值送入)將計(jì)數(shù)初值送入TLiTLi,也將其送入,也將其送入THiTHi,完成計(jì)數(shù),完成計(jì)數(shù)寄存器初始化。寄存器初始化。工作方式工作方式2 2通常用于波特率發(fā)生器(我們將在串行接口通常用于波特率發(fā)生器(我們將在串行接口中講解)。中講解)。注意:方式注意:方式2 2下計(jì)數(shù)初值既要送入下計(jì)數(shù)初值既要送入TLiTLi
45、,也要送入,也要送入THiTHi。6.4.3 6.4.3 工作方式工作方式2 2【例例6-66-6】 設(shè)設(shè)fOSC=12MHzfOSC=12MHz,T0T0方式方式2 2計(jì)數(shù),計(jì)數(shù),T1T1方式方式2 2定時(shí),定時(shí),編程實(shí)現(xiàn)在編程實(shí)現(xiàn)在P1.0P1.0腳輸出頻率為腳輸出頻率為10kHz10kHz的方波,將的方波,將P1.0P1.0上的上的信號(hào)進(jìn)行信號(hào)進(jìn)行1212分頻為在分頻為在P1.5P1.5腳輸出。腳輸出。P1.0P1.0輸出的脈沖作為輸出的脈沖作為T(mén)0T0的計(jì)數(shù)脈沖。的計(jì)數(shù)脈沖。光盤(pán)提供光盤(pán)提供ProteusProteus仿真文件仿真文件, ,運(yùn)行仿真文件夾運(yùn)行仿真文件夾 第第6 6章章L
46、T6_6LT6_6.DSN LT6_6LT6_6.DSN ,觀(guān)察運(yùn)行結(jié)果。,觀(guān)察運(yùn)行結(jié)果。6.4.3 6.4.3 工作方式工作方式2 2圖圖6-7 P1.06-7 P1.0和和P1.5P1.5引腳輸出的方波(仿真截圖)引腳輸出的方波(仿真截圖)6.4.3 6.4.3 工作方式工作方式2 2(1 1)首先計(jì)算定時(shí)時(shí)間。)首先計(jì)算定時(shí)時(shí)間。P1.0P1.0腳上輸出的方波頻率腳上輸出的方波頻率為為10kHz10kHz,則周期為,則周期為0.1ms0.1ms。即即P1.0P1.0引腳每引腳每50s50s取反一次,定時(shí)時(shí)間為取反一次,定時(shí)時(shí)間為50s50s。(2 2)計(jì)算計(jì)數(shù)初值。)計(jì)算計(jì)數(shù)初值。根據(jù)公
47、式根據(jù)公式6-66-6有:有:T1T1的定時(shí)時(shí)間的定時(shí)時(shí)間 = =(256-T1256-T1計(jì)數(shù)初值)計(jì)數(shù)初值)12fOSC12fOSCT1T1的計(jì)數(shù)初值的計(jì)數(shù)初值 = 256-T1= 256-T1定時(shí)時(shí)間定時(shí)時(shí)間fosc/12fosc/12= 256-50= 256-5012MHz/12= 20612MHz/12= 2066.4.3 6.4.3 工作方式工作方式2 2P1.5P1.5腳的方波為對(duì)腳的方波為對(duì)P1.0P1.0腳方波的腳方波的1212分頻,即分頻,即P1.5P1.5腳的方腳的方波周期為波周期為P1.0P1.0腳方波周期的腳方波周期的1212倍,即倍,即P1.0P1.0腳每輸出腳每
48、輸出6 6個(gè)脈個(gè)脈沖,沖,P1.5P1.5腳取反一次。腳取反一次。根據(jù)公式根據(jù)公式6-56-5有:有:T0T0的計(jì)數(shù)初值的計(jì)數(shù)初值 = 256-T0= 256-T0的計(jì)數(shù)次數(shù)的計(jì)數(shù)次數(shù) =256-6=256-6 =250 =2506.4.3 6.4.3 工作方式工作方式2 2(3 3)設(shè)置)設(shè)置TMODTMOD。T0T0方式方式2 2計(jì)數(shù),與外部脈沖無(wú)關(guān),計(jì)數(shù),與外部脈沖無(wú)關(guān),TMODTMOD的低的低4 4位為位為01100110;T1T1方式方式2 2定時(shí),與外部脈沖無(wú)關(guān),定時(shí),與外部脈沖無(wú)關(guān),TMODTMOD的的高高4 4位為位為00100010。(4 4)編制程序(中斷方式)如下:)編制
49、程序(中斷方式)如下:ORGORG 0000H 0000HAJMP MAINAJMP MAINORG 000BH ;T0ORG 000BH ;T0的中斷服務(wù)程序的中斷服務(wù)程序 CPLCPL P1.5 P1.5 RETI RETI6.4.3 6.4.3 工作方式工作方式2 2 ORG 001BH ;T1 ORG 001BH ;T1的中斷服務(wù)程序的中斷服務(wù)程序 CPL P1.0CPL P1.0 RETI RETI ORG 0050H ORG 0050HMAIN: SETB EA ;MAIN: SETB EA ;開(kāi)中斷開(kāi)中斷 SETB ET0SETB ET0 SETB ET1 SETB ET16.4
50、.3 6.4.3 工作方式工作方式2 2MOV IP,#4 ;MOV IP,#4 ;設(shè)置中斷優(yōu)先級(jí)設(shè)置中斷優(yōu)先級(jí)MOV TMOD,#26H ;MOV TMOD,#26H ;設(shè)置設(shè)置TMODTMOD,T0T0方方 ; ;式式2 2計(jì)數(shù),計(jì)數(shù),T1T1方式方式2 2定時(shí)定時(shí)MOV TL0,#250 ;MOV TL0,#250 ;設(shè)置計(jì)數(shù)初值設(shè)置計(jì)數(shù)初值MOV TH0,#250MOV TH0,#250MOV TL1,#206MOV TL1,#206MOV TH1,#206MOV TH1,#2066.4.3 6.4.3 工作方式工作方式2 2 SETB SETBTR0TR0; ;啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù) SE
51、TBSETBTR1TR1; ;啟動(dòng)定時(shí)啟動(dòng)定時(shí)HERE: SJMP HEREHERE: SJMP HERE END END6.4.3 6.4.3 工作方式工作方式2 2本題中本題中T1T1控制輸出的脈沖是控制輸出的脈沖是T0T0的計(jì)數(shù)脈沖,是引起的計(jì)數(shù)脈沖,是引起T0T0中斷的原因。如果兩者同時(shí)產(chǎn)生計(jì)數(shù)溢出,則應(yīng)先響應(yīng)中斷的原因。如果兩者同時(shí)產(chǎn)生計(jì)數(shù)溢出,則應(yīng)先響應(yīng)T1T1的中斷請(qǐng)求,即的中斷請(qǐng)求,即T1T1的優(yōu)先級(jí)高于的優(yōu)先級(jí)高于T0T0的優(yōu)先級(jí)。的優(yōu)先級(jí)。定時(shí)器定時(shí)器/ /計(jì)數(shù)器工作在方式計(jì)數(shù)器工作在方式2 2下,在計(jì)數(shù)溢出時(shí)具有初下,在計(jì)數(shù)溢出時(shí)具有初值自動(dòng)加載功能,無(wú)需在中斷服務(wù)程序中
52、重載計(jì)數(shù)初值。值自動(dòng)加載功能,無(wú)需在中斷服務(wù)程序中重載計(jì)數(shù)初值。中斷服務(wù)程序的長(zhǎng)度不超過(guò)中斷服務(wù)程序的長(zhǎng)度不超過(guò)8 8個(gè)字節(jié)時(shí),直接在中斷個(gè)字節(jié)時(shí),直接在中斷程序入口處編寫(xiě)中斷服務(wù)程序即可,無(wú)需另外開(kāi)辟中斷程程序入口處編寫(xiě)中斷服務(wù)程序即可,無(wú)需另外開(kāi)辟中斷程序服務(wù)區(qū)。序服務(wù)區(qū)。6.4.4 6.4.4 工作方式工作方式3 3定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0在方式在方式3 3下是雙下是雙8 8位計(jì)數(shù)器結(jié)構(gòu),定時(shí)位計(jì)數(shù)器結(jié)構(gòu),定時(shí)器器/ /計(jì)數(shù)器計(jì)數(shù)器T1T1在方式在方式3 3下停止計(jì)數(shù)。圖下停止計(jì)數(shù)。圖6-46-4是定時(shí)器是定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0在方式在方式3 3下的邏輯電路圖。下
53、的邏輯電路圖。6.4.4 6.4.4 工作方式工作方式3 3圖圖6-8 T06-8 T0在方式在方式3 3下的邏輯電路圖下的邏輯電路圖6.4.4 6.4.4 工作方式工作方式3 3T0T0的低的低8 8位(位(TL0TL0)在方式)在方式3 3下占用下占用T0T0的控制位和引腳信的控制位和引腳信號(hào),成為一個(gè)號(hào),成為一個(gè)8 8位的定時(shí)位的定時(shí)/ /計(jì)數(shù)器。其功能和操作與方式計(jì)數(shù)器。其功能和操作與方式0 0和方式和方式1 1完全相同。完全相同。6.4.4 6.4.4 工作方式工作方式3 3T0T0的高的高8 8位(位(TH0TH0)在方式)在方式3 3下借用下借用T1T1的的TR1TR1和和TF1
54、TF1,成為,成為一個(gè)一個(gè)8 8位的定時(shí)器。這樣,在方式位的定時(shí)器。這樣,在方式3 3下,定時(shí)器下,定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0就構(gòu)成了兩個(gè)就構(gòu)成了兩個(gè)8 8位的定時(shí)器和一個(gè)位的定時(shí)器和一個(gè)8 8位的計(jì)數(shù)器。位的計(jì)數(shù)器。6.4.4 6.4.4 工作方式工作方式3 3如果定時(shí)器如果定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0工作在方式工作在方式3 3下,那么定時(shí)器下,那么定時(shí)器/ /計(jì)計(jì)數(shù)器數(shù)器T1T1只能工作于方式只能工作于方式0 0、1 1、2 2下。由于沒(méi)有下。由于沒(méi)有TR1TR1可用,只可用,只要為要為T(mén)1T1的計(jì)數(shù)寄存器裝入初值,再設(shè)置好工作方式,的計(jì)數(shù)寄存器裝入初值,再設(shè)置好工作方式,T1T
55、1就就可以自動(dòng)運(yùn)行了。通常,只有當(dāng)可以自動(dòng)運(yùn)行了。通常,只有當(dāng)T1T1用作波特率發(fā)生器時(shí),用作波特率發(fā)生器時(shí), T0T0才會(huì)工作于方式才會(huì)工作于方式3 3下。由于沒(méi)有下。由于沒(méi)有TF1TF1可用,可用,T1T1只能把計(jì)數(shù)只能把計(jì)數(shù)溢出直接送給串行口。將溢出直接送給串行口。將T1T1的方式控制設(shè)置為方式的方式控制設(shè)置為方式3 3,T1T1就會(huì)停止計(jì)數(shù)。就會(huì)停止計(jì)數(shù)。6.5 6.5 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的綜合應(yīng)用舉例計(jì)數(shù)器的綜合應(yīng)用舉例時(shí)間是控制系統(tǒng)中的一個(gè)重要參數(shù)。這一節(jié)有時(shí)間是控制系統(tǒng)中的一個(gè)重要參數(shù)。這一節(jié)有4 4個(gè)例題,個(gè)例題,都是很有用的題目。由于篇幅的原因,其內(nèi)容轉(zhuǎn)移到光盤(pán),都是很
56、有用的題目。由于篇幅的原因,其內(nèi)容轉(zhuǎn)移到光盤(pán),需要選用此例題可以查看光盤(pán)文件:定時(shí)器綜合應(yīng)用舉需要選用此例題可以查看光盤(pán)文件:定時(shí)器綜合應(yīng)用舉例例.DOC.DOC。這里只留下例題的內(nèi)容說(shuō)明。這里只留下例題的內(nèi)容說(shuō)明。6.5 6.5 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的綜合應(yīng)用舉例計(jì)數(shù)器的綜合應(yīng)用舉例【例例6-76-7】編寫(xiě)一段程序,讓編寫(xiě)一段程序,讓P2P2口輸出占空比為口輸出占空比為70%70%,頻,頻率為率為100Hz100Hz的矩形波,單片機(jī)晶振為的矩形波,單片機(jī)晶振為6MHz6MHz。光盤(pán)提供光盤(pán)提供ProteusProteus仿真文件仿真文件, ,運(yùn)行仿真文件夾運(yùn)行仿真文件夾 第第6 6章章L
57、T6_7LT6_7.DSN LT6_7LT6_7.DSN ,觀(guān)察運(yùn)行結(jié)果,并進(jìn)一步分析源程,觀(guān)察運(yùn)行結(jié)果,并進(jìn)一步分析源程序。序。圖圖6-9 P2.X6-9 P2.X引腳輸出的波形(仿真截圖)引腳輸出的波形(仿真截圖)6.5 6.5 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的綜合應(yīng)用舉例計(jì)數(shù)器的綜合應(yīng)用舉例分析:分析:100Hz100Hz的方波周期:的方波周期:=1/100=0.01s=10ms=1/100=0.01s=10ms。高電平時(shí)間為高電平時(shí)間為7ms7ms,低電平為,低電平為3ms3ms,對(duì)于這種高、低電平,對(duì)于這種高、低電平不一致的波形,通常取出兩個(gè)時(shí)間的相同單位時(shí)間作為定不一致的波形,通常取出兩
58、個(gè)時(shí)間的相同單位時(shí)間作為定時(shí)器的定時(shí)時(shí)間,對(duì)不同電平采用不同的定時(shí)次數(shù)。時(shí)器的定時(shí)時(shí)間,對(duì)不同電平采用不同的定時(shí)次數(shù)。本題可用本題可用1ms1ms作為定時(shí)器的定時(shí)時(shí)間,高電平段定時(shí)作為定時(shí)器的定時(shí)時(shí)間,高電平段定時(shí)7 7次,次,低電平段定時(shí)低電平段定時(shí)3 3次,定時(shí)器計(jì)數(shù)初值次,定時(shí)器計(jì)數(shù)初值=65536-=65536-1000/2=65036=FE0CH1000/2=65036=FE0CH源程序:(略)源程序:(略)6.5 6.5 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的綜合應(yīng)用舉例計(jì)數(shù)器的綜合應(yīng)用舉例【例例6-86-8】由由P3.4P3.4引腳引腳(T0)(T0)輸入一個(gè)低頻脈沖信號(hào)輸入一個(gè)低頻脈沖信號(hào)
59、( (其頻其頻率率=0.5KHz),=0.5KHz),當(dāng)當(dāng)P3.4P3.4每發(fā)生一次負(fù)跳變脈沖時(shí),每發(fā)生一次負(fù)跳變脈沖時(shí),P1.0P1.0輸出輸出一個(gè)一個(gè)500s500s的同步脈沖,同時(shí)的同步脈沖,同時(shí)P1.1P1.1輸出一個(gè)輸出一個(gè)1ms1ms同步正脈同步正脈沖沖, ,晶振為晶振為6MHz6MHz。光盤(pán)提供光盤(pán)提供ProteusProteus仿真文件仿真文件, ,運(yùn)行仿真文件夾運(yùn)行仿真文件夾 第第6 6章章LT6_8LT6_8.DSN LT6_8LT6_8.DSN ,觀(guān)察運(yùn)行結(jié)果,并進(jìn)一步分析源程,觀(guān)察運(yùn)行結(jié)果,并進(jìn)一步分析源程序。序。6.5 6.5 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的綜合應(yīng)用舉例計(jì)
60、數(shù)器的綜合應(yīng)用舉例圖圖6-10 6-10 例題例題6-86-8的波形圖(仿真截圖)的波形圖(仿真截圖)6.5 6.5 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的綜合應(yīng)用舉例計(jì)數(shù)器的綜合應(yīng)用舉例分析:分析:按題意所示,初始按題意所示,初始P1.0P1.0輸出高電平,初始輸出高電平,初始P1.1P1.1輸出低電輸出低電平,平,T0T0采用方式采用方式2 2計(jì)數(shù)外部脈沖數(shù)(計(jì)一個(gè)脈沖,初始值計(jì)數(shù)外部脈沖數(shù)(計(jì)一個(gè)脈沖,初始值為為FFHFFH),當(dāng)加在),當(dāng)加在P3.4P3.4上的外部脈沖負(fù)跳變時(shí),上的外部脈沖負(fù)跳變時(shí),T0T0加加1 1,計(jì),計(jì)數(shù)溢出,此時(shí)修改數(shù)溢出,此時(shí)修改T0T0為為500s500s定時(shí)工作方式
溫馨提示
- 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ù)據(jù)補(bǔ)充及環(huán)境治理合作合同
- 投資風(fēng)險(xiǎn)管理與財(cái)務(wù)決策試題及答案
- 2025知識(shí)產(chǎn)權(quán)許可合同范文 合同范本
- 商業(yè)用電合同協(xié)議書(shū)
- 工程法規(guī)考試復(fù)習(xí)過(guò)程中的團(tuán)隊(duì)合作與模型應(yīng)用試題及答案
- 社會(huì)學(xué)視角下的年齡問(wèn)題試題及答案
- 分包合同安全協(xié)議書(shū)
- 廠(chǎng)房合同解除協(xié)議書(shū)
- 2025年工程法規(guī)考試的應(yīng)試心理輔導(dǎo)資料試題及答案
- 合作合同生產(chǎn)協(xié)議書(shū)
- 高中政治必修四思維導(dǎo)圖
- 機(jī)關(guān)食堂整體服務(wù)方案范文
- 廣東省深圳市2024年高一下學(xué)期期末調(diào)研考試英語(yǔ)試題含解析
- 中國(guó)茶文化與茶健康 知到智慧樹(shù)網(wǎng)課答案
- 紅色知識(shí)競(jìng)賽題庫(kù)小學(xué)生
- 駕校安全生產(chǎn)應(yīng)急演練方案
- 2024年寧波市奉化區(qū)農(nóng)商發(fā)展集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 2024年小學(xué)語(yǔ)文教師招聘考試語(yǔ)文專(zhuān)業(yè)知識(shí)考試模擬試題及答案(共四套)
- 應(yīng)急管理與突發(fā)事故處理
- 螺桿泵工作原理課件
- 中醫(yī)護(hù)理方案實(shí)施難點(diǎn)與優(yōu)化課件
評(píng)論
0/150
提交評(píng)論