基于AT89S52單片機(jī)的多功能音樂(lè)播放器
掃描二維碼
隨時(shí)隨地手機(jī)看文章
目前流行的MP3,MP4播放器的音質(zhì)相當(dāng)好。但略感遺憾的是除了選擇歌曲和顯示歌名外,絕大部分播放器沒有諸如隨意彈奏樂(lè)曲、樂(lè)曲節(jié)奏跳動(dòng)顯示等功能。正是基于音樂(lè)播放器的多功能出發(fā),提出一種多功能音樂(lè)播放器的設(shè)計(jì)方案。
2 硬件電路設(shè)計(jì)
整個(gè)硬件電路是由中心控制、播放、選曲、顯示、電子琴和彩燈等模塊組成。該硬件系統(tǒng)框圖如圖1所示。
2.1 中心控制模塊
目前應(yīng)用較為流行的單片機(jī)有AVR和51單片機(jī)。從系統(tǒng)設(shè)計(jì)的功能需求及成本考慮,51單片機(jī)性價(jià)比更高,AT89S52是擁有2個(gè)外部中斷,2個(gè)16位定時(shí)器,2個(gè)可編程串行UART的單片機(jī)。中心控制模塊采用AT89S52單片機(jī)已完全滿足設(shè)計(jì)需要,實(shí)現(xiàn)整個(gè)系統(tǒng)控制。
2.2 播放模塊
播放模塊是由8550 NPN三極管和電磁蜂鳴器組成。AT89S52輸出高電平控制信號(hào),啟動(dòng)8550 NPN三極管使信號(hào)放大,從而啟動(dòng)電磁蜂鳴器。與LM386和喇叭的組合相比較,該播放模塊存在一定噪聲.音響效果較差。但由于所需驅(qū)動(dòng)功率較小,驅(qū)動(dòng)器件要求不高,并能降低設(shè)計(jì)成本。因此,必須選用8550 NPN三極管和電磁蜂鳴器則能滿足系統(tǒng)要求。
2.3 顯示模塊
常見的基于單片機(jī)設(shè)計(jì)的音樂(lè)播放器基本不能顯示歌曲。該音樂(lè)播放系統(tǒng)設(shè)計(jì)上增加液晶顯示器,可為使用者提供曲目信息。由于LED數(shù)碼管只能顯示數(shù)字而無(wú)法顯示其他中英文字符,并對(duì)成本及功能考慮,因此從設(shè)計(jì)的成本及功能的角度考慮,采用LCD一1602顯示模塊,它可以顯示每首曲目的英文名字。LCD一1602驅(qū)動(dòng)電路簡(jiǎn)單,可以由單片機(jī)直接輸出命令驅(qū)動(dòng),其電路圖如圖2所示。
2.4 電子琴模塊
電子琴設(shè)有8個(gè)按鍵,其中7個(gè)作為音符輸入,另外1個(gè)作為模式轉(zhuǎn)換按鍵,實(shí)現(xiàn)用戶自彈作曲。7個(gè)按鍵分別代表7個(gè)音符,包括中音段的全部音符。通過(guò)軟硬件設(shè)計(jì),模式轉(zhuǎn)換按鍵觸發(fā)外部中斷,中斷使程序跳轉(zhuǎn),實(shí)現(xiàn)模式轉(zhuǎn)換,啟動(dòng)電子琴。然后通過(guò)查詢電子琴所按下的按鍵,讀取電子琴輸入狀態(tài),跳轉(zhuǎn)到對(duì)應(yīng)的程序人口,實(shí)現(xiàn)自編歌曲。當(dāng)需要取消電子琴編曲功能時(shí),再次按下模式轉(zhuǎn)換按鍵引起外部中斷.即可退出電子琴功能而返回到原來(lái)音樂(lè)播放處。
3 軟件程序設(shè)計(jì)
系統(tǒng)初始化后,進(jìn)入默認(rèn)播放功能。開始從第一首曲目開始循環(huán)播放。如果啟動(dòng)中斷,判斷是否為模式切換。如果是,則進(jìn)入自編曲電子琴功能,實(shí)現(xiàn)自彈自編。如果不是,則繼續(xù)循環(huán)播放內(nèi)設(shè)音樂(lè)。播放過(guò)程中如果出現(xiàn)跳選曲目.則進(jìn)入相應(yīng)的曲目程序.程序設(shè)計(jì)流程如圖3所示。
[!--empirenews.page--]
通過(guò)Time0的溢出中斷實(shí)現(xiàn)單頻產(chǎn)生。Time0的溢出中斷發(fā)生后輸出引腳的電壓反向,然后定時(shí)器重新裝入初值。所以編程時(shí)要確定Time0的工作模式和計(jì)數(shù)初值。這里采用工作模式1,定時(shí)器的初值設(shè)定通過(guò)軟件重復(fù)實(shí)現(xiàn)。而且定時(shí)器的初值則依據(jù)各音頻頻率設(shè)置。例如:中音Do音頻是523Hz,其周期T=l/523=1 912μs,其半周期為1912/2=956μs。本設(shè)計(jì)的計(jì)時(shí)時(shí)鐘周期是lμs,因此設(shè)置TimeO的計(jì)數(shù)器每計(jì)956次則中斷一次,從而實(shí)現(xiàn)Do的音頻,然后通過(guò)中斷觸發(fā)實(shí)現(xiàn)引腳電壓的循環(huán)取反得到相應(yīng)音頻輸出。圖4為液晶顯示的編程流程框圖。
自編音樂(lè)和自動(dòng)播放2個(gè)模式轉(zhuǎn)換的程序設(shè)計(jì),代碼如下:
4 仿真與結(jié)果
采用繪制電路圖軟件PROTEUS和用于編寫程序的KeilCμVision2實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)的仿真。圖5為PROTEUS仿真環(huán)境下的硬件電路圖。在KeilC μVision2中創(chuàng)建一個(gè)新項(xiàng)目,然后在PROTEUS中為該項(xiàng)目加入Keil C源程序。調(diào)試后,結(jié)果和設(shè)計(jì)目標(biāo)完全吻合。上電后液晶顯示器顯示“Wel-come!”,接著顯示第一首歌曲名字,連續(xù)播放直到手動(dòng)選擇。同時(shí)4盞彩燈隨著音樂(lè)節(jié)奏閃動(dòng)。按下模式轉(zhuǎn)換按鈕,可以彈奏用戶喜歡的音符和樂(lè)曲。
5 結(jié)語(yǔ)
該設(shè)計(jì)實(shí)現(xiàn)了多功能音樂(lè)播放器預(yù)期的基本功能和指標(biāo)。采用單片機(jī)最小系統(tǒng)和匯編語(yǔ)言,擴(kuò)展一般音樂(lè)播放器的功能,實(shí)現(xiàn)了自彈自唱和自動(dòng)播放兩種模式的轉(zhuǎn)換,并且能顯示音樂(lè)的節(jié)拍跳動(dòng)和歌曲英文名字。