freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的音樂播放器設(shè)計(jì)(編輯修改稿)

2025-02-14 14:30 本頁面
 

【文章內(nèi)容簡介】 統(tǒng)存儲(chǔ)和維護(hù)的信息,系統(tǒng)區(qū)由三部分組成:(包含磁盤大小、格式、存儲(chǔ)方式等信息);(為文件分配磁盤空間);(包括文件名、磁盤地址和文件狀態(tài))[16]。其具體結(jié)構(gòu)如圖34所示。引導(dǎo)記錄FAT目錄系統(tǒng)文件用戶文件系統(tǒng)區(qū)數(shù)據(jù)區(qū)圖34 系統(tǒng)區(qū)和數(shù)據(jù)區(qū)組織圖本次設(shè)計(jì)中,需要對引導(dǎo)記錄進(jìn)行詳細(xì)分析,計(jì)算出數(shù)據(jù)位置,找到音樂文件。而在引導(dǎo)區(qū)最重要的部分為前512字節(jié)。在前512字節(jié)中,前96字節(jié)記錄了系統(tǒng)的詳細(xì)信息,這些信息可以幫助我們算出系統(tǒng)區(qū)和數(shù)據(jù)區(qū)各組成部分的位置。其內(nèi)部前96個(gè)字節(jié)如圖35所示。圖35 SD卡前96字節(jié)截圖在圖35中,每個(gè)字節(jié)含有為:前3字節(jié)為跳轉(zhuǎn)指令結(jié)構(gòu);411字節(jié)為依賴的系統(tǒng)文件名;第113字節(jié)為字節(jié)數(shù)/扇區(qū);14字節(jié)為扇區(qū)數(shù)/簇;116字節(jié)為保留扇區(qū)數(shù);17字節(jié)為FAT數(shù)目;119字節(jié)為啟動(dòng)入口;1921字節(jié)為小卷標(biāo)扇區(qū)數(shù);第22字節(jié)為多媒體類型描述(一般為F8);224字節(jié)為扇區(qū)數(shù)/小卷標(biāo)FAT;226字節(jié)為扇區(qū)數(shù)/磁道;27字節(jié)為頭字節(jié)數(shù);2932字節(jié)為隱藏扇區(qū)數(shù);第3336字節(jié)為磁盤總扇區(qū)數(shù);3740為扇區(qū)數(shù)/FAT;41字節(jié)為擴(kuò)展標(biāo)志位;4244字節(jié)為磁盤版本號(hào);4548字節(jié)為啟動(dòng)目錄的第一簇;4950啟動(dòng)信息扇區(qū)位置;552字節(jié)為啟動(dòng)數(shù)據(jù)備份扇區(qū)位置;另外,8387字節(jié)為文件系統(tǒng)格式;其余信息在本次設(shè)計(jì)中暫未用到。知道以上信息及其含有,我們就可以計(jì)算出磁盤數(shù)據(jù)的位置等信息。為了能夠方便地使用這些信息,在設(shè)計(jì)中可用如圖36所示的結(jié)構(gòu)體進(jìn)行賦值,使程序能夠高效的運(yùn)行。在知道以上信息后,可以采用下面計(jì)算公式進(jìn)行計(jì)算,算出數(shù)據(jù)所在位置。FAT表起始地址=(隱藏扇區(qū)數(shù)+保留扇區(qū)數(shù))*字節(jié)數(shù)/扇區(qū)目錄區(qū)起始地址=FAT表起始地址+FAT數(shù)目*扇區(qū)數(shù)/FAT*字節(jié)數(shù)/扇區(qū)+啟動(dòng)目錄首簇*扇區(qū)數(shù)/簇*字節(jié)數(shù)/扇區(qū)第一個(gè)數(shù)據(jù)扇區(qū)地址=目錄區(qū)起始地址+目錄簇?cái)?shù)*扇區(qū)數(shù)/簇*字節(jié)數(shù)/扇區(qū)目錄區(qū)的大小是不固定,其大小會(huì)根據(jù)文件的多少而進(jìn)行調(diào)整,只有在一個(gè)文件目錄后不存在其它文件,才說明已經(jīng)不含有其它文件。因此,在讀取到的數(shù)據(jù)名為00H時(shí),就說明文件已經(jīng)結(jié)束,可以不再往后面讀取文件。圖36 啟動(dòng)信息結(jié)構(gòu)體在獲取到啟動(dòng)信息以及數(shù)據(jù)區(qū)等位置關(guān)系以后,就可以讀取自己需要的數(shù)據(jù)了。在使用過程中,我們可以編寫一些專門用于計(jì)算文件下一簇/扇區(qū)的程序,這樣就可以通過調(diào)用函數(shù)的方法方便地找到自己需要的數(shù)據(jù),判斷文件是否結(jié)束等情況。 VS1003B驅(qū)動(dòng)程序設(shè)計(jì)設(shè)計(jì)MP3最重要環(huán)節(jié)之一是音頻解碼,解碼質(zhì)量直接關(guān)系到播放效果。本次設(shè)計(jì)中使用的是解碼芯片VS1003B,那么,編寫VS1003B的驅(qū)動(dòng)程序就是解碼中關(guān)鍵環(huán)節(jié)。VS1003B有一個(gè)硬件復(fù)位引腳,在進(jìn)行硬件復(fù)位后,還需要進(jìn)行初始化設(shè)置,和音樂信息相關(guān)的設(shè)置,這樣才能讓其正常工作。因此,下面對MP3文件格式做簡略介紹,以方便對VS1003B進(jìn)行設(shè)置。MP3文件是由幀構(gòu)成,幀是MP3文件最小組成單位。MP3文件大體分為三部分:TAG_V2(ID3V2),F(xiàn)rame,TAG_V1(ID3V1)[17]。每個(gè)MP3數(shù)據(jù)幀又分為幀頭和數(shù)據(jù)部分構(gòu)成。幀頭長度為4BYTE(32位),幀后面可能有兩個(gè)字節(jié)的CRC校驗(yàn)。幀頭數(shù)據(jù)結(jié)構(gòu)如圖37所示。圖37 MP3幀頭結(jié)構(gòu)A表示幀同步,所有位置位;B表示MPEG音頻版本;C表示音樂層描述;D為保護(hù)位;E為位速率索引;F表示采樣頻率索引;G為填充位;I為聲道模式;其余信息與本次設(shè)計(jì)關(guān)系不大,暫未使用,這里不做介紹。以上介紹中最重要的為E和F部分。E部分具體含義如表32所示。表32 位速率索引表BitsV1,L11V1,L2V1,L3V2,L1V2,L2V2,L30000FreeFreeFreeFreeFreeFree000132323232328(8)0010644840644816(16)0011965648965624(24)010012864561286432(32)010116080641608064(40)011019296801929680(48)01112241129622411256(56)100025612811225612864(64)1001288160128288160128(80)1010320192160320192160(96)1011352224192352224112(112)1100384256224384256128(128)1101416320256416320256(144)1110448384320448384320(160)1111BadBadBadBadBadBad1:V1 MPEG1。 V2 – MPEG2/。L1 Layer I。 L2 Layer II。 L3 Layer III2:Free – 可以利用的位率;Bad – 不允許的值在幀頭B、C部分可以查到MP3版本及層數(shù),根據(jù)B、C的值在上表中可以查出音樂播放速率。F區(qū)決定音樂采樣率,而采樣率值則通過表33可以查出。表33 采樣率索引表(單位:Hz)BitsMPEG1MPEG20044100220501102501480002400012000103200016000800011ReservedReservedReserved無論幀長度是多少,每幀的播放時(shí)間都是26ms;每幀的大小可以通過以下方法計(jì)算得出:幀大小=(((MPEGversion==MPEG1?144:72)*比特率)/采樣率)+填充位。當(dāng)計(jì)算出幀大小波特率和采樣率后,我們就可以對MP3文件進(jìn)行解碼。在對MP3格式做簡要介紹后,下面就對VS1003B解碼芯片做一些重要說明。其硬件連接方式在第二章已經(jīng)做了說明,此次設(shè)計(jì)中使用的是SPI接口,另外還連接了復(fù)位端、數(shù)據(jù)請求端、數(shù)據(jù)端及命令端。VS10003B接口指令為8位,0X2為寫;0X3為讀。一般我們只需要寫,只有在驗(yàn)證寫入是否成功時(shí),才讀VS1003B內(nèi)部寄存器。在每次讀寫數(shù)據(jù)后,數(shù)據(jù)請求端會(huì)變低表示忙。只有當(dāng)數(shù)據(jù)請求端變高后才能進(jìn)行數(shù)據(jù)/指令讀寫。其具體時(shí)序如圖38所示。圖38 VS1003B寫數(shù)據(jù)時(shí)序圖[18]根據(jù)時(shí)序圖可以看出:要操作VS1003B,需要一條8為指令,再跟上8位地址,和寫入該地址的16位數(shù)據(jù)。然后,DREQ會(huì)變低,直到內(nèi)部完成數(shù)據(jù)的操作。VS1003B初始化時(shí),需要對模式寄存器、時(shí)鐘頻率及倍頻寄存器、音量寄存器進(jìn)行設(shè)置。另外,還需要對音頻寄存器進(jìn)行設(shè)置,其取值由具體MP3文件幀頭數(shù)據(jù)計(jì)算得到,計(jì)算過程在MP3分析時(shí)已經(jīng)說明,這里不再解釋。在進(jìn)行初始化設(shè)置以后,就可以進(jìn)行數(shù)據(jù)送入解碼芯片進(jìn)行解碼。由于軟件復(fù)位不會(huì)改變這些寄存器的值,我們在進(jìn)行歌曲切換時(shí)可以進(jìn)行軟件復(fù)位,這樣,在進(jìn)行歌曲切換時(shí)可以不用進(jìn)行其它復(fù)雜操作,直接進(jìn)行軟件復(fù)位就可以了。另外,DREQ引腳在VS1003B的FIFO在能夠接受數(shù)據(jù)的時(shí)候輸出高電平。此時(shí),VS1003B可獲取至少32Byte的SDI數(shù)據(jù)或一個(gè)SCI命令。遵循這個(gè)標(biāo)準(zhǔn),當(dāng)DREQ變低時(shí),發(fā)送器必須停止發(fā)送新的數(shù)據(jù)[19]。根據(jù)這個(gè)信息,我們在對VS1003B芯片大量寫入音樂數(shù)據(jù)時(shí),可以一次性寫入32字節(jié),這樣就可以大大提高數(shù)據(jù)輸入的效率,讓音樂播放更為流暢。 MP3軟件運(yùn)行設(shè)計(jì)在完成了各種驅(qū)動(dòng)程序設(shè)計(jì)后,就需要對音樂播放流程、界面和操作進(jìn)行設(shè)計(jì)。如果在播放過程中,沒有好的界面及人機(jī)接口程序,就會(huì)不利于使用者操作,而且,在使用過程中,客戶由于不知道怎樣操作,胡亂按鍵就容易造成其它未知錯(cuò)誤。因此,下面我們就怎樣進(jìn)行整體設(shè)計(jì)做簡要說明。首先,程序需要對系統(tǒng)進(jìn)行初始化。初始化各個(gè)驅(qū)動(dòng)的順序必須有嚴(yán)格規(guī)定,應(yīng)該從鍵盤開始,到顯示器,再到SPI接口初始化,到SD卡和FAT格式初始化,最后是VS1003B的初始化。采用以上順序,主要是為了能夠在任何一個(gè)接口或器件初始化失敗時(shí),在顯示器中能夠給出相應(yīng)的動(dòng)作,指示哪一部分出錯(cuò),用戶應(yīng)該怎樣繼續(xù)往下操作。正因?yàn)槿绱?,在鍵盤和顯示器初始化過程中,絕對不能有死循環(huán),而其它程序中循環(huán)部分必須保留一定次數(shù),超過這個(gè)次數(shù)就跳出循環(huán)并報(bào)錯(cuò),交給系統(tǒng)處理錯(cuò)誤,并發(fā)出警告。在初始化各驅(qū)動(dòng)程序完成后,需要進(jìn)入主程序,播放SD卡中的音樂。這部分程序可以在死循環(huán)中完成。一旦開始播放音樂,就不需要停下,除非暫停鍵(可設(shè)一標(biāo)志位加以判斷)被按下。其程序段如圖39所示。圖39 主程序段代碼在MP3播放過程中,可以先搜索全部音樂,將其放入一全局變量中,然后,利用這個(gè)全局變量判斷是否所有音樂已經(jīng)播放完成。播放過程主要為搜索音樂,找到音樂數(shù)據(jù)位置,讀取數(shù)據(jù),送入VS1003B解碼,判斷文件是否結(jié)束,沒有則再查找下一簇?cái)?shù)據(jù)并讀取數(shù)據(jù),否則,送入結(jié)束數(shù)據(jù)代碼,跳到下一曲。其中,在進(jìn)行完每一塊數(shù)據(jù)的解碼之后,需要進(jìn)行一次鍵盤掃描,根據(jù)鍵盤的值,對VS1003B或單片機(jī)的相應(yīng)寄存器進(jìn)行操作,達(dá)到控制MP3播放的目的。第四章 總結(jié) 基于單片機(jī)的MP3播放器測試結(jié)果首先,在一張容量為1G的SD卡中存儲(chǔ)了幾首MPWMA格式的歌曲文件,然后,插入自制的電路板中,上電播放。音樂播放成功,無任何異常產(chǎn)生。然后,進(jìn)行按鍵測試。音量加減鍵能夠正常工作,但是,在按下按鍵時(shí),歌曲出現(xiàn)播放聲音出現(xiàn)斷續(xù)情況。根據(jù)程序分析,由于每26ms需要一幀數(shù)據(jù),而按下按鍵會(huì)導(dǎo)致程序中斷數(shù)百毫秒,故出現(xiàn)歌曲播放聲音不連續(xù)的情況。進(jìn)行歌曲切換、暫停/播放按鍵測試時(shí),一切正常,無任何異常。到此,基于SD卡的播放器測試完成。所有電路及預(yù)期功能基本完成,無異常產(chǎn)生。 前景與展望MP3播放器在現(xiàn)在市場上已經(jīng)變得非常常見,從這個(gè)角度看,MP3的發(fā)展?jié)摿σ呀?jīng)不是很樂觀。但是,微型存儲(chǔ)卡技術(shù)卻在飛速發(fā)展,而且,將存儲(chǔ)卡與MP3相結(jié)合的技術(shù)卻并不樂觀,因?yàn)樵谶@方面字庫處理的方法還需要得到提升,當(dāng)SD/MMC卡更換后,怎樣才能讓漢字字庫保持不變很難辦到,即使這樣處理了,卻不得不在MP3內(nèi)部再加一塊存儲(chǔ)器存儲(chǔ)字庫,這樣,產(chǎn)品在成本上增加了,這也是基于SD卡的MP3不能快速發(fā)展的原因。因此,這種基于SD卡的MP3播放器在現(xiàn)實(shí)中,仍然具有一定潛力。而且,它在被用作MP3的同時(shí)還可以用作存儲(chǔ)器。對于用戶來說,這無疑是一種新意、一種優(yōu)勢,值得去購買、體驗(yàn)。由于它本身的小巧,還可以嵌入車載系統(tǒng)、家庭娛樂系統(tǒng)等設(shè)備中,如果能在這些方面加以應(yīng)用,這種基于SD卡的MP3播放器還有很大潛力可供挖掘。綜上所述,這種使用微型存儲(chǔ)卡作為存儲(chǔ)介質(zhì)的MP3播放器仍具有良好的發(fā)展勢頭,擁有一定潛力可供挖掘。參考文獻(xiàn)[1] CECA .Chain Electronic Components Association[OL] . . 2007[2] 沈磊 . 基于ColdFire 和uCLinux 的便攜式多媒體播放器軟件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [D] . 上海:上海交通大學(xué) , 2005 : 12[3] 有風(fēng)無雨 歷史不會(huì)忘記-索尼Walkman 數(shù)十年回憶 [OL] . ://. , [4] workstar百度百科 MP3 [OL] . ://baike. , 2009 .[5] 麥建邦 百度百科 MP3播放器 [OL] . , [6] 文夢夢 . 回首昨日展望明天 淺談MP3播放器發(fā)展趨勢[J] . PCPOP電腦時(shí)尚 , : 19[7] 譚文杰 . 基于USB主機(jī)的多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn) [D] . 廣東:中山大學(xué) , 2007 : 1[8] 陳杰 . 基于ARM平臺(tái)的MP3編碼器的實(shí)現(xiàn)及其性能優(yōu)化 [D] . 上海:上海交通大學(xué) , 2007 : 1[9] 陳冬云、杜敬倉、任柯燕等 ATmega128單片機(jī)開發(fā)原理與指導(dǎo) [M] .北京:機(jī)械工業(yè)出版社,:4[10] 2503JAVR10/06 . 8bit AVR Microcontroller with 32K Bytes InSystem Programmable Flash ATmeg32 [S] . Atmel .[11] Official Release . Multimedia Card System Specification [S] . version . MMCA Technical Committee,May 2003 MMCA[12] VLSI Solution . VS1003 PRELIMINARY [S] . Version , 20050607[13] Specification for LCD Module TS16201 [S] . SHENZHEN TECHSTAR ELECTRONICS CO.,LTD[14] SMC1602A LCM 使用說明書 [S] . 長沙太陽人電子有限公司[15] Application Note Secure Digital Card Interface for the MSP430 [S] . Dept. of Electrical and Computer Engineering . Michigan State University, 2004[16] 沈美明 溫冬嬋 編著IBMPC匯編
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1