移動卡拉OK系統(tǒng)
摘要: 在當(dāng)今這樣一個充滿競爭與挑戰(zhàn)的社會,人們的生活顯得日益緊張而繁忙,同時也對休閑娛樂的要求越來越高??ɡ璒K作為一種休閑娛樂項目一直備受人們青睞。但人們在唱歌時往往被局限于狹小的卡拉OK廳內(nèi),行動、思維、靈感上都大大受到影響,無法最佳發(fā)揮。針對這種現(xiàn)狀,我們設(shè)計出一種基于U盤存儲的體積小巧的移動卡拉OK系統(tǒng)。用戶可以在精心設(shè)計的環(huán)境中隨心所欲地引吭高歌,充分展示自己的激情與靈感,使人與音樂達(dá)到完美結(jié)合。
Abstract:
Key words :
在當(dāng)今這樣一個充滿競爭與挑戰(zhàn)的社會,人們的生活顯得日益緊張而繁忙,同時也對休閑娛樂的要求越來越高。卡拉OK作為一種休閑娛樂項目一直備受人們青睞。但人們在唱歌時往往被局限于狹小的卡拉OK廳內(nèi),行動、思維、靈感上都大大受到影響,無法最佳發(fā)揮。針對這種現(xiàn)狀,我們設(shè)計出一種基于U盤存儲的體積小巧的移動卡拉OK系統(tǒng)。用戶可以在精心設(shè)計的環(huán)境中隨心所欲地引吭高歌,充分展示自己的激情與靈感,使人與音樂達(dá)到完美結(jié)合。
系統(tǒng)硬件實現(xiàn)
本系統(tǒng)以AT89C51SND1C為核心處理器,采用美國國家半導(dǎo)體公司的LM4832、LMV722和LM4838作為立體聲音頻功率放大器,以CS4330為音頻DAC,K9F5608U0A為存儲器并通過USB接口與主機(jī)通信,從而實現(xiàn)歌曲播放與麥克風(fēng)輸入;同時輔以鍵盤輸入控制和LCD實時顯示。整體硬件結(jié)構(gòu)如圖1所示。

歌曲播放部分設(shè)計
歌曲播放部分主要實現(xiàn)歌曲播放與麥克風(fēng)輸入,即實現(xiàn)音樂與用戶歌聲的融合,是系統(tǒng)的核心部分。本系統(tǒng)采用AT89C51SND1C作為中央處理器。Flash中存儲的MP3文件經(jīng)解碼器解碼后輸出I2S格式的數(shù)字信號,通過數(shù)模轉(zhuǎn)換芯片轉(zhuǎn)換后輸出左右兩路微弱的音頻模擬信號,分別作為LM4832左右聲道的輸入信號。本設(shè)計利用LM4832、LMV722和LM4838的巧妙結(jié)合(如圖1所示),對音樂信號和用戶歌聲進(jìn)行混合和功率放大,達(dá)到絕佳的音響效果。
LM4832是具有I2C接口的數(shù)控音質(zhì)音量的立體聲音頻功率放大器。它的左右聲道、高低音均獨立可調(diào),并具有3D音響效果和軟件可控低功耗休眠模式。此外,它還提供兩路獨立可選的麥克風(fēng)輸入前置放大與音量控制,這就使得整個系統(tǒng)實現(xiàn)卡拉OK的功能成為可能。但LM4832的音頻輸出與麥克風(fēng)輸出是獨立的,這就需要對歌曲和用戶歌聲進(jìn)行前置混合。在此采用LMV722構(gòu)成的加法運(yùn)算電路,它具有低噪聲高增益帶寬的特點,其增益帶寬高達(dá)10MHz,完全滿足本系統(tǒng)的要求。由于LMV722是單電源供電的,要結(jié)合前級輸入信號幅值來設(shè)計它的直流偏置電壓值,同時其輸出的兩路混合信號要經(jīng)過濾波電路濾除其直流偏置后方可作為后級功放輸入。為了達(dá)到卡拉OK震撼人心的音響效果,需要對音頻信號進(jìn)行功率放大,因此選用功率高達(dá)2W的LM4838音頻功率放大器。它具有DC音量控制、可選內(nèi)外部增益、低音加重等特點,并帶有過熱保護(hù)電路和低功耗休眠模式(休眠電流為0.7 A)。這里通過螺旋電位器來調(diào)節(jié)功率大小。LM4838輸出提供揚(yáng)聲器和耳機(jī)兩種接口,而且兩者之間可以方便切換,使得用戶可以隨意改變自己的方式。
值得注意的是:在整個音頻功放實現(xiàn)過程中,要合理分配每級電路的增益,以免音頻信號失真。 LCD實時顯示部分設(shè)計。
LCD用于實時歌詞和狀態(tài)顯示。由于Windows 系統(tǒng)自帶的字庫有267K之多,因此選用容量為512K的Flash W29C040來存放字庫。同時考慮到主處理器RAM大小及音頻解碼的連續(xù)性,我們選用一片單片機(jī)(即從處理器)來專門處理LCD的顯示,它與主處理器之間通過串口(UART)來通信。LCD上的每個漢字是以16 16點陣方式來顯示的,需用32字節(jié)來表示;每個ASCII字符是以8 16點陣方式顯示,需用16字節(jié)來表示。而1首歌曲歌詞文件(*.lrc)一般有1~2K字節(jié)左右大小,故采用外擴(kuò)RAM(62256)來存儲歌詞文件。整個LCD顯示部分采用總線結(jié)構(gòu),編程簡單方便,處理數(shù)據(jù)游刃有余。
U盤設(shè)計部分
歌曲的存放與更新采用USB接口。存儲器大小可以自選,作為代表性實驗,本系統(tǒng)采用32M Flash K9F5608U0A作存儲器。U盤設(shè)計的硬件電路十分簡單,只需將Flash和主處理器的一些相應(yīng)引腳相連即可。U盤設(shè)計的重點是USB協(xié)議的實現(xiàn),在后文將會詳細(xì)介紹。為了保證系統(tǒng)能正確識別出當(dāng)前狀態(tài)是處于U盤狀態(tài),還是處于歌曲播放狀態(tài),需要設(shè)置狀態(tài)判定電路,如圖2所示。

系統(tǒng)軟件設(shè)計
系統(tǒng)軟件主要包括歌曲播放和USB通信程序。系統(tǒng)上電后,根據(jù)P3_4口判斷當(dāng)前所處的狀態(tài)而分別執(zhí)行相應(yīng)的程序代碼。 歌曲播放軟件設(shè)計
歌曲播放器程序要與鍵盤和LCD配合起來設(shè)計。程序流程大概可分為:硬件初始化→獲取U盤中mp3歌曲列表→歌曲播放和LCD顯示。
硬件初始化主要負(fù)責(zé)mp3解碼器的時鐘設(shè)置、Flash復(fù)位和 LM4832的初始化,這是系統(tǒng)正常工作的關(guān)鍵。LM4832上電時,其聲道音量和麥克風(fēng)音量均為無聲狀態(tài),表1為左聲道的I2C數(shù)據(jù)流格式真值表,其他類似,具體可參考LM4832芯片資料。因此需設(shè)置各狀態(tài)初始值,將各初始值均設(shè)在0dB。另外硬件初始化還包括鍵盤、LCD、UART初始化等工作。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。