單片機(jī)定時(shí)器試驗(yàn)_第1頁(yè)
單片機(jī)定時(shí)器試驗(yàn)_第2頁(yè)
單片機(jī)定時(shí)器試驗(yàn)_第3頁(yè)
單片機(jī)定時(shí)器試驗(yàn)_第4頁(yè)
單片機(jī)定時(shí)器試驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ā)板、萬利仿真機(jī)、穩(wěn)壓電源、計(jì)算機(jī)實(shí)驗(yàn)原理1、單片機(jī)定時(shí)器的工原理MCS-51單片機(jī)內(nèi)部有兩個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器TO和T1。它們即可用 作定時(shí)器方式,又可用作計(jì)數(shù)器方式。其中TO由THO和TLO計(jì)數(shù)器構(gòu)成;T1由 TH1和TL1計(jì)數(shù)器構(gòu)成。工作于定時(shí)器方式時(shí),通過對(duì)機(jī)器周期(新型51單片機(jī)可以對(duì)振蕩周期計(jì)數(shù)) 的計(jì)數(shù),即每一個(gè)機(jī)器周期定時(shí)器加1,來實(shí)現(xiàn)定時(shí)。故系統(tǒng)晶振頻率直接影響定 時(shí)時(shí)間。如果晶振頻率為12MHZ,則定

2、時(shí)器每隔(1/12MHZ) X 12二lus力口 1。工作于計(jì)數(shù)器方式時(shí),對(duì)或管腳的負(fù)跳變(1-0)計(jì)數(shù)。它在每個(gè)機(jī)器周期 的S5P2時(shí)采樣外部輸入,當(dāng)采樣值在這個(gè)機(jī)器周期為高,在下一個(gè)機(jī)器周期為低 時(shí),計(jì)數(shù)器加1。因此需要兩個(gè)機(jī)器周期來識(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)行方式。單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器

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

4、元的值轉(zhuǎn)成顯示數(shù)碼送顯示緩沖區(qū)。dispbuf: ds 8;顯不緩沖區(qū)timetick: ds 1second:ds 1minute:ds 1hour:ds 1TIMECOUNT EQU 50000CSEG at 0000HSJMP MAINORG 000BHLJMP P_TOORG 0030;中斷服務(wù)程序P_TO:PUSH PSWPUSH ACCPUSH DPHPUSH DPLMOV THO,#(65535-TIMECOUNT)/256MOV TLO, U(65535-TIMECOUNT)MOD 256SETB RSO;后面所使用的ROr7DJNZ timetick, P_T02MOV ti

5、metick, #20INC second;c jne second, #60, P_T01MOV SECOND, #0; inc minute;P_T01: MOV A, secondMOV B, #100DIV ABMOV RO, ttdispbuf+2MOV R0, ADEC ROMOV A, BMOV B, #10DIV ABMOV R0,ADEC ROMOV R0, BP_T02: CLR RSOPOP DPLPOP DPHPOP ACCPOP PSWRET IMAIN:mov sp, #60hMOV dispbuf, #0MOV dispbuf+l,#OMOV dispbuf+2,

6、#0MOV dispbuf+3,#0MOV dispbuf+4, #0MOV dispbuf+5,#0mov dispbuf+6, noMOV dispbuf+7,#0MOV THO, U(65535-TIMECOUNT)/256;3CAFMOV TLO, U(65535-TIMECOUNT)MOD 256;MOV TM0D,#01H;設(shè)定定時(shí)器的匸作方式SETB ETO;允許TO溢出中斷SETB TRO;啟動(dòng) tOSETB EA;開啟總中斷MAIN1:ACALL DISPSJMP MAINlDISP:MOV R6, #8MOV RO, ttdispbufCLR LEDCLKCLR LEDDI

7、NNOPDISP1: SETB LEDCLKMOV A, ROMOV DPTR,ttLEDTABMOVC A,A+DPTRMOV LEDDATA, A;MOV R7, #5ACALL DelayNmsINC ROSETB LEDDINCLR LEDCLKDJNZ R6, DISP1RET;大延時(shí)DelayNms:DI: ACALL DelaylmsDJNZ R7,D1RET; 延時(shí)子程序Delaylms:push 07mov R7, #250delayl:NOPNOPDJNZ R7, delaylPOP 07RETLEDTAB: DB 03H, 9FH, 25H, 0DH;0, 1, 2, 3

8、DB 99H, 49H,41H, 1FH;4, 5, 6,7DB 01H, 09H, 11H, 0C1H; 8, 9, A, BDB 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 ;LEDDIN BIT ;LEDDATA DATA P0;DSEG AT 30Hdispbuf: ds 8;顯示緩沖區(qū)timetick: ds 1second:ds 1minute:ds 1hour:ds 1TIMECOUNT EQU 50000SJMP MAINCSEG at 0000HORG O

9、OOBHLJMP P_TOORG 0030H;中斷服務(wù)程序P_TO:PUSH PSWPUSH ACCPUSH DPHPUSH DPLMOV THO, U(65535-TIMECOUNT)/256MOV TLO, U(65535-TIMECOUNT)MOD 256SETB RSO;后面所使用的R0r7DJNZ timetick, P_TO1MOV timetick, #20dec secondMOV A, secondCJNE A,#00, P_T01MOV SECOND, #33P_T01: MOV A, secondMOV B, #100DIV ABMOV RO, ftdispbuf+2DE

10、C ROMOV A, BMOV B, #10DIV ABMOV R0, ADEC ROMOV R0, BCLR RSOPOP DPLPOP DPHPOP ACCPOP PSWRET IMAIN:mov sp, ft60hMOV dispbuf, #0MOV dispbuf+l,#OMOV dispbuf+2,#0MOV dispbuf+3,#0MOV dispbuf+4, #0MOV dispbuf+5,#0MOV dispbuf+6, #0MOV dispbuf+7,#0mov timetick, #20mov second, #33MOV THO, #(65535-TIMECOUNT)/2

11、56;3CAFMOV TLO,U(65535-TIMECOUNT)MOD 256;MOV TMOD, #01HSETB ETO;允許TO溢出中斷SETB TRO;啟動(dòng) tOSETB EA;開啟總中斷N1AIN1:ACALL DISPSJMP MAIN1DISP:MOV R6, #8MOV RO, ftdispbufCLR LEDCLKCLR LEDDINNOPDISP1: SETB LEDCLKMOV A, R0MOVC A, A+DPTRMOV DPTR, ttLEDTABMOV LEDDATA, A;MOV R7, #5ACALL DelayNmsINC ROSETB LEDDINCLR

12、LEDCLKDJNZ R6, DISP1RET;大延時(shí)DelayNms:DI: ACALL DelaylmsDJNZ R7,D1RET; 延時(shí)子程丿子Delaylms:push 07mov R7, #250delayl:NOPNOPDJNZ R7, delaylPOP 07RETLEDTAB:DB 03H, 9FH, 25H, ODH;O, 1,2,3DB 99H, 49H, 41H, 1FH;4, 5, 6,7DB 01H, 09H, 11H, OC1H; 8, 9, A, BDB 63H,85H,61H,71H;C,D,E,FEND思考題1、在實(shí)驗(yàn)程序基礎(chǔ)上編寫一個(gè)24小時(shí)計(jì)時(shí)時(shí)鐘。LED

13、CLK BIT ;LEDDIN BIT ;LEDDATA DATA PO;DSEG AT 30Hdispbuf: ds 8;顯小緩沖區(qū)timetick: ds 1second:ds 1minute:ds 1hour:ds 1TIMECOUNT EQU 50000CSEG at 0000HSJMP MAINORG OOOBHLJMP P_TOORG 0030H;中斷服務(wù)程序P TO:PUSH PSWPUSH ACCPUSH DPHPUSH DPLMOV THO, #(65535-TIMECOUNT)/256MOV TLO,#(65535-TIMECOUNT)MOD 256SETB RSO;后面所

14、使用的R0r7DJNZ timetick, P_T02MOV timetick, #20INC secondMOV A, secondCJNE 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, #0DIV ABMOV RO, #dispbuf+2MOV RO, ADEC ROMOV A, BMOV B,#1ODIV ABMOV RO,ADEC ROMOV RO, BP_T02: CLR RSOPOP D

15、PLPOP DPHPOP ACCPOP PSWRETIMAIN:mov sp,#60hMOV dispbuf, #0MOV dispbuf+1, ftOMOV dispbuf+2, noMOV dispbuf+3, #0MOV dispbuf+4, tiOMOV dispbuf+5, #0MOV dispbuf+6, #0MOV dispbuf+7, #0MOV THO, n(65535-TIMECOUNT)/256;3CAFMOV TLO,#(65535-TIMECOUNT)MOD 256;MOV TMOD, #01H;設(shè)定定時(shí)器的工作方式SETB ETO;允許TO溢出中斷SETB TRO;

16、啟動(dòng) tOSETB EA;開啟總中斷MAIN1:ACALL DISPSJMP MAIN1DISP:mov R6, nsMOV RO, #dispbufCLR LEDCLKCLR LEDDINNOPDISP1: SETB LEDCLKMOV DPTR, SLEDTABMOV A, ROMOVC A, A+DPTRMOV LEDDATA, A;MOV R7,#5ACALL DelayNmsINC ROSETB LEDDINCLR LEDCLKDJNZ R6, DISP1RET;大延時(shí)DelayNms:DI:ACALL DelaylmsDJNZ R7, DIRET; 延時(shí)子程序Delaylms:push 07mov R7, #250delayl:NOPNOPDJNZ R

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論