




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中國(guó)醫(yī)藥軟包裝行業(yè)市場(chǎng)調(diào)查報(bào)告
- 高血壓病人的居家管理課件
- 中國(guó)擦鞋機(jī)電機(jī)行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 佳蘇侖項(xiàng)目投資可行性研究分析報(bào)告(2024-2030版)
- 2024-2030年中國(guó)有線電視分配系統(tǒng)設(shè)備行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及投資戰(zhàn)略咨詢報(bào)告
- 中國(guó)低碳經(jīng)濟(jì)發(fā)展市場(chǎng)運(yùn)營(yíng)態(tài)勢(shì)分析及投資前景預(yù)測(cè)報(bào)告
- 2025年中國(guó)辦公設(shè)備用插座行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 新形勢(shì)下事業(yè)單位財(cái)務(wù)管理的創(chuàng)新研究
- 2025年中國(guó)雜交水稻行業(yè)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 中國(guó)燃?xì)夤?jié)能器行業(yè)市場(chǎng)深度評(píng)估及投資戰(zhàn)略規(guī)劃報(bào)告
- 成人重癥患者顱內(nèi)壓增高防控護(hù)理專家共識(shí)
- 危險(xiǎn)化學(xué)品-經(jīng)營(yíng)安全管理制度與崗位操作流程
- (2025)黨內(nèi)法規(guī)知識(shí)測(cè)試題庫(kù)及答案
- 大洲大洋說(shuō)課課件
- 招聘心里測(cè)試題及答案
- 餐飲老人臨時(shí)用工協(xié)議書
- 高校教師資格證考試《高等教育學(xué)》真題及解析(2025年新版)
- T/SHSOT 015.1-2024皮膚角質(zhì)層膠帶剝離方法及應(yīng)用第1部分:角質(zhì)層剝離方法
- 上海市靜安區(qū)2023-2024學(xué)年八年級(jí)下學(xué)期期末語(yǔ)文試題(解析版)
- 2025年中醫(yī)基礎(chǔ)理論考試試題及答案
- 銀行個(gè)人資產(chǎn)證明信(8篇)
評(píng)論
0/150
提交評(píng)論