基于STM32F單片機(jī)的音樂播放器設(shè)計(jì)_第1頁
基于STM32F單片機(jī)的音樂播放器設(shè)計(jì)_第2頁
基于STM32F單片機(jī)的音樂播放器設(shè)計(jì)_第3頁
基于STM32F單片機(jī)的音樂播放器設(shè)計(jì)_第4頁
基于STM32F單片機(jī)的音樂播放器設(shè)計(jì)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上STM32單片機(jī)課程設(shè)計(jì) 題 目: 基于的大容量音樂播放器設(shè)計(jì) 指導(dǎo)教師: 曹利鋼        所在學(xué)院: 機(jī)械電子工程        專業(yè)班級: 14自動化2班         姓    名: 張志浩         學(xué) 

2、;   號: 7         聯(lián)系電話:        實(shí)踐時間: 2017年5月30日 專心-專注-專業(yè)目錄一 引言 .1二 系統(tǒng)整體概述設(shè)計(jì).1三 硬件設(shè)計(jì)3.1控制器.23.2電源.33.3 PCM1770音頻播放模塊.43.4 SD卡數(shù)據(jù)存儲模塊.43.5 W25Q32數(shù)據(jù)存儲模塊和OLED顯示模塊.43.6按鍵控制.5四 軟件設(shè)計(jì)4.1 軟件.64.2軟件設(shè)計(jì)流程圖.7五 程序設(shè)計(jì).8六 課程小結(jié).12

3、摘要:采用具有內(nèi)核的等芯片進(jìn)行相關(guān)的硬件設(shè)計(jì),使用進(jìn)行固件程序和驅(qū)動程序的開發(fā),設(shè)計(jì)了一種基于的協(xié)議的讀卡器該讀卡器支持符合規(guī)范的接觸式卡。實(shí)驗(yàn)表明,該設(shè)計(jì)可以提高智能卡系統(tǒng)的通信速度和中斷響應(yīng)速度。關(guān)鍵詞:;協(xié)議;1. 引 言 隨著社會的快速發(fā)展,現(xiàn)今社會生活緊張,而欣賞音樂是其中最好的舒緩壓力的方式之一,音樂成了我們生活工作中的一個重要的部分。位次我設(shè)計(jì)了一個基于的大容量音樂播放器。二 系統(tǒng)總體設(shè)計(jì)概述 基于PCM1770芯片播放器三 硬件設(shè)計(jì) 3.1控制器 STM32F105互聯(lián)型系列微處理器使用高性能的ARM Cortex-M3 32位的RISC內(nèi)核。工作最高頻率為72MHZ,內(nèi)置25

4、6K字節(jié)的閃存和64K字節(jié)的SRAM。豐富的I/O端口和聯(lián)接到兩條APB總線的外設(shè)。包含標(biāo)準(zhǔn)的通訊接口(2個IIC接口,3個SPI接口,2個IIS接口,1個USB OTG 全速接口,5個USART接口和2個CAN接口),2個12位的ADC和4個通用的16位定時器。它具有高性能、低功耗、低電壓等特性,同時還具有高集成度和易于開發(fā)的特點(diǎn),使該系列產(chǎn)品成為小型項(xiàng)目和作為完整平臺的理想選擇。STM32的使用需要一個最小系統(tǒng),包括晶振電路,復(fù)位電路。1)晶振電路的設(shè)計(jì):晶振電路用于向處理器提供工作時鐘。本系統(tǒng)使用72MHZ無源晶振作為系統(tǒng)的主振蕩器。晶振的負(fù)載電容應(yīng)當(dāng)按照要求選取, 電容不正確可能導(dǎo)致晶

5、振起振緩慢甚至不起振,這將影響整個系統(tǒng)的穩(wěn)定性。2)復(fù)位電路的設(shè)計(jì):采用簡單的“RC+按鍵”復(fù)位形式,該復(fù)位電路可以實(shí)現(xiàn)上電自動復(fù)位和手動按鍵復(fù)位 。上電自動復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,按鍵復(fù)位是通過復(fù)位端經(jīng)電阻與電源接通而實(shí)現(xiàn)的。 3.2電源 本系統(tǒng)所需要的硬件輸入電源為3.3V, 采用AS1 l173.3穩(wěn)壓芯片來提供,輸入電壓范圍是4.75V-10V,輸出電壓3.3V。在使用過程中用5V電源供電即可。 3.3 PCM1770音頻播放模塊 DAC芯片選擇德州儀器的PCM1770PWR芯片提供音頻播放功能,它是具有耳機(jī)放大器的 24 位低功耗立體聲音頻 DAC(解碼器)??芍С?/p>

6、工業(yè)標(biāo)準(zhǔn)音頻數(shù)據(jù)格式,包括標(biāo)準(zhǔn)模式、I2S飛利浦標(biāo)準(zhǔn)、MSB對齊標(biāo)準(zhǔn)??芍苯域?qū)動耳機(jī),具有軟件控制音量大小,芯片模式和模擬語音合成等功能。PCM1770的I2S共4路信號,I2S_SD 串行數(shù)據(jù)用來接收2路左右聲道時分復(fù)用通道的數(shù)據(jù)、I2S_WS 字選(左右聲道選擇)從模式下作為輸入、I2S_CK 串行位時鐘 從模式下作為輸入、I2S_MCK 主時鐘 PCM1770工作需要的時鐘。PCM1770的SPI共三路信號,SPI2_CS 接口片選、SPI2_SD 數(shù)據(jù)接收、SPI2_CLK 時鐘信號。本系統(tǒng)中處理器通過I2S接口(處理器帶有I2S接口)傳送音頻信號到PCM1770,由它進(jìn)行解碼輸出到音

7、頻座。處理器通過SPI接口訪問PCM1770的寄存器,實(shí)現(xiàn)配置和控制功能。如圖1所示。 3.4 SD卡數(shù)據(jù)存儲模塊SD卡(Secure Digital Memory Card)安全,是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,它被廣泛地于便攜式裝置上使用。SD卡具有大容量、高性能、安全等多種特點(diǎn)的多功能存儲卡 。SD卡支持兩種接口訪問模式,SDIO模式和SPI模式。本系統(tǒng)選擇kingston 8G的SD卡,采用SPI模式通訊。3.5 W25Q32數(shù)據(jù)存儲模塊和OLED顯示模塊 本系統(tǒng)選擇型號為CTPMY的OLED屏以及16Mbit的串行FLASH存儲芯片W25Q32,OLED(Organic

8、Light Emitting Display)有機(jī)發(fā)光二極管顯示面板,是一門相當(dāng)年輕的顯示技術(shù)。它利用有機(jī)半導(dǎo)體材料和發(fā)光材料在電流的驅(qū)動下產(chǎn)生發(fā)光來實(shí)現(xiàn)顯示。與LCD相比有很多優(yōu)點(diǎn),超輕、超薄、高亮度、大視角、像素自身發(fā)光、低功耗、高清晰等等。CTPMY與一般LCD接口相似,包括數(shù)控選擇D/C、讀寫選擇W/R、復(fù)位和8個并行數(shù)據(jù)傳輸位。W25X系列FLASH存儲器可以為用戶提供存儲解決方案,具有PCB板占用空間少,引腳數(shù)量少,功耗低等特點(diǎn)。與不同串行FLSH相比,使用更靈活,性能更出色。它非常適合做代碼下載應(yīng)例如存儲聲音,文本和數(shù)據(jù)。工作電壓在2.7V-3.6V。在這里選擇W25Q32型號,

9、存儲容量為4M,存儲漢字和字母,供OLED顯示屏使用。如圖3所示。3.6按鍵控制本系統(tǒng)中選擇普通三個四角按鍵作為控制輸入端,可以控制播放、暫停、音樂選擇、聲音調(diào)節(jié)等。四 軟件設(shè)計(jì) RealView MDK開發(fā)套件源自德國Keil公司,是ARM公司目前最新推出的針對各種嵌入式處理器的軟件開發(fā)工具, 支持ARM7、ARM9和最新的Cortex-M3核處理器.本次設(shè)計(jì)的軟件平臺是建立在MDK Vision4之上的。系統(tǒng)軟件設(shè)計(jì)包括應(yīng)用層的主程序和驅(qū)動層的PCM1770音頻、W25Q32漢字存取、OLED顯示、SD卡和FatFS文件系統(tǒng)、按鍵模塊。 4.1 軟件1)為了能夠?qū)崟r在OLED屏幕上顯示所播

10、放音樂的名稱,必須將數(shù)字、字母、漢字以及圖形符號所對應(yīng)的的OLED顯示碼(16*8或者16*16點(diǎn)陣)存于W25Q32。這里是按照國標(biāo)GB2312-80中規(guī)定的區(qū)位碼的順序存儲。由于處理器的FLASH為256K,要存儲區(qū)位碼中所有漢字圖形可以分兩次燒錄存儲。在每次使用時根據(jù)機(jī)內(nèi)碼與區(qū)位碼的對應(yīng)規(guī)則調(diào)用。第一步:將區(qū)位碼轉(zhuǎn)換為國標(biāo)碼。兩區(qū)位碼改寫成十六進(jìn)制前兩位是區(qū)碼,后兩位是位碼。將十六進(jìn)制數(shù)加2020H得到的就是國標(biāo)碼。第二步:國標(biāo)碼轉(zhuǎn)換成機(jī)內(nèi)碼。將所得到的國標(biāo)碼加8080H,就可得機(jī)內(nèi)碼。2)FatFS 是一個通用的文件系統(tǒng)模塊,用于在小型中實(shí)現(xiàn)FAT文件系統(tǒng)。 FatFs 的編

11、寫遵循ANSI C,因此不依賴于硬件平臺。它可以嵌入到便宜的微控制器中,如 8051, PIC, AVR, ARM 等等。本系統(tǒng)將通過FatFS 文件系統(tǒng)訪問SD卡文件。 FatFs 模塊為應(yīng)用程序提供了部分函數(shù),在此基礎(chǔ)上再編寫遍歷文件等函數(shù)即可滿足應(yīng)用。3)處理器STM32F105的I2S接口為主模式和16bitMSB 對齊標(biāo)準(zhǔn),PCM1770為從設(shè)備模式和MSB對齊標(biāo)準(zhǔn)。SPI2接口(訪問PCM1770寄存器接口)為主模式和數(shù)據(jù)傳輸從MSB位開始。4.2軟件設(shè)計(jì)流程圖 處理器上電后先配置各模塊的GPIO接口并初始化,通過FatFS文件系統(tǒng)遍歷SD卡中音頻文件

12、并將文件名存儲。從W25Q32中讀取上次停止時正在播放的音樂文件顯示在OLED屏幕,準(zhǔn)備播放。在主程序大循環(huán)中有兩個工作,第一判斷正在讀取的文件是否讀取完成,第二判斷是否有按鍵按下。處理器采用中斷的方式通過I2S接口播放音頻文件。五 程序設(shè)計(jì) 1、初始化的一般流程如下: (1)硬復(fù)位,xReset = 0; (2) 延時,xDCS、xCS、xReset置1; (3)等待DREQ為高; (4)軟件復(fù)位:SPI_MODE = 0x0804;(5)等待DREQ為高(軟件復(fù)位結(jié)束); (6)設(shè)置VS1003的采樣率:SPI_AUDATA = 0xBB81,采樣率,立體聲; (7)設(shè)置重音:SPI_BA

13、SS = 0x0055; (8)設(shè)置音量:SCI_VOL = 0x2020; (9)發(fā)送4個字節(jié)無效數(shù)據(jù),用以啟動SPI發(fā)送;2、 播放MP3的一般流程如下: (1)打開一個指定的MP3文件; (2)發(fā)32個字節(jié)的數(shù)據(jù)到VS1003; (3)檢測DREQ,當(dāng)DREQ為高時發(fā)下一個32字節(jié)的數(shù)據(jù); (4)是否發(fā)完32個字節(jié),否,則回到第3步; (5)是否發(fā)完打開的MP3文件,否,則回到第2步; (6)關(guān)閉打開的MP3的文件;讀寫函數(shù)如下: u16 Vs1003_REG_Read(u8 address);/讀寄存器 void Vs1003_DATA_Write(unsigned char * bu

14、f);/寫數(shù)據(jù) void Vs1003_CMD_Write(u8 address,u16 data);/寫命令 void Vs1003_Init(void); /初始化VS1003 void Mp3Reset(void); /硬復(fù)位 void Vs1003SoftReset(void); /軟復(fù)位 void set1003(void); /設(shè)置VS1003的音量,播放模式等 void VsRamTest(void); /RAM測試 void VsSineTest(void); /正弦測試 u16 GetDecodeTime(void); /得到解碼時間 u16 GetHeadInfo(void

15、); /得到比特率 void ResetDecodeTime(void);/重設(shè)解碼時間 void LoadPatch(void); /加載頻譜分析代碼 void GetSpec(u8 *p); /得到分析數(shù)據(jù)TFT顯示屏驅(qū)動程序 驅(qū)動TFT顯示屏實(shí)際上就是對ILI9320驅(qū)動IC的操作。對ILI9320的初始化操作如下: (1)向ILI9320控制器寫入0x00. (2)如果返回的數(shù)據(jù)為不是0x9320,則驅(qū)動IC不是ILI9320,停止初始化。 (3)如果返回的數(shù)據(jù)為0x9320,則向相應(yīng)的寄存器寫入默認(rèn)的數(shù)據(jù),啟動驅(qū)動IC。 (4)拉低片

16、選信號CS,再寫R22h寄存器,接著寫入要寫的數(shù)據(jù)。 (5)寫結(jié)束后再將CS拉高。 TFT顯示屏的讀寫函數(shù)如下: extern void TFT_Write_Start(void);  /寫開始 extern void TFT_Write_End(void);    /寫結(jié)束 extern void TFT_SetGRAMHVA(u16 x0,u16 y0);  /設(shè)置GRAM的最初地址

17、 extern void TFT_SetGRAMArea(u16 HSA,u16 HEA,u16 VSA,u16 VEA); /設(shè)置一個GRAM顯示區(qū)域 extern void TFT_init(void);  /TFT顯示屏初始化  /extern void TFT_Test_Square(u16 x0,u16 x1,u16 y0,u16 y1,u16 Color);

18、0;extern void TFT_Clear(u16 x0,u16 x1,u16 y0,u16 y1,u16 Color);  /清屏函數(shù) extern void DrawOnePixel(u16 x, u16 y, u16 Color);  /畫點(diǎn)函數(shù) extern void Write_Asc8x16E(u16 x,u16 y,u16 Tex

19、tColor,u16 BackColor,u16 W_Char);/8*16英文字符 extern void Write_Asc12x24E(u16 x,u16 y,u16 TextColor,u16 BackColor,u16 W_Char); extern void Write_Asc12x24E_String(u16 x,u16 y,u16 TextColor,u16 BackColor,u8 *W_Strin

20、g); extern void Write_Asc20x40E(u16 x,u16 y,u16 TextColor,u16 BackColor,u16 W_Char); extern void Write_GB16(u16 x,u16 y,u16 TextColor,u16 BackColor,u8 *W_Char);/16*16中文字符 extern void Write_GB_16_And_Asc8x1

21、6E(u16 x,u16 y,u16 TextColor,u16 BackColor,u8 *W_String);extern void Write_GB_24_And_Asc12x24E(u16 x,u16 y,u16 TextColor,u16 BackColor,u8 *W_String); extern void Display_Picture(u16 x,u16 y,u16 Width,u16 H

22、eight ,u16 *Picture); /顯示圖片SD卡驅(qū)動程序 1、驅(qū)動模選擇 SD卡上電時,如果CS接地,SD將進(jìn)入SPI模式,CS接高電平,將進(jìn)入SD BUS模式。在SD BUS模式時,發(fā)送CMDO SD卡不會回應(yīng),在SPI模式時,發(fā)送CMD0,SD卡能回應(yīng)R1信息。 2、初始化SD卡 進(jìn)入SD BUS模式后,發(fā)送CMDO復(fù)位SD卡。由于處于SD BUS模式,SD卡此時不會回復(fù)信息。發(fā)送命令的時候需要注意SD卡命令狀態(tài),不同的狀態(tài)只能響應(yīng)待定的命令,下面為初始化命令

23、發(fā)送流程: (1) CMDO 復(fù)位卡。 (2)CDM55 用戶命令。 (3)CMD41 SD卡工作電壓設(shè)置命令。 (4)CMD2 從默認(rèn)地址獲取SD卡ID。 (5)CMD3獲取一個新地址。 (6)CMD9從新地址讀取SD卡ID。 (7)CMD7選擇新地址的SD卡為有效卡。 (8)CMD55 用戶命令。 (9)CMD6設(shè)置數(shù)據(jù)位寬。 (10)CMD16設(shè)置BLOCK長度。 (11)CMD13讀取當(dāng)前SD卡狀態(tài)。 (12

24、)初始化完成。 3、發(fā)送SD卡支持的操作命令 不同的SD卡所支持的命令稍有不同,但基本命令都是支持的。詳細(xì)支持哪類命令要從SD卡的ID中獲得。這一步主要為讀,寫,擦這三個功能。讀CMD17,寫CMD24,擦CMD38。 4、退出SD卡操作 如果總線上掛有多個SD卡,就需要用CMD7命令退出當(dāng)前SD卡,從面選擇其他的SD卡操作。CMD7命令為選擇卡或取消卡,在初始化的時候發(fā)送CMD7命令,SD卡將進(jìn)入數(shù)據(jù)發(fā)送模式,在數(shù)據(jù)模式里發(fā)送CMD7則退出當(dāng)前卡的操作。需要注意的是,在數(shù)據(jù)模式里不同的狀態(tài)只支持特定命令。 SD卡讀寫函數(shù)如下: u8

25、 SPI_ReadWriteByte(u8 TxData);                /SPI總線讀寫一個字節(jié) u8 SD_WaitReady(void);                    

26、;      /等待SD卡就緒 u8 SD_SendCommand(u8 cmd, u32 arg, u8 crc);     /SD卡發(fā)送一個命令 u8 SD_SendCommand_NoDeassert(u8 cmd, u32 arg, u8 crc); u8 SD_Init(void);   

27、                            /SD卡初始化 u8 SD_ReceiveData(u8 *data, u16 len, u8 release);/SD卡讀數(shù)據(jù) u8 SD_GetCID(u8 *

28、cid_data);                     /讀SD卡CID u8 SD_GetCSD(u8 *csd_data);                     /讀SD卡CSD u32 SD_GetCapacity(void);                       /取SD卡容量 u8 SD_ReadSingleBlock(u32

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論