《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 嵌入式系統中高級提示音的設計與實現
嵌入式系統中高級提示音的設計與實現
2016年微型機與應用第21期
林鵬,尹紹杰
浙江大學臺州研究院 電氣與控制研究所,浙江 臺州 318000
摘要: 了在嵌入式系統中加入動聽的提示音或音樂效果,增加音效編輯的靈活性,設計了一套完整的帶有余音控制的音效解決方案。該方案主要由電腦端的音樂編輯軟件、經改進的蜂鳴器驅動電路及單片機參考處理流程組成,可提供可視化的音樂編輯環境,能夠及時試聽音樂效果,解決了以往需要將程序燒錄至單片機后才能試聽效果的不便。經測試,該方案簡單方便,降低了音效編輯的復雜度,音效清晰嘹亮,能提升嵌入式產品的人機交互體驗。
關鍵詞: 單片機 蜂鳴器 音樂 C#
Abstract:
Key words :

  林鵬,尹紹杰

 ?。ㄕ憬髮W臺州研究院 電氣與控制研究所,浙江 臺州 318000)

       摘要:為了在嵌入式系統中加入動聽的提示音或音樂效果,增加音效編輯的靈活性,設計了一套完整的帶有余音控制的音效解決方案。該方案主要由電腦端的音樂編輯軟件、經改進的蜂鳴器驅動電路及單片機參考處理流程組成,可提供可視化的音樂編輯環境,能夠及時試聽音樂效果,解決了以往需要將程序燒錄至單片機后才能試聽效果的不便。經測試,該方案簡單方便,降低了音效編輯的復雜度,音效清晰嘹亮,能提升嵌入式產品的人機交互體驗。

  關鍵詞:單片機;蜂鳴器;音樂;C#;WPF

0引言

  在嵌入式產品中加入提示音或音樂能使用戶的操作得到反饋,提升了人機交互體驗,也提高了產品的檔次。在大多數的產品中,為了節省成本,一般使用單片機驅動蜂鳴器來發出聲音而非使用專用芯片。然而單片機音效的調音和編曲工作比較繁復,往往需要燒錄程序后反復地試聽,大大增加了操作強度。本文介紹一套在嵌入式系統中增加提示音或音樂的開發方案,能夠比較直觀地編寫出提示音效,并且每個音符帶有余音控制,而非普通的生硬地切換音符。

1方案簡介

圖像 001.png

       本方案包括一套電腦端的音樂編輯軟件、經改進的蜂鳴器驅動電路以及供參考的單片機端的處理流程。系統框架如圖1所示,電腦和單片機通過串口通信,單片機根據接收到的數據驅動蜂鳴器。在電腦端完成音效的編輯并定型后,可移除串口通信的代碼,將電腦端生成的文件加入單片機工程即可。

2蜂鳴器音樂的發聲原理

  音樂的基本要素包括音的高低、長短、強弱和音色[1],要使蜂鳴器發出聲音就需要控制這些要素。蜂鳴器的固有特性決定了音色,無法被控制;通過驅動蜂鳴器的頻率可以改變音的高低;控制蜂鳴器導通的時間可以決定音的長短;調節蜂鳴器的供電電壓可以模擬出音的強弱。值得一提的是,蜂鳴器分為有源和無源兩種,有源蜂鳴器內部自帶諧振電路,直接加電壓即可發出聲音,無法控制聲音的頻率,而無源蜂鳴器需要有脈沖頻率的驅動。本方案選擇無源蜂鳴器。

  本方案使用的蜂鳴器驅動電路[2]如圖2所示。由圖可見該驅動電路稍顯復雜,一般的蜂鳴器驅動電路只有簡單的右半部分,只能控制音的高低和長短,無法控制音的強弱,加入了左半部分的控制電路后,能調節蜂鳴器的供電電壓,在一定程度上使得音的強弱也有所變化。

圖像 002.png

  蜂鳴器驅動電路的原理為:在一個音程內,BUZ_PWM端輸入指定頻率的方波信號,當BUZ_CTRL端的信號為高時,NPN三極管Q2導通,PNP三極管Q1也導通,電解電容C1充電,通過R3、R4的限流和分壓后,蜂鳴器得到供電,在BUZ_PWM端信號的驅動下發出特定頻率的聲音;當BUZ_CTRL端的信號為低時,三極管Q2和Q1截止,蜂鳴器由電解電容C1的殘余能量供電,蜂鳴器的音量將逐漸減低,體現出音的強弱特性。BUZ_CTRL端的信號有兩種選擇:一種是輸出PWM(Pulse Width Modulation)脈寬調制信號,并搭配一個小容量的電容,通過調整脈沖的寬度,隨意調節音的強弱變化;另一種是一個周期的高低信號,配合一個較高容量的電容,驅動信號先高使電容充電,在某個合適的時刻置低,蜂鳴器僅由電容供電,聲音緩慢減弱。第一種方法需要兩路PWM波驅動,較復雜,對單片機的要求也較高,但是能做出非常豐富的音樂效果;第二種方法只要一路PWM波驅動,外加一路開關信號,一些單片機即使沒有硬件PWM發生器也能較好地實現控制效果,產生帶有余音效果的音效。為了方便和控制簡單起見,本方案選用第二種控制方式,驅動信號和電容上的電壓波形如圖3所示。

圖像 003.png

3電腦端音樂編輯軟件的設計

  為了方便編輯單片機音樂,開發了配套的電腦端單片機音樂編輯器,能夠更加直觀地調音和編曲,加快開發進度。

  3.1開發環境簡介

  電腦端的音樂編輯器采用C#和Windows Presentation Foundation(WPF)技術開發,使用Visual Studio 2010作為開發編譯平臺,編譯后的可執行文件可運行在裝有.Net Framework 4.0運行環境的電腦上。選用C#作為軟件開發語言主要是因其方便、強大,并且隨著微軟宣布終止對Windows XP操作系統的支持,使用C#編寫的軟件可直接運行的電腦將越來越多,從而不必擔心需要再安裝運行環境的問題。軟件的界面使用了WPF技術作為用戶界面框架而非傳統的WinForm界面,因為WPF包含諸多優異的特性,數據驅動、數據綁定、動畫特效、界面可定制程度高等特點使得界面開發更加得心應手,而且這也是被微軟官方所推薦使用的[3-4]。

  3.2電腦端音樂編輯軟件的功能簡介

  電腦端音樂編輯軟件的主界面如圖4所示,主要有以下功能:

  (1)選擇串口端口號及波特率,啟停串口連接。

  (2)鍵盤“←”和“→”按鍵可調整一個音符的持續長度,鼠標左右拖動方波中間的下降沿能分配電容的供電時間。

  (3)鍵盤“↑”和“↓”按鍵能調整音符的基礎頻率區間,以C大調的頻率為基準。

  (4)能載入或新建音樂編輯文件,支持拖拽打開文件。

  (5)當軟件主界面獲得焦點時,如果已連上串口通信,按鍵盤的小鍵盤數字“0~7”按鍵能夠試聽音符效果;在按小鍵盤數字“0~7”按鍵的同時按住鍵盤上的左“Ctrl”鍵,如果此時已打開編輯音樂文件界面則會將當前的音符添加至編輯界面的音符列表中,否則會打開一個空白的編輯界面。

圖像 004.png

  電腦端音樂編輯器軟件的音符編輯界面如圖5所示,從左至右、從上至下其功能有:

  (1)將主界面按下的音符添加至列表尾部。

  (2)修改音符名或備注,能在下拉菜單選擇音符名并自動修改對應的頻率值或直接輸入備注文字。

  (3)能修改頻率、電容開通時間及音符持續時間,帶有數值合法性檢驗。

  (4)列表中的每一個音符選中時能刪除(快捷鍵為鍵盤上的“Delete”鍵)和試聽(快捷鍵“F2”,需連上串口通信)。

  (5)當連上串口通信后,可以點擊界面右邊的“播放”按鈕(快捷鍵“F5”)從頭開始播放或停止播放;點擊“播放”按鈕下面的按鈕(快捷鍵“F1”)從當前選中的行開始播放。正在播放的行底色為淡紅色,用以指示播放進度。

  (6)有刪除行時提示和修改頻率后試聽選項。

  (7)可以在選中的行下面新增一行(快捷鍵“F3”),新增的行底色為淡綠色以區分其他普通的行。

  (8)將當前編輯的音樂進度保存為“.umf”格式,方便以后導入文件繼續修改。

  (9)當完成音樂編輯后,可以導出C語言格式的文件,加入到單片機工程中,以便完成整個單片機音樂功能的開發。

圖像 005.png

  3.3音符數據的設計

  軟件中的音符數據主要由音符名稱或備注、音符頻率、蜂鳴器供電電容上電時間和音符持續時間組成。其中電容上電時間和音符持續時間比較簡單,在軟件主界面中能直觀地調整,下面著重介紹音符名稱及其對應的頻率。

  根據科學音調記號法及相關的樂理知識[5], C、D、E、F、G、A、B為C大調的七個主音,唱名分別為do、re、mi、fa、so、la、si,簡譜分別記為數字1~7,并可以知道每一個音符的頻率值。在軟件中程序默認的八度區為中央C,即主界面右邊滑塊所指向的“C.262”(科學音調記號法記為“C4”,為了突出頻率的概念,軟件中的滑塊右邊標示符號格式為“C.”加對應的頻率值),音符標示名的格式為音符所在的八度區C音的頻率值加音符的唱名,如“C4”的音符名稱為“C262_Do”。由于一般簡單的歌曲很少用到升音或降音,為了操作方便,程序中將其忽略,在錄入歌曲時先用臨近的音符代替,調試時再修改備注和頻率。程序中將各個音符的頻率保存為一個二維數組,這樣根據主界面右邊當前滑塊值和按下的數字鍵就能很方便地獲得所需要錄入音符的頻率值,該二維數組代碼如下:

  private static readonly ushort[,] ToneFrequency = new ushort[7,7] {

  {65, 73, 82, 87, 98, 110, 123},

  {131, 147, 165, 175, 196, 220, 247},

  {262, 294, 330, 349, 392, 440, 494},

  {523, 587, 659, 698, 784, 880, 988},

  {1047, 1175, 1319, 1397, 1568, 1760, 1976},

  {2093, 2349, 2637, 2794, 3135, 3520, 3951},

  {4186 ,4699, 5274, 5588, 6272, 7040, 7902}

  };

  3.4軟件主界面的程序流程圖

  軟件主界面的程序流程圖如圖6所示。

圖像 006.png

  3.5串口通信的數據格式

  為了能測試所編輯音樂的實際效果,需要將音符數據發送給單片機演奏,本方案使用串口來傳遞數據。播放一表1串口通信的數據格式字節偏移字節內容0數據幀頭碼1,0xEE1數據幀頭碼2,0xFF2音符頻率,高8位3音符頻率,低8位4電容通電時間,每單位10 ms5音符持續時間,每單位10 ms個音符時,只需要通過串口向單片機發送音符數據即可,由于需要發送定長多字節的數據,在數據幀中加入頭碼來方便單片機判斷數據幀的開始和結束。數據幀的格式如表1所示。

圖像 008.png

  3.6導出文件的格式

  在完成音樂的編輯和調試后,可以導出C語言文件,加入單片機工程中,完成單片機音樂的功能。導出的文件中包含音符結構體的定義、停止標識符及音符結構體數組,可以根據需要添加多個音符結構體數組,并修改數組名稱。

4單片機參考處理流程

  在串口接收到完整的一幀音符數據后,調用Music_StartANewTone函數,啟動一次音符演奏的控制流程,在該函數內將音符的電容上電時間賦值給CURBuzzerOnTime全局變量,音符的持續時間賦值給CURToneTime全局變量,將音符的計時器全局變量ToneTimer置為0,并打開電容的供電控制并設置好蜂鳴器的驅動頻率。一個音符的控制過程中每10 ms處理一次相關的變量操作,其程序流程圖如圖7所示。

圖像 007.png

  程序中定義了音符結構體指針變量pMusicTone,用于方便控制音樂的播放和停止,在需要播放音樂或停止播放時,將指針變量pMusicTone指向對應的音樂音符數組即可,在音符的控制流程中將自動處理。

5結束語

  本文介紹了一套完整的在嵌入式系統中加入高級提示音或音樂的方法,能夠快速方便地編輯音樂和調試音樂效果,加快嵌入式系統提示音或音樂功能的開發進度,能夠廣泛地適用于需要警報提示音或開關機音樂的應用場合。

  參考文獻

 ?。?] 百度百科.音樂基本要素[EB/OL]. [2016-06-10]. http://baike.baidu.com/view/1417685.htm.

 ?。?] 深圳和而泰智能控制股份有限公司. 一種蜂鳴器電路:中國,2006200340907[P]. 2007-07-25.

 ?。?] 劉鐵猛. 深入淺出WPF[M]. 北京:中國水利水電出版社,2010.

  [4] KARLI W, JACOB V H, JON D R,等. C#入門經典[M]. 齊立波,黃俊偉,譯. 北京:清華大學出版社,2013.

 ?。?] Wikipedia. Scientific pitch notation[EB/OL]. [2016-06-10]. https://en.wikipedia.org/wiki/Scientific_pitch_notation.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          先锋亚洲精品| 欧美日韩国产亚洲一区| 欧美激情精品久久久久久| 亚洲国产精品ⅴa在线观看| 久久av资源网| 一区二区在线视频| 国产精品久久国产三级国电话系列| 欧美丰满少妇xxxbbb| 91久久精品国产91性色| 久久xxxx精品视频| 91久久国产综合久久蜜月精品| 国产精品影视天天线| 国产精品一区二区三区观看| 欧美日韩国产精品一卡| 久久嫩草精品久久久精品| 99www免费人成精品| 精东粉嫩av免费一区二区三区| 另类欧美日韩国产在线| 久久精品成人欧美大片古装| 欧美亚洲一区二区在线| 久久久www免费人成黑人精品| 欧美中文字幕久久| 激情亚洲一区二区三区四区| 欧美日韩一区二区免费视频| 欧美在线日韩| 国产精品成人一区二区三区吃奶| 一区二区日韩精品| 欧美高清视频一区二区| 国产精品免费aⅴ片在线观看| 国产三级欧美三级| 久久精品成人| 伊人伊人伊人久久| 一区二区三区在线观看视频| 欧美午夜视频一区二区| 在线 亚洲欧美在线综合一区| 欧美黑人多人双交| 久久阴道视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲夜间福利| 亚洲高清不卡在线| 欧美成黄导航| 国产日韩一区欧美| 亚洲国产日韩在线一区模特| 国产精品yjizz| 一本综合久久| 国产主播喷水一区二区| 欧美婷婷久久| 蜜桃av综合| 久久成人综合视频| 国产精品久久久久一区| 宅男在线国产精品| 欧美一区二区啪啪| 国产精品毛片a∨一区二区三区|国| 麻豆成人小视频| 精品成人在线视频| 欧美一级免费视频| 欧美一区二区视频在线观看| 国产精品chinese| 欧美成人精品一区二区| 日韩视频一区二区三区| 欧美激情成人在线视频| 性欧美暴力猛交69hd| 国产亚洲欧美中文| 亚洲一区在线观看视频| 国产精品v欧美精品v日本精品动漫| 国产精品萝li| 亚洲欧美色婷婷| 亚洲国产日韩欧美一区二区三区| 久久久99爱| 久久久久一区二区三区| 欧美日韩视频专区在线播放| 欧美aⅴ一区二区三区视频| 亚洲欧美精品suv| 国产精品一区二区三区久久久| 在线观看成人网| 欧美日韩成人| 国产一区二区三区精品欧美日韩一区二区三区| 国产日产精品一区二区三区四区的观看方式| 午夜免费日韩视频| 欧美福利小视频| 欧美日韩精品综合在线| 久久精品人人爽| 国产日韩精品在线| 亚洲国产成人在线视频| 亚洲精品少妇30p| 一色屋精品视频在线观看网站| 中日韩男男gay无套| 美女成人午夜| 亚洲欧美日韩成人| 亚洲成人在线观看视频| 欧美/亚洲一区| 加勒比av一区二区| 午夜亚洲一区| 久久久久免费| 久久久99国产精品免费| 亚洲一区二区三区在线播放| aa成人免费视频| 国产精品爱久久久久久久| 午夜精品av| 亚洲欧美久久| 国产一区99| 亚洲国产一成人久久精品| 久久久久久**毛片大全| 欧美午夜精品久久久| 国产亚洲美州欧州综合国| 免费日韩一区二区| 国产精品亚洲第一区在线暖暖韩国| 亚洲第一色在线| 亚洲国产高清一区二区三区| 91久久精品www人人做人人爽| 久久精品视频导航| 国产拍揄自揄精品视频麻豆| 国产欧美日韩免费| 午夜性色一区二区三区免费视频| 国产精品视频一二三| 国产视频一区欧美| 亚洲一区在线播放| 99在线精品视频| 欧美日韩成人综合在线一区二区| 国产精品一区二区黑丝| 一区二区三区四区五区精品视频| 亚洲免费激情| 国产精品一区免费在线观看| 99精品视频免费观看| 久久精品国产久精国产一老狼| 国产精品男gay被猛男狂揉视频| 免费成人高清| 国产精品免费电影| 午夜日韩视频| 欧美大成色www永久网站婷| 欧美特黄一级| 亚洲经典一区| 99亚洲一区二区| 国产精品久久久久久久浪潮网站| 欧美欧美天天天天操| 亚洲精品乱码久久久久久久久| 国产精品成人一区二区艾草| 最新亚洲电影| 国产婷婷色一区二区三区| 国产亚洲精品久久久久动| 欧美成人精品高清在线播放| 久久久久久九九九九| 久久久久久久尹人综合网亚洲| 久久久爽爽爽美女图片| 亚洲国产成人不卡| 亚洲午夜在线观看| 国产一区二区三区成人欧美日韩在线观看| 亚洲黄色在线视频| 亚洲中无吗在线| 国产欧美日韩不卡免费| 欧美性事免费在线观看| 亚洲一区二区欧美| 国产精品嫩草影院av蜜臀| 99国产麻豆精品| 亚洲成色最大综合在线| 欧美一区二区观看视频| 欧美一区二区三区播放老司机| 欧美在线日韩在线| 午夜精品久久久久久久男人的天堂| 欧美精品日日鲁夜夜添| 欧美精选午夜久久久乱码6080| 亚洲性视频网址| 亚洲欧美日韩精品久久久| 欧美视频中文字幕在线| 韩日精品在线| 欧美精品九九99久久| 国产精品久久久久免费a∨| 欧美日韩国产小视频在线观看| 亚洲区欧美区| 玉米视频成人免费看| 久久免费少妇高潮久久精品99| 亚洲精品一区久久久久久| 亚洲午夜精品一区二区三区他趣| 免费久久99精品国产自在现线| 欧美另类人妖| 免费不卡视频| 一区二区福利| 欧美国产精品va在线观看| 亚洲视频免费| 国产视频在线一区二区| 国产一区二区三区自拍| 亚洲欧美激情一区| 葵司免费一区二区三区四区五区| 亚洲男人第一av网站| 久久婷婷人人澡人人喊人人爽| 亚洲国产成人在线| 亚洲人成网站777色婷婷| 亚洲女同精品视频| 欧美剧在线免费观看网站| 国产精品大全| 国产精品视频久久| 久久久爽爽爽美女图片| 国产精品久久久久一区二区| 国产精品福利影院| 亚洲第一精品影视| 99热精品在线观看| 国产精品美女一区二区| 日韩手机在线导航| 国产日韩欧美一二三区| 国产精品视频成人| 欧美精品午夜| 久热综合在线亚洲精品| 欧美福利视频一区| 国产麻豆精品视频| 国产亚洲精品久久久久婷婷瑜伽| 亚洲最新色图| 欧美日本一道本在线视频| 激情视频一区二区三区| 欧美激情综合亚洲一二区| 亚洲美女91| 在线精品视频一区二区| 国产视频欧美| 欧美成人免费视频| 香蕉国产精品偷在线观看不卡| 久久在线免费观看| 久久人人爽国产| 亚洲一区免费观看| 欧美日韩亚洲不卡| 久久综合久久综合九色| 最新亚洲电影| 欧美成年人在线观看| 欧美日韩人人澡狠狠躁视频| 国产精品自拍三区| 好吊一区二区三区| 欧美在线精品一区| 免费观看30秒视频久久| 在线亚洲免费视频| 狠狠综合久久av一区二区小说| 国产精品入口66mio| 欧美高清视频一区二区三区在线观看| 欧美精品xxxxbbbb| 久久久久久夜精品精品免费| 欧美国产日本韩| 国产精品久久久久久久久果冻传媒| 在线视频你懂得一区二区三区| 国产欧美精品日韩| 国产欧美一区二区精品秋霞影院| 欧美精品系列| 国产美女一区二区| 亚洲国产精品va在线看黑人动漫| 激情久久久久久| 久久激情视频免费观看| 久久久国产精品亚洲一区| 久久亚洲精品一区| 久久精品二区亚洲w码| 亚洲午夜伦理| 一个色综合导航| 久久一区免费| 欧美午夜www高清视频| 国产精品亚洲视频| 亚洲国产精品小视频| 久久激五月天综合精品| 国产精品女主播一区二区三区| 欧美视频导航| 国产精品美腿一区在线看| 亚洲欧美另类在线观看| 欧美视频在线观看免费| 欧美mv日韩mv国产网站app| 99re66热这里只有精品3直播| 午夜精品久久久久久久| 一区二区三区欧美在线观看| 午夜久久电影网| 欧美国产亚洲视频| 精品成人乱色一区二区| 欧美在线看片a免费观看| 欧美日韩一区二区三区四区五区| 极品尤物av久久免费看| 国产亚洲欧美日韩在线一区| 模特精品裸拍一区| 欧美在线www| 欧美成人一区二区三区片免费| 欧美+亚洲+精品+三区| 国产午夜精品久久久久久久| 国产手机视频精品| 狠狠入ady亚洲精品经典电影| 性欧美8khd高清极品| 国产精品劲爆视频| 亚洲国产经典视频| 国产一区二区在线观看免费播放| 久久夜色撩人精品| 亚洲愉拍自拍另类高清精品| 1204国产成人精品视频| 另类欧美日韩国产在线| 一区在线观看视频| 国产亚洲精品久久飘花| 一区二区三区在线视频播放| 亚洲日韩欧美视频一区| 亚洲全黄一级网站| 国产日韩欧美夫妻视频在线观看| 99伊人成综合| 久久精品91久久香蕉加勒比| 美女主播视频一区| 99视频精品全国免费| 欧美日韩ab| 国产精品久久久久久影院8一贰佰| 欧美日韩精品一区二区三区| 亚洲乱码精品一二三四区日韩在线| 影院欧美亚洲| 亚洲第一区在线| 国产精品青草久久久久福利99| 亚洲欧美资源在线| 欧美日韩国产精品一区| 免费成人在线观看视频| av成人激情| 久久精品亚洲精品国产欧美kt∨| 久热精品视频在线免费观看| 亚洲人成人99网站| 日韩视频一区二区| 亚洲无限乱码一二三四麻| 欧美日韩亚洲另类| 欧美~级网站不卡| 国内揄拍国内精品少妇国语| 一区二区三区在线观看国产| 一区二区久久久久久| 国产一区欧美日韩| 国产精品一二三| 久久久综合精品| 午夜国产精品视频免费体验区| 欧美激情一区二区三区在线| 最新日韩av| 国外成人在线视频| 亚洲日本久久| 日韩一级黄色大片| 99re亚洲国产精品| 国产主播一区二区三区四区| 久久精品亚洲| 国产精品一区三区| 亚洲欧美日韩精品在线|