国产精品美女一区二区视频_日韩高清毛片在线播放_高清无码a视频在线观看_亚洲毛片免费观看_91视频中文字幕_国产福利高颜值在线观看_高清一卡二卡国产_色色五月黄色一级片_亚洲欧美日韩愉拍自拍_99国产精品无码久久久

您好,歡迎進(jìn)入廣東臻美智能電子科技有限公司網(wǎng)站!

聯(lián)系我們 | 設(shè)為首頁(yè)

自主營(yíng)銷為一體的高新聲學(xué)技術(shù)企業(yè)

人工智能聲學(xué)解決方案提供商

全國(guó)免費(fèi)服務(wù)熱線

400-659-1989

sales888@zhenmeigd.com

hxzxc.cn

熱門(mén)搜索:蜂鳴器 蜂鳴片 喇叭 咪頭 換能片

臻美產(chǎn)品中心
產(chǎn)品分類列表
聯(lián)系我們

廣東臻美智能電子科技有限公司

全國(guó)免費(fèi)服務(wù)熱線:400-659-1989

歡歡QQ:65988658

熙熙QQ:19650698

手機(jī):18929299726

網(wǎng)站:hxzxc.cn

Email:sales888@zhenmeigd.com

地址:東莞市塘廈鎮(zhèn)華新工業(yè)園華新路22號(hào)

您當(dāng)前位置:蜂鳴器_貼片蜂鳴器_防水蜂鳴器_有源蜂鳴器_無(wú)源蜂鳴器_蜂鳴器廠家_廣東臻美智能電子科技有限公司 >> 文章

有源蜂鳴器電路圖驅(qū)動(dòng)與蜂鳴器代碼編程-臻美智能電子

時(shí)間:2019年11月21日信息來(lái)源:本站原創(chuàng)點(diǎn)擊: 加入收藏 】【 字體:

單片機(jī)有源蜂鳴器蜂鳴器的一種,可根據(jù)使用產(chǎn)品的不同去選擇蜂鳴器類型,那么接下來(lái)我先把有源蜂鳴器電路圖畫(huà)完,然后接著蜂鳴器代碼編程。

蜂鳴器中原理電路圖如下:

有源蜂鳴器電路圖驅(qū)動(dòng)與蜂鳴器代碼編程-臻美智能電子

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

切入正題:在程序里面這個(gè)蜂鳴器的驅(qū)動(dòng)就是個(gè)高低電平驅(qū)動(dòng)。高電平三極管導(dǎo)通、蜂鳴器發(fā)聲,低電平三極管關(guān)斷、蜂鳴器不發(fā)聲。

   這的確很簡(jiǎn)單,程序上最開(kāi)始我是這樣寫(xiě)的:

   有源蜂鳴器電路圖驅(qū)動(dòng)與蜂鳴器代碼編程-臻美智能電子

   當(dāng)然,如果單片機(jī)沒(méi)有很好的I/O跳變函數(shù)也可以這樣修改:

   有源蜂鳴器電路圖驅(qū)動(dòng)與蜂鳴器代碼編程-臻美智能電子

這里稍作解釋:

  a)

  函數(shù)功能:蜂鳴器發(fā)聲驅(qū)動(dòng)

  傳入?yún)?shù):蜂鳴器發(fā)聲的次數(shù)

  b)

  傳入的次數(shù)cnt需要再函數(shù)內(nèi)翻倍。這是因?yàn)閭魅氲膮?shù)是想讓蜂鳴器連續(xù)的發(fā)cnt聲。但是蜂鳴器除了發(fā)聲還有不發(fā)聲的時(shí)候。也就是說(shuō)蜂鳴器每響一次都需要關(guān)閉一次,如果沒(méi)有關(guān)閉操作肯定就不會(huì)出現(xiàn)響幾聲而是連續(xù)的響一聲,這個(gè)也很容易推理。

  c)

  在while循環(huán)完之后需要加一個(gè)蜂鳴器關(guān)閉操作。

  這里假如傳進(jìn)的參數(shù)是2,目的是讓蜂鳴器響兩聲。根據(jù)程序的執(zhí)行步驟:

  cnt2變成4。

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

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

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

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

  第5次while(0) 跳出while

  可以看出其實(shí)在while之后蜂鳴器狀態(tài)已經(jīng)是關(guān)閉的了,但是保險(xiǎn)起見(jiàn),確保函數(shù)調(diào)用完之后蜂鳴器是關(guān)閉的狀態(tài)。比如第一個(gè)函數(shù)I/O跳變的就更需要保障了,因?yàn)榇a上只能看出跳變,看不到跳變之后的狀態(tài)。

  至此,一個(gè)簡(jiǎn)單的蜂鳴器電路和驅(qū)動(dòng)程序就都溫習(xí)完了,接下來(lái)上干貨:

  在寫(xiě)程序的時(shí)候很多時(shí)候講究程序的效率,比如這個(gè)蜂鳴器驅(qū)動(dòng),驅(qū)動(dòng)過(guò)程中會(huì)降低效率,厲害的人很快能看出來(lái),就是這個(gè)Delay延時(shí)的問(wèn)題。但是上面也說(shuō)了,不延時(shí)也是不行的。所以趨于效率我嘗試著換了一種方法驅(qū)動(dòng)蜂鳴器。

  代碼如下:

  有源蜂鳴器電路圖驅(qū)動(dòng)與蜂鳴器代碼編程-臻美智能電子  

實(shí)現(xiàn)起來(lái)也很簡(jiǎn)單,簡(jiǎn)單說(shuō)下原理:

  1、首先是提供蜂鳴器驅(qū)動(dòng)的I/O配置,

  2、其次是定時(shí)器的配置

  3、最后是定時(shí)器中斷函數(shù)實(shí)現(xiàn)

  我選用的定時(shí)器是項(xiàng)目單片機(jī)中最簡(jiǎn)單的一個(gè)定時(shí)器,配制成1ms中斷,能夠提供溢出中斷。其實(shí)這個(gè)定時(shí)器我常用做計(jì)系統(tǒng)運(yùn)行時(shí)間Systick_ms。但是該項(xiàng)目對(duì)這個(gè)系統(tǒng)時(shí)間沒(méi)有用到,那就用這個(gè)定時(shí)器做文章把。


實(shí)現(xiàn)方法:

  1、同樣函數(shù)在調(diào)用蜂鳴器驅(qū)動(dòng)的時(shí)候接口是一樣的,傳入的參數(shù)還是蜂鳴器的響聲次數(shù)。

  2、函數(shù)體變了,這里改成了兩個(gè)變量的賦值,第一個(gè)BELL_CNT同普通方法中的cnt2,這里不再贅述。第二個(gè)是FLAG_BELL是用來(lái)保存蜂鳴器是否需要驅(qū)動(dòng)的狀態(tài)變量。所以既然是調(diào)用驅(qū)動(dòng)函數(shù),那肯定這個(gè)變量要為真。

  3、定時(shí)器中斷函數(shù)里面加上了一個(gè)靜態(tài)變量NOW,他的作用就是和Systic_ms產(chǎn)生一個(gè)50ms的時(shí)間片,干嘛用?肯定是給蜂鳴器開(kāi)關(guān)之間的延時(shí)用咯。模擬軟件延時(shí)嘛。然后再來(lái)分析下這段代碼:

  a)首先這個(gè)NOW和Systic_ms是無(wú)條件需要賦值保證50ms時(shí)間片的。對(duì)應(yīng)的代碼為NOW=Systick_ms+50;

  b)判斷蜂鳴器驅(qū)動(dòng)狀態(tài)變量是不是真,如果不為真就關(guān)閉蜂鳴器,這個(gè)也是無(wú)條件的。

  c)如果狀態(tài)變量為真:蜂鳴器先跳變Bell_Tog();當(dāng)然如果沒(méi)有這個(gè)跳變函數(shù)也可以用上述的判斷cnt的方法,就不多寫(xiě)了都是一樣的。同時(shí)次數(shù)自減BELL_CNT--;同時(shí)判斷是不是減到0了,減到0了說(shuō)明響完了啊,那就把狀態(tài)變量賦值為假。再次進(jìn)來(lái)不管蜂鳴器是開(kāi)著的還是關(guān)著的都會(huì)執(zhí)行關(guān)閉操作,這個(gè)跟上面說(shuō)的保險(xiǎn)一樣。

  d)最后,這兩個(gè)變量用的是全局變量,這里是以結(jié)構(gòu)體的形式呈現(xiàn)的,因?yàn)楹芏嗲闆r這兩個(gè)函數(shù)不在一個(gè)C里面。如果硬要寫(xiě)在一個(gè)C可以忽略本條。

廣東臻美智能電子科技有限公司,hxzxc.cn專業(yè)生產(chǎn)定制各類中高端:防水蜂鳴器、貼片蜂鳴器、電磁式蜂鳴器、壓電陶瓷蜂鳴器等蜂鳴器廠家,歡迎來(lái)電洽談合作:400-659-1989

本文轉(zhuǎn)自網(wǎng)絡(luò),版權(quán)歸原作者,如有侵權(quán)請(qǐng)聯(lián)系我們刪除!

蜂鳴器 | 換能片 | 喇叭 | 咪頭 | 合作伙伴 | 資訊中心 | 聯(lián)系我們

廣東臻美智能電子科技有限公司 技術(shù)支持:臻美智能網(wǎng)絡(luò)

全國(guó)免費(fèi)服務(wù)熱線:400-659-1989 聯(lián)系電話:18929299726

銷售總部:東莞市塘廈鎮(zhèn)華新工業(yè)園華新路22號(hào)

工廠地址:東莞市黃江鎮(zhèn)128工業(yè)區(qū)盛業(yè)路18號(hào) 網(wǎng)站地圖網(wǎng)站sitemap.txt 粵ICP備19091631號(hào)-1

在線客服
熱線電話
微信公眾賬號(hào)
訪問(wèn)手機(jī)網(wǎng)站