基于AT89S52單片機的多功能音樂播放器
通過Time0的溢出中斷實現(xiàn)單頻產(chǎn)生。Time0的溢出中斷發(fā)生后輸出引腳的電壓反向,然后定時器重新裝入初值。所以編程時要確定Time0的工作模式和計數(shù)初值。這里采用工作模式1,定時器的初值設(shè)定通過軟件重復(fù)實現(xiàn)。而且定時器的初值則依據(jù)各音頻頻率設(shè)置。例如:中音Do音頻是523Hz,其周期T=l/523=1 912μs,其半周期為1912/2=956μs。本設(shè)計的計時時鐘周期是lμs,因此設(shè)置TimeO的計數(shù)器每計956次則中斷一次,從而實現(xiàn)Do的音頻,然后通過中斷觸發(fā)實現(xiàn)引腳電壓的循環(huán)取反得到相應(yīng)音頻輸出。圖4為液晶顯示的編程流程框圖。
自編音樂和自動播放2個模式轉(zhuǎn)換的程序設(shè)計,代碼如下:
4 仿真與結(jié)果
采用繪制電路圖軟件PROTEUS和用于編寫程序的KeilCμVision2實現(xiàn)系統(tǒng)設(shè)計的仿真。圖5為PROTEUS仿真環(huán)境下的硬件電路圖。在KeilC μVision2中創(chuàng)建一個新項目,然后在PROTEUS中為該項目加入Keil C源程序。調(diào)試后,結(jié)果和設(shè)計目標完全吻合。上電后液晶顯示器顯示“Wel-come!”,接著顯示第一首歌曲名字,連續(xù)播放直到手動選擇。同時4盞彩燈隨著音樂節(jié)奏閃動。按下模式轉(zhuǎn)換按鈕,可以彈奏用戶喜歡的音符和樂曲。
5 結(jié)語
該設(shè)計實現(xiàn)了多功能音樂播放器預(yù)期的基本功能和指標。采用單片機最小系統(tǒng)和匯編語言,擴展一般音樂播放器的功能,實現(xiàn)了自彈自唱和自動播放兩種模式的轉(zhuǎn)換,并且能顯示音樂的節(jié)拍跳動和歌曲英文名字。
評論