單片機(jī)定時(shí)器實(shí)驗(yàn)_第1頁(yè)
單片機(jī)定時(shí)器實(shí)驗(yàn)_第2頁(yè)
單片機(jī)定時(shí)器實(shí)驗(yàn)_第3頁(yè)
單片機(jī)定時(shí)器實(shí)驗(yàn)_第4頁(yè)
單片機(jī)定時(shí)器實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(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、實(shí)驗(yàn)三 單片機(jī)內(nèi)部定時(shí)器應(yīng)用實(shí)驗(yàn)?zāi)康?、理解單片機(jī)內(nèi)部定時(shí)器的工作原理及使用方法2、了解單片機(jī)定時(shí)中斷程序的編寫和調(diào)試方法3、掌握定時(shí)器的根本使用方法實(shí)驗(yàn)儀器單片機(jī)開發(fā)板、萬(wàn)利仿真機(jī)、穩(wěn)壓電源、計(jì)算機(jī)實(shí)驗(yàn)原理1、 單片機(jī)定時(shí)器的工原理MCS-51 單片機(jī)內(nèi)部有兩個(gè)16 位可編程的定時(shí)器/計(jì)數(shù)器T0 和T1。它們即可用作定時(shí)器方式,又可用作計(jì)數(shù)器方式。其中T0 由TH0 和TL0 計(jì)數(shù)器構(gòu)成;T1 由TH1 和TL1 計(jì)數(shù)器構(gòu)成。工作于定時(shí)器方式時(shí),通過(guò)對(duì)機(jī)器周期新型51單片機(jī)可以對(duì)振蕩周期計(jì)數(shù)的計(jì)數(shù),即每一個(gè)機(jī)器周期定時(shí)器加1,來(lái)實(shí)現(xiàn)定時(shí)。故系統(tǒng)晶振頻率直接影響定時(shí)時(shí)間。如果晶振頻率為12MH

2、Z,那么定時(shí)器每隔1/12MHZ×12=1us 加1。工作于計(jì)數(shù)器方式時(shí),對(duì)P3.4 或P3.5 管腳的負(fù)跳變10計(jì)數(shù)。它在每個(gè)機(jī)器周期的S5P2 時(shí)采樣外部輸入,當(dāng)采樣值在這個(gè)機(jī)器周期為高,在下一個(gè)機(jī)器周期為低時(shí),計(jì)數(shù)器加1。因此需要兩個(gè)機(jī)器周期來(lái)識(shí)別一個(gè)有效跳變,故最高計(jì)數(shù)頻率為晶振頻率的1/24。特殊功能存放器TMOD 用于定時(shí)器/計(jì)數(shù)器的方式控制。高4 位用于設(shè)置T1,低4 位用于設(shè)置T0。如圖4-7所示。圖4-7 定時(shí)器模式控制字格式TCON 存放器用于定時(shí)器的計(jì)數(shù)控制和中斷標(biāo)志。如圖4-8所示。圖4-8 定時(shí)控制存放器數(shù)據(jù)格式編寫程序控制這兩個(gè)存放器就可以控制定時(shí)器的運(yùn)行

3、方式。單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器的使用,簡(jiǎn)而概之:1如需用中斷,那么將EA和相關(guān)中斷控制位置1;2根據(jù)需要設(shè)置工作方式,即對(duì)TMOD設(shè)置;3然后啟動(dòng)計(jì)數(shù),即對(duì)TR0或TR1置1。4如使用中斷,那么計(jì)數(shù)溢出后硬件會(huì)自動(dòng)轉(zhuǎn)入中斷入口地址;如使用查詢,那么必須對(duì)溢出中斷標(biāo)志位TF0或TF1進(jìn)行判斷。2、 用定時(shí)器編寫一個(gè)秒計(jì)時(shí)器假設(shè)系統(tǒng)使用的晶振頻率為12MHZ,即每個(gè)機(jī)器周期為1us。如使用方式1,那么定時(shí)時(shí)間最長(zhǎng)是216×1us=65536us=65.536ms,小于1s。故必須設(shè)置一個(gè)軟件計(jì)數(shù)單元,即假設(shè)定時(shí)器定時(shí)中斷時(shí)間為50ms,那么必須定時(shí)中斷20次才到達(dá)1s并對(duì)秒計(jì)時(shí)單元加1,

4、20即為軟件計(jì)數(shù)次數(shù)。最后再把秒計(jì)時(shí)單元的值轉(zhuǎn)成顯示數(shù)碼送顯示緩沖區(qū)。定時(shí)器中斷效勞程序中斷返回保護(hù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)軟件計(jì)數(shù)-1=0?秒計(jì)時(shí)器加1,轉(zhuǎn)成顯示數(shù)據(jù)并送顯示YN主程序初始化中斷控制器,定時(shí)器,軟件初值,顯示緩沖區(qū)啟動(dòng)定時(shí)器調(diào)用顯示程序圖4-9 定時(shí)器應(yīng)用程序流程圖實(shí)驗(yàn)內(nèi)容1、單片機(jī)定時(shí)器秒計(jì)時(shí)器LEDCLK BIT P3.4;LEDDIN BIT P2.3;LEDDATA DATA P0;DSEG AT 30Hdispbuf: ds 8;顯示緩沖區(qū)timetick: ds 1second: ds 1minute: ds 1hour: ds 1TIMECOUNT EQU 50000CSE

5、G at 0000HSJMP MAINORG 000BHLJMPP_T0ORG 0030;中斷效勞程序P_T0:PUSH PSWPUSH ACCPUSH DPHPUSH DPLMOV TH0,#(65535-TIMECOUNT)/256MOV TL0,#(65535-TIMECOUNT)MOD 256SETB RS0;后面所使用的R0r7DJNZ timetick,P_T02MOV timetick,#20INC second;cjne second,#60,P_T01;MOV SECOND,#0;inc minute;P_T01:MOV A,secondMOV B,#100DIV ABMOV

6、 R0,#dispbuf+2MOV R0,ADEC R0MOV A,BMOV B,#10DIV ABMOV R0,ADEC R0MOV R0,BP_T02:CLR RS0POP DPLPOP DPHPOP ACCPOP PSWRETIMAIN:mov sp,#60hMOV dispbuf,#0MOV dispbuf+1,#0MOV dispbuf+2,#0MOV dispbuf+3,#0MOV dispbuf+4,#0MOV dispbuf+5,#0MOV dispbuf+6,#0MOV dispbuf+7,#0MOV TH0,#(65535-TIMECOUNT)/256;3CAFMOV TL

7、0,#(65535-TIMECOUNT)MOD 256;MOV TMOD,#01H;設(shè)定定時(shí)器的工作方式SETB ET0;允許T0溢出中斷SETB TR0;啟動(dòng)t0SETB EA;開啟總中斷MAIN1:ACALL DISPSJMP MAIN1DISP:MOV R6,#8MOV R0,#dispbufCLR LEDCLKCLR LEDDINNOPDISP1:SETB LEDCLKMOV A,R0MOV DPTR,#LEDTABMOVC A,A+DPTRMOV LEDDATA,A;MOV R7,#5ACALL DelayNmsINC R0SETB LEDDINCLR LEDCLKDJNZ R6,D

8、ISP1RET; 大延時(shí)DelayNms:D1:ACALL Delay1msDJNZR7,D1RET; 延時(shí)子程序Delay1ms:push 07mov R7,#250delay1:NOPNOPDJNZ R7,delay1POP 07RETLEDTAB:DB 03H,9FH,25H,0DH;0,1,2,3 DB 99H,49H,41H,1FH;4,5,6,7 DB 01H,09H,11H,0C1H;8,9,A,B DB 63H,85H,61H,71H;C,D,E,FEND2、修改上面的程序,設(shè)計(jì)一個(gè)N秒倒計(jì)時(shí)器N為學(xué)號(hào)后兩位。倒計(jì)時(shí)時(shí)間到后,重新開始計(jì)時(shí)。LEDCLK BIT P3.4;LED

9、DIN BIT P2.3;LEDDATA DATA P0;DSEG AT 30Hdispbuf: ds 8;顯示緩沖區(qū)timetick: ds 1second: ds 1minute: ds 1hour: ds 1TIMECOUNT EQU 50000CSEG at 0000HSJMP MAINORG 000BHLJMPP_T0ORG 0030H;中斷效勞程序P_T0:PUSH PSWPUSH ACCPUSH DPHPUSH DPLMOV TH0,#(65535-TIMECOUNT)/256MOV TL0,#(65535-TIMECOUNT)MOD 256SETB RS0;后面所使用的R0r7

10、DJNZ timetick,P_T01MOV timetick,#20dec secondMOV A,second CJNE A,#00,P_T01MOV SECOND,#33P_T01:MOV A,secondMOV B,#100DIV ABMOV R0,#dispbuf+2MOV R0,ADEC R0MOV A,BMOV B,#10DIV ABMOV R0,ADEC R0MOV R0,BCLR RS0POP DPLPOP DPHPOP ACCPOP PSWRETIMAIN:mov sp,#60hMOV dispbuf,#0MOV dispbuf+1,#0MOV dispbuf+2,#0MO

11、V dispbuf+3,#0MOV dispbuf+4,#0MOV dispbuf+5,#0MOV dispbuf+6,#0MOV dispbuf+7,#0mov timetick,#20mov second,#33MOV TH0,#(65535-TIMECOUNT)/256;3CAFMOV TL0,#(65535-TIMECOUNT)MOD 256;MOV TMOD,#01HSETB ET0;允許T0溢出中斷SETB TR0;啟動(dòng)t0SETB EA;開啟總中斷MAIN1:ACALL DISPSJMP MAIN1DISP:MOV R6,#8MOV R0,#dispbufCLR LEDCLKCL

12、R LEDDINNOPDISP1:SETB LEDCLKMOV A,R0MOV DPTR,#LEDTABMOVC A,A+DPTRMOV LEDDATA,A;MOV R7,#5ACALL DelayNmsINC R0SETB LEDDINCLR LEDCLKDJNZ R6,DISP1RET; 大延時(shí)DelayNms:D1:ACALL Delay1msDJNZR7,D1RET; 延時(shí)子程序Delay1ms:push 07mov R7,#250delay1:NOPNOPDJNZ R7,delay1POP 07RETLEDTAB:DB 03H,9FH,25H,0DH;0,1,2,3 DB 99H,4

13、9H,41H,1FH;4,5,6,7 DB 01H,09H,11H,0C1H;8,9,A,B DB 63H,85H,61H,71H;C,D,E,FEND思考題1、在實(shí)驗(yàn)程序根底上編寫一個(gè)24小時(shí)計(jì)時(shí)時(shí)鐘。LEDCLK BIT P3.4;LEDDIN BIT P2.3;LEDDATA DATA P0;DSEG AT 30Hdispbuf: ds 8;顯示緩沖區(qū)timetick: ds 1second: ds 1minute: ds 1hour: ds 1TIMECOUNT EQU 50000CSEG at 0000HSJMP MAINORG 000BHLJMPP_T0ORG 0030H;中斷效勞

14、程序P_T0:PUSH PSWPUSH ACCPUSH DPHPUSH DPLMOV TH0,#(65535-TIMECOUNT)/256MOV TL0,#(65535-TIMECOUNT)MOD 256SETB RS0;后面所使用的R0r7DJNZ timetick,P_T02MOV timetick,#20INC secondMOV A,second CJNE A,#60,P_T01;秒MOV SECOND,#0inc minute;MOV A,minute;分CJNE A,#60,P-T01INC HOUR;時(shí)MOV A,HOURCJNE A,#12,P-T01MOV HOUR,#0P_

15、T01:MOV A,secondMOV B,#100DIV ABMOV R0,#dispbuf+2MOV R0,ADEC R0MOV A,BMOV B,#10DIV ABMOV R0,ADEC R0MOV R0,BP_T02:CLR RS0POP DPLPOP DPHPOP ACCPOP PSWRETIMAIN:mov sp,#60hMOV dispbuf,#0MOV dispbuf+1,#0MOV dispbuf+2,#0MOV dispbuf+3,#0MOV dispbuf+4,#0MOV dispbuf+5,#0MOV dispbuf+6,#0MOV dispbuf+7,#0MOV TH

16、0,#(65535-TIMECOUNT)/256;3CAFMOV TL0,#(65535-TIMECOUNT)MOD 256;MOV TMOD,#01H;設(shè)定定時(shí)器的工作方式SETB ET0;允許T0溢出中斷SETB TR0;啟動(dòng)t0SETB EA;開啟總中斷MAIN1:ACALL DISPSJMP MAIN1DISP:MOV R6,#8MOV R0,#dispbufCLR LEDCLKCLR LEDDINNOPDISP1:SETB LEDCLKMOV A,R0MOV DPTR,#LEDTABMOVC A,A+DPTRMOV LEDDATA,A;MOV R7,#5ACALL DelayNmsINC R0SETB LEDDINCLR LEDCLKDJNZ R6,DISP1RET; 大延時(shí)DelayNms:D1:ACALL Delay1msDJNZR7,D1RET; 延時(shí)子程序Delay1ms:push 07mov R7,#

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論