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