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

正文內(nèi)容

基于stm32音樂mp3鬧鐘的設(shè)計與實現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-24 18:46 本頁面
 

【文章內(nèi)容簡介】 還要將對應(yīng)GPIO引腳設(shè)置為第二功能模式。在嵌入式中串口一般都是用于調(diào)試,因為其傳送數(shù)據(jù)相對來說很慢,也不能進(jìn)行大量數(shù)據(jù)傳輸。一般用DMA。圖28 串口調(diào)試電路圖第三章 系統(tǒng)軟件設(shè)計 本設(shè)計所用軟件為Keil uVsion4, Source , 串口調(diào)試助手。Keil uVsion4是美國Keil Software公司推出的兼容C語言軟件開發(fā)系統(tǒng),對比于傳統(tǒng)的匯編,C語言在結(jié)構(gòu)上,可維護(hù)性上,結(jié)構(gòu)和功能上都具有明顯的優(yōu)勢。Keil主要包含實時操作系統(tǒng)的核心(這也是嵌入式開發(fā)工程師選擇此軟件的重要原因)、C編譯器、庫管理器、宏匯編程序、連接器和調(diào)試器、固件。Keil uVsion4 相對于前面幾個版本,提供一個高效,整潔的環(huán)境來開發(fā)應(yīng)用程序。同時能夠支持更多的ARM芯片。Source 實質(zhì)上是一個支持多種開發(fā)語言(java,c,c++等等)的編輯器。具有強(qiáng)大的查找、定位、彩色顯示等功能。是一個面向項目的源碼查看器,和編輯器。它能動態(tài)的分析你的代碼并自動維護(hù)它的符號信息數(shù)據(jù)庫,然后把有用的上下文相關(guān)的信息提示給你。串口調(diào)試助手是串口調(diào)試的相關(guān)工具,支持幾種常用波特率,如4800,9600,19200等,能設(shè)置數(shù)據(jù)位和停止位,校驗,還能自動識別串口,能以十六進(jìn)制或ASCII發(fā)送或接收任何數(shù)據(jù)或字符,發(fā)送的文件大小不限制,發(fā)送周期也可以自己設(shè)置。 文件系統(tǒng)FAT所謂文件系統(tǒng)就是負(fù)責(zé)管理和存儲文件信息的軟件機(jī)構(gòu)稱為文件管理系統(tǒng)。FAT文件系統(tǒng)(文件配置表 File Allocation Table)是由微軟開發(fā)的。目前有三種文件系統(tǒng):FAT12FAT1FAT32。在實際磁盤上FAT結(jié)構(gòu)每一表項的大小,也就是所占的位數(shù)。FAT文件分配表每一項為12位,F(xiàn)AT16為16位,F(xiàn)AT32為32位。FatFs介紹 :當(dāng)今社會大點信息量越來越大,文件系統(tǒng)成為今后單片機(jī)的一個方展方向。由于微軟Windows的廣泛應(yīng)用,F(xiàn)AT文件系統(tǒng)最為常用。FatFs是小型嵌入式系統(tǒng)中,實現(xiàn)FAT文件系統(tǒng)的一個通用的文件系統(tǒng)模塊。且完全獨立與I/O層。FatFs為單片機(jī)的使用而設(shè)計,具有很好的層次結(jié)果。從上到下依次為應(yīng)用層,我們不需要了解其協(xié)議和內(nèi)部結(jié)構(gòu),調(diào)用基本點接口函數(shù)就行,非常簡單。中間層FatFs,實現(xiàn)FAT文件讀寫協(xié)議,一般不用修改,包含頭文件就行。需要編寫移植代碼的是FatFs提供的底層接口。圖 31 FATFS文件系統(tǒng)圖 SPI驅(qū)動時鐘信號的相位和極性SPI_CR寄存器的時鐘極性(CPOL)和時鐘相位(CPHA),可以組合成四種可能的時序關(guān)系。CPOL位對主模式和從模式下的設(shè)備都有用,沒有數(shù)據(jù)傳輸時時鐘的空閑狀態(tài)電平由CPOL位控制。當(dāng)CPOL位置一,SCK引腳保持高電平在空閑狀態(tài)下,當(dāng)CPOL位清零,則SCK引腳則保持低電平。數(shù)據(jù)在第一個時鐘邊沿被鎖存。若CPHA位為零,SCK時鐘的第一邊沿(CPOL位為一就是上升沿,為零時就是下降沿)進(jìn)行數(shù)據(jù)位采樣。若CPHA位為一,SCK時鐘的第二邊沿(CPOL位為一就是上升沿,為零時就是下降沿)。CPOL和CPHA的組合選擇數(shù)據(jù)捕捉的時鐘邊沿。注意:主模式和從模式必須配置成相同的時序模式。 在必須將SPI禁止,必須清除SPE位,在改變CPOL/CPHA位之前。 數(shù)據(jù)幀格式?jīng)Q定發(fā)送或接受的數(shù)據(jù)長度,由SPI_CR1寄存器的DFF位選擇。 SCK的空閑狀態(tài)必須和SPI_CR1寄存器指定的極性一致(CPOL為零時,空閑時應(yīng)下拉SCK為低電平,為一時,SCK為高電平)。 SD卡的軟件設(shè)計SD卡的寄存器,主要用于存儲SD卡自身的一些信息。向SD卡發(fā)送相應(yīng)的命令就可以讀取SD卡的寄存器。SD卡指令,具有一定的格式在其發(fā)送的時候。有6字節(jié)組成。驅(qū)動設(shè)計 : 因為此設(shè)計中采用的是SD卡的SPI總線,所以SD卡的驅(qū)動是基于SPI的驅(qū)動是基礎(chǔ)上的。SPI最重要的函數(shù) : 寫函數(shù) void Spi_Write(uint8 chr) 和讀函數(shù) char Spi_Read()。下面是SD卡驅(qū)動最重要的幾個函數(shù)的實現(xiàn):1. 復(fù)位函數(shù):功能描述:復(fù)位SD卡,用到SD卡,用到CMD0,使用SD卡切到SPI模式。成功則返回0x00,失敗則返回INIT_CMD0_ERROR uint8 SD_Reset(),此函數(shù)是SD卡最開始調(diào)用的函數(shù),通過發(fā)送CMD0將SD卡轉(zhuǎn)到正確的工作模式下。2. 初始化函數(shù):功能描述:初始化SD卡,使用CMD1,成功則返回0x00,失敗則返回0x01Char SD_Init(),此函數(shù)在SD卡執(zhí)行完復(fù)位函數(shù)后開始執(zhí)行。目的就是向SD卡發(fā)送CMD1,然后檢測SD卡是否進(jìn)入工作狀態(tài)。3. 寫扇區(qū)函數(shù):功能描述:將buffer指向的512個字節(jié)的數(shù)據(jù)寫入到SD卡的addr扇區(qū)中,addr參數(shù)指扇區(qū)地址,buffer指向數(shù)據(jù)緩沖區(qū)的指針,成功則返回0x00,失敗返回0x01.4. 讀扇區(qū)函數(shù):功能描述:讀取addr扇區(qū)的512個字節(jié)到buffer指向數(shù)據(jù)緩沖區(qū)。addr參數(shù)指扇區(qū)地址,buffer指向數(shù)據(jù)緩沖區(qū)的指針,成功則返回0x00,失敗返回0x01. MP3軟解碼 方案選擇方案一: 此方案采用軟解MP3,直接用軟件解碼。節(jié)約了硬件成本,但代碼復(fù)雜,編程難度較高,工作量極大,而且對控制器的處理速度和資源要求都比較高。 方案二:此方案采用硬解MP3,直接用音頻解碼芯片解碼。它使用高性能的VS1003 MP3解碼芯片,功能強(qiáng)大而且價格便宜,VS1003支持MPWAV、WMA、MIDI等諸多音頻格式,音質(zhì)可與市場上中檔MP3播放器相媲美。由于PCM1770芯片僅僅只是進(jìn)行D/A轉(zhuǎn)換,并不支持硬件解碼,且為了挑戰(zhàn)自己加強(qiáng)對MP3文件格式的理解,所以選擇了方案一作為本次設(shè)計的MP3解碼方案。 Helix MP3 解碼器 Helix MP3 解碼器可浮點和定點實現(xiàn)。將該算法移植到PIC32MX 單片機(jī)時可考慮定點實現(xiàn)。該算法可運(yùn)行在任意 32 位定點處理器上,并完全使用 C 語言編碼,可選擇用優(yōu)化的匯編指令替換某些代碼段。Helix MP3 解碼器提供對 MPEG1 、 MPEG2 和 3 層 ( Layer 3)支持。它支持可變位速率、恒定位速率,以及立體聲和單聲道音頻格式。有關(guān)實現(xiàn)和特性的詳細(xì)信息,訪問 Helix MP3 解碼器網(wǎng)站:。 時 鐘 實現(xiàn)的基本功能 1. 閏年的判斷。如果年份不能被四整除就是平年。不能同時被四和一百整除,則是閏年。既能被四整除,也能被一百整除,還能被四百整除的也是閏年,否則是平年。2. 判斷日期是否合法,年月日時分秒小于零不合法,月日時分秒都不能超過最大值,合法之后在判斷是否是閏年,若為閏年,則判斷二月是否滿足要求。3. 對時間進(jìn)行設(shè)置,可以很據(jù)自己的需求調(diào)節(jié)時間,鬧鐘的話就需要設(shè)置不同的時間,時間到了,就播放處一段音樂。下面是閏年算法的部分代碼:/*閏年算法*/ if( (year_number % 4 == 0) amp。amp。( year_number % 100 != 0) || (year_number % 400 == 0) ) { if((month_number == 1) || (month_number == 3) || (month_number == 5) || (month_number == 7) || (month_number == 8) || (month_number == 10) || (month_number == 12) ) { if( month_number == 12) { if( day_number 31 ) { month_number = 1。 //月份加一 day_num
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1