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

正文內(nèi)容

基于51單片機(jī)的音樂播放器的軟硬件設(shè)計畢業(yè)論文-在線瀏覽

2024-07-30 13:13本頁面
  

【正文】 高和EDA技術(shù)的發(fā)展,各種高級的EDA工具不斷推出,比如Keil、IAR、ADS等工具,這些工具不僅極大的方便了工程師的開發(fā),同時也為用C語言這種高級語言來編寫程序提供了有利的條件。但是這些問題可以通過移植操作系統(tǒng)來解決,操作系統(tǒng)的優(yōu)勢就是屏蔽了具體的硬件細(xì)節(jié),可以讓開發(fā)人員把更多的精力放在應(yīng)用程序上。但是對于具體的應(yīng)用存在一些不足之處:首先,操作系統(tǒng)在對數(shù)據(jù)區(qū)的開銷以及一些變量的存儲方面浪費(fèi)了很多的RAM資源,有限的RAM資源就無法有效的分配。由于CH375固件庫是一個固件包,它不僅包括了程序、數(shù)據(jù)結(jié)構(gòu)和覆蓋所有外設(shè)特性的宏單元。因此,使用該固件庫可以節(jié)省設(shè)計者的許多時間,可使開發(fā)人員把更多的精力花費(fèi)在編程方面,加快了開發(fā)周期,減少了在應(yīng)用開發(fā)中的綜合開銷。 CH375模塊的U盤數(shù)據(jù)讀取程序設(shè)計U盤數(shù)據(jù)的讀取是MP3播放的重要環(huán)節(jié),對后面的MP3解碼進(jìn)一步處理至關(guān)重要。CH375用于低功耗模式,工作時需要外部為它提供12MHz的時鐘信號。圖9 U盤數(shù)據(jù)讀取原理圖將8位并行數(shù)據(jù)線D0~D7與單片機(jī)的P0口相連實現(xiàn)數(shù)據(jù)與命令的并行傳輸,RD,WR,CS,INT和A0五根控制線分別連接至單片機(jī)的的對應(yīng)引腳,CH375的TXD引腳通過1K的下拉電阻接地,使CH375工作于USB主機(jī)并行接口方式。INT引腳和MCU的外部中斷輸入引腳相連,當(dāng)有U盤插入時INT變?yōu)榈碗娖接|發(fā)外部中斷,當(dāng)RD為高電平,且CS,WR和AO都為低電平時,D7~DO上的數(shù)據(jù)被寫入CH375芯片中;當(dāng)RD為高電平,且CS和WR都為低電平,AO為高電平時,D7~DO中的數(shù)據(jù)可作為命令碼寫入CH375芯片中;當(dāng)WR為高電平,且CS,RD和AO都為低電平時,CH375中的數(shù)據(jù)可以通過D7~DO輸出。本設(shè)計采用的是字節(jié)模式。如果頻繁地向U盤寫入零碎的數(shù)據(jù),可能會縮短U盤中閃存的使用壽命(因為閃存只能進(jìn)行有限次擦寫)。DISK_OPEN_FILE則代表扇區(qū)模式,DISK_OPEN_FILE_B則代表字節(jié)模式。對于已打開的同一個文件,不能混用兩種模式的操作子程序。在流程中涉及到的參數(shù)如下:,包括完整的路徑名;;[6,7];。VSl003的所有數(shù)據(jù)和控制命令均通過SPI總線接口實現(xiàn)。關(guān)于通信接口部分,它是一種同步串行接口方式(SPI從機(jī)模式),它要求SCLK信號必須由外部電路產(chǎn)生,數(shù)據(jù)(SDATA)在SCLK的上升沿或下降沿時被寫入。數(shù)據(jù)的寫入方法主要是看DREQ信號,在VS1003的FIFO能夠接受數(shù)據(jù)的時候輸出高電平。具體的寫數(shù)據(jù)的方法如下:(1)將XDCS拉低(2)等待DREQ為高(3)通過SPI寫入數(shù)據(jù)(4)在文件沒有結(jié)束前不斷重復(fù)2與3操作(5)在所有的數(shù)據(jù)都發(fā)送完畢后,最后發(fā)送2048個無效字節(jié),用以清除VS1003的數(shù)據(jù)緩沖區(qū) (6)將XDCS置高M(jìn)P3文件播放流程圖如圖11所示。DREQ為高表明VS1003可以接受新的數(shù)據(jù),如果不考慮DREQ的狀態(tài),直接連續(xù)的給VS1003發(fā)的MP3數(shù)據(jù)的話將會出現(xiàn)音樂斷斷續(xù)續(xù)的情況。確定歌曲曲目后,顯示屏進(jìn)行顯示。音樂播放的同時,顯示屏顯示歌曲名,單片機(jī)調(diào)用字節(jié)模式讀取U盤數(shù)據(jù)進(jìn)行音樂播放。當(dāng)音樂文件播放結(jié)束時,判斷是否有按鍵按下,并執(zhí)行相應(yīng)的命令。圖12 系統(tǒng)流程圖4 系統(tǒng)調(diào)試結(jié)果及分析(1)USB轉(zhuǎn)TTL出現(xiàn)的問題:1)驅(qū)動安裝調(diào)試因為Windows 7系統(tǒng)出現(xiàn)系統(tǒng)不兼容軟件,本設(shè)計調(diào)試的系統(tǒng)是64位,所以驅(qū)動很難找到,大部分驅(qū)動支持Windows XP系統(tǒng),所以出現(xiàn)驅(qū)動安裝不成功或者安裝出現(xiàn)錯誤的提示或者在設(shè)備管理器出現(xiàn)黃色的嘆號,都表明驅(qū)動沒安裝成功。解決方法是要考慮兼容性問題,下載的驅(qū)動應(yīng)當(dāng)手動安裝,使用系統(tǒng)自動配置會出現(xiàn)黃色嘆號。 圖13 驅(qū)動安裝調(diào)試2)程序下載調(diào)試按照PL2303驅(qū)動手冊下載程序不能成功,認(rèn)為是最小系統(tǒng)模塊燒了,進(jìn)入串口數(shù)據(jù)測試沒有發(fā)現(xiàn)問題,重新連線搭建系統(tǒng),將STCISP單片機(jī)下載編程燒錄軟件下載按鈕下面的兩個方框打上對號,終于把程序下載進(jìn)了單片機(jī)。l 每次下載前重新調(diào)入已打開在緩沖區(qū)的文件,方便調(diào)試使用。 l 當(dāng)目標(biāo)代碼發(fā)生變化后自動調(diào)入文件,并立刻發(fā)送下載命令。(2)屏幕顯示調(diào)試程序下載成功后根據(jù)顯示的內(nèi)容來調(diào)試,在刪除漢字的時候按下刪除格一下,就變成亂碼,經(jīng)過查找資料之后,才懂得每行可以寫8個漢字或16個字符,如果寫的字符少于16個,那么用空格把未寫的地方填充滿16個字符就不會出現(xiàn)亂碼了。圖14 屏幕顯示調(diào)試前圖15 屏幕顯示調(diào)試后(3)搭建資源I/O端口分配簡化最初LCD12864使用的是并行通信,線路復(fù)雜,占用I/O資源太多,I/O端口不夠使用,按鍵問題在并行通信時只剩下一個按鍵,只能實現(xiàn)下一曲功能,不能完成預(yù)定目標(biāo)。結(jié)束語歷時十二周的畢業(yè)設(shè)計終于結(jié)束了,我收獲了很多在課堂上無法學(xué)到的知識,不僅培養(yǎng)了我親身實踐動手的能力,軟件的編程能力也得到了大幅度的提高,受益匪淺。在Keil和Protel軟件的基礎(chǔ)上,完成了畢業(yè)設(shè)計的任務(wù),實現(xiàn)了運(yùn)用C語言進(jìn)行編程,在LCD顯示屏上顯示播放歌曲的名字,并通過按鍵對歌曲的音量和切換進(jìn)行控制的功能,這次畢業(yè)設(shè)計主要完成了以下幾個方面的內(nèi)容:(1)熟悉了單片機(jī)STC12C5A60S解碼芯片VS100LCD128*64液晶顯示器的工作原理和使用方法。(3)在總體設(shè)計方案的基礎(chǔ)上,完成了音樂播放器的整體設(shè)計。存在的問題:由于時間和自身知識掌握能力的關(guān)系,此次設(shè)計雖然達(dá)到了設(shè)計的基本要求,由于硬件條件和工具有限,本次設(shè)計在功能上還不是很齊全。參考文獻(xiàn)[1] 范海紹,李方園. 零起點(diǎn)學(xué)Proteus單片機(jī)仿真技術(shù)[M]. 北京: 機(jī)械工業(yè)出版社,[2] 智兆華,張鵬. USB接口芯片CH375的原理及應(yīng)用[J]. 今日電子,:7475[3] 董楊生. USB主機(jī)在嵌入式系統(tǒng)中的應(yīng)用[J]. 嵌入式系統(tǒng),:2225[4] 張華宇. AVR單片機(jī)開發(fā)入門與典型實例[M]. 北京市: 機(jī)械工業(yè)出版社, :151156[5] 袁衛(wèi),黨紀(jì)源. 基于單片機(jī)的MP3播放器設(shè)計[J]. 現(xiàn)代電子技術(shù),2011, 34(4): 123125[6] 黃平平,吉榮廷,沈大鵬. 基于CH375實現(xiàn)單片機(jī)讀寫U盤[J]. 現(xiàn)代電子技術(shù),2006,29(18)[7] 王瀾錦. 基于CH375U盤MP3播放器設(shè)計[J]. 嵌入式技術(shù),: 5860[8] 江志紅. AVR單片機(jī)系統(tǒng)開發(fā)實用案例精選[M]. 北京市: 北京航空航天大學(xué)出版社,:342345[9] 趙建領(lǐng). 51系列單片機(jī)開發(fā)寶典[M]. 北京: 電子工業(yè)出版社,[10]周國運(yùn). 單片機(jī)原理及應(yīng)用(C語言版)[M]. 北京: 北京水利水電出版社,[11]姜雪蓮,司徒忠. 基于單片機(jī)的嵌入式U盤控制器的設(shè)計與實現(xiàn)[J]. 機(jī)電工程技術(shù),2005 , 34(4):7981[12]李朝清. 單片機(jī)原理及接口技術(shù)[M]. 北京: 北京航空航天大學(xué)出版社,[13]宋紅星,郭興旺. 以優(yōu)盤為存儲介質(zhì)的MP3播放器設(shè)計[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006:5860[14] Xiao Technology and Application[M].Beijing:Tsinghua University Press,2003[15] Top sun. Drive Your MP3 VS1003[EB/OL]. 2006. 附錄(1)系統(tǒng)整體接線圖(2) 整體實物圖(3) 程序設(shè)計1)MP3解碼模塊:VS1003XDCS(13)P22 (數(shù)據(jù)片選端)XCS(23)P23 (片選輸入,低電平有效)XRESET(3) P24 (低電平有效,異步復(fù)位端)DREQ(8) P25 (數(shù)據(jù)請求,輸入總線)SCLK(28)P27 (串行總線的時鐘)SI(29)P26 (串行輸入) 2)USB讀寫模塊:CH375D0D7(1522)P00P07 (8 位雙向數(shù)據(jù)總線,內(nèi)置弱上拉電阻)A0(8)P20 (地址線輸入,區(qū)分命令口與數(shù)據(jù)口,內(nèi)置弱上拉電阻,當(dāng)A0=1 時可以寫命令,當(dāng)A0=0 時可以讀寫數(shù)據(jù))CS(27)P21 (片選控制輸入,低電平有效,內(nèi)置弱上拉電阻)INT(1)P32 (在復(fù)位完成后為中斷請求輸出,低電平有效)WR(3)P36 (寫選通輸入,低電平有效,內(nèi)置弱上拉電阻)RD(4)P37 (讀選通輸入,低電平有效,內(nèi)置弱上拉電阻)3)LCD顯示模塊:LCD12864LCD12864_RS(4)P35。 (并行的讀寫選擇信號;串行的數(shù)據(jù)口)LCD12864_EN(6)P33。 (并/串行接口選擇:H并行;L串行)LCD12864_RST(17)P14。 //初始化串口 initinal()。 //顯示液晶啟動字符 while(1) { Host_MP3Play()。define VOL_VALUE 0x0000 //音量控制 0x1111// 音量控制示意: 0x D3 D2 D1 D0 一共32位,用四個八進(jìn)制數(shù)表示// | | | |__// | | |_____右聲道 00xFE ,0為最大// | |________// |___________左聲道 00xFE ,0為最大定義端口:sbit SI =P2^6。 //時鐘sbit DREQ =P2^5 。 //復(fù)位sbit XCS =P2^3 。 //數(shù)據(jù)使能void delay(unsigned int time){ while(time)。 for(i=0。i++) { CLK=0。0x80。 }}向VS1003寫入指令: wr_mad(unsigned char addr,unsigned char hdat,unsigned char ldat )// | | |// 地址 高八位數(shù)據(jù) 低八位數(shù)據(jù){ DREQ=1。 XCS=0。 spi_write(addr)。 spi_write(ldat)。}復(fù)位VS1003: void Mp3Reset(void){ XRESET=0。 XDCS=XCS=XRESET=1。 //模式控制 開啟軟件復(fù)位 VS1003自身SPI模式 delay(10)。 while(!DREQ)。 //時鐘頻率控制 XTALI 增加倍頻數(shù) delay(10)。 //直接改變采樣率 delay(10)。 // 內(nèi)置低音、高音增強(qiáng) // 15:12 高音控制,(8…7 ,為 0 表示關(guān)閉) // 11:8 最低頻限 1000Hz 步進(jìn)(0…15) // 7:4 低音加重,1dB步進(jìn)(0…15 ,為0 表示關(guān)閉) // 3:0 最低頻限 10Hz步進(jìn)(2…15) delay(10)。 // 音量 delay(10)。 //在每個文件播放完后至少寫入4個0 spi_write(0)。 spi_write(0)。 for(i=delay。i ) { for(j=200。j) c+=3。j!=0。 }}UINT8 mCopyCodeStringToIRAM(UINT8 idata *iDestination, UINT8 code *iSource ){ UINT8 i=0。 iSource++。 } return(i)。 /* 操作成功 */ printf(Error: %02X\n,(UINT16)iError)。 UINT16 EnumCount。 i=CH375LibInit()。 //如果操作失敗,將會因此而卡死 //出錯處理 while(1) { printf(請插入U盤\n)。 mDelaymS(100)。 //在屏幕第二行左顯示 LCD12864_W_Word( 請插入 U盤...)。 if(CH375DiskConnect()==ERR_SUCCESS) break。 goto next1。i5。 printf(Ready ?\n)。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1