在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機有源蜂鳴器驅動之效率編程

j4AI_wujianying ? 來源:cg ? 2018-12-10 16:40 ? 次閱讀

蜂鳴器是很常見的設備,分為無源和有源兩種。根據項目需求選擇不同類型的蜂鳴器。最近的項目里有用到有源蜂鳴器對有源蜂鳴器。還是老一套,把電路板畫完,接著編程

在項目中原理圖如下:

如果不能保證I/O的輸出性能可以根據情況增加上拉或者下拉電阻

切入正題:在程序里面這個蜂鳴器的驅動就是個高低電平驅動。高電平三極管導通、蜂鳴器發聲,低電平三極管關斷、蜂鳴器不發聲。這的確很簡單,程序上最開始我是這樣寫的:

當然,如果單片機沒有很好的I/O跳變函數也可以這樣修改:

這里稍作解釋:

1)

函數功能:蜂鳴器發聲驅動

傳入參數:蜂鳴器發聲的次數

2)

傳入的次數cnt需要再函數內翻倍。這是因為傳入的參數是想讓蜂鳴器連續的發cnt聲。但是蜂鳴器除了發聲還有不發聲的時候。也就是說蜂鳴器每響一次都需要關閉一次,如果沒有關閉操作肯定就不會出現響幾聲而是連續的響一聲,這個也很容易推理。

3)

在while循環完之后需要加一個蜂鳴器關閉操作。

這里假如傳進的參數是2,目的是讓蜂鳴器響兩聲。根據程序的執行步驟:

cnt2變成4。

第1次while(4) 蜂鳴器開 cnt自減到3

第2次while(3) 蜂鳴器關 cnt自減到2

第3次while(2) 蜂鳴器開 cnt自減到1

第4次while(1) 蜂鳴器關 cnt自減到0

第5次while(0) 跳出while

可以看出其實在while之后蜂鳴器狀態已經是關閉的了,但是保險起見,確保函數調用完之后蜂鳴器是關閉的狀態。比如第一個函數I/O跳變的就更需要保障了,因為代碼上只能看出跳變,看不到跳變之后的狀態。

至此,一個簡單的蜂鳴器電路和驅動程序就都溫習完了,接下來上干貨:

在寫程序的時候很多時候講究程序的效率,比如這個蜂鳴器驅動,驅動過程中會降低效率,厲害的人很快能看出來,就是這個Delay延時的問題。但是上面也說了,不延時也是不行的。所以趨于效率我嘗試著換了一種方法驅動蜂鳴器。

代碼如下:

實現起來也很簡單,簡單說下原理:

1)首先是提供蜂鳴器驅動的I/O配置,

2)其次是定時器的配置

3)最后是定時器中斷函數實現

我選用的定時器是項目單片機中最簡單的一個定時器,配制成1ms中斷,能夠提供溢出中斷。其實這個定時器我常用做計系統運行時間Systick_ms。但是該項目對這個系統時間沒有用到,那就用這個定時器做文章把。

實現方法:

1、同樣函數在調用蜂鳴器驅動的時候接口是一樣的,傳入的參數還是蜂鳴器的響聲次數。

2、函數體變了,這里改成了兩個變量的賦值,第一個BELL_CNT同普通方法中的cnt2,這里不再贅述。第二個是FLAG_BELL是用來保存蜂鳴器是否需要驅動的狀態變量。所以既然是調用驅動函數,那肯定這個變量要為真。

3、定時器中斷函數里面加上了一個靜態變量NOW,他的作用就是和Systic_ms產生一個50ms的時間片,干嘛用?肯定是給蜂鳴器開關之間的延時用咯。模擬軟件延時嘛。然后再來分析下這段代碼:

1)首先這個NOW和Systic_ms是無條件需要賦值保證50ms時間片的。對應的代碼為NOW=Systick_ms+50;

2)判斷蜂鳴器驅動狀態變量是不是真,如果不為真就關閉蜂鳴器,這個也是無條件的。

3)如果狀態變量為真:蜂鳴器先跳變Bell_Tog();當然如果沒有這個跳變函數也可以用上述的判斷cnt的方法,就不多寫了都是一樣的。同時次數自減BELL_CNT--;同時判斷是不是減到0了,減到0了說明響完了啊,那就把狀態變量賦值為假。再次進來不管蜂鳴器是開著的還是關著的都會執行關閉操作,這個跟上面說的保險一樣。

4)最后,這兩個變量用的是全局變量,這里是以結構體的形式呈現的,因為很多情況這兩個函數不在一個C里面。如果硬要寫在一個C可以忽略本條。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6043

    文章

    44621

    瀏覽量

    638606
  • 蜂鳴器
    +關注

    關注

    12

    文章

    893

    瀏覽量

    46098

原文標題:單片機有源蜂鳴器驅動之效率編程

文章出處:【微信號:wujianying_danpianji,微信公眾號:單片機精講吳鑒鷹】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    單片機驅動蜂鳴器的問題

    C8051F340單片機,端口設置為推挽輸出,然后接一個1K電阻,電阻再接8050的基極,8050發射極接地,集電極接有源蜂鳴器的負端,蜂鳴器正端接3.3V電源。現在問題是:
    發表于 08-17 14:23

    有效編程單片機有源蜂鳴器驅動的方法

    蜂鳴器是很常見的設備,分為無源和有源兩種。根據項目需求選擇不同類型的蜂鳴器。最近的項目里有用到有源蜂鳴器
    發表于 11-24 06:34

    科普一下常見的有源蜂鳴器和無源蜂鳴器

    單片機編輯庫一延時與led燈單片機編輯庫二按鍵單片機編輯庫三
    發表于 01-17 07:53

    單片機驅動蜂鳴器電路圖

    單片機驅動蜂鳴器電路圖
    發表于 12-08 11:14 ?1.2w次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>驅動</b><b class='flag-5'>蜂鳴器</b>電路圖

    單片機驅動蜂鳴器原理與編程

    蜂鳴器是一種一體化結構的電子訊響器,本文介紹如何用單片機驅動蜂鳴器,他廣泛應用于計算機、打印機、復印機、報警器、電話機等電子產品中作發聲器件。
    發表于 12-09 16:47 ?502次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>驅動</b><b class='flag-5'>蜂鳴器</b>原理與<b class='flag-5'>編程</b>

    單片機驅動蜂鳴器原理與程序設計

    通過3個單片機驅動蜂鳴器編程和電路設計,詳細給各位介紹了單片機驅動
    發表于 12-23 14:36 ?8次下載

    51單片機驅動蜂鳴器演奏音樂的程序和蜂鳴器的原理及有源與無源的區別

    蜂鳴器發聲原理是電流通過電磁線圈,使電磁線圈產生磁場來驅動振動膜發聲的,因此需要一定的電流才能驅動它,單片機IO引腳輸出的電流較小,單片機
    發表于 09-20 17:19 ?5次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>驅動</b><b class='flag-5'>蜂鳴器</b>演奏音樂的程序和<b class='flag-5'>蜂鳴器</b>的原理及<b class='flag-5'>有源</b>與無源的區別

    單片機有源蜂鳴器驅動效率編程資料下載

    電子發燒友網為你提供單片機有源蜂鳴器驅動效率編程
    發表于 04-14 08:53 ?0次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>有源</b><b class='flag-5'>蜂鳴器</b><b class='flag-5'>驅動</b><b class='flag-5'>之</b><b class='flag-5'>效率</b><b class='flag-5'>編程</b>資料下載

    如何有效編程單片機有源蜂鳴器驅動資料下載

    電子發燒友網為你提供如何有效編程單片機有源蜂鳴器驅動資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考
    發表于 04-21 08:50 ?5次下載
    如何有效<b class='flag-5'>編程</b><b class='flag-5'>單片機</b><b class='flag-5'>有源</b><b class='flag-5'>蜂鳴器</b><b class='flag-5'>驅動</b>資料下載

    單片機如何關掉蜂鳴器_如何有效編程單片機有源蜂鳴器驅動

    蜂鳴器是很常見的設備,分為無源和有源兩種。根據項目需求選擇不同類型的蜂鳴器。最近的項目里有用到有源蜂鳴器
    發表于 11-16 14:51 ?7次下載
    <b class='flag-5'>單片機</b>如何關掉<b class='flag-5'>蜂鳴器</b>_如何有效<b class='flag-5'>編程</b><b class='flag-5'>單片機</b><b class='flag-5'>有源</b><b class='flag-5'>蜂鳴器</b><b class='flag-5'>驅動</b>

    51單片機驅動蜂鳴器發聲教程(掃盲)

    51單片機 蜂鳴器蜂鳴器發聲原理是電流通過電磁線圈,使電磁線圈產生磁場來驅動振動膜發聲的,因此需要一定的電流才能驅動它,
    發表于 11-21 21:06 ?9次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>驅動</b><b class='flag-5'>蜂鳴器</b>發聲教程(掃盲)

    【51單片機蜂鳴器

    【51單片機蜂鳴器【51單片機蜂鳴器1 蜂鳴器介紹1.1蜂鳴器分類2. 電路設計3.軟件設計
    發表于 11-23 16:20 ?33次下載
    【51<b class='flag-5'>單片機</b>】<b class='flag-5'>蜂鳴器</b>

    51單片機 驅動有源/無源蜂鳴器+Proteus仿真

    51單片機 驅動有源/無源蜂鳴器+Proteus仿真相關篇《51單片機 Proteus仿真有源
    發表于 11-23 17:06 ?50次下載
    51<b class='flag-5'>單片機</b> <b class='flag-5'>驅動</b><b class='flag-5'>有源</b>/無源<b class='flag-5'>蜂鳴器</b>+Proteus仿真

    單片機編輯庫三蜂鳴器

    單片機編輯庫一延時與led燈單片機編輯庫二按鍵單片機編輯庫三
    發表于 01-17 12:07 ?4次下載
    <b class='flag-5'>單片機</b>編輯庫三<b class='flag-5'>之</b><b class='flag-5'>蜂鳴器</b>

    如何有效編程單片機有源蜂鳴器驅動

    蜂鳴器是很常見的設備,分為無源和有源兩種。根據項目需求選擇不同類型的蜂鳴器。最近的項目里有用到有源蜂鳴器
    發表于 02-10 11:29 ?4次下載
    如何有效<b class='flag-5'>編程</b><b class='flag-5'>單片機</b><b class='flag-5'>有源</b><b class='flag-5'>蜂鳴器</b><b class='flag-5'>驅動</b>?
    主站蜘蛛池模板: 亚洲aa视频 | 免费观看黄视频网站 | 69日本xxxxxxxxx96| 涩999 | 日韩色天使综合色视频 | 美女视频网站免费播放视 | 一区二区三区四区视频在线观看 | 黄色w站 | www淫 | 久久6免费视频 | 在线播放你懂得 | 五月天婷婷导航 | 色丁香在线观看 | 精品乩伦视频 | 亚洲成在人 | 欧美亚洲综合一区 | 九九视频只有精品 | 午夜影院观看 | 800免费资源网| 亚洲成a人片7777 | 一区二区3区免费视频 | 日本黄免费| 午夜逼逼| 好大好紧好爽好湿润视频 | 久久婷五月 | 99久久99久久精品免费看子伦 | 一级毛片一级黄片 | asian极品呦女爱爱 | 午夜小福利 | 一级免费黄色片 | 黄黄视频在线观看 | 97爱sese| 日本资源在线 | 天堂电影免费在线观看 | 97影院午夜午夜伦不卡 | 国产在线视频你懂得 | 免费高清成人啪啪网站 | 四虎影院在线免费 | h在线免费视频 | 日韩在线视频免费观看 | 手机在线完整视频免费观看 |