房百慶 王延兵 趙力
摘 要:音樂報警作為傳統聲音報警的一種新型表現形式,得到了越來越多的關注。若使用數字電路完成相應的功能,則電路會變得相當復雜,且成本也非常高。因此,該文提出了一種基于51單片機的數字音樂報警電路設計方案,其功能是通過軟件編程實現的,不但降低了硬件電路的復雜性,而且其成本也大大降低。該設計AT89C51單片機為核心,輔以LCD1602顯示屏、4個獨立按鍵和蜂鳴器等硬件。通過按鍵可實現英文歡迎提示字符的設置、音樂播放時顯示歌曲序號及名稱、在報警過程中可通過4個功能鍵實現選擇樂曲、暫停和播放等功能。
關鍵詞:音樂報警系統 單片機 AT89C51
中圖分類號: TP274.2 文獻標識碼:A 文章編號:1674-098X(2014)04(c)-0061-03
電子音樂作為現代音樂的一種形式,與古典音樂截然不同。電子音樂是對傳統音樂的延承和背叛,它通過電流產生的聲音打破了音樂的結構及人們習慣的聽覺經驗[1]。電子音樂既是音樂電聲的一個重要內容,也是一種科技的見證。特別是,自從電子合成器問世以來,電子音樂又進入了一個更高的階段[2]。由于電子音樂的普及,電子合成器可以解決相當一部分的歌唱及舞廳的伴奏問題,即:可以事先制作伴奏音樂或背景音樂,而不需要樂隊,或者部分代替樂隊[3-4]。由于音樂合成器制作和修改方便、成本低、音樂豐滿,所以市場需求量很大,因此許多國家的廠商都在發展并不斷推出新型號,每年都有更新換代。
本設計是以AT89C51單片機為核心,輔以LCD1602顯示屏和蜂鳴器等外部電路構成數字音樂報警系統。利用單片機I/O口產生一定頻率的方波,驅動蜂鳴器,發出各種不同的音調,從而演奏樂曲,并能夠由LCD1602顯示屏顯示相應的歌曲信息。鍵盤在單片機應用系統中能實現向單片機輸入數據,傳送命令等功能,是人工操作音樂報警系統的的主要手段。
1 數字音樂報警電路的工作原理
單片機對某一引腳以一定的頻率循環置1置0,該引腳便產生一定頻率的方波,將放大后的方波作用于特定的物理實件(蜂鳴器),就會產生一定頻率的聲音。若改變輸出方波的頻率,產生的聲音也會隨之改變。通過控制輸出方波的時間長短,聲音的長短也可以得到控制,因此,根據樂譜,以類似的音節及相同的節拍,就可以利用單片機產生電子音樂。每個音符分為簡譜碼和節拍碼。簡譜碼為D0-L到SI-H,節拍碼為1到16,對應的節拍表如表1所示。
方波的產生是由定時器控制的。單片機工作時,定時器T0工作在定時方式1,改變TH0及TL0便可產生不同的音頻頻率。需要注意的是,必須考慮中斷響應時間的影響,尤其在高音部分。若忽略中斷響應時間,會使音頻頻率比標準值低幾十Hz,相當于1/4音程,很容易聽出來;中斷響應時間對低音部分影響不大。一般中斷響應時間為3~6個機器周期,經過反復試驗,取5個機器周期作為校正最為恰當。表1中所給的定時初值就是考慮了中斷響應時間后的定時常數。另外,為避免T1中斷可能引起雜音,應將定時器T0中斷設為高優先級。
在音樂中使用的各個固定頻率的音叫音級。常用符號C、D、E、F、G、A、B、c、d、e、……a1、b1、c2、d2……表示,它們對應于鋼琴上的白鍵。兩音之間音高的距離叫音程。在上述音級中,E與F、B與C之間音高的距離僅為其它相鄰音級之間距離的一半,稱它們之間的音程為半音音程,而稱其它相鄰各音之間的距離為全音音程。在這些全音音程之間又加入新的半音音級,用符號﹟C、﹟D、﹟F、﹟G、﹟A、﹟c、﹟d、﹟f等表示,對應于鋼琴上的黑鍵。音持續時間的長短即時值,一般用拍數表示。休止符表示暫停發音,如表2所示。
2 硬件設計
本設計以AT89C51單片機為核心,由主控模塊、輸入模塊、顯示模塊及聲音模塊四部分組成,各模塊連接如圖1所示。整體電路圖如圖2所示。
主控模塊是由AT89C51單片機、時鐘電路、復位電路共同構成單片機最小系統,其核心為AT89C51單片機。主控模塊能夠按照預先編譯好的程序文件執行相應功能,接收輸入模塊傳送來的信號,依據程序向顯示模塊、聲音模塊發送驅動信號,實現對顯示屏顯示及蜂鳴器發聲的控制。
輸入模塊負責向主控模塊提供控制信號。它由四個獨立按鍵組成,分別接入單片機I/O口(P1.0~P1.3)。當按下按鍵時,將單片機相應的I/O口拉至低電平,主控模塊通過不斷掃描輸入模塊的電平狀態判斷是否有控制信號輸入,實現相應功能。
顯示模塊負責顯示歡迎信息及播放音樂時相應的曲目信息。該模塊核心為LCD1602顯示屏,能夠顯示2行16列共32個字符。上拉10K電阻用以提升單片機I/O口的驅動能力。
聲音模塊負責播放音樂,其核心為蜂鳴器。該模塊接收來自主控模塊的驅動信號,發出聲音。
3 軟件設計
軟件編程通常采用結構化程序設計,一般有“自上而下”和“自下而上”兩種方式,“自上而下”法的核心就是主框架的構建。它的合理與否關系到程序最終的功能的復雜程度和性能的優劣[5-6]。
本系統采用4個獨立按鍵作為輸入鍵盤,可分別實現開關、播放\暫停、以及播放曲目的選擇。在開機按鈕按下時有英文歡迎提示字符,音樂報警時顯示歌曲序號及名稱。在報警程中可通過功能鍵實現選擇樂曲、暫停和播放。軟件部分針對《揮著翅膀的女孩》、《同一首歌》和《兩只蝴蝶》三首樂曲進行設計。系統主模塊的程序流程圖如3所示。采用的程序調試軟件為Keil μVision4,所采用的仿真軟件為ISIS 7 Professional軟件。
3.1 顯示模塊驅動
LCD 1602需顯示歡迎、播放曲目等信息,其初始化過程如下:(1)延時15ms;(2)寫指令38H(不檢測忙信號);(3)延時5 ms;(4)寫指令38H (不檢測忙信號);(5)延時5 ms;(6)寫指令38H(不檢測忙信號);(7)以后每次寫指令、讀/寫數據操作均需要檢測忙信號;(8)寫指令38H:顯示模式設置;(9)寫指令08H:顯示關閉;(10)寫指令01H:顯示清屏;(11)寫指令06H:顯示光標移動設置;(12)寫指令0CH:顯示開及光標設置。LCD 1602顯示屏初始化程序如圖4所示。endprint
3.2 按鍵模塊驅動
本設計采用非編碼鍵盤實現輸入,為消除機械觸點產生的抖動,采用軟件消除:當在首次檢測到有鍵按下時,執行延時20 ms子程序,再確認是否仍保持閉合,如保持閉合,則確認有鍵按下,進行相應處理。軟件消抖程序如圖5所示。
3.3 初始化及中斷處理程序
初始化及中斷處理程序如圖6所示。
4 軟件編譯及仿真
軟件編譯成功,結果如圖7所示。
將生成的“MUSIC BOX.HEX”文件裝載到ISIS 7 Professional已搭建好的硬件仿真環境中,進行仿真調試。在Keil中編寫編譯程序通過仿真,可實現預期的音樂盒功能,仿真結果如圖8所示。
5 結語
基于AT89C51單片機設計的數字音樂報警系統具有發音準確、節能環保、易于操作等特點。本設計以“硬件軟件化”為指導思想,充分發揮單片機功能,大部分功能通過軟件編程來實現,電路簡單明了,系統穩定性高。在開機按鈕按下時,該音樂報警系統能夠顯示英文歡迎提示字符,報警時顯示歌曲序號及名稱;在報警過程中可通過功能鍵選擇樂曲,暫停,播放;根據節拍表1和音符表2可以演奏任意樂曲。在調試過程中,成功播放了《揮著翅膀的女孩》、《同一首歌》和《兩只蝴蝶》等三首樂曲,均取得了良好效果。由于單片機所被占用的I/O 口不多,因此系統具有一定的可擴展性。
參考文獻
[1] 孫展.具體音樂與電子音樂的相互滲透——電子音響型作品《Whos Voice(1998)》的制作札記[C]//中國電影電視技術學會影視科技論文集.2002.
[2] 陳學煌,潘曉利.MIDI音源及其在聲控電子樂器中的應用[C]//2006年聲頻工程學術交流會論文集.2006.
[3] 王銀玲.一種單片機控制的音樂盒制作[J].電子制作,2010(11).
[4] 遠飛.基于單片機的音樂播放器的仿真與制作[J].電子元器件應用,2010(12).
[5] 孫毅剛,彭宇,趙光權.單片機原理及接口技術[M].北京:人民郵電出版社, 2011.
[6] 馬忠梅,籍順心,張凱,等.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,2003.endprint
3.2 按鍵模塊驅動
本設計采用非編碼鍵盤實現輸入,為消除機械觸點產生的抖動,采用軟件消除:當在首次檢測到有鍵按下時,執行延時20 ms子程序,再確認是否仍保持閉合,如保持閉合,則確認有鍵按下,進行相應處理。軟件消抖程序如圖5所示。
3.3 初始化及中斷處理程序
初始化及中斷處理程序如圖6所示。
4 軟件編譯及仿真
軟件編譯成功,結果如圖7所示。
將生成的“MUSIC BOX.HEX”文件裝載到ISIS 7 Professional已搭建好的硬件仿真環境中,進行仿真調試。在Keil中編寫編譯程序通過仿真,可實現預期的音樂盒功能,仿真結果如圖8所示。
5 結語
基于AT89C51單片機設計的數字音樂報警系統具有發音準確、節能環保、易于操作等特點。本設計以“硬件軟件化”為指導思想,充分發揮單片機功能,大部分功能通過軟件編程來實現,電路簡單明了,系統穩定性高。在開機按鈕按下時,該音樂報警系統能夠顯示英文歡迎提示字符,報警時顯示歌曲序號及名稱;在報警過程中可通過功能鍵選擇樂曲,暫停,播放;根據節拍表1和音符表2可以演奏任意樂曲。在調試過程中,成功播放了《揮著翅膀的女孩》、《同一首歌》和《兩只蝴蝶》等三首樂曲,均取得了良好效果。由于單片機所被占用的I/O 口不多,因此系統具有一定的可擴展性。
參考文獻
[1] 孫展.具體音樂與電子音樂的相互滲透——電子音響型作品《Whos Voice(1998)》的制作札記[C]//中國電影電視技術學會影視科技論文集.2002.
[2] 陳學煌,潘曉利.MIDI音源及其在聲控電子樂器中的應用[C]//2006年聲頻工程學術交流會論文集.2006.
[3] 王銀玲.一種單片機控制的音樂盒制作[J].電子制作,2010(11).
[4] 遠飛.基于單片機的音樂播放器的仿真與制作[J].電子元器件應用,2010(12).
[5] 孫毅剛,彭宇,趙光權.單片機原理及接口技術[M].北京:人民郵電出版社, 2011.
[6] 馬忠梅,籍順心,張凱,等.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,2003.endprint
3.2 按鍵模塊驅動
本設計采用非編碼鍵盤實現輸入,為消除機械觸點產生的抖動,采用軟件消除:當在首次檢測到有鍵按下時,執行延時20 ms子程序,再確認是否仍保持閉合,如保持閉合,則確認有鍵按下,進行相應處理。軟件消抖程序如圖5所示。
3.3 初始化及中斷處理程序
初始化及中斷處理程序如圖6所示。
4 軟件編譯及仿真
軟件編譯成功,結果如圖7所示。
將生成的“MUSIC BOX.HEX”文件裝載到ISIS 7 Professional已搭建好的硬件仿真環境中,進行仿真調試。在Keil中編寫編譯程序通過仿真,可實現預期的音樂盒功能,仿真結果如圖8所示。
5 結語
基于AT89C51單片機設計的數字音樂報警系統具有發音準確、節能環保、易于操作等特點。本設計以“硬件軟件化”為指導思想,充分發揮單片機功能,大部分功能通過軟件編程來實現,電路簡單明了,系統穩定性高。在開機按鈕按下時,該音樂報警系統能夠顯示英文歡迎提示字符,報警時顯示歌曲序號及名稱;在報警過程中可通過功能鍵選擇樂曲,暫停,播放;根據節拍表1和音符表2可以演奏任意樂曲。在調試過程中,成功播放了《揮著翅膀的女孩》、《同一首歌》和《兩只蝴蝶》等三首樂曲,均取得了良好效果。由于單片機所被占用的I/O 口不多,因此系統具有一定的可擴展性。
參考文獻
[1] 孫展.具體音樂與電子音樂的相互滲透——電子音響型作品《Whos Voice(1998)》的制作札記[C]//中國電影電視技術學會影視科技論文集.2002.
[2] 陳學煌,潘曉利.MIDI音源及其在聲控電子樂器中的應用[C]//2006年聲頻工程學術交流會論文集.2006.
[3] 王銀玲.一種單片機控制的音樂盒制作[J].電子制作,2010(11).
[4] 遠飛.基于單片機的音樂播放器的仿真與制作[J].電子元器件應用,2010(12).
[5] 孫毅剛,彭宇,趙光權.單片機原理及接口技術[M].北京:人民郵電出版社, 2011.
[6] 馬忠梅,籍順心,張凱,等.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,2003.endprint