朱建武
摘要:介紹了一種基于89C58RD單片機的音樂播放器硬件設計方案,可在數碼管上顯示時間,通過外置喇叭自動播放音樂。
關鍵詞:單片機? 存儲芯片? 液晶屏?? 音頻功率放大器
1.設計要求
在基于單片機的音樂播放器系統(tǒng)設計中,采用89C58RD+型單片機為硬件基礎,通過C語言程序對芯片進行編程。單片機需外接+5V穩(wěn)壓電源,并通過MAX232電平轉換芯片和串口接入PC機。單片機工作時,用軟件對定時器初值進行設定,從而得到所需要的聲音頻率;通過四位共陰LED數碼管,可顯示時間,并可進行定時設置;通過LM386N1芯片,將單片機輸出的信號放大,接入喇叭即可發(fā)聲。
2.分析
(1)對時間進行定時,當定時時間到后,通過喇叭能連續(xù)播放一段音樂。要求播放出的音樂的音階準確,不能有太大偏差,否則會造成音樂聲音刺耳難聽;音樂播放必須連貫,即音樂必須有節(jié)奏感;喇叭放出的音樂聲音響亮,不能太小,否則不能達到樂曲的提示作用。
(2)在四位共陰LED數碼管上顯示出時間(24小時制),包括小時、分鐘,當定時1秒后,秒數加1;當定時滿60秒后,秒數歸零,分鐘數加1;當定時滿60分鐘后,分鐘數歸零,小時數加1;當定時滿24小時后,小時數歸零。
本設計的軟件部分包含了兩個重要組成部分:音樂編程和時間程序。
設計的軟件流程:程序開始運行時先對單片機進行初始化,其中包括定時器及其工作方式的選擇、外部中斷設定、定時器初值的設定。利用單片機,通過軟件的方式產生所需要的音樂頻率,并將收到的信號與音頻編碼表進行對比。若信號在編碼表中,則將該頻率的定時器初值寫入定時器中,并讀取頻率的音階,再從單片機的P1.0口輸出,經過音頻放大器驅動喇叭發(fā)出聲音,利用驅動喇叭演示程序即可控制音樂的節(jié)拍。若信號不在編碼表中,則返到初始化。
3. 硬件部分功能簡介
設計的硬件流程如下,首先,PC機通過串口及MAX232芯片將程序下載到單片機中,其中包括把一個個的單音寫入單片機的ROM存儲器中,程序運行時再將音樂數據按順序讀出,利用單片機的定時器中斷控制音樂節(jié)拍的長度,這樣就能形成一段樂曲。在單片機P1.0口接入音頻放大電路,將單片機輸出的信號放大,再通過喇叭播放音樂。單片機P2口接4位共陰LED數碼管,并外接1K歐的排阻,利用單片機內部的定時器中斷控制時間程序,然后在數碼管上顯示出時間。
3.1 硬件電路圖
通過串口與電腦相連相互傳送數據。單片機通過P0口控制液晶顯示,通過PI口控制24C1024芯片存儲數據,通過串口將菜譜數據寫入到24C1024芯片中去,同時調用24C1024芯片數據顯示到液晶屏中。按鍵部分圖略。按鍵選擇菜名,客人最后確認后通過串口回傳到PC中。
4. 仿真與調試過程
4.1時間顯示程序仿真
對于時間顯示程序,采用了Preteus軟件來仿真。首先進入Preteu界面,設計一個簡單的仿真電路,及一個單片機的基本外圍電路,在P0.0-P0.7接一個4位共陰數碼管和排阻,如圖6-1。最后,把程序調入單片機中,開始運行。
(1)調試過程中所遇到的問題:運行程序時LED4位共陰數碼管顯示程亂碼。
原因分析:數碼管初始設置有錯。
解決方案:重新設置數碼管顯示參數,正確的設置為{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。
(2)數碼管顯示的時間與真正的時間進度不一致。
原因分析:定時器初值設置有誤。本次設計的晶振為6MHZ,而程序中的初值卻設置成了12MHZ晶振所采用的值5000,導致顯示的時間比真正的時間要慢。
解決方案:將定時器初值改為12MHZ晶振初值的一半,及2500即可。
4.2音樂播放程序調試過程
關于音樂播放程序的調試,首先采用Preteus軟件來仿真,但是該仿真軟件中沒有喇叭或蜂鳴器等聲音播放工具。于是將3.1中的單片機的P1.0處接了一個示波器,想通過這樣來仿真并調試音樂播放程序,但是效果不是很理想。程序運行的時候,能看見示波器有不同頻率的波形交替出現(xiàn),但是頻率變換得很快,無法確認是否顯示的是所需要的頻率,并且無法辨別音頻變換的節(jié)奏是否正確。此方法并不適用。
接下來制作了一個簡單的單片機播放器電路。即在實驗板上焊接實驗電路,電路由單片機89C58RD+、MAX232的外圍電路組成,并在單片機的P1.0處用三極管連接一個簡單的音頻放大器,再外接一個喇叭。將程序寫入單片機中,這樣就能聽出聲音和音樂節(jié)奏是否正確。
5.總結
用單片機技術設計、制造的播放器控制系統(tǒng),具有集成度高、功能強、體積小、速度快、存儲量大、指令豐富,抗干擾性強,性能價格比高,通用性好,推廣范圍大,工作可靠,指示準確,易于匹配,使用壽命長,標準化系數高等一系列優(yōu)勢和特點。最后可在數碼管上顯示時間,當定時時間到后,喇叭自動播放一段連續(xù)的音樂。此設計擺脫了傳統(tǒng)鬧鐘的刺耳聲音,取而代之的是美妙的音樂,能為人們的日常生活提供準確的計時,且成本低廉,值得推廣。