第二節(jié)定時(shí)計(jì)數(shù)器與實(shí)驗(yàn)一、二_第1頁
第二節(jié)定時(shí)計(jì)數(shù)器與實(shí)驗(yàn)一、二_第2頁
第二節(jié)定時(shí)計(jì)數(shù)器與實(shí)驗(yàn)一、二_第3頁
第二節(jié)定時(shí)計(jì)數(shù)器與實(shí)驗(yàn)一、二_第4頁
第二節(jié)定時(shí)計(jì)數(shù)器與實(shí)驗(yàn)一、二_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、定時(shí)方法有:定時(shí)方法有:u軟件定時(shí):通過執(zhí)行循環(huán)程序?qū)崿F(xiàn)時(shí)間延遲軟件定時(shí):通過執(zhí)行循環(huán)程序?qū)崿F(xiàn)時(shí)間延遲, ,定定時(shí)準(zhǔn)確且不需外加硬件電路,但占用時(shí)準(zhǔn)確且不需外加硬件電路,但占用CPUCPU時(shí)間。時(shí)間。u硬件定時(shí):通過硬件電路的連接實(shí)現(xiàn)定時(shí),不硬件定時(shí):通過硬件電路的連接實(shí)現(xiàn)定時(shí),不增加增加CPUCPU開銷,但電路連接較繁,使用不方便。開銷,但電路連接較繁,使用不方便。u可編程定時(shí)器定時(shí):通過對(duì)系統(tǒng)的時(shí)鐘脈沖計(jì)可編程定時(shí)器定時(shí):通過對(duì)系統(tǒng)的時(shí)鐘脈沖計(jì)數(shù)進(jìn)行定時(shí),定時(shí)方便、準(zhǔn)確,定時(shí)時(shí)間可通過數(shù)進(jìn)行定時(shí),定時(shí)方便、準(zhǔn)確,定時(shí)時(shí)間可通過程序設(shè)定。即用定時(shí)程序設(shè)定。即用定時(shí)/ /計(jì)數(shù)器定時(shí)。計(jì)數(shù)器定時(shí)

2、。7.2 7.2 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器 1 1、定時(shí)、定時(shí)/ /計(jì)數(shù)器的基本結(jié)構(gòu)計(jì)數(shù)器的基本結(jié)構(gòu)2.2.定時(shí)定時(shí)/ /計(jì)數(shù)器的工作原理計(jì)數(shù)器的工作原理 MCS-51 MCS-51單片機(jī)有單片機(jī)有兩個(gè)兩個(gè)可編程定時(shí)可編程定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T/C0T/C0、T/C1T/C1, 1616位寄存器,位寄存器,加法計(jì)數(shù)結(jié)構(gòu)加法計(jì)數(shù)結(jié)構(gòu),T0T0(TH0TH0、TL0TL0),), T1T1(TH1TH1、TL1TL1)。)。 均有定時(shí)和計(jì)數(shù)功能,但進(jìn)行加法計(jì)數(shù)的均有定時(shí)和計(jì)數(shù)功能,但進(jìn)行加法計(jì)數(shù)的信號(hào)信號(hào)不同。不同。 (2) (2) 計(jì)數(shù)功能計(jì)數(shù)功能 計(jì)數(shù)就是對(duì)外部事件的輸入脈沖進(jìn)行計(jì)數(shù)計(jì)數(shù)就

3、是對(duì)外部事件的輸入脈沖進(jìn)行計(jì)數(shù)。 MCSMCS5151的計(jì)數(shù)脈沖來自的計(jì)數(shù)脈沖來自計(jì)數(shù)輸入端計(jì)數(shù)輸入端T0(P3.4)T0(P3.4)或或T1(P3.5)T1(P3.5),當(dāng)輸入信號(hào)產(chǎn)生當(dāng)輸入信號(hào)產(chǎn)生由由1 1至至0 0的下跳變的下跳變時(shí),計(jì)數(shù)時(shí),計(jì)數(shù)器的值加器的值加1 1。 在計(jì)數(shù)方式下,單片機(jī)在每個(gè)機(jī)器周期的在計(jì)數(shù)方式下,單片機(jī)在每個(gè)機(jī)器周期的S5P2S5P2拍拍節(jié)對(duì)外部計(jì)數(shù)脈沖進(jìn)行采樣,如果前一個(gè)機(jī)器周期采節(jié)對(duì)外部計(jì)數(shù)脈沖進(jìn)行采樣,如果前一個(gè)機(jī)器周期采樣為樣為1 1(高電平),后一個(gè)機(jī)器周期采樣為(高電平),后一個(gè)機(jī)器周期采樣為0(0(低電平低電平) ),則在緊跟著的再下一個(gè)機(jī)器周期則在

4、緊跟著的再下一個(gè)機(jī)器周期S3P1S3P1拍節(jié)計(jì)數(shù)器的值拍節(jié)計(jì)數(shù)器的值加加1 1。由于。由于確認(rèn)一次下跳變要花兩個(gè)機(jī)器周期確認(rèn)一次下跳變要花兩個(gè)機(jī)器周期,即,即2424個(gè)個(gè)晶振周期,所以,晶振周期,所以,外部輸入的計(jì)數(shù)脈沖的最高頻率應(yīng)外部輸入的計(jì)數(shù)脈沖的最高頻率應(yīng)為晶振頻率的為晶振頻率的1 12424,或者說外部計(jì)數(shù)脈沖的周期最短,或者說外部計(jì)數(shù)脈沖的周期最短要要2s2s(當(dāng)晶振頻率為(當(dāng)晶振頻率為12 MHz12 MHz)時(shí)。)時(shí)。 7.2.1 7.2.1 相關(guān)的特殊功能寄存器相關(guān)的特殊功能寄存器 工作方式控制寄存器工作方式控制寄存器TMODTMOD 相關(guān)的控制寄存器相關(guān)的控制寄存器 定時(shí)器控

5、制寄存器定時(shí)器控制寄存器TCONTCON 中斷允許寄存器中斷允許寄存器IEIE 計(jì)數(shù)寄存器計(jì)數(shù)寄存器THTH和和TLTL(4 4個(gè))個(gè)) 計(jì)數(shù)寄存器計(jì)數(shù)寄存器THTH和和TL-TL-TH1-TH1、TL1TL1,TH0TH0、TL0TL02. 2. 工作方式寄存器工作方式寄存器TMODTMOD 用于設(shè)定用于設(shè)定T/C0T/C0、T/C1T/C1的功能和工作方式,是專的功能和工作方式,是專用寄存器。用寄存器。TMODTMOD寄存器不能位尋址。高寄存器不能位尋址。高4 4位和低位和低4 4位名稱、作用一致,高位名稱、作用一致,高4 4位控制位控制 T1T1,低,低4 4位控制位控制T0T0。 GA

6、TE:門控位:門控位 GATE=0時(shí),當(dāng)定時(shí)控制寄存器時(shí),當(dāng)定時(shí)控制寄存器TCON中的中的TR0(或(或TR1)置)置“1”時(shí),啟動(dòng)定時(shí)時(shí),啟動(dòng)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0(或(或T1)工作;)工作; TR0(或(或TR1)清)清“0”時(shí),停止定時(shí)時(shí),停止定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0(或(或T1)工作。)工作。 GATE=1時(shí),除時(shí),除TR0(或(或TR1)置)置“1”外,還要外部中斷請(qǐng)求外,還要外部中斷請(qǐng)求信號(hào)信號(hào)INT0(P3.2)(或或INT1(P3.3)=1時(shí),才啟動(dòng)定時(shí)時(shí),才啟動(dòng)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0(或(或T1)工作;)工作; 可用于測量在可用于測量在INT0(或或INT1)引腳出現(xiàn)的脈沖高電

7、平引腳出現(xiàn)的脈沖高電平的寬度。的寬度。C/T: 定時(shí)定時(shí)/計(jì)數(shù)功能選擇位計(jì)數(shù)功能選擇位 C/T=0: 定時(shí)功能定時(shí)功能 C/T=1: 計(jì)數(shù)功能計(jì)數(shù)功能M1 M0 :工作方式選擇位:工作方式選擇位 滿值滿值M 0 0 :方式:方式0 :由:由THX(X=0,1)的的8位和位和TLX的低的低5位構(gòu)位構(gòu) 成的成的13位計(jì)數(shù)器。位計(jì)數(shù)器。 M=2 =8192 0 1 :方式:方式1 :由:由THX和和TLX構(gòu)成的構(gòu)成的16位計(jì)數(shù)器。位計(jì)數(shù)器。 M=2 =65536 1 0 :方式:方式2 :可自動(dòng)重裝初值的:可自動(dòng)重裝初值的8位計(jì)數(shù)器;位計(jì)數(shù)器; TLX作作 計(jì)數(shù)器,計(jì)數(shù)器,THX保存計(jì)數(shù)初值,一旦計(jì)

8、數(shù)器計(jì)保存計(jì)數(shù)初值,一旦計(jì)數(shù)器計(jì) 滿溢出,初值自動(dòng)裝入,繼續(xù)計(jì)數(shù)循環(huán)不止。滿溢出,初值自動(dòng)裝入,繼續(xù)計(jì)數(shù)循環(huán)不止。 M=2 =256 1 1 :方式:方式3 :僅適用于:僅適用于T0,分為兩個(gè),分為兩個(gè)8位計(jì)數(shù)器,位計(jì)數(shù)器,T1 停止工作。停止工作。 M=2 =2561316883. 3. 定時(shí)控制寄存器定時(shí)控制寄存器TCONTCON TCONTCON寄存器既參與寄存器既參與中斷控制中斷控制又參與又參與定時(shí)定時(shí)控制控制。其中高。其中高4 4位與定時(shí)有關(guān)。位與定時(shí)有關(guān)。TR0(或(或TR1) :定時(shí):定時(shí)/計(jì)數(shù)器運(yùn)行控制位計(jì)數(shù)器運(yùn)行控制位 TR0(或或TR1)=0,停止定時(shí),停止定時(shí)/計(jì)數(shù)器計(jì)數(shù)

9、器T0(或或T1)工作工作, TR0(或或TR1)=1,啟動(dòng)定時(shí),啟動(dòng)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0(或或T1)工作。工作。 軟件置軟件置“1”或清或清“0”。 TF0(或(或TF1) :計(jì)數(shù)溢出標(biāo)志位:計(jì)數(shù)溢出標(biāo)志位 當(dāng)計(jì)數(shù)器計(jì)滿溢出時(shí)當(dāng)計(jì)數(shù)器計(jì)滿溢出時(shí),該位由該位由硬件自動(dòng)置硬件自動(dòng)置“1”。 使用使用中斷方式中斷方式時(shí),此位作中斷標(biāo)志位,該位置時(shí),此位作中斷標(biāo)志位,該位置“1”的同時(shí)的同時(shí)向向CPU申請(qǐng)中斷,在轉(zhuǎn)向中斷服務(wù)程序時(shí)申請(qǐng)中斷,在轉(zhuǎn)向中斷服務(wù)程序時(shí)由硬件自動(dòng)清由硬件自動(dòng)清“0”。 使用使用查詢方式查詢方式時(shí),此位作狀態(tài)位供查詢,但應(yīng)注意查詢有時(shí),此位作狀態(tài)位供查詢,但應(yīng)注意查詢有效后效

10、后應(yīng)以軟件方法及時(shí)將該位清應(yīng)以軟件方法及時(shí)將該位清“0”。7.2.2. 7.2.2. 定時(shí)定時(shí)/ /計(jì)數(shù)器的工作方式計(jì)數(shù)器的工作方式 MCS-51MCS-51的定時(shí)的定時(shí)/ /計(jì)數(shù)器共有計(jì)數(shù)器共有4 4種工作方式種工作方式 工作方式工作方式0 0 方式方式0 0是是1313位位計(jì)數(shù)器,其計(jì)數(shù)器由計(jì)數(shù)器,其計(jì)數(shù)器由THTH全部全部8 8位和位和TLTL的低的低5 5位位構(gòu)成,構(gòu)成,TLTL的高的高3 3位棄之不用。位棄之不用。 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T T/C0 0在工作方式在工作方式0 0邏輯結(jié)構(gòu)邏輯結(jié)構(gòu) 工作方式工作方式1 1 方式方式1 1是是1616位位計(jì)數(shù)結(jié)構(gòu),計(jì)數(shù)器由計(jì)數(shù)結(jié)構(gòu),計(jì)

11、數(shù)器由THTH全部全部8 8位和位和TLTL全部全部8 8位構(gòu)成。其邏輯電路和工作情位構(gòu)成。其邏輯電路和工作情況與方式?jīng)r與方式0 0完全相同。完全相同。 工作方式工作方式2 2 工作方式工作方式2 2具有具有自動(dòng)重裝初值自動(dòng)重裝初值的功能。非的功能。非常適用于常適用于循環(huán)定時(shí)循環(huán)定時(shí)或或循環(huán)計(jì)數(shù)循環(huán)計(jì)數(shù)應(yīng)用,例如用于應(yīng)用,例如用于產(chǎn)生固定脈寬的脈沖,此外還可以作串行數(shù)據(jù)產(chǎn)生固定脈寬的脈沖,此外還可以作串行數(shù)據(jù)通信的波特率發(fā)生器使用。通信的波特率發(fā)生器使用。 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T/C0T/C0在工作方式在工作方式2 2邏輯結(jié)構(gòu)邏輯結(jié)構(gòu) 工作方式工作方式3 3 在工作方式在工作方式3 3下

12、,兩個(gè)定時(shí)計(jì)數(shù)器的設(shè)置和下,兩個(gè)定時(shí)計(jì)數(shù)器的設(shè)置和使用是不同的,使用是不同的,方式方式3 3只適用于只適用于T/C0T/C0,若設(shè)置,若設(shè)置T T/ /C C1 1為為方式方式3 3時(shí),則時(shí),則T1T1停止計(jì)數(shù)。停止計(jì)數(shù)。 方式方式3下的定時(shí)下的定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T/C0T/C0 在工作方式在工作方式3下,下,T/C0T/C0被拆成兩個(gè)獨(dú)立的被拆成兩個(gè)獨(dú)立的8位計(jì)數(shù)位計(jì)數(shù)器器TL0和和TH0。 功能功能 使用的控制位使用的控制位 TL0TL0定時(shí)、計(jì)數(shù)定時(shí)、計(jì)數(shù) 原原T0T0各控制位、引腳信號(hào)和中斷源各控制位、引腳信號(hào)和中斷源TH0TH0定時(shí)定時(shí)原原T1T1的控制位的控制位TR1TR1和和TF

13、1TF1。 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T0T0的工作方式的工作方式3 3邏輯結(jié)構(gòu)邏輯結(jié)構(gòu) 方式方式3 3下的定時(shí)計(jì)數(shù)器下的定時(shí)計(jì)數(shù)器T/C1T/C1 一般只有當(dāng)一般只有當(dāng)T/C1T/C1作為串行口的作為串行口的波特率發(fā)生器波特率發(fā)生器使用使用時(shí),時(shí),T/C0T/C0才工作于方式才工作于方式3 3,此時(shí),此時(shí)T1T1可工作于方式可工作于方式0 02 2。 常把常把T/C1T/C1設(shè)置為方式設(shè)置為方式2 2,作波特率發(fā)生器。僅用控,作波特率發(fā)生器。僅用控制位來切換其定時(shí)和計(jì)數(shù)方式;因?yàn)橐褯]有計(jì)數(shù)溢出制位來切換其定時(shí)和計(jì)數(shù)方式;因?yàn)橐褯]有計(jì)數(shù)溢出標(biāo)志位標(biāo)志位TFTF可供使用,因此只能把計(jì)數(shù)溢出直接送

14、給串可供使用,因此只能把計(jì)數(shù)溢出直接送給串行口。當(dāng)作為波特率發(fā)生器使用時(shí),只需設(shè)置好工作行口。當(dāng)作為波特率發(fā)生器使用時(shí),只需設(shè)置好工作方式,便可自動(dòng)運(yùn)行。如要停止工作,只需送入一個(gè)方式,便可自動(dòng)運(yùn)行。如要停止工作,只需送入一個(gè)把它設(shè)置為方式把它設(shè)置為方式3 3的方式控制字就可以了。的方式控制字就可以了。 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T/C0T/C0工作于方式工作于方式3 3時(shí)時(shí) T1T1的邏輯結(jié)構(gòu)的邏輯結(jié)構(gòu)7.2.3 7.2.3 定時(shí)定時(shí)/ /計(jì)數(shù)器的初始化計(jì)數(shù)器的初始化1. 1. 編程初始化步驟編程初始化步驟l確定確定T/CT/C的工作方式,給的工作方式,給TMODTMOD送值;送值;l算計(jì)數(shù)

15、初值,送到算計(jì)數(shù)初值,送到THTH和和TLTL;lT/CT/C在中斷方式工作時(shí),要開中斷,即給在中斷方式工作時(shí),要開中斷,即給IEIE送送值;值;l啟動(dòng)定時(shí)啟動(dòng)定時(shí)/ /計(jì)數(shù)器,給計(jì)數(shù)器,給TR1TR1或或TR0TR0置置1 1。 2.2.計(jì)數(shù)初值的計(jì)算計(jì)數(shù)初值的計(jì)算 (1 1)當(dāng)當(dāng) =0=0時(shí)為定時(shí)功能,時(shí)為定時(shí)功能, 計(jì)數(shù)初值的范圍計(jì)數(shù)初值的范圍=0=0(2 -12 -1) nn各工作方式中計(jì)數(shù)器的位數(shù),按順序分別為各工作方式中計(jì)數(shù)器的位數(shù),按順序分別為 13,16,8,813,16,8,8;相對(duì)應(yīng)的;相對(duì)應(yīng)的2 =8192,65536,256,2562 =8192,65536,256,2

16、56。 TC /TC /TC /TC /TC /TC / (2)當(dāng) =1時(shí)為計(jì)數(shù)功能,計(jì)數(shù)值的范圍2 計(jì)數(shù)初值127.2.4 定時(shí)/計(jì)數(shù)器的應(yīng)用實(shí)例例例1 1 時(shí)鐘頻率為時(shí)鐘頻率為12MHz 12MHz 的的80518051芯片上,用芯片上,用Timer1Timer1產(chǎn)生產(chǎn)生10kHz10kHz定時(shí)器滴答中斷。定時(shí)器滴答中斷。 #include #include /T1/T1中斷服務(wù)程序,每中斷服務(wù)程序,每 100100個(gè)個(gè)T T機(jī)執(zhí)行機(jī)執(zhí)行1 1次。次。 static unsigned long overflow-count=0;static unsigned long overflow-c

17、ount=0; void timer1-ISR(void) interrupt 3 void timer1-ISR(void) interrupt 3 overflow-count+; overflow-count+; /計(jì)數(shù)溢出時(shí)加計(jì)數(shù)溢出時(shí)加1 1 /MAIN C函數(shù):置定時(shí)器函數(shù):置定時(shí)器1為方式為方式2,計(jì)數(shù)到,計(jì)數(shù)到255溢出,溢出,用用156重裝初值,并產(chǎn)生中斷重裝初值,并產(chǎn)生中斷/ void main (void) TMOD=(TMOD&0 x0F)|0 x20; /置定時(shí)器置定時(shí)器1為方式為方式2/ TH1=256-100; TL1=TH1; /送初值送初值/ ET1=

18、1; /允許中斷源允許中斷源T1中斷中斷/ TR1=1; /啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器1/ EA=1; /開總中斷開總中斷/ while(1); /無限循環(huán)無限循環(huán)/ 例例2 2 設(shè)單片機(jī)晶振頻率設(shè)單片機(jī)晶振頻率 = 12MHz= 12MHz,要求由,要求由P1.0P1.0輸出周期為輸出周期為2ms2ms的方波,試設(shè)計(jì)初始化程序。的方波,試設(shè)計(jì)初始化程序。解:解: 計(jì)算計(jì)數(shù)初值計(jì)算計(jì)數(shù)初值 只需在只需在P1.0 P1.0 端交替輸出持續(xù)時(shí)間均為端交替輸出持續(xù)時(shí)間均為1ms1ms的高低電的高低電 平即可實(shí)現(xiàn),即定時(shí)平即可實(shí)現(xiàn),即定時(shí)1ms1ms,每到,每到1ms1ms,P1.0P1.0取反即可。取反即

19、可。 計(jì)算方式計(jì)算方式1 1的計(jì)數(shù)初值的計(jì)數(shù)初值 6553665536X X1s1s1000s1000s 求解得:求解得:X=65536-1000=64536X=65536-1000=64536 即即 TH0=64536/256, TL0=64536%256TH0=64536/256, TL0=64536%256; TMOD TMOD寄存器初始化寄存器初始化 T1T1不用,故高不用,故高4 4位均設(shè)定為位均設(shè)定為0;0; 為實(shí)現(xiàn)為實(shí)現(xiàn)T0T0的運(yùn)行控制,則的運(yùn)行控制,則GATE = 0GATE = 0; 定時(shí)功能,定時(shí)功能, =0=0; 方式方式1 1,則,則 M1 M0=0 1M1 M0=0

20、 1。 所以所以TMODTMOD寄存器應(yīng)初始化為寄存器應(yīng)初始化為01H01H; TCON TCON寄存器初始化寄存器初始化 設(shè)設(shè)TR0=1TR0=1啟動(dòng)定時(shí)器;啟動(dòng)定時(shí)器; TF0TF0清清“0”0”,以備定時(shí)溢出時(shí)置,以備定時(shí)溢出時(shí)置“1”1”。 本例題功能可用本例題功能可用查詢方式查詢方式實(shí)現(xiàn),亦可用實(shí)現(xiàn),亦可用中斷中斷方式方式實(shí)現(xiàn)。實(shí)現(xiàn)。 l用定時(shí)器用定時(shí)器0 0的方式的方式1 1編程,采用編程,采用查詢方式查詢方式。程序。程序名名time32.ctime32.c #include sbit P1.0=P10; void main (void) TMOD=0 x01; /置定時(shí)器置定時(shí)器

21、0為方式為方式1 TR0=1; /啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器0 for(;) TH0=(65536-1000)/256; TL0=(65536-1000)%256; /裝載計(jì)數(shù)初值裝載計(jì)數(shù)初值 do while(!TF0 ); /查詢等待查詢等待TF0 置位置位 P1.0=!P1.0; /定時(shí)時(shí)間到定時(shí)時(shí)間到P1.0反相反相 TF0=0; /查詢方式時(shí)必須查詢方式時(shí)必須軟件清軟件清TF0 l用定時(shí)器用定時(shí)器0 0的方式的方式1 1編程,采用編程,采用中斷方式中斷方式。程序名。程序名time31.ctime31.c 例例3 如如p189圖圖8-4所示,在所示,在P1.7端接有一個(gè)發(fā)光二極管,端接有一個(gè)

22、發(fā)光二極管,要求用要求用T/C控制,使控制,使LED亮亮1s,滅滅1s,周而復(fù)始。周而復(fù)始。 解:若晶振解:若晶振6MHz,1T機(jī)機(jī)=2s,方式,方式1最大定時(shí)時(shí)間最大定時(shí)時(shí)間130ms。因定時(shí)時(shí)間長,定時(shí)一次達(dá)不到。因定時(shí)時(shí)間長,定時(shí)一次達(dá)不到1s,可用復(fù)合,可用復(fù)合定時(shí)實(shí)現(xiàn):定時(shí)實(shí)現(xiàn):l 用用T/C0每定時(shí)每定時(shí)100ms中斷,將中斷,將P1.0 取反一次,即取反一次,即P1.0輸出周期輸出周期 為為200ms的方波脈沖;的方波脈沖;l 用用T/C1對(duì)對(duì)P1.0 輸出的脈沖計(jì)數(shù),輸出的脈沖計(jì)數(shù),5個(gè)脈沖就是個(gè)脈沖就是1s,即用,即用T/C1 每計(jì)滿每計(jì)滿5個(gè)數(shù)就中斷,將個(gè)數(shù)就中斷,將P1.

23、7反相,改變燈的狀態(tài)。反相,改變燈的狀態(tài)。l T/C0定時(shí)方式定時(shí)方式1: 100000=(65536-X)*2 初值初值=65536-50000=15536=3CB0Hl T/C1計(jì)數(shù)方式計(jì)數(shù)方式2: 5=256-X 初值初值=256-5=251 TMOD=01100001B=61Hl用定時(shí)器用定時(shí)器0 0、計(jì)數(shù)器、計(jì)數(shù)器1 1的方式的方式1 1、2 2編程,均采用中斷編程,均采用中斷方式。程序名方式。程序名time33.ctime33.c #include sbit P1.0=P10; sbit P1.7=P17; timer0( ) interrupt 1 using 1 / T/C0中

24、斷服務(wù)程序中斷服務(wù)程序 P1.0=!P1.0; /100ms到,到,P1.0反相反相 TH0=(65536-50000)/256; TL0=(65536-50000)%256; /重裝計(jì)數(shù)初值重裝計(jì)數(shù)初值 timer1( ) interrupt 3 using 2 / T/C1中斷服務(wù)程序中斷服務(wù)程序 P1.7=!P1.7; /1s到,到,P1.7反相反相 main ( ) PI.7=0; /置燈初始滅(為置燈初始滅(為0時(shí)滅)時(shí)滅) PI.0=1; /保證第一次反相就開始計(jì)數(shù)保證第一次反相就開始計(jì)數(shù) TMOD=0 x61; /置置T/C0為方式為方式1定時(shí)定時(shí),T/C1為方式為方式2計(jì)數(shù)計(jì)數(shù)

25、 TH0=(65536-1000)/256; TL0=(65536-1000)%256; TH1=256-5; TL1=256-5; /裝載計(jì)數(shù)初值裝載計(jì)數(shù)初值 IP=0 x08; /置優(yōu)先級(jí)寄存器置優(yōu)先級(jí)寄存器 EA=1; /CPU開中斷開中斷 ET0=1; /T/C0 開中斷開中斷 ET1=1; /T/C1開中斷開中斷 TR0=1; /啟動(dòng)啟動(dòng)T/C0 TR1=1; /啟動(dòng)啟動(dòng)T/C1 for(; ) 例例4 4 【功能】:用定時(shí)器【功能】:用定時(shí)器T0T0測量測量 (P3.2P3.2)引腳上輸)引腳上輸入的外脈沖高電平寬度。已知晶振頻率為入的外脈沖高電平寬度。已知晶振頻率為12MHz12

26、MHz。1INT1INT1INT1INT實(shí)實(shí) 驗(yàn)驗(yàn) 注注 意意 事事 項(xiàng)項(xiàng)1實(shí)驗(yàn)前先不連仿真器,給實(shí)驗(yàn)箱通電,若實(shí)驗(yàn)前先不連仿真器,給實(shí)驗(yàn)箱通電,若實(shí)驗(yàn)箱上的八段數(shù)碼顯示器顯示字母實(shí)驗(yàn)箱上的八段數(shù)碼顯示器顯示字母“P”,表示實(shí)驗(yàn)箱無故障。表示實(shí)驗(yàn)箱無故障。2必須斷電插拔線。必須斷電插拔線。 3程序存入程序存入c:dice5151asm*.c,程序名必,程序名必須以英文字母開頭,擴(kuò)展名為須以英文字母開頭,擴(kuò)展名為.c。 4若實(shí)驗(yàn)出現(xiàn)故障,可用以下程序單步運(yùn)行若實(shí)驗(yàn)出現(xiàn)故障,可用以下程序單步運(yùn)行(按(按F7鍵實(shí)現(xiàn)單步運(yùn)行)驗(yàn)證,鍵實(shí)現(xiàn)單步運(yùn)行)驗(yàn)證,實(shí)驗(yàn)一實(shí)驗(yàn)一 定時(shí)定時(shí)/ /計(jì)數(shù)實(shí)驗(yàn)計(jì)數(shù)實(shí)驗(yàn) 一

27、一 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?熟悉單片機(jī)內(nèi)部定時(shí)熟悉單片機(jī)內(nèi)部定時(shí)/ /計(jì)數(shù)器的功能;計(jì)數(shù)器的功能; 掌握定時(shí)、計(jì)數(shù)程序的初始化編制方法。掌握定時(shí)、計(jì)數(shù)程序的初始化編制方法。二二 實(shí)驗(yàn)設(shè)備實(shí)驗(yàn)設(shè)備 DICE5203 KDICE5203 K實(shí)驗(yàn)開發(fā)系統(tǒng),計(jì)算機(jī)實(shí)驗(yàn)開發(fā)系統(tǒng),計(jì)算機(jī)三三 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容(一)定時(shí)(一)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T0T0延時(shí)實(shí)驗(yàn)延時(shí)實(shí)驗(yàn) 已知系統(tǒng)時(shí)鐘頻率已知系統(tǒng)時(shí)鐘頻率fosc =12MHfosc =12MHZ Z,用定時(shí),用定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T0T0延時(shí),延時(shí),編程使與編程使與P1.0P1.0口相連的發(fā)光二極管每隔口相連的發(fā)光二極管每隔1s1s發(fā)光狀態(tài)改變,使發(fā)光狀態(tài)改變

28、,使與與P1.1P1.1口相連的發(fā)光二極管每隔口相連的發(fā)光二極管每隔5s5s發(fā)光狀態(tài)改變,循環(huán)不止。發(fā)光狀態(tài)改變,循環(huán)不止。(二)定時(shí)(二)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T1T1計(jì)數(shù)實(shí)驗(yàn)計(jì)數(shù)實(shí)驗(yàn) 已知系統(tǒng)時(shí)鐘頻率已知系統(tǒng)時(shí)鐘頻率fosc =12MHfosc =12MHZ Z,用定時(shí),用定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T1T1計(jì)數(shù),計(jì)數(shù),編程使按鍵每閉合編程使按鍵每閉合5 5次,與次,與P1.0P1.0口相連的發(fā)光二極管發(fā)光狀態(tài)改口相連的發(fā)光二極管發(fā)光狀態(tài)改變(即變(即T1T1每記錄每記錄5 5個(gè)脈沖,個(gè)脈沖,P1.0P1.0取反一次)。取反一次)。 四、實(shí)驗(yàn)步驟四、實(shí)驗(yàn)步驟(一)定時(shí)(一)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0

29、延時(shí)實(shí)驗(yàn)延時(shí)實(shí)驗(yàn)1、連接電源線和串行口數(shù)據(jù)線;、連接電源線和串行口數(shù)據(jù)線;2、用插針將、用插針將P1.0孔與發(fā)光二極管孔與發(fā)光二極管L1孔相連,孔相連,P1.1孔與發(fā)光二極管孔與發(fā)光二極管L2孔相連;孔相連;3、打開、打開DICE5203 K實(shí)驗(yàn)開發(fā)系統(tǒng)的電源;實(shí)驗(yàn)開發(fā)系統(tǒng)的電源;4、啟動(dòng)計(jì)算機(jī),打開桌面軟件文件夾,選擇、啟動(dòng)計(jì)算機(jī),打開桌面軟件文件夾,選擇MS51仿真開發(fā)系統(tǒng)圖標(biāo)雙擊,進(jìn)入軟件仿真開發(fā)系統(tǒng)圖標(biāo)雙擊,進(jìn)入軟件編程界面;編程界面;5、編制程序,調(diào)試、運(yùn)行;、編制程序,調(diào)試、運(yùn)行;6、觀察發(fā)光二極管狀態(tài)。、觀察發(fā)光二極管狀態(tài)。 (二)定時(shí)(二)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1計(jì)數(shù)實(shí)驗(yàn)計(jì)數(shù)實(shí)驗(yàn)

30、1連接電源線和串行口數(shù)據(jù)線;連接電源線和串行口數(shù)據(jù)線;2用插針將用插針將P1.0孔與發(fā)光二極管孔與發(fā)光二極管L1孔相連,孔相連, P3.5孔與單脈沖輸出孔相連;孔與單脈沖輸出孔相連;3打開打開DICE5203 K實(shí)驗(yàn)開發(fā)系統(tǒng)的電源;實(shí)驗(yàn)開發(fā)系統(tǒng)的電源;4啟動(dòng)計(jì)算機(jī),打開桌面軟件文件夾,選擇啟動(dòng)計(jì)算機(jī),打開桌面軟件文件夾,選擇 MS51仿真開發(fā)系統(tǒng)圖標(biāo)雙擊,進(jìn)入軟件編仿真開發(fā)系統(tǒng)圖標(biāo)雙擊,進(jìn)入軟件編程界面;程界面;5. 編制程序,調(diào)試、運(yùn)行;編制程序,調(diào)試、運(yùn)行;6反復(fù)扳動(dòng)按鍵開關(guān),觀察發(fā)光二極管狀態(tài)。反復(fù)扳動(dòng)按鍵開關(guān),觀察發(fā)光二極管狀態(tài)。 五思考題:五思考題:1實(shí)驗(yàn)(一)中,如果用實(shí)驗(yàn)(一)中

31、,如果用T1 延時(shí),使與延時(shí),使與P1.0口相連的發(fā)光二極管每隔口相連的發(fā)光二極管每隔2s發(fā)光狀態(tài)發(fā)光狀態(tài)改變,程序?qū)⑷绾尉幹??改變,程序?qū)⑷绾尉幹疲?實(shí)驗(yàn)(二)中,若使按鍵每閉合實(shí)驗(yàn)(二)中,若使按鍵每閉合10次,與次,與P1.1口相連的發(fā)光二極管發(fā)光狀態(tài)改變,口相連的發(fā)光二極管發(fā)光狀態(tài)改變,程序?qū)⑷绾尉幹??程序?qū)⑷绾尉幹疲?#include /實(shí)驗(yàn)一實(shí)驗(yàn)一(一一)程序程序 #define uint unsigned int sbit P1_0=P10; sbit P1_1=P11; uint i=0,j=0; void main(void) P1_0=0;P1_1=0;TMOD=0 x01

32、;EA=1;ET0=1;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;while(1); void tim0(void) interrupt 1 using 1 EA=0;i+;j+;if(i=20)P1_0=!P1_0;i=0;if(j=100)P1_1=!P1_1;j=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1; #include /實(shí)驗(yàn)一(二)程序?qū)嶒?yàn)一(二)程序 sbit P1_0=P10; void main(void) P1_0=1;TMOD=0 x06;EA=1;ET0=1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論