TDA2030功放電路圖 電動車充電器電路圖 電子電路 功放電路 電子制作 集成塊資料 電子報 pcb 變壓器 元器件知識 逆變器電路圖 電路圖 開關電源電路圖 傳感器技術 led 電磁兼容
電子電路圖
當前位置: 首頁 > 電子電路 > 設計編程

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

時間:2019-01-14 13:26:09來源:網絡 作者:admin 點擊:
蜂鳴器是很常見的設備,分為無源和有源兩種。根據項目需求選擇不同類型的蜂鳴器。最近的項目里有用到有源蜂鳴器對有源蜂鳴器。還是老一套,把電路板畫完,接著編程。在項目

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

在項目中原理圖如下:

如果不能保證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可以忽略本條。

容-源-電-子-網-為你提供技術支持

本文地址:http://www.morningstargreenhouses.com/dz/22/15474436233078.shtml


本文標簽:


.
頂一下
0%
返回首頁
0
0%

------分隔線----------------------------

    猜你感興趣:

  • 可編程展頻振蕩器 YSO171PS系列

    展頻晶振(Spread Spectrum Crystal Oscillator,簡稱SSXO)應運而生。展頻晶振是一種特殊類型的晶體振蕩器,主要依托于擴展頻譜技術。這項技術在抗干擾通信中有著廣泛的應用
    關鍵詞:   所屬欄目:電子基礎

  • 分享 | 可編程晶振芯片幾個知識點

    什么是可編程晶振?可編程晶振多為有源晶振,由兩個芯片組成;一個是全硅MEMS諧振器,一個是具有溫補功能的芯片,可以啟動電路鎖相環CMOS。它采用標準化的半導體芯片MCM封裝??梢圆捎萌詣訕藴拾雽w制造工藝
    關鍵詞:   所屬欄目:電子基礎

  • 高頻靈活定制-存儲與計算 可編程差分振蕩器YSO210PR應

    可編程差分振蕩器 YSO210PR在機器人的智能視覺控制、工業屏、望遠鏡等領域具有顯著優勢。其高精度、穩定性和靈活的定制特性使得YSO210PR成為了機器人應用中不可或缺的元器件,為機器人技術的發展和應用提供了強有力的支持。
    關鍵詞:   所屬欄目:電子基礎

  • 智能終端通信利器:低抖動YSO690PR可編程天線完美融合

    在通信科技的推動下,智能終端天線和低抖動晶振不斷創新,將引領通信產業進入新的時代。YSO690PR系列作為高性能智能終端通信利器,將為各類智能終端設備提供更加穩定和高效的通信支持,推動科技的蓬勃發展。無論是日常生活還是工業應用,這些優秀的技術將為人們帶來更加便捷、智能的通信體驗。
    關鍵詞:   所屬欄目:電子基礎

  • 可見光紅外模塊性能:低抖動石英可編程晶振QMEMS振蕩器

    ​YSO690PR穩定可靠的低抖動石英可編程晶振,確??梢姽饧t外模塊應用在各種環境和條件下都能提供出色的性能和精確的頻率輸出。讓QMEMS振蕩器YSO690PR成為交換機、對講機、充電樁、打印機等行業的理想選擇!

    關鍵詞:   所屬欄目:電子基礎

  • BMS電池管理系統的智能守護者:YSO110TR高精度全溫范圍

    電壓有源晶振 YSO110TR的優勢在于其高精度和穩定性。10MHz的頻率下,其全溫范圍內總頻差僅為±30PPM,這意味著即使在嚴酷的環境條件下,晶振的頻率波動也非常小,保證了BMS系統的高精度控制和穩定性。無論是在高溫還是低溫環境中,YSO110TR都能保持可靠的性能,為電池管理系統提供持久穩定的時鐘信號
    關鍵詞:   所屬欄目:電子基礎

  • 工業相機解決方案:低功耗16位數模轉換芯片+負壓線性穩

    在工業相機行業中,石英可編程晶振扮演著至關重要的角色。為了滿足不同應用需求,YXC引入了低抖動石英可編程晶振QMEMS振蕩器YSO690PR,為工業相機的穩定運行提供了理想解決方案。


    關鍵詞:   所屬欄目:電子基礎

  • 溫度采集器選YXC揚興科技:YSO110TR低啟動時間與多電壓

    作為溫度采集器的關鍵組成部分之一,晶振在保證采集器的精確性和可靠性方面發揮著重要的角色。在這一背景下,YXC揚興科技推出了旗下的產品系列之一——YSO110TR寬電壓有源晶振,為溫度采集器行業提供了高品質的解決方案。
    關鍵詞:   所屬欄目:電子基礎

  • 性能高的服務器—寬電壓有源晶振YSO110TR 25MHZ

    YSO110TR寬電壓有源晶振是服務器中不可或缺的關鍵組件,其高精度、高穩定性、多電壓兼容性和工業級耐溫特性,使其成為服務器領域的優質選擇。無論是拼接屏控制器、充電樁、光伏逆變器、360后視鏡、攝像頭、手機屏、筆電顯卡、交換機、路由器還是光模塊等應用,YSO110TR都能為服務器提供卓越的性能和可靠性保障,助力服務器行業不斷發展進步。
    關鍵詞:   所屬欄目:電子基礎

  • 可編程晶振選型應該注意事項

    現在晶振廣泛應用于汽車電子、安防監控、醫療設備、航空設備、互聯網設備等智能電子產品中,發揮著重要作用,據說市場上85%的電子產品應用于廣泛的領域。
    關鍵詞:   所屬欄目:電子基礎

  • 高性能差分可編程振蕩器,YSO210PR滿足電子通信行業多

    差分可編程振蕩器 YSO210PR 是一款功能強大的產品,具備10-1500MHz超寬頻率范圍的特點,用戶可以隨意編程頻率,并且實現精確輸出到小數點后6位的精度。這種高度可編程的特性使得 YSO210PR 在不同應用場景下能夠靈活應對各種頻率要求,無論是低頻還是高頻應用,都能滿足客戶的需求。
    關鍵詞:   所屬欄目:電子基礎

  • 可編程晶振常見問題以及使用思路

    可編程晶振。簡單來說就是一種任意編程頻率的晶振,可以通過一個發生器放大或縮小,有選擇地實現各種總線頻率。在實際應用或初步了解中,會遇到各種各樣的問題。以下編輯列出了與SiTime可編程晶振相關的一些常見問題和答案。
    OE和ST功能有什么區別?
    關鍵詞:   所屬欄目:電子基礎

  • 新手教程:單片機的學習實踐步驟

    運用單片機便是了解單片機硬件結構,以及內部資源的運用,在匯編或C語言中學會各種功用的初始化設置,以及完成各種功用的程序編制。 運用按鈕輸入信號,發光二極管顯現輸出
    關鍵詞:51單片機PIC單片機單片機   所屬欄目:設計編程

  • 應用單片機實現CAN總線與LIN總線間的傳輸設計方案

    現場總線技術已經廣泛應用于工業控制中,尤其是CAN(Controler Area Nerwork)總線由于具有可靠性高、成本低、容易實現等優點,在現場總線實際工程應用中占有了較大份額。
    關鍵詞:單片機   所屬欄目:設計編程

  • 學習單片機可不可以只用軟件仿真而不做實驗

    我的答案是:不可以原因如下:一、軟件仿真多用于教學,把更多精力用在軟件的實現上由于學生學習時間寶貴,焊接一套單片機實驗板又比較花時間,并且實驗項目太多,所以為了
    關鍵詞:PIC單片機51單片機單片機   所屬欄目:設計編程

  • 怎樣選擇最適合的單片機

    對于新手來說,首先根據自己學的什么樣單片機就選什么類型的單片機,熟悉什么類型的單片機就選什么類型的單片機。因為單片機不僅要設計電路,還要設計控制軟件。選自己熟悉的單片機上手最快,也最容易獲得成功。下面介紹如何選擇最適合的單片機。
    關鍵詞:   所屬欄目:設計編程

  • 單片機晶振的作用是什么

    單片機晶振的作用是什么
    在初學單片機的時候,總是伴隨很多有關于晶振的問題,其實晶振就是如同人的心臟,是血液的脈搏,把單片機的晶振問題搞明白了,51單片機的其他問題
    關鍵詞:51單片機PIC單片機單片機   所屬欄目:設計編程

  • 用keil軟件編寫單片機程序的步驟

    Keil單片機編程軟件Keil C51是單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil提供了包括C編譯器、宏匯
    關鍵詞:51單片機PIC單片機   所屬欄目:設計編程

  • 詳解51單片機運行過程

    詳解51單片機運行過程 注:1.ROM:只讀存儲器,單片機的只讀存儲區大多用于存儲程序固又稱程序存儲器。51單片機是EPROM,所謂的EPROM是可擦除的只
    關鍵詞:   所屬欄目:設計編程

  • pic單片機和c51有什么區別

    pic單片機和c51有什么區別(區別1)總線結構:MCS-51單片機的總線結構是馮-諾依曼型,計算機在同一個存儲空間取指令和數據,兩者不能同時進行;而PIC單片機的總線結構是哈佛結構
    關鍵詞:單片機PIC單片機51單片機   所屬欄目:設計編程

發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
表情:
名稱: E-mail: 驗證碼: 匿名發表
發布文章,推廣自己產品。
亚洲熟妇无码一区二区三区苍井空|色喜国模苍井空|欧美曰本理论在线dⅴd|久久久久69精品成人片