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

正文內(nèi)容

基于stc12c5a60s2單片機mp3播放器的設(shè)計與實現(xiàn)-資料下載頁

2025-11-01 03:27本頁面

【導(dǎo)讀】基于STC12C5A60S2單片機MP3播。放器的設(shè)計與實現(xiàn)。本科畢業(yè)設(shè)計(論文)。燕山大學(xué)畢業(yè)設(shè)計(論文)任務(wù)書。理論研究型();計算機軟件型();綜合型()。題目來源科研課題()生產(chǎn)實際()自選題目()。周次第~周第~周第~周第~周第~周。隨著高端電子產(chǎn)品的快速發(fā)展,具有音頻播放功能的電子產(chǎn)品在各種場。合的需求也日益增多,MP3播放器是電子產(chǎn)品發(fā)展中的一款重要產(chǎn)品,本。首先本次設(shè)計處理器采用STC12C5A60S2作為控制MCU,采用基于。SPI協(xié)議的音頻解碼芯片VS1003實現(xiàn)音頻解碼功能,數(shù)據(jù)存儲介質(zhì)采用SD. 卡來實現(xiàn)音頻播放功能,在軟件設(shè)計上使用FAT32文件系統(tǒng)對文件進行管。中讀出將要播放的音頻數(shù)據(jù),再通過SPI接口將音頻數(shù)據(jù)傳送至音頻解碼芯

  

【正文】 右聲道。 設(shè)置值為最大值是的衰減倍數(shù),步進值為 ,范圍為 0到 255 最大值是的 設(shè)置值為 0x0000,而靜音為 0xffff。例如,左聲道: ,右聲道:, 則 SCI_VOL=(4X256)+7=0x0407。硬件復(fù)位將使 SCI_VOL 清零 (最大音量 ), 而軟件復(fù)位將不改變音量設(shè)置值。 (設(shè)置靜音 (SCI_COL=0XFFFF)將關(guān)閉模 擬部分的供電 ) (12) SCI_AICTRL[X](地址: 0XC~0XF,可讀寫 ) 用于訪問用戶應(yīng)用程序。 數(shù)據(jù)通信 單片機 STC12C5A60S2是 通過 SPI總線方式 與解碼芯片 VS1003進行數(shù)據(jù)通信 的。 VS1003 通過穿行命令接口 SCI 和串行數(shù)據(jù)接口 SDI 來接收核心控制器 STC12C5A60S2 的控制命令和 MP3 的數(shù)據(jù):通過 XCS、 XDCS 引腳的高低位設(shè)置來確認哪一個接口處于傳送狀態(tài)。 VS1003 通過 SCI 口寫入特定寄存器來實現(xiàn)控制功能。 在音頻解碼系統(tǒng)中,要以 VS1003 為從機數(shù)據(jù)應(yīng)答模塊得到順暢的模擬音頻流, 必須依據(jù) VS1003 關(guān)于 SPI 協(xié)議下其自身特定的 SPI 工作原理對STC12C5A60S2 進行編程控制才能實現(xiàn)。 VS1003 特定的 SPI 協(xié)議可分為兩類:SCI 傳輸和 SDI 傳輸, SCI 傳輸是指 VS1003 為實現(xiàn)基于 SPI 協(xié)議的數(shù)據(jù)傳輸而 率先進行的命令傳輸。該命令傳輸也是基于 SPI 協(xié)議,但具體協(xié)議內(nèi)容因命令的不同而不同。 STC12C5A60S2 必須完全依據(jù) SCI 命令的協(xié)議格式去編寫代碼才有可能實現(xiàn)初步的 SPI 通信。由于 SPI 協(xié)議本身是全雙工的同步通信方式,因此對于 SCI 傳輸過程, VS1003 定義了讀、寫 2套命令操作機制。寫命令操作相對于讀命令操作更為重要,主要用于告知從機關(guān)與數(shù)據(jù)通信的具體類別,二度命令操作只在某些調(diào)試中用于監(jiān)視通信是否正常。數(shù)據(jù)應(yīng)答是衡量 SPI數(shù)據(jù)是否被從機正確接收和從機是否準備接收 下一批 SPI數(shù)據(jù) 的重要標識信號。在硬件上該控制位是獨立的,是 VS1003 獨有的數(shù)據(jù)請求返回管腳。畢竟無論是 SCI 傳輸還是 SDI 傳輸, VS1003 在整個系統(tǒng)的 SPI 傳輸中都是完全被動的接收數(shù)據(jù)的, VS1003 還承擔著實時處理音頻數(shù)據(jù)的責任,如果 VS1003 的處理時序與主機的傳輸時序發(fā)生了沖突,那么 VS1003被動接收的數(shù)據(jù)將變得無效,進而使整個系統(tǒng)的數(shù)據(jù)傳輸失效;如果 VS1003在被動接收數(shù)據(jù)的前提下能夠根據(jù)自身的數(shù)據(jù)處理時序發(fā)出數(shù)據(jù)請求標識,表明在某一段時間數(shù)據(jù)傳輸可以進行 ,在另一短時間內(nèi)數(shù)據(jù)傳輸需要稍微暫停一下,那么整個 SPI 數(shù)據(jù)傳輸就會與音頻信號處理時序協(xié)調(diào)起來,實現(xiàn)流暢的音頻數(shù)據(jù)傳輸和處理。因此數(shù)據(jù)應(yīng)答是一個非常重要的標識邏輯,完全由 VS1003 自動產(chǎn)生。對于主機則必須時刻依據(jù)數(shù)據(jù)應(yīng)答調(diào)整 SPI 傳輸時許。 VS1003 的 SCI 傳輸協(xié)議通常包含一個 8bit 的指令字節(jié)、一個 8bit 的 23 地址字節(jié)和一個 16bit 的數(shù)據(jù)字節(jié)。具體操作要指令字節(jié)操作。每次 SCI傳輸后數(shù)據(jù)請求返回管腳都會被設(shè)置為低, VS1003 是不允許在數(shù)據(jù)請求返回管腳變?yōu)楦咧伴_始新的 SCI 或 SDI 傳輸?shù)摹? SDI 傳輸是指 VS1003 基于 SPI 協(xié)議的數(shù)據(jù)傳輸,完全是音頻流數(shù)據(jù),VS1003 在接受 SDI 數(shù)據(jù)的同時完成片內(nèi)的音頻解碼數(shù)據(jù)處理任務(wù),以 2B為單位進行 SDI 數(shù)據(jù)的傳輸和處理,每傳輸完 2B的二進制音頻數(shù)據(jù), VS1003就在數(shù)據(jù)請求返回管腳上設(shè)置一個低電平。該管腳在再次變?yōu)楦唠娖街?,主機不能連續(xù)向從機發(fā)送 SDI 數(shù)據(jù),否則數(shù)據(jù)將會被自動舍棄無效。 模塊設(shè)計及其與單片機的鏈接 通過上述幾節(jié)對 VS1003 的介紹,能初步對 VS1003 進行硬件設(shè)計,VS1003 的工作電壓為 、 ,為了模塊的小型化,本設(shè)計采用穩(wěn)壓芯片將單片機工作電壓( 5V)降到 、 提供給 VS1003 的 I/O 電源與模擬電源、處理器工作電壓。要使 VS1003 工作必須在 17.、 18 引腳接晶振電路 ; 3 腳接上電復(fù)位電路; 8 腳連接控制器; 10/33/34 沒有用到下拉電阻, 13 腳需要連接控制器; 30 腳上拉 10k 電阻 32 腳測試用接 IOVDD; 39腳接到耳機的右聲道輸出 ; 42 腳用于耳機接地; 46 接到耳機左聲道輸出,具體連接見下圖: 存儲模塊 SD 存儲卡 可以設(shè)計出便宜的播放器和驅(qū)動器而沒有可移動的部分。 使用非常有效的數(shù)據(jù)壓縮比如 MPEG, SD存儲卡可以提供足夠的容量來應(yīng)付多媒體數(shù)據(jù)。 SD 存儲卡硬件結(jié)構(gòu)與接口模式 SD 卡 有 9 個引腳,引腳的排序和卡內(nèi)部結(jié)構(gòu)如下圖所示 : 25 引腳的功能與模式見下表,它的內(nèi)部結(jié)構(gòu)包括接口驅(qū)動器、時鐘、寄存器組、卡接口控制器。 SD 卡上的所有單元有內(nèi)部時鐘發(fā)生器提供時鐘。 SD 命令 卡的命令格式 : SD 卡的指令由 6 字節(jié)組成,如下: Byte1:01xxxxxx(命 令號,有指令標志定義,如 CMD39 為 100111 即 16 進制 0x27,那么完整的CMD39 第一字節(jié)為 01100111,即 0行 27+0x40) Byte25: Command Arguments,命令參數(shù),有些命令沒有參數(shù)。 Byte6:前 7 位為 CRC 校驗位,最后一位為停止位 0. 存儲卡的命令 SD存儲卡的命令共分為 12類,分別為 class0 到 class11,不同的 SD 存儲卡主控根據(jù)其功能,支持不同的命令集如下: Class0:卡的識別、初始化等基本命令集 CMD0:復(fù)位 SD 卡。 CMD1:讀 OCR 寄存器。 CMD9:讀 CSD 寄存器。 CMD10:讀 CID 寄存器。 CMD12 停止讀多塊時的數(shù)據(jù)傳輸。 CMD13:讀 CardStatus 寄存器。 Class2:讀卡命令集 CMD16:設(shè)置塊的長度。 CMD17:讀單塊。 CMD18:讀多塊,直至主機發(fā)送 CMD12 為止。 Class4:寫卡命令集 CMD24:寫單塊。 CMD25:寫多塊。 CMD27:寫 CSD 寄存器。 Class5:擦除卡命令集 CMD28:設(shè)置寫保護塊的地址。 CMD29:擦除寫保護塊的地址。 CMD30:對地址寫保護位。 Class7:卡的鎖定,解鎖功能命令集。 Class8:申請?zhí)囟罴? Class1011:保留。 27 其中 Class1, Class3, Class,9:不支持 SPI 模式。 SD 存儲卡數(shù)據(jù)操作 第 4 章 系統(tǒng)軟件設(shè)計 FAT32 文件系統(tǒng)簡介 文件系統(tǒng)在操作系統(tǒng)中 體現(xiàn)文件命名、存儲和組織的整體結(jié)構(gòu),由文件、目錄和對這些項目定位及存取所需的信息組成。 Windows 95 OSR2 和 Windows 98開始支持 FAT 文件系統(tǒng) ,由于文件系統(tǒng)的核心文件分配表 FAT 由 16 擴充為 32 位,所以被稱為 FAT32 文件系統(tǒng)。 FAT 文件系統(tǒng)部分簡介如下: (一) FAT32 文件系統(tǒng)將邏輯盤的空 間劃分為三部分,依次是引導(dǎo)區(qū)、文件分配表區(qū)、數(shù)據(jù)區(qū)。 (二)引導(dǎo)區(qū)從第一扇區(qū)開始,使用了三個扇區(qū),保存了該邏輯盤每扇區(qū)字節(jié)數(shù),每簇對應(yīng)的扇區(qū)數(shù)等等重要參數(shù)和引導(dǎo)記錄。之后還留有若干保留扇區(qū)。 (三 ) 文件分配表區(qū)共保存了兩個相同的文件分配表,因為文件所占用的存儲空間及空閑空間的管理都是通過 FAT 實現(xiàn)的, FAT 如此重要,保存兩個以便第一個損壞時,還有第二個可用。 文件系統(tǒng)對數(shù)據(jù)區(qū)的存儲空間是按簇進行劃分和管理的,簇是空間分配和回收的基本單位,即一個文件總是占用若干個整簇,文件所使用的最后一簇所剩余空間不被使用。 (四 ) FAT 系統(tǒng)一簇對應(yīng) 8個邏輯相鄰的扇區(qū),理論上,這種用法所能管理的邏輯盤容量上限為 16TB,容量大于 16TB 時,可以用一簇對應(yīng) 16個扇區(qū),以此類推。 FAT32 文件系統(tǒng)在單片機上的軟件設(shè)計 FAT32文件系統(tǒng) 您一定不會陌生,最多看到是它在 Windows操作系統(tǒng)里,在一些嵌入式產(chǎn)品中也能看到它的身影。從某種意義上來說, FAT32 文件系統(tǒng)是很成功的,使用戶脫離底層存儲設(shè)備驅(qū)動,更為方便高效的組織數(shù)據(jù)。給單片機系統(tǒng)中的大容量存儲器配以 FAT32 文件系統(tǒng),將是非常有意義的。下面通過程序來了解 FAT32 文 件系統(tǒng)機制在單片機上的實現(xiàn)原理。 主引導(dǎo)扇區(qū)的數(shù)據(jù)結(jié)構(gòu) 雖然本次設(shè)計所使用的的 SD 存儲 卡 只有一個分區(qū), 但是在文件系統(tǒng)初始化的開始我們必須通過 MBR 獲得分區(qū)表項的數(shù)據(jù),以獲得 CHS、 LBA 參數(shù)以及分區(qū)大小扇區(qū)數(shù),否則就無法知道 SD 卡中的文件系統(tǒng)的起始物理扇區(qū) 29 號。 在單片機定義程序如下 : struct PartRecord { UINT8 Active。 //0x80 表示此分區(qū)有效 UINT8 StartHead。 //分區(qū)的開始磁頭 UINT8 StartCylSect[2]。//開始柱面與扇區(qū) UINT8 PartType。 //分區(qū)類型 UINT8 EndHead。 //分區(qū)的結(jié)束頭 UINT8 EndCylSect[2]。 //結(jié)束柱面與扇區(qū) UINT8 StartLBA[4]。 //分區(qū)的第一個扇區(qū) UINT8 Size[4]。 //分區(qū)的大小 }。 //MBR:分區(qū)扇區(qū)(絕對 0 扇區(qū))定義如下 struct PartSector { UINT8 PartCode[446]。 //MBR 的引導(dǎo)程序 struct PartRecord Part[4]。 //4 個分區(qū)記錄 UINT8 BootSectSig0。 //55 UINT8 BootSectSig1。 //AA }。 分區(qū)引導(dǎo)扇區(qū)的數(shù)據(jù)結(jié)構(gòu) 引導(dǎo)扇區(qū) 是 FAT32 文件系統(tǒng)的第一個扇區(qū),也稱為 DBR 扇區(qū),它包含這樣一些文件系統(tǒng)的基本信息: 【 1】 每扇區(qū)字節(jié)數(shù) 【 2】 每簇扇區(qū)數(shù) 【 3】 保留扇區(qū)數(shù) 【 4】 FAT 表個數(shù) 【 5】 文件系統(tǒng)大?。ㄉ葏^(qū)數(shù)) 【 6】 每個 FAT 表大小(扇區(qū)數(shù)) 【 7】 根目錄起始簇號 【 8】 其他一些附加信息 在單 片機定義程序如下: //znFAT 中對 BPB 的定義如下 一共占用 90 個字節(jié) struct znFAT_BPB { UINT8 BS_jmpBoot[3]。 //跳轉(zhuǎn)指令 offset: 0 UINT8 BS_OEMName[8]。 // offset: 3 UINT8 BPB_BytesPerSec[2]。//每扇區(qū)字節(jié)數(shù) offset:11 UINT8 BPB_SecPerClus[1]。 //每簇扇區(qū)數(shù) offset:13 UINT8 BPB_RsvdSecCnt[2]。 //保留扇區(qū)數(shù)目 offset:14 UINT8 BPB_NumFATs[1]。 //此卷中 FAT 表數(shù) offset:16 UINT8 BPB_RootEntCnt[2]。 //znFAT 為 0 offset:17 UINT8 BPB_TotSec16[2]。 //znFAT 為 0 offset:19 UINT8 BPB_Media[1]。 //存儲介質(zhì) offset:21 UINT8 BPB_FATSz16[2]。 //znFAT 為 0 offset:22 UINT8 BPB_SecPerTrk[2]。 //磁道扇區(qū)數(shù) offset:24 UINT8 BPB_NumHeads[2]。 //磁頭數(shù) offset:26 UINT8 BPB_HiddSec[4]。 //FAT 區(qū)前隱扇區(qū)數(shù) offset:28 UINT8 BPB_TotSec32[4]。 //該卷總扇區(qū)數(shù) offset:32 UINT8 BPB_FATSz32[4]。 //一個 FAT 表扇區(qū)數(shù) offset:36 UINT8 BPB_ExtFlags[2]。 //znFAT 特有 offset:40
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1