版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、【W(wǎng)ord版本下載可任意編輯】 MCU單片機(jī)在蜂鳴器系統(tǒng)中的應(yīng)用設(shè)計(jì) 初學(xué)者在編寫單片機(jī)程序時(shí)經(jīng)常會(huì)用到延時(shí)函數(shù),但是當(dāng)系統(tǒng)逐步復(fù)雜以后(沒(méi)有復(fù)雜到使用操作系統(tǒng))延時(shí)會(huì)因?yàn)檠訒r(shí)降低MCU的利用率,更嚴(yán)重的會(huì)影響系統(tǒng)中的“并行”操作例如一個(gè)既有按鍵又有蜂鳴器的系統(tǒng)中,如果要求按下按鍵發(fā)出不同的聲音,每次發(fā)聲時(shí)間在1秒-2秒之間, 如果用延時(shí)來(lái)做代碼很簡(jiǎn)單: /蜂鳴器發(fā)出“嗶-嗶-嗶”聲音時(shí)間約1s void BeepFuction(void) unsigned char i; for(i=0;i3;i=+) BeepEn(); /開啟蜂鳴器 Delayms(220);/延時(shí)220ms BeepD
2、is();/關(guān)閉蜂鳴器 Delayms(110);/延時(shí)110ms 當(dāng)這段代碼執(zhí)行時(shí)MCU不可能同時(shí)處理按鍵檢查程序因?yàn)樗蟛糠謺r(shí)間在執(zhí)行Delayms()函數(shù)中的nop指令,這樣就不可能去執(zhí)行檢查按鍵了(不使用中斷時(shí)),如果把程序改成流程形式的寫法則結(jié)果會(huì)大為不同,下面先介紹一下基本原理。 我們都知道一般的定時(shí)器為16位或8位循環(huán)計(jì)數(shù),例如對(duì)于16位的計(jì)數(shù)器當(dāng)計(jì)數(shù)器數(shù)值從0增加到65535時(shí)再加一就會(huì)回到0那么我們來(lái)比較下面兩種情況(不考慮計(jì)數(shù)器在記錄當(dāng)前時(shí)刻T后再次回到或超過(guò)T這種情況我暫且稱它為“壓圈”): 情況1: T1時(shí)刻計(jì)數(shù)器數(shù)值為300 T2時(shí)刻計(jì)數(shù)器數(shù)值為400 則T1時(shí)刻到T
3、2為100個(gè)計(jì)數(shù)單位。 這段時(shí)間差也為100個(gè)計(jì)數(shù)單位。 情況2: T1時(shí)刻計(jì)數(shù)器數(shù)值為65535 T2時(shí)刻計(jì)數(shù)器數(shù)值為99 則T1到T2 可以算出為65535到0的1個(gè)計(jì)數(shù)單位再加上 0到99的99個(gè)計(jì)數(shù)單位總共為100個(gè)計(jì)數(shù)單位。 所以時(shí)間差還是100個(gè)計(jì)數(shù)單位。 在C語(yǔ)言中如果使用兩個(gè)無(wú)符號(hào)數(shù)作減法會(huì)得到如下結(jié)果:99-65535=100,這個(gè)很好理解就和10進(jìn)制的借位一樣只不過(guò)借位后不用管高位了也就相當(dāng)于99+65536-65535結(jié)果是100了,當(dāng)然這些前提條件都是計(jì)數(shù)器不會(huì)出現(xiàn)“壓圈”。 有了上面對(duì)定時(shí)器的了解就可以從新寫這個(gè)Beep函數(shù)了 /蜂鳴器發(fā)出“嗶-嗶-嗶”聲音時(shí)間約1s
4、 bit BeepFlag = 0;/蜂鳴流程忙標(biāo)志位 bit BeepCtrl = 0;/蜂鳴器流程控制標(biāo)志位 void BeepProc(void) staTIc unsigned int BeepTImer; staTIc unsigned char BeepStatus = 0; staTIc unsigned char i; switch(BeepStatus) case 0:/ if(BeepCtrl) i = 3;/蜂鳴次數(shù) BeepFlag = 1;/置位忙標(biāo)志位 BeepCtrl = 0;/去除控制標(biāo)志位 BeepTimer = TIMER;/這里TIMER為系統(tǒng)定時(shí)器計(jì)數(shù)時(shí)
5、鐘為1ms BeepEn(); /開啟蜂鳴器 BeepStatus = 1;/進(jìn)入下一個(gè)狀態(tài) break; case 1:/蜂鳴狀態(tài) if(TIMER-BeepTimer220)/220ms BeepDis(); /關(guān)閉蜂鳴器 BeepTimer = TIMER;/記錄時(shí)刻 BeepStatus = 2;/進(jìn)入下一個(gè)狀態(tài) break; case 2:/停止蜂鳴狀態(tài) if(TIMER-BeepTimer110)/110ms if(i!=0) i-; BeepTimer = TIMER;/記錄時(shí)刻 BeepEn(); /開啟蜂鳴器 BeepStatus = 2;/回到蜂鳴狀態(tài) else BeepS
6、tatus = 0;/回到初始狀態(tài) BeepFlag = 0;/去除忙標(biāo)志位 break; default: BeepFlag = 0;/去除忙標(biāo)志位 BeepStatus = 0;/回到初始狀態(tài) break; 用這樣的方法實(shí)現(xiàn)的蜂鳴程序在使用時(shí)也有不同的地方,因?yàn)槭褂玫膕witch狀態(tài)所有在主循環(huán)中要一直調(diào)用: void main() SystemInitial();/系統(tǒng)初始化 。.。.。.。.。. /主循環(huán) while(1) Fun1Proc();/功能1流程 Fun2Proc();/功能2流程 。.。 BeepProc();/蜂鳴流程 。.。 16 在別的函數(shù)中需要使蜂鳴器工作時(shí)只需要下面代碼即可: if(!BeepFlag)/檢查是否忙 BeepCtrl = 1;/啟動(dòng)蜂鳴器 用這種方法能充分利用MCU,在蜂鳴器發(fā)聲或發(fā)聲間隔的等待時(shí)間MCU可以處理別的函數(shù),但
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年植物保護(hù)與檢疫技術(shù)(植物檢疫)考題及答案
- 2025年大學(xué)(經(jīng)濟(jì)學(xué))經(jīng)濟(jì)學(xué)專業(yè)階段測(cè)試題及答案
- 2025年大學(xué)大二(地質(zhì)學(xué)基礎(chǔ))沉積巖形成試題及參考答案
- 2025年大學(xué)(計(jì)算機(jī)科學(xué)與技術(shù))人工智能導(dǎo)論進(jìn)階階段測(cè)試題及解析
- 2025年大學(xué)(婦幼保健醫(yī)學(xué))婦幼衛(wèi)生政策綜合測(cè)試卷及解析
- 第2單元 第7課 三國(guó)至隋唐的制度變化與創(chuàng)新5fd337
- 第3部分 第14章 第1講 課時(shí)1 區(qū)域發(fā)展的自然環(huán)境基礎(chǔ)
- 化學(xué)能傳遞風(fēng)險(xiǎn)防控指南
- 產(chǎn)品加工精度控制標(biāo)準(zhǔn)
- 內(nèi)蒙古交通職業(yè)技術(shù)學(xué)院《專題口譯》2025-2026學(xué)年第一學(xué)期期末試卷
- 2026年水利部黃河水利委員會(huì)事業(yè)單位公開招聘高校畢業(yè)生(265人)歷年真題匯編及答案解析(奪冠)
- 支付行業(yè)發(fā)展趨勢(shì)
- 施工單位安全生產(chǎn)責(zé)任制實(shí)施細(xì)則
- 幼兒學(xué)前數(shù)學(xué)能力測(cè)試題與分析
- 社區(qū)工作者社工面試題及答案解析
- 工程造價(jià)指數(shù)管理
- 2024年福建省特殊技能人才錄用公安特警隊(duì)員筆試真題
- 國(guó)內(nèi)外員工幫助計(jì)劃的研究綜述
- 安徽省鼎尖名校大聯(lián)考2025-2026學(xué)年上學(xué)期高二11月期中考試數(shù)學(xué)AB含答案
- 廠房消防安全管理手冊(cè)
- 2025秋南方新課堂金牌學(xué)案中國(guó)歷史七年級(jí)上冊(cè)(配人教版)(教師用書)
評(píng)論
0/150
提交評(píng)論