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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)的電子相冊(cè)設(shè)計(jì)-閱讀頁

2024-12-23 18:51本頁面
  

【正文】 的電子相冊(cè) 的軟件設(shè)計(jì) 軟件模塊主要由讀寫 SD 卡子程序 , 液晶控制子程序 , FAT32 結(jié)構(gòu)分析子程序 ,文件類型分析處理子程序, 主 程序等模塊組成,以下是各個(gè)子程序的技術(shù)要點(diǎn)、詳細(xì)介紹以及軟件流程圖。其中 SD 方式采用 6 線制,使用 CLK、 CMD、 DAT0~ DAT3 進(jìn)行數(shù)據(jù)通信。其中SD 方式的數(shù)據(jù)傳輸速度比 SPI 要快,但是 SD 卡采用 SD模式時(shí),單片機(jī)要有相應(yīng)的 SD 模式接口,或者有相應(yīng)的 SD 卡控制單元,但是由于一般單片機(jī)都沒有 SD 模式接口,所以采用單片機(jī)對(duì) SD 卡進(jìn)行讀寫時(shí),一般都采用 SPI 方式。第一個(gè)字節(jié)是命令,緊接著是 4 字節(jié)的參數(shù),一般用于指定 SD的 字節(jié)地址。一般,命令也就是用到 0x40 復(fù)位命令、 0x41 初始化命令、 0x51 讀扇區(qū)命令、 0x58 寫扇區(qū)命令。注意,在初始化階段最好設(shè)置為 SPI 頻率為 128 分頻,較低速度。 液晶控制子程序設(shè)計(jì) 彩色液晶,只要使用帶控制器的就可以了。當(dāng) rs=0、 rw 上升沿跳變時(shí),單片機(jī) p2 口傳送給 彩色液晶的數(shù)據(jù)時(shí)命令。也可以使用帶其他控制器的液晶。 FAT32 結(jié)構(gòu)分析子程序設(shè)計(jì) 了解 FAT32 系統(tǒng)之前,需要注意一個(gè) FAT 文件系統(tǒng)的第一個(gè)重要的數(shù)據(jù)結(jié)構(gòu)— BPB,它位于該 FAT 卷得第一個(gè)扇區(qū),同時(shí)也屬于 FAT 文件系統(tǒng)基本區(qū)域的保留區(qū)。 FAT 是文件系統(tǒng)中另一個(gè)重要的數(shù)據(jù)結(jié)構(gòu),它是一一對(duì)應(yīng)于數(shù)據(jù)區(qū)簇號(hào)的列表。因此,文件占用磁盤空間時(shí),其基本單位不是字節(jié)而是簇,即使某個(gè)文件只有一個(gè)字節(jié),操作系統(tǒng)也會(huì)給他分配一個(gè)最小單元 — 既一個(gè)簇。重慶郵電大學(xué)移通學(xué)院畢業(yè)設(shè)計(jì)(論文) 21 對(duì)于大文件,需要分配多個(gè)簇。這種存儲(chǔ)方式稱為文件的鏈?zhǔn)酱鎯?chǔ)。這些都是由 FAT 表來保存的, FAT 表的對(duì)應(yīng)表項(xiàng)中記錄著它所代表的簇的有關(guān)信息:諸如是否空,是否是壞簇,是否已經(jīng)是某個(gè)文件的尾簇等。結(jié)構(gòu)信息。文件分配表,以 4 字節(jié)的大小,記錄簇的鏈?zhǔn)疥P(guān)系。讀取第一扇區(qū),即 512 字節(jié)的內(nèi)容,我們可以知道 “ 文件分配表的起始地址 ” , “ 每簇多少扇區(qū) ” 和分配表的大小。根目錄,用 32 字節(jié)大小,記錄文件名和首簇地址等信息。公式:任何扇區(qū)地址 =(記錄簇號(hào) 2) *每簇多少扇區(qū) +根目錄的扇區(qū)地址。 但文件的存放是鏈?zhǔn)浇Y(jié)構(gòu),我們還要讀下一個(gè)簇號(hào),直到簇號(hào)為結(jié)束簇號(hào): 0x0fffffff。 文件處理子程序設(shè)計(jì) 處理圖片文件之前,首先需要了解 BMP 這種格式的圖片。它采用位映射存儲(chǔ)結(jié)構(gòu),除了圖像深度可以選以外,不采用其他任何壓縮,因此, BMP 所占用的空間很大。 BMP 文件存儲(chǔ)數(shù)據(jù)時(shí),圖像的掃描方式是按從左到右、從下到上的順序。典型的 BMP 圖像文件一般由四部分組成: 文件的四部分:文件頭、信息頭、調(diào)色板和數(shù)據(jù)區(qū)。 ,它包含 BMP 圖像的寬、高、壓縮方法、以及定義顏色等信息。 ,這部分的內(nèi)容根據(jù) BMP 位圖使用的位數(shù)不用而不同,在 24 位圖重慶郵電大學(xué)移通學(xué)院畢業(yè)設(shè)計(jì)(論文) 22 中直接 使用 RGB,而其他的小于 24 位的則需要使用調(diào)色板。 主程序設(shè)計(jì) 主程序讀取通過 FAT32 文件系統(tǒng),得到根目錄地址,在讀取根目錄的文件記錄達(dá)到指定文件的首簇地址。讀取相應(yīng)數(shù)據(jù),經(jīng)過單片機(jī)傳輸在彩色液晶上顯示圖像,顯示完一幅圖像后,延遲一定的延時(shí),繼續(xù)顯示下一幅。 Lcd_Init()。 while(Sd_Init()==0) ShowString(0, 100, 未插入存儲(chǔ)卡 !!!, WHITE, RED, BACKGROUND)。//4 分頻【最高速度】,高電平,后沿移位 Fat32_Init()。 if(File_System!=32) ShowString(0, 100, NO FAT32 FileSystem, WHITE, RED, BACKGROUND)。 return 1。對(duì)于這類問題,我們應(yīng)該先對(duì)其有一個(gè)明確的認(rèn)識(shí),知道大概是哪里發(fā)生了問題 ,對(duì)問題的發(fā)生有一個(gè)大概的推測(cè),然后依據(jù)這個(gè)推測(cè)逐步檢測(cè)。焊接順序很重要應(yīng)該是按照功能劃分的器件進(jìn)行焊接,焊接一個(gè)功能部件,然后進(jìn)行調(diào)試,調(diào)試通過焊接下一個(gè)部件,這樣容易找到問題的所在。 電子相冊(cè)的 軟件調(diào)試方法 本畢業(yè)設(shè)計(jì)軟件共分為五個(gè)程序模塊,分別為: SD 卡讀寫子程序、液晶控制子程序、 FAT 結(jié)構(gòu)分析子程序、文件類型讀取分析程序和主程序。調(diào)試時(shí) , 一定要符合入口條件和出口條件 , 調(diào)試可用單步運(yùn)行和斷點(diǎn)運(yùn)行方式 , 通過檢查用者系統(tǒng)的 CPU 現(xiàn)場(chǎng)情況、 RAM 的內(nèi)容和 I/ O 口的狀態(tài) , 檢測(cè)程序執(zhí)行結(jié)果是否符合設(shè)計(jì)要求 。 同 時(shí) , 還可以發(fā)現(xiàn)系統(tǒng)中存在的硬件設(shè)計(jì)錯(cuò)誤和軟件算法錯(cuò)誤。這個(gè)階段若有故障 , 可以考慮各子程序運(yùn)行時(shí)是否破壞了現(xiàn)場(chǎng) , 緩沖單元、工作寄存器是否發(fā)生沖突 , 標(biāo)志位的建立和清除是否有堆棧區(qū)是否有溢出 , 輸入設(shè)備的狀態(tài)是否正常等等 ,若用者系統(tǒng)是在開發(fā)機(jī)的監(jiān)控程序下運(yùn)行時(shí) , 還要考慮用者緩沖單元是否和監(jiān)控程序的工作單元發(fā)生沖突。各功能實(shí)現(xiàn)則調(diào)試完成。如今的單片機(jī)已經(jīng)發(fā)展了很多的種類,各種型號(hào)的都有,價(jià)格也很平易近人,這就更使得單片機(jī)有了更大的發(fā)展空間。同時(shí)它從顛覆了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思路和設(shè)計(jì)方法,使得完全可以用軟件來進(jìn)行模仿,這種軟件代替硬件的技術(shù)是傳統(tǒng)硬件技術(shù)的一種革新。 本文主要描述了用型號(hào)為 SST89E516RD 的 51 單片機(jī)實(shí)現(xiàn)電子相冊(cè)。雖然已經(jīng)實(shí)現(xiàn)了預(yù)期的功能,但是還需要在技術(shù)水平和可靠性方面進(jìn)一步改進(jìn)和完善。 重慶郵電大學(xué)移通學(xué)院畢業(yè)設(shè)計(jì)(論文) 25 參考文獻(xiàn) [1] 李蒙,毛建東 .單片機(jī)原理及應(yīng)用 [M].北京:中國(guó)輕工業(yè)出版社, . [2] 常敏,王涵. 51 單片機(jī)應(yīng)用程序開發(fā)與實(shí)踐 [M].北京:電子工業(yè)出版社, 2021. [3] 王宜懷,劉曉升 .嵌入式應(yīng)用技術(shù)基礎(chǔ)教程 [M].北京:清華大學(xué)出版社, . [4] 謝瑞和 .微型計(jì)算機(jī)原理與接口技術(shù)基礎(chǔ)教程 [M].北京:科學(xué)出版社, . [5] 顧治華,陳天煌,忽朝?。?C 語言程序設(shè)計(jì) [CP].北京:機(jī)械工業(yè)出版社, 2021. 10. [6] 湯小丹 ,梁紅兵 . 計(jì)算機(jī)操作系統(tǒng) [M].西安:西安電子科技大學(xué)出版社, . [7] 李朝青.單片機(jī)原理及接口技術(shù) [M].北京:北京航空航天大學(xué)出版社, . [8] 候振鵬.嵌入式 C 語言程序設(shè)計(jì) [M].北京:北京人民郵電出版社, . [9] 龔運(yùn)新 . 單片機(jī) C 語言開發(fā)技術(shù) [M].北京:清華大學(xué)出版社, . [10] 邵貝貝 , 龔光華 . 單片機(jī)的認(rèn)識(shí)與實(shí)踐 [M]. 北京:北京航空航天大學(xué)出版社 , [11] 孫育才 . MCS51 系列單片機(jī)原理及應(yīng)用 [M]. 南京:東南大學(xué)出版社, 2021. [12] 何立民 . 單片機(jī)高級(jí)教程 [M].北京: 北京航空航天大學(xué)出版社, 2021. [13] 沙占友,孟志永,王彥朋 . 單片機(jī)外圍電路設(shè)計(jì) [M]. 北京:電子工業(yè)出版社,. [14]張石 .嵌入式系統(tǒng)教程 [M].北京:機(jī)械工業(yè)出版社, . [15] 張益貞. Visual C++實(shí)現(xiàn) MPEG/JPEG 編解碼技術(shù) . 北京:人民郵電出版社,2021,11 [16] 雷思孝等 .單片機(jī)原理及實(shí)用技術(shù) [M].西安:西安電子科技大學(xué)出版社 , 重慶郵電大學(xué)移通學(xué)院畢業(yè)設(shè)計(jì)(論文) 26 附:基于單片機(jī)的電子相冊(cè)程序 int main(void) { Port_Init()。 full_display(BLACK)。 SPCR=0X5C。//FAT 文件系統(tǒng)初始化 if(File_System==32) ShowString(0, 100, FAT32 FileSystem, BLACK, YELLOW, BACKGROUND)。 File_Show()。 while(1) { if(PixelBytes == 3) //24 位顏色圖 { switch (RGBPoint) //取 RGB 565 { case 0: color += ((u16)FatBuffer[count]3) 。 case 1: color += ((u16)FatBuffer[count]2)5 。 case 2 : 重慶郵電大學(xué)移通學(xué)院畢業(yè)設(shè)計(jì)(論文) 27 color += ((u16)FatBuffer[count]3)11 。 } } else { if(PixelBytes==2) //16 位顏色圖 { switch(RGBPoint) { case 0 : color = FatBuffer[count] 。 case 1 : color += ((u16)FatBuffer[count])8。 } } else { if(PixelBytes==4)//32 位顏色圖 { switch (RGBPoint) { case 0: color += ((u16)FatBuffer[count]3) 。 case 1: color += ((u16)FatBuffer[count]2)5 。 case 2 : 重慶郵電大學(xué)移通學(xué)院畢業(yè)設(shè)計(jì)(論文) 28 color += ((u16)FatBuffer[count]3)11 。 case 3 :break 。 TFT_WriteData(color)。 BmpPointX++。 if(BmpPointX==BmpPixelX) //一行結(jié)束 { i=AddBytes。 BmpPointX=0。 BmpPixelY。 BmpPointY++。 } } else { while((u16)((float)BmpPointX*ScaleX)==RealPointX) //跳過要顯示的行中的某些像重慶郵電大學(xué)移通學(xué)院畢業(yè)設(shè)計(jì)(論文) 29 素 重慶郵電大學(xué)移通學(xué)院畢業(yè)設(shè)計(jì)(論文) 30 { SkipBytes+=PixelBytes。 //水平像素加一 if(BmpPointX==BmpPixelX) //一行結(jié)束 { i=AddBytes。 BmpPointX=0。 BmpPixelY。 BmpPointY++。 } } } } if(BmpPixelY=0) break。 RealPointY = (float)BmpPointY*ScaleY。count,amp。BmpCluster,amp。 } } if(++count=512) //判斷是否輸出完本扇區(qū) { count = 0。 //扇區(qū)數(shù)加一 if(sector == ClusterSize) //ClusterSize 為每簇扇區(qū)數(shù),判斷是否完成本簇輸出 { sector =0。 //若本簇輸出完,讀取下一簇為第幾簇 BmpAddress = fatClustToSect(BmpCluster)。 //讀 BMP 下一扇數(shù)據(jù) } }
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1