惠州學(xué)院?jiǎn)纹瑱C(jī)魏暁慧老師課件第7章_第1頁(yè)
惠州學(xué)院?jiǎn)纹瑱C(jī)魏暁慧老師課件第7章_第2頁(yè)
惠州學(xué)院?jiǎn)纹瑱C(jī)魏暁慧老師課件第7章_第3頁(yè)
惠州學(xué)院?jiǎn)纹瑱C(jī)魏暁慧老師課件第7章_第4頁(yè)
惠州學(xué)院?jiǎn)纹瑱C(jī)魏暁慧老師課件第7章_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第七章 定時(shí)器計(jì)數(shù)器第第7章章 80C51的定時(shí)的定時(shí)/計(jì)數(shù)器計(jì)數(shù)器 實(shí)現(xiàn)定時(shí)功能,實(shí)現(xiàn)定時(shí)功能,比較方便的辦法是利用單比較方便的辦法是利用單片機(jī)內(nèi)部的定時(shí)片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器計(jì)數(shù)器。也可以采用下面三。也可以采用下面三種方法:種方法:軟件定時(shí)軟件定時(shí):軟件定時(shí)不占用硬件資源,但占用了:軟件定時(shí)不占用硬件資源,但占用了CPU時(shí)間,降低了時(shí)間,降低了CPU的利用率。的利用率。采用時(shí)基電路定時(shí)采用時(shí)基電路定時(shí):例如采用:例如采用555電路,外接必要電路,外接必要的元器件(電阻和電容),即可構(gòu)成硬件定時(shí)電路。的元器件(電阻和電容),即可構(gòu)成硬件定時(shí)電路。但在硬件連接好以后,定時(shí)值與定時(shí)范圍不能由軟但

2、在硬件連接好以后,定時(shí)值與定時(shí)范圍不能由軟件進(jìn)行控制和修改,即不可編程。件進(jìn)行控制和修改,即不可編程。采用可編程芯片定時(shí)采用可編程芯片定時(shí):這種定時(shí)芯片的定時(shí)值及定:這種定時(shí)芯片的定時(shí)值及定時(shí)范圍很容易用軟件來(lái)確定和修改,此種芯片定時(shí)時(shí)范圍很容易用軟件來(lái)確定和修改,此種芯片定時(shí)功能強(qiáng),使用靈活。在單片機(jī)的定時(shí)功能強(qiáng),使用靈活。在單片機(jī)的定時(shí)/計(jì)數(shù)器不夠用計(jì)數(shù)器不夠用時(shí),可以考慮進(jìn)行擴(kuò)展。時(shí),可以考慮進(jìn)行擴(kuò)展。 鬧鐘定時(shí)的步驟:鬧鐘定時(shí)的步驟: 1.設(shè)定定時(shí)方式設(shè)定定時(shí)方式 2.設(shè)定好定時(shí)時(shí)間設(shè)定好定時(shí)時(shí)間 3.啟動(dòng)鬧鐘啟動(dòng)鬧鐘 若用單片機(jī)完成此功能,定時(shí)的步驟:若用單片機(jī)完成此功能,定時(shí)的步驟

3、: 1.設(shè)定定時(shí)器的工作方式設(shè)定定時(shí)器的工作方式 2.設(shè)定定時(shí)器的定時(shí)時(shí)間設(shè)定定時(shí)器的定時(shí)時(shí)間 3.啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器C/T = 0 定時(shí);定時(shí); C/T = 1 對(duì)外計(jì)數(shù)。對(duì)外計(jì)數(shù)。定時(shí):定時(shí):fosc / 12 = 1 /(12/fosc) = 1 / T 波形等間隔,次數(shù)已定,時(shí)間確定波形等間隔,次數(shù)已定,時(shí)間確定即對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)。即對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)。 左圖定時(shí)時(shí)間為左圖定時(shí)時(shí)間為 N*TN個(gè)方波個(gè)方波 T計(jì)數(shù):脈沖不等間隔。計(jì)數(shù):脈沖不等間隔。 每個(gè)下降沿計(jì)數(shù)一次每個(gè)下降沿計(jì)數(shù)一次 確認(rèn)一次負(fù)跳變需兩個(gè)機(jī)器周期,確認(rèn)一次負(fù)跳變需兩個(gè)機(jī)器周期, 所以,計(jì)數(shù)頻率最高為所以,計(jì)數(shù)頻率

4、最高為fosc / 24。 工作方式寄存器工作方式寄存器TMOD 工作方式寄存器工作方式寄存器TMOD用于設(shè)置定時(shí)用于設(shè)置定時(shí)/計(jì)數(shù)器的計(jì)數(shù)器的工作方式,低四位用于工作方式,低四位用于T0,高四位用于,高四位用于T1。其格式。其格式如下:如下: TF1(TCON.7):):T1溢出中斷請(qǐng)求標(biāo)志位。溢出中斷請(qǐng)求標(biāo)志位。T1計(jì)數(shù)溢出時(shí)由硬件自計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置動(dòng)置TF1為為1。CPU響應(yīng)中斷后響應(yīng)中斷后TF1由硬件自動(dòng)清由硬件自動(dòng)清0。T1工作時(shí),工作時(shí),CPU可隨時(shí)查詢(xún)可隨時(shí)查詢(xún)TF1的狀態(tài)。所以,的狀態(tài)。所以,TF1可用作查詢(xún)測(cè)試的標(biāo)志??捎米鞑樵?xún)測(cè)試的標(biāo)志。TF1也可也可以用軟件置以用軟

5、件置1或清或清0,同硬件置,同硬件置1或清或清0的效果一樣。的效果一樣。TR1(TCON.6):):T1運(yùn)行控制位。運(yùn)行控制位。TR1置置1時(shí),時(shí),T1開(kāi)始工作;開(kāi)始工作;TR1置置0時(shí),時(shí),T1停止工作。停止工作。TR1由軟件置由軟件置1或清或清0。所以,用軟件可控制定時(shí)。所以,用軟件可控制定時(shí)/計(jì)數(shù)器的啟動(dòng)與停止。計(jì)數(shù)器的啟動(dòng)與停止。TF0(TCON.5):):T0溢出中斷請(qǐng)求標(biāo)志位,其功能與溢出中斷請(qǐng)求標(biāo)志位,其功能與TF1類(lèi)同。類(lèi)同。TR0(TCON.4):):T0運(yùn)行控制位,其功能與運(yùn)行控制位,其功能與TR1類(lèi)同。類(lèi)同。 定時(shí)計(jì)數(shù)器的初始化編程步驟:定時(shí)計(jì)數(shù)器的初始化編程步驟: 1)

6、確定并設(shè)置工作方式)確定并設(shè)置工作方式(TMOD) 2)計(jì)算計(jì)數(shù)器初值;)計(jì)算計(jì)數(shù)器初值; 3)送計(jì)數(shù)初值的高八位和低八位到)送計(jì)數(shù)初值的高八位和低八位到TH0和和TL0和和TL1TH1寄存器中;寄存器中; 4)啟動(dòng)定時(shí)(或計(jì)數(shù)),即將)啟動(dòng)定時(shí)(或計(jì)數(shù)),即將TR0和和TR1置置1。例題例題1:用定時(shí)器:用定時(shí)器0實(shí)現(xiàn)實(shí)現(xiàn)5ms的延時(shí),請(qǐng)確定定時(shí)器的延時(shí),請(qǐng)確定定時(shí)器0的工作方式,并給出初始化程序。的工作方式,并給出初始化程序。 1.分析要求,確定并設(shè)定工作方式分析要求,確定并設(shè)定工作方式 2.確定并設(shè)置計(jì)數(shù)初始化,并寫(xiě)入確定并設(shè)置計(jì)數(shù)初始化,并寫(xiě)入TH0,TH1 3.啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器0

7、 初始化程序如下:初始化程序如下: MOV TMOD,#01H MOV TH0,#0ECH MOV TL0 , #78H SETB TR0 例題例題2:如果用定時(shí)器:如果用定時(shí)器1實(shí)現(xiàn)實(shí)現(xiàn)100ms的延時(shí),的延時(shí),設(shè)定工作方式,寫(xiě)出初始化程序。設(shè)定工作方式,寫(xiě)出初始化程序。 1.分析要求,確定并設(shè)定工作方式分析要求,確定并設(shè)定工作方式 2.確定并設(shè)置計(jì)數(shù)初始化,并寫(xiě)入確定并設(shè)置計(jì)數(shù)初始化,并寫(xiě)入TH0,TH1 3.啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器0 最終初始化程序如下:最終初始化程序如下: MOV TMOD, #10H MOV TH1,#3CH MOV TL1,#0B0H SETB TR1M0: JBC

8、TF1, M1 SJMP M0M1: MOV TH1, #3CH MOV TL1,#0BH JBC TF1,M2M2: SJMP$7.3 定時(shí)器的四種工作方式定時(shí)器的四種工作方式 對(duì)對(duì)TMOD寄存器的寄存器的M1、M0位的設(shè)置,可選擇四種工作位的設(shè)置,可選擇四種工作方式,即方式方式,即方式0、方式、方式1、方式、方式2和方式和方式3。下面用下面用THX、TLX(X=1或或0)表示)表示TH1 TL1 TH0 TL0。方式方式 定時(shí)器定時(shí)器(T0或或T1)工作于工作于13位定時(shí)、計(jì)數(shù)方式。位定時(shí)、計(jì)數(shù)方式。用于計(jì)數(shù)方式時(shí)最大計(jì)數(shù)值為用于計(jì)數(shù)方式時(shí)最大計(jì)數(shù)值為 213 8192個(gè)脈沖個(gè)脈沖用于定時(shí)

9、工作時(shí),定時(shí)時(shí)間為:用于定時(shí)工作時(shí),定時(shí)時(shí)間為: t(213一一T0初值初值) 時(shí)鐘周期時(shí)鐘周期12在這種模式下,在這種模式下,16寄存器寄存器(THx和和TLx)只用只用13位,其中位,其中THx占高占高8位。其中位。其中TLx占低占低5位,位, TLx的高的高3位末用。位末用。當(dāng)當(dāng)TLx的低的低5位溢出時(shí)向位溢出時(shí)向THx進(jìn)位進(jìn)位,而而THx溢出時(shí)硬件置溢出時(shí)硬件置位位TF0,并申請(qǐng)中斷。,并申請(qǐng)中斷。 一、方式一、方式0 方式方式0為為13位計(jì)數(shù)位計(jì)數(shù),由,由TL0的低的低5位(高位(高3位未用)和位未用)和TH0的的8位組成。位組成。TL0的低的低5位溢出時(shí)向位溢出時(shí)向TH0進(jìn)位,進(jìn)位

10、,TH0溢出時(shí),溢出時(shí),置位置位TCON中的中的TF0標(biāo)志,向標(biāo)志,向CPU發(fā)出中斷請(qǐng)求。發(fā)出中斷請(qǐng)求。例題例題3:用方式:用方式0定時(shí)器定時(shí)器1實(shí)現(xiàn)實(shí)現(xiàn)5ms的延時(shí)(晶振的延時(shí)(晶振12MHz) 方式方式0 ,13位,計(jì)數(shù)位,計(jì)數(shù)5000次次 X=8192-5000=3192=0C78H 0110001111000B X的實(shí)際值應(yīng)填寫(xiě)為:的實(shí)際值應(yīng)填寫(xiě)為: X=0110001100011000 =6318H TH1=63H TL1=18H 2 .方式方式1 當(dāng)當(dāng)TMOD中中M1M0=01時(shí),定時(shí)計(jì)數(shù)器工作在時(shí),定時(shí)計(jì)數(shù)器工作在方式方式1。該模式是一個(gè)該模式是一個(gè)16位定時(shí)計(jì)數(shù)方式。位定時(shí)計(jì)數(shù)

11、方式。寄存器寄存器TH0和和TL0是以全是以全16位參與操作,位參與操作,計(jì)數(shù)方式時(shí)最大計(jì)數(shù)計(jì)數(shù)方式時(shí)最大計(jì)數(shù) 21665536(個(gè)外部脈沖個(gè)外部脈沖) 用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為:用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為: t(216一一T0初值初值) 時(shí)鐘周期時(shí)鐘周期12 16寄存器寄存器(THx和和TLx) 中中THx提供高提供高8位、位、TLx提供低提供低8位計(jì)數(shù)初值位計(jì)數(shù)初值 16X=2 -N方式方式1的計(jì)數(shù)位數(shù)是的計(jì)數(shù)位數(shù)是16位,由位,由TL0作為低作為低8位、位、TH0作為高作為高8位,組成了位,組成了16位加位加1計(jì)數(shù)器計(jì)數(shù)器 。計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系

12、為: 3. 3. 方式方式2 2當(dāng)當(dāng)TMODTMOD中中M1M0=10M1M0=10時(shí),定時(shí)器工作在方式時(shí),定時(shí)器工作在方式2 2。方式方式2 2是是8 8位的可自動(dòng)重裝載的定時(shí)計(jì)數(shù)方式。位的可自動(dòng)重裝載的定時(shí)計(jì)數(shù)方式。1616位的計(jì)數(shù)器被拆成兩個(gè)位的計(jì)數(shù)器被拆成兩個(gè)8 8位,其中位,其中TL0TL0用作用作8 8位計(jì)數(shù)器,位計(jì)數(shù)器, TH0TH0用以保持計(jì)數(shù)初值。當(dāng)用以保持計(jì)數(shù)初值。當(dāng)TL0TL0計(jì)數(shù)溢出,置計(jì)數(shù)溢出,置TF0TF0,TH0TH0中的中的初值自動(dòng)裝入初值自動(dòng)裝入TL0TL0,繼續(xù)計(jì)數(shù),循環(huán)重復(fù)計(jì)數(shù)。,繼續(xù)計(jì)數(shù),循環(huán)重復(fù)計(jì)數(shù)。用于計(jì)數(shù)工作方式時(shí),最大計(jì)數(shù)值為:用于計(jì)數(shù)工作方式時(shí)

13、,最大計(jì)數(shù)值為: 2 28 8256(256(個(gè)外部脈沖個(gè)外部脈沖) )。 用于定時(shí)工作方式時(shí),其定時(shí)時(shí)間為;用于定時(shí)工作方式時(shí),其定時(shí)時(shí)間為; t t(2(28 8TH0TH0初值初值) )振蕩周期振蕩周期1212這種工作方式可省去用戶(hù)重裝常數(shù)的程序,并可產(chǎn)生精這種工作方式可省去用戶(hù)重裝常數(shù)的程序,并可產(chǎn)生精確的定時(shí)時(shí)間,特別適用作串行口波待率發(fā)生器確的定時(shí)時(shí)間,特別適用作串行口波待率發(fā)生器。 8X=2 -N方式方式2為自動(dòng)重裝初值的為自動(dòng)重裝初值的8位計(jì)數(shù)方式。位計(jì)數(shù)方式。 工作方式工作方式2特別適合于用作較精確的脈沖信號(hào)發(fā)生器。特別適合于用作較精確的脈沖信號(hào)發(fā)生器。 計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的

14、關(guān)系為計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為: 4. 4.方式方式3 3 當(dāng)當(dāng)TMODTMOD中中M1M0=11M1M0=11時(shí),定時(shí)器工作在方式時(shí),定時(shí)器工作在方式3 3。若將若將T0T0設(shè)置為模式設(shè)置為模式3 3,TL0TL0和和TH0TH0被分成為兩個(gè)互相獨(dú)立的被分成為兩個(gè)互相獨(dú)立的8 8位計(jì)數(shù)器位計(jì)數(shù)器TH0TH0和和 TL0 TL0 。 TL0TL0可工作為定時(shí)方式或計(jì)數(shù)方式。占用原可工作為定時(shí)方式或計(jì)數(shù)方式。占用原T0T0的各控制的各控制位、引腳和中斷源。即位、引腳和中斷源。即C CT T、GATEGATE、TR0TR0、TF0TF0和和T0 (P3.4)T0 (P3.4)引腳、引腳、INT0

15、 (P3.2)INT0 (P3.2)引腳。引腳。 TH0TH0只可用作定時(shí)功能,占用定時(shí)器只可用作定時(shí)功能,占用定時(shí)器T1T1的控制位的控制位TR1TR1和和T1T1的中斷標(biāo)志位的中斷標(biāo)志位TF1TF1,其啟動(dòng)和關(guān)閉僅受,其啟動(dòng)和關(guān)閉僅受TRlTRl的控制。的控制。定時(shí)器定時(shí)器T1T1無(wú)模式無(wú)模式 3, 3, 可工作于方式可工作于方式0 0、1 1、2 2,但不能使用,但不能使用中斷方式。中斷方式。 只有將只有將T1T1用做串行口的波特率發(fā)生器時(shí),用做串行口的波特率發(fā)生器時(shí),T0T0才工作在方才工作在方式式3 3,以便增加一個(gè)定時(shí)器。,以便增加一個(gè)定時(shí)器。 方式方式3只適用于定時(shí)只適用于定時(shí)/

16、計(jì)數(shù)器計(jì)數(shù)器T0,定時(shí)器定時(shí)器T1處于方式處于方式3時(shí)相當(dāng)時(shí)相當(dāng)于于TR1=0,停止計(jì)數(shù)。,停止計(jì)數(shù)。 工作方式工作方式3將將T0分成為兩個(gè)獨(dú)立的分成為兩個(gè)獨(dú)立的8位計(jì)數(shù)器位計(jì)數(shù)器TL0和和TH0 。 7.4 定時(shí)計(jì)數(shù)器的應(yīng)用程序設(shè)計(jì)定時(shí)計(jì)數(shù)器的應(yīng)用程序設(shè)計(jì)7.4.1 7.4.1 定時(shí)器的計(jì)數(shù)初值定時(shí)器的計(jì)數(shù)初值C C的計(jì)算和裝入的計(jì)算和裝入 如前所述,如前所述,8xx518xx51定時(shí)器定時(shí)器/ /計(jì)數(shù)器不同工作方計(jì)數(shù)器不同工作方式的模值不同,由于采用加式的模值不同,由于采用加1 1計(jì)數(shù),因此計(jì)數(shù)初值應(yīng)為計(jì)數(shù),因此計(jì)數(shù)初值應(yīng)為負(fù)值,計(jì)算機(jī)中用有符號(hào)數(shù)采用補(bǔ)碼表示。負(fù)值,計(jì)算機(jī)中用有符號(hào)數(shù)采用

17、補(bǔ)碼表示。 計(jì)數(shù)初值(計(jì)數(shù)初值(C C)的求法如下。)的求法如下。 計(jì)數(shù)方式:計(jì)數(shù)方式: 計(jì)數(shù)初值計(jì)數(shù)初值 C=C=模模-X-X(其中(其中X X為要計(jì)的脈沖個(gè)數(shù))為要計(jì)的脈沖個(gè)數(shù))定時(shí)方式:定時(shí)方式: 計(jì)數(shù)初值計(jì)數(shù)初值 C= t / MCC= t / MC補(bǔ)補(bǔ)= =模模t / MCt / MC 其中其中t t為欲定時(shí)時(shí)間,為欲定時(shí)時(shí)間,MCMC為為8xx518xx51的機(jī)器周的機(jī)器周MC=12/foscMC=12/fosc 當(dāng)采用當(dāng)采用12MHZ12MHZ晶振時(shí),晶振時(shí),MC=1usMC=1us; 當(dāng)采用當(dāng)采用6MHZ6MHZ晶振時(shí),晶振時(shí),MC=2usMC=2us。方式0( 13位方式):

18、 C=(-64H)補(bǔ)=2000H64H=1F9CH 1F9CH0001 1111 1001 1100B 把把13位中的高八位1111 1100B1111 1100B裝入裝入TH0TH0, 而把而把13位中的低五位低五位xxx1 1100Bxxx1 1100B裝裝入TL0TL0。 MOV TH0MOV TH0,#0FCH#0FCH; MOV TL0MOV TL0,#1CH#1CH;(xxx(xxx用用“0”0”填入)填入)方式方式1(161(16位方式位方式) ): C=C=(-64H-64H)補(bǔ)補(bǔ)=10000H-64H=FF9CH=10000H-64H=FF9CH 用指令裝入計(jì)數(shù)初值用指令裝入

19、計(jì)數(shù)初值: MOV TH0MOV TH0,#0FFH#0FFH MOV TL0 MOV TL0,#9CH#9CH例例 要計(jì)要計(jì)100個(gè)脈沖的計(jì)數(shù)初值個(gè)脈沖的計(jì)數(shù)初值方式方式2(8位自動(dòng)再裝入方式)位自動(dòng)再裝入方式) C=(64H)補(bǔ))補(bǔ)=100H64H=9CH 初值既要裝入初值既要裝入TH0,也要裝入,也要裝入TL0: MOV TH0,#9CH MOV TL0,#9CH7.4.2 定時(shí)計(jì)數(shù)器的初始化編程定時(shí)計(jì)數(shù)器的初始化編程 定時(shí)計(jì)數(shù)器的初始化編程步驟:定時(shí)計(jì)數(shù)器的初始化編程步驟:1)根據(jù)定時(shí)時(shí)間要求或計(jì)數(shù)要求計(jì)算計(jì)數(shù)器初值;)根據(jù)定時(shí)時(shí)間要求或計(jì)數(shù)要求計(jì)算計(jì)數(shù)器初值;2)工作方式控制字送)工

20、作方式控制字送TMOD寄存器;寄存器;3)送計(jì)數(shù)初值的高八位和低八位到)送計(jì)數(shù)初值的高八位和低八位到THX和和TLX寄存寄存 器中;器中;4)啟動(dòng)定時(shí)(或計(jì)數(shù)),即將)啟動(dòng)定時(shí)(或計(jì)數(shù)),即將TRX置位。置位。 如果工作于中斷方式,需要置位如果工作于中斷方式,需要置位EA(中斷總開(kāi)關(guān))(中斷總開(kāi)關(guān))及及ETX(允許定時(shí)(允許定時(shí)/計(jì)數(shù)器中斷)。并編中斷服務(wù)程序。計(jì)數(shù)器中斷)。并編中斷服務(wù)程序。例例7-1 如圖如圖7-2所示,所示,P1中接有八個(gè)發(fā)光二極中接有八個(gè)發(fā)光二極管,編程使八個(gè)管輪流管,編程使八個(gè)管輪流點(diǎn)亮,每個(gè)管亮點(diǎn)亮,每個(gè)管亮100ms,設(shè)晶振為設(shè)晶振為6MHz。7.4.3 7.4.

21、3 應(yīng)用編程舉例應(yīng)用編程舉例分析分析 利用利用T1T1完成完成100ms100ms的定時(shí),當(dāng)?shù)亩〞r(shí),當(dāng)P1P1口線輸出口線輸出“1”1”時(shí),發(fā)光二極管亮,每隔時(shí),發(fā)光二極管亮,每隔100ms”1”100ms”1”左移一次,采左移一次,采用定時(shí)方式用定時(shí)方式1 1,先計(jì)算計(jì)數(shù)初值:,先計(jì)算計(jì)數(shù)初值: MC= =2MC= =2s s 100ms/2 100ms/2s =50000=C350H s =50000=C350H (C350HC350H)補(bǔ)補(bǔ) =10000H-C350H=3CB0H=10000H-C350H=3CB0H 查詢(xún)方式如下:查詢(xún)方式如下: ORG 0030HORG 0030H M

22、OV A MOV A,#01H#01H:置第一個(gè):置第一個(gè)LEDLED亮亮NEXTNEXT:MOV P1MOV P1,A A MOV TMOD MOV TMOD,#10H #10H ;T1T1工作于定時(shí)方式工作于定時(shí)方式1 1 MOV TH1 MOV TH1,#3CH#3CH MOV TL1 MOV TL1,#0B0H#0B0H; 定時(shí)定時(shí)100100ms ms SETB TR1 SETB TR1 AGAI:JBC TF1,SHIAGAI:JBC TF1,SHI; 100100msms到轉(zhuǎn)到轉(zhuǎn)SHI,SHI,并清并清TF1TF1 SJMP AGAI SJMP AGAISHISHI:RL ARL

23、 A SJMP NEXT SJMP NEXT中斷方式中斷方式 ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ;單片機(jī)復(fù)位后從;單片機(jī)復(fù)位后從0000H0000H開(kāi)始執(zhí)行開(kāi)始執(zhí)行 ORG 001BHORG 001BH AJMP IV1 AJMP IV1 ;轉(zhuǎn)移到;轉(zhuǎn)移到IV1IV1 ORG 0030H ORG 0030H ;主程序;主程序MAINMAIN:MOV AMOV A,#01H #01H MOV P1 MOV P1,A A ;置第一個(gè);置第一個(gè)LEDLED亮亮 MOV TMODMOV TMOD,#10H #10H ;T1T1工作于定時(shí)方式工作于定時(shí)方式1

24、 1 MOV TH1 MOV TH1,#3CH#3CH MOV TL1 MOV TL1,#0B0H #0B0H ;定時(shí);定時(shí)100ms100ms SETB TR1 SETB TR1 ;啟動(dòng);啟動(dòng)T1T1工作工作 SETB ET1 SETB ET1 ;允許;允許T1T1中斷中斷WAITWAIT:SJMP WAIT SJMP WAIT ;等待中斷;等待中斷 IV1IV1:RL A RL A ;中斷服務(wù)程序,左移一位;中斷服務(wù)程序,左移一位 MOV P1MOV P1,A A ;下一個(gè)發(fā)光二極管亮;下一個(gè)發(fā)光二極管亮 MOV TH1MOV TH1,#3CH#3CH MOV TL1 MOV TL1,#0

25、B0H #0B0H ;重裝計(jì)數(shù)初值;重裝計(jì)數(shù)初值 RETI RETI ;中斷返回;中斷返回以上程序進(jìn)入循環(huán)執(zhí)行以上程序進(jìn)入循環(huán)執(zhí)行, ,八個(gè)八個(gè)LEDLED一直循環(huán)輪流點(diǎn)亮。一直循環(huán)輪流點(diǎn)亮。7.4 定時(shí)定時(shí)/計(jì)數(shù)器應(yīng)用舉例計(jì)數(shù)器應(yīng)用舉例 初始化程序應(yīng)完成如下工作:初始化程序應(yīng)完成如下工作:對(duì)對(duì)TMOD賦值,以確定賦值,以確定T0和和T1的工作方式。的工作方式。計(jì)算初值計(jì)算初值,并將其寫(xiě)入并將其寫(xiě)入TH0、TL0或或TH1、TL1。中斷方式時(shí),則對(duì)中斷方式時(shí),則對(duì)IE賦值,開(kāi)放中斷。賦值,開(kāi)放中斷。使使TR0或或TR1置位,啟動(dòng)定時(shí)置位,啟動(dòng)定時(shí)/計(jì)數(shù)器定時(shí)或計(jì)數(shù)。計(jì)數(shù)器定時(shí)或計(jì)數(shù)。 例例 利

26、用定時(shí)利用定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1的方式的方式1,產(chǎn)生,產(chǎn)生10ms的定時(shí),的定時(shí),并使并使P1.0引腳上輸出周期為引腳上輸出周期為20ms的方波,采用中的方波,采用中斷方式,設(shè)系統(tǒng)時(shí)鐘頻率為斷方式,設(shè)系統(tǒng)時(shí)鐘頻率為12 MHz。解:解:1、計(jì)算計(jì)數(shù)初值、計(jì)算計(jì)數(shù)初值X:由于晶振為由于晶振為12 MHz,所以機(jī)器周期,所以機(jī)器周期Tcy為為1 s。所以:所以:Nt/ Tcy 10000/110000X655361000055536D8F0H即應(yīng)將即應(yīng)將D8H送入送入TH0中,中,F(xiàn)0H送入送入TL0中中 2、求、求T1的方式控制字的方式控制字TMOD: M1M0=01,GATE=0,C/T=0,

27、可取方式控制,可取方式控制字為字為01H; TF1 TR1TF0 TR0 IE1 IT1 IE0 IT0 M0 M1C / GATE M0 M1 C/ GATETTTMODTCON例例2、設(shè)、設(shè)fosc = 6MHz,利用單片機(jī)內(nèi)定時(shí),利用單片機(jī)內(nèi)定時(shí)/計(jì)數(shù)器及計(jì)數(shù)器及P10口線輸出口線輸出1000個(gè)脈沖,脈沖周期為個(gè)脈沖,脈沖周期為2ms,試編程。,試編程。 8031 P1.0 T12ms T = 121/fosc = 2us 選取選取T0定時(shí);定時(shí);T1計(jì)數(shù)。計(jì)數(shù)。 設(shè)設(shè)T0采用中斷方式產(chǎn)生周期為采用中斷方式產(chǎn)生周期為2ms方波,方波,T1對(duì)該方波計(jì)數(shù),當(dāng)輸對(duì)該方波計(jì)數(shù),當(dāng)輸出至第出至第1

28、000個(gè)脈沖時(shí),使個(gè)脈沖時(shí),使TF1置置1。 在主程序中用查詢(xún)方法,檢在主程序中用查詢(xún)方法,檢測(cè)到測(cè)到TF1變變1時(shí),關(guān)掉時(shí),關(guān)掉T0,停止輸出方波。,停止輸出方波。 T0、T1參數(shù)的確定:參數(shù)的確定:T0模式模式0、定時(shí):脈寬為脈沖周期的一半、定時(shí):脈寬為脈沖周期的一半所以,所以,X = 2131ms / 2us = 0001 1110 0000 1100BTH0 = 0F0H ; TL0 = 0CH T1模式模式1、計(jì)數(shù):、計(jì)數(shù):N = 1000 則則 X = 655361000 = 64536 = 0FC18H (若選模式(若選模式0也可以,此時(shí)也可以,此時(shí)X = 7192=1C18H)

29、 程序:程序: ORG 0000H LJMP MAIN ORG 000BH LJMP TOS ORG 1000H MAIN: MOV TMOD,#50H;T0定時(shí),模式定時(shí),模式0;T1計(jì)數(shù),模式計(jì)數(shù),模式1 MOV TL0,#0CH MOV TH0,#0F0H MOV TL1,#18H MOV TH1,#0FCH SETB TR1 SETB TR0 SETB ET0 SETB EA WAIT: JNB TF1,WAIT;查詢(xún);查詢(xún)1000個(gè)脈沖計(jì)夠沒(méi)有到?個(gè)脈沖計(jì)夠沒(méi)有到? CLR EA CLR ET0 ANL TCON,#0FH ; 停停T0、T1 SJMP TOS: MOV TL0,#0

30、CH MOV TH0,#0F0H CPL P10 RETI END 例例3、脈沖參數(shù)測(cè)量、脈沖參數(shù)測(cè)量GATE功能的使用。功能的使用。 脈沖高電平(計(jì)數(shù))長(zhǎng)度值存于脈沖高電平(計(jì)數(shù))長(zhǎng)度值存于21H、20H中,中, 脈沖低電平長(zhǎng)度存于脈沖低電平長(zhǎng)度存于23H、22H中。中。 電路連接如下圖所示。電路連接如下圖所示。解:解: 復(fù)習(xí)復(fù)習(xí)GATE的用法:的用法: GATE = 0時(shí),時(shí),TRi = 1,即可啟動(dòng),即可啟動(dòng)Ti定時(shí)定時(shí) / 計(jì)數(shù)計(jì)數(shù) GATE = 1時(shí),時(shí),TRi = 1,且,且 =1,才啟動(dòng)定時(shí),才啟動(dòng)定時(shí) / 計(jì)數(shù)。計(jì)數(shù)。INTi80310INT1INTP3.2P3.11被測(cè)信號(hào)被

31、測(cè)信號(hào)21a3T0計(jì)數(shù)計(jì)數(shù)T1計(jì)數(shù)計(jì)數(shù) ORG 0000H LJMP MAIN ORG 2000HMAIN:MOV TMOD,#99H ;T0、T1均工作在定時(shí),均工作在定時(shí), ;模式;模式1,GATE=1 MOV A,#00H ;T0、T1賦計(jì)數(shù)初值賦計(jì)數(shù)初值00H, ; 定時(shí)最長(zhǎng)時(shí)間為定時(shí)最長(zhǎng)時(shí)間為0000 65536 MOV TL0,A MOV TH0,A MOV TL1,A MOV TH1,A TEST0: JB P32,TEST0 ;檢測(cè)是否到;檢測(cè)是否到a點(diǎn)點(diǎn) SETB TR0 ;到;到a點(diǎn),點(diǎn),TR0 = 1,做好取計(jì)時(shí)值準(zhǔn)備。,做好取計(jì)時(shí)值準(zhǔn)備。TEST1: JNB P32,T

32、EST1 ;檢測(cè)是否到;檢測(cè)是否到1點(diǎn)點(diǎn) SETB TR1 ;到;到1點(diǎn)點(diǎn)T0計(jì)時(shí);計(jì)時(shí);TR1 = 1,做好,做好T1計(jì)時(shí)準(zhǔn)備。計(jì)時(shí)準(zhǔn)備。TEST2:JB P32,TEST2 ;檢測(cè)是否到;檢測(cè)是否到2點(diǎn)點(diǎn) CLR TR0 ;到;到2點(diǎn),停止點(diǎn),停止T0計(jì)時(shí),計(jì)時(shí),T1開(kāi)始計(jì)時(shí)。開(kāi)始計(jì)時(shí)。 MOV 20H,TH0 ;保存;保存T0計(jì)時(shí)結(jié)果計(jì)時(shí)結(jié)果 MOV 21H,TL0TEST3:JB P33,TEST3 ;檢測(cè)是否到;檢測(cè)是否到3點(diǎn)點(diǎn) CLR TR1 ;到;到3點(diǎn),停止點(diǎn),停止T1計(jì)數(shù)計(jì)數(shù) MOV 22H,TH1 ;保存;保存T1計(jì)數(shù)結(jié)果計(jì)數(shù)結(jié)果 MOV 23H,TL1 LCALL DISP SJMP 28=256=100H28=256=100H216=65536=10000H213=8192=2000H 模模 值值 (計(jì)數(shù)最大值計(jì)數(shù)最大值)TL0定時(shí),計(jì)數(shù)定時(shí),計(jì)數(shù)占用占用TR0、TF0

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論