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

正文內(nèi)容

基于51單片機(jī)的音樂播放器的軟硬件設(shè)計(jì)畢業(yè)論文-wenkub.com

2025-06-16 13:13 本頁(yè)面
   

【正文】 //寫指令或數(shù)據(jù)(1,數(shù)據(jù)) }}/********************************************************函數(shù)名稱:LCD12864_Clr() 調(diào)用函數(shù):LCD12864_W_Test(bit i,unsigned char word) *********************************************************/void LCD12864_Clr(){ LCD12864_W_Test(0,0x01)。 if(x==4) //如果滿一屏 { x=0。\039。 //寫入需要顯示字符的低八位數(shù)據(jù)}/*****************************************************函數(shù)名稱:Display_HZ(unsigned char x,unsigned char y,unsigned char *HZ) 功能描述:指定位置顯示一行漢字函數(shù),可自動(dòng)換行調(diào)用函數(shù):Set_Cursor(unsigned char x, unsigned char y); LCD12864_Write_Dat(unsigned char Data)。 //重新設(shè)置顯示的起始地址 } }}/******************************************************函數(shù)名稱:Display_HZ(unsigned char x,unsigned char y,unsigned char *HZ) 功能描述:指定位置顯示漢字函數(shù)調(diào)用函數(shù):Set_Cursor(unsigned char x, unsigned char y); LCD12864_Write_Dat(unsigned char Data)。 //寫入需要顯示字符的顯示碼 i++。 Set_Cursor(x,y)。) { LCD12864_Write_Dat(Alphabet[i])。 參數(shù)說明:x為行號(hào);y為列號(hào) **************************************************/void Display_String(unsigned char x,unsigned char y,unsigned char *Alphabet){ unsigned char i=0。 //寫地址}/***********************************************函數(shù)名稱:Display_Char(unsigned char x,unsigned y,unsigned char Alphabet) 功能描述:顯示字符函數(shù)調(diào)用函數(shù):Set_Cursor(x,y)。 break。 break。y *********************************************/void Set_Cursor(unsigned char x, unsigned char y){ unsigned char i。 //Display Clear delay1(10)。 //Extended Function Set :8BIT設(shè)置,RE=0: basic instruction set, G=0 :graphic display OFF delay1(100)。 //復(fù)位 delay1(1)。 }/****************液晶初始化漢字*************/Void initinal(void) //LCD字庫(kù)初始化程序 { delay1(40)。data1)。 //低四位(先執(zhí)行) RS=0。 //11111ABC,RW(0),RS(1),0 SendByte(0xf0amp。 //移出的位給R/W E = 1。i8。j10。void delay1(uint m) //延時(shí)程序 { uint i,j。sbit R/W=P3^4。 goto restart。 } }printf(List file over \n)。 // 關(guān)閉文件 mStopIfError(i)。 spi_write(0)。 } } for(temp=0。 //調(diào)整序號(hào) goto next。 goto next。 delay(10)。 } while((Key4 == 0)amp。 if(VOL_VALUE=0xfe)VOL_VALUE=0xfe。數(shù)據(jù)請(qǐng)求,在VS1003 的FIFO 在能夠接受數(shù)據(jù)的時(shí)候輸出高電平 spi_write([i])。i!=。 //mStopIfError( i )。 while(TotalCount) { if(TotalCountMAX_BYTE_IO) c=MAX_BYTE_IO。 //在屏幕第三行顯示 LCD12864_W_Word( 畢業(yè)設(shè)計(jì) )。 //在屏幕第一行左顯示 LCD12864_W_Word(歌曲名:)。 mDelaymS(100)。 mStopIfError(i)。 if(i==ERR_FOUND_NAME) { printf(match file %04d: %s\n,(unsigned int)EnumCount, )。 // 搜索文件名,*為通配符,適用于所有文件或者子目錄 [i] = 0xFF。 restart:printf( List file %s\n, /MP3MUSIC/*)。 }if DISK_BASE_BUF_LEN //外部RAM 的磁盤數(shù)據(jù)緩沖區(qū),緩沖區(qū)長(zhǎng)度為一個(gè)扇區(qū)的長(zhǎng)度if(DISK_BASE_BUF_LENCH375vSectorSize) //扇區(qū)長(zhǎng)度 { printf(Too large sector size\n)。i5。 if(CH375DiskConnect()==ERR_SUCCESS) break。 mDelaymS(100)。 i=CH375LibInit()。 /* 操作成功 */ printf(Error: %02X\n,(UINT16)iError)。 iSource++。j!=0。i ) { for(j=200。 spi_write(0)。 // 音量 delay(10)。 //直接改變采樣率 delay(10)。 while(!DREQ)。 XDCS=XCS=XRESET=1。 spi_write(ldat)。 XCS=0。0x80。 for(i=0。 //復(fù)位sbit XCS =P2^3 。define VOL_VALUE 0x0000 //音量控制 0x1111// 音量控制示意: 0x D3 D2 D1 D0 一共32位,用四個(gè)八進(jìn)制數(shù)表示// | | | |__// | | |_____右聲道 00xFE ,0為最大// | |________// |___________左聲道 00xFE ,0為最大定義端口:sbit SI =P2^6。 //初始化串口 initinal()。 (并行的讀寫選擇信號(hào);串行的數(shù)據(jù)口)LCD12864_EN(6)P33。存在的問題:由于時(shí)間和自身知識(shí)掌握能力的關(guān)系,此次設(shè)計(jì)雖然達(dá)到了設(shè)計(jì)的基本要求,由于硬件條件和工具有限,本次設(shè)計(jì)在功能上還不是很齊全。在Keil和Protel軟件的基礎(chǔ)上,完成了畢業(yè)設(shè)計(jì)的任務(wù),實(shí)現(xiàn)了運(yùn)用C語言進(jìn)行編程,在LCD顯示屏上顯示播放歌曲的名字,并通過按鍵對(duì)歌曲的音量和切換進(jìn)行控制的功能,這次畢業(yè)設(shè)計(jì)主要完成了以下幾個(gè)方面的內(nèi)容:(1)熟悉了單片機(jī)STC12C5A60S解碼芯片VS100LCD128*64液晶顯示器的工作原理和使用方法。圖14 屏幕顯示調(diào)試前圖15 屏幕顯示調(diào)試后(3)搭建資源I/O端口分配簡(jiǎn)化最初LCD12864使用的是并行通信,線路復(fù)雜,占用I/O資源太多,I/O端口不夠使用,按鍵問題在并行通信時(shí)只剩下一個(gè)按鍵,只能實(shí)現(xiàn)下一曲功能,不能完成預(yù)定目標(biāo)。 l 當(dāng)目標(biāo)代碼發(fā)生變化后自動(dòng)調(diào)入文件,并立刻發(fā)送下載命令。 圖13 驅(qū)動(dòng)安裝調(diào)試2)程序下載調(diào)試按照PL2303驅(qū)動(dòng)手冊(cè)下載程序不能成功,認(rèn)為是最小系統(tǒng)模塊燒了,進(jìn)入串口數(shù)據(jù)測(cè)試沒有發(fā)現(xiàn)問題,重新連線搭建系統(tǒng),將STCISP單片機(jī)下載編程燒錄軟件下載按鈕下面的兩個(gè)方框打上對(duì)號(hào),終于把程序下載進(jìn)了單片機(jī)。圖12 系統(tǒng)流程圖4 系統(tǒng)調(diào)試結(jié)果及分析(1)USB轉(zhuǎn)TTL出現(xiàn)的問題:1)驅(qū)動(dòng)安裝調(diào)試因?yàn)閃indows 7系統(tǒng)出現(xiàn)系統(tǒng)不兼容軟件,本設(shè)計(jì)調(diào)試的系統(tǒng)是64位,所以驅(qū)動(dòng)很難找到,大部分驅(qū)動(dòng)支持Windows XP系統(tǒng),所以出現(xiàn)驅(qū)動(dòng)安裝不成功或者安裝出現(xiàn)錯(cuò)誤的提示或者在設(shè)備管理器出現(xiàn)黃色的嘆號(hào),都表明驅(qū)動(dòng)沒安裝成功。音樂播放的同時(shí),顯示屏顯示歌曲名,單片機(jī)調(diào)用字節(jié)模式讀取U盤數(shù)據(jù)進(jìn)行音樂播放。DREQ為高表明VS1003可以接受新的數(shù)據(jù),如果不考慮DREQ的狀態(tài),直接連續(xù)的給VS1003發(fā)的MP3數(shù)據(jù)的話將會(huì)出現(xiàn)音樂斷斷續(xù)續(xù)的情況。數(shù)據(jù)的寫入方法主要是看DREQ信號(hào),在VS1003的FIFO能夠接受數(shù)據(jù)的時(shí)候輸出高電平。VSl003的所有數(shù)據(jù)和控制命令均通過SPI總線接口實(shí)現(xiàn)。對(duì)于已打開的同一個(gè)文件,不能混用兩種模式的操作子程序。如果頻繁地向U盤寫入零碎的數(shù)據(jù),可能會(huì)縮短U盤中閃存的使用壽命(因?yàn)殚W存只能進(jìn)行有限次擦寫)。INT引腳和MCU的外部中斷輸入引腳相連,當(dāng)有U盤插入時(shí)INT變?yōu)榈碗娖接|發(fā)外部中斷,當(dāng)RD為高電平,且CS,WR和AO都為低電平時(shí),D7~DO上的數(shù)據(jù)被寫入CH375芯片中;當(dāng)RD為高電平,且CS和WR都為低電平,AO為高電平時(shí),D7~DO中的數(shù)據(jù)可作為命令碼寫入CH375芯片中;當(dāng)WR為高電平,且CS,RD和AO都為低電平時(shí),CH375中的數(shù)據(jù)可以通過D7~DO輸出。CH375用于低功耗模式,工作時(shí)需要外部為它提供12MHz的時(shí)鐘信號(hào)。因此,使用該固件庫(kù)可以節(jié)省設(shè)計(jì)者的許多時(shí)間,可使開發(fā)人員把更多的精力花費(fèi)在編程方面,加快了開發(fā)周期,減少了在應(yīng)用開發(fā)中的綜合開銷。但是對(duì)于具體的應(yīng)用存在一些不足之處:首先,操作系統(tǒng)在對(duì)數(shù)據(jù)區(qū)的開銷以及一些變量的存儲(chǔ)方面浪費(fèi)了很多的RAM資源,有限的RAM資源就無法有效的分配。隨著科學(xué)的發(fā)展,嵌入式系統(tǒng)復(fù)雜度的提高和EDA技術(shù)的發(fā)展,各種高級(jí)的EDA工具不斷推出,比如Keil、IAR、ADS等工具,這些工具不僅極大的方便了工程師的開發(fā),同時(shí)也為用C語言這種高級(jí)語言來編寫程序提供了有利的條件。無關(guān)的都補(bǔ)“0”。ST7920是12864的控制器,如果使用多個(gè)ST7920時(shí),CS被配合使用,CS為高電平有效。其中,H表示數(shù)據(jù)從LCD到MCU,L表示數(shù)據(jù)從MCU到LCD。如表3所示。RS,R/W的配合選擇決定控制界面的4種模式如表2所示。本設(shè)計(jì)中CH375工作在USBHOST模式下,將8位并行數(shù)據(jù)線D0~D7與STC12C5A60S2的P0口相連,實(shí)現(xiàn)數(shù)據(jù)與命令的并行傳輸,CH375工作在主機(jī)方式MCU通過RD,WR,片選CS、中斷INT和地址線AO的綜合控制,完成與CH375的通訊,通過USB接口實(shí)現(xiàn)從U盤讀寫數(shù)據(jù)的功能。設(shè)置寄存器“SM_SDINEW為1”使VSl003處于新模式,此時(shí)設(shè)置SM_SDISHARE為0,控制信號(hào)和數(shù)據(jù)信號(hào)的傳送將分別采用XCS和XDCS作為同步信號(hào)。通過調(diào)用各個(gè)子程序來完成系統(tǒng)的功能。 軟件總體分析從整體上看,該系統(tǒng)軟件分為三個(gè)大的部分: (1)VS1003解碼。uVision2集成了C語言編譯器、宏編譯、鏈接/定位、以及HEX文件產(chǎn)生器[1]。Keil提供了包括C編譯器、
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1