畢業(yè)設(shè)計--- 數(shù)碼相框的設(shè)計與實現(xiàn)_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(論文)</b></p><p>  題 目 數(shù)碼相框的設(shè)計與實現(xiàn) </p><p>  姓 名 </p><p>  學(xué) 號 </p><p>  專業(yè)班級

2、 </p><p>  所在學(xué)院 信息與電氣工程學(xué)院 </p><p>  指導(dǎo)教師(職稱) </p><p>  數(shù)碼相框的設(shè)計與實現(xiàn)</p><p>  【摘要】 本課題以MCS-51單片機為開發(fā)平臺,針對SD卡移植一種開源的

3、FATFS文件系統(tǒng),能自動對SD卡上的文件進行枚舉,并對符合格式要求的圖像文件進行讀取操作。本系統(tǒng)采用軟件解碼技術(shù),實現(xiàn)對通用圖像文件格式BMP進行解碼操作,并使圖像在彩色LCD顯示屏上顯示,同時通過按鍵控制圖像播放模式,包括圖片的切換以及循環(huán)顯示。該設(shè)計方案制作成本低,硬件構(gòu)成簡單,易于擴展和升級,其解碼功能是通過軟件模擬實現(xiàn),這樣使系統(tǒng)具有良好的靈活性、適應(yīng)性以及實用性。</p><p>  【關(guān)鍵詞】 ST

4、C12C5A60S2單片機,F(xiàn)AT FS文件系統(tǒng),BMP軟件解碼,SD卡 </p><p>  Design and Realization of Digital</p><p>  Photo Frame</p><p>  【Abstract】Based with MCS-51 MCU Development Platform,the sy

5、stem transfers an open source file system named FATFS for the SD card.This file system can automatically enumerate the files of SD card and achieve read operation of the image file which meets the requirements of format.

6、 At the same time the system uses the software decoding to achieve the decoding operation of the common image file formats BMP. While the image can be displayed on the color LCD, through the key buttons,the system also c

7、a</p><p>  【Key Words】 STC12C5A60S2 MCU,F(xiàn)ATFS FileSystem,BMP Software decoder,SD Card </p><p><b>  目 錄</b></p><p><b>  第1章 緒論1</b></p><p>  1.1

8、 選題背景1</p><p>  1.2 國內(nèi)外研究現(xiàn)狀1</p><p>  1.3 論文主要研究內(nèi)容2</p><p>  第2章 數(shù)碼相框的硬件設(shè)計3</p><p>  2.1 系統(tǒng)總體硬件設(shè)計3</p><p>  2.2 單片機處理器模塊4</p><p>  2.2.1

9、 單片機小系統(tǒng)設(shè)計4</p><p>  2.3 SD卡模塊5</p><p>  2.3.1 SD卡接口設(shè)計電路6</p><p>  2.4液晶彩屏顯示模塊6</p><p><b>  2.5按鍵模塊7</b></p><p>  2.6 串口模塊8</p><

10、;p>  2.7 電源電路8</p><p>  第3章 數(shù)碼相框的軟件設(shè)計10</p><p>  3.1軟件總體設(shè)計結(jié)構(gòu)10</p><p>  3.2圖像文件讀取設(shè)計11</p><p>  3.2.1 SD卡初始化12</p><p>  3.2.2 SPI數(shù)據(jù)傳輸13</p>

11、<p>  3.2.3 FAT FS文件系統(tǒng)移植設(shè)計14</p><p>  3.3圖像文件解碼設(shè)計18</p><p>  3.3.1 BMP圖像解碼18</p><p>  3.4圖像文件顯示設(shè)計20</p><p>  3.4.1液晶彩屏初始化20</p><p>  3.4.2彩屏點陣顯示設(shè)

12、計21</p><p>  3.5控制模塊23</p><p>  3.51 定時器初始化23</p><p>  3.5.2按鍵程序設(shè)計24</p><p>  第4章 制作成果展示及分析26</p><p>  4.1 數(shù)碼相框硬件制作成果及分析26</p><p>  4.2

13、圖像顯示結(jié)果及分析26</p><p><b>  結(jié)論28</b></p><p><b>  參考文獻29</b></p><p><b>  附錄A30</b></p><p><b>  致謝31</b></p><p

14、><b>  圖目錄</b></p><p>  圖2.1數(shù)碼相框系統(tǒng)硬件設(shè)計結(jié)構(gòu)3</p><p>  圖2.2單片機小系統(tǒng)時鐘電路設(shè)計結(jié)構(gòu)4</p><p>  圖2.3單片機小系統(tǒng)復(fù)位電路設(shè)計5</p><p>  圖2.4 SD卡接口設(shè)計電路6</p><p>  圖2.5單

15、片機與SD卡接口連接電路6</p><p>  圖2.6液晶彩屏設(shè)計電路7</p><p>  圖2.7按鍵設(shè)計電路7</p><p>  圖2.8串口設(shè)計電路8</p><p>  圖2.9電源設(shè)計電路9</p><p>  圖3.1主程序流程圖11</p><p>  圖3.2

16、SD卡初始化流程圖12</p><p>  圖3.3 SD卡圖像數(shù)據(jù)讀取流程14</p><p>  圖3.4 FAT文件系統(tǒng)存儲結(jié)構(gòu)15</p><p>  圖3.5 FAT FS讀取文件流程圖17</p><p>  圖3.6點陣顯示設(shè)計流程圖23</p><p>  圖4.1數(shù)碼相框硬件制作成果圖26

17、</p><p>  圖4.2 BMP圖像解碼前后對比圖27</p><p><b>  第1章 緒論</b></p><p><b>  1.1 選題背景</b></p><p>  近幾年來,數(shù)碼相機由于具有使用簡便,拍攝效果好,可立刻觀賞拍攝的照片,而且拍攝過程幾乎不產(chǎn)生任何成本等優(yōu)點,已經(jīng)

18、完全取代了傳統(tǒng)相機。而隨著數(shù)碼相機的普及,所拍攝的數(shù)碼照片數(shù)量也越來越多。大多數(shù)人都喜歡用存儲器對數(shù)碼相片進行保存,一是因為這些照片的打印成本要高于傳統(tǒng)的照片,二是這些照片可以隨時地放到電腦上進行修改和觀賞。但是隨著相片數(shù)量的增加以及對這些相片的頻繁使用,人們發(fā)現(xiàn)只能使用電腦工具處理這些照片變得十分局限。因此,為了能夠更方便的保存并觀賞數(shù)碼相機拍攝的照片,與之相對應(yīng)的數(shù)碼相框就應(yīng)運而生了。</p><p>  數(shù)

19、碼相框就是一個相框,不過它不用放進相片的方式來展示,它可以通過讀卡器的接口從SD、MMC、CF、MS卡獲取相片,然后通過一個液晶屏幕顯示,并且它還具有保存、回放和循環(huán)瀏覽相片等功能。它比普通的相框更靈活多變,也給現(xiàn)在日益使用的數(shù)碼相片一個新的展示空間,是觀看和分享數(shù)碼照片的專用設(shè)備。</p><p>  數(shù)碼相框主要由CPU操作系統(tǒng)、存儲器、解碼器、顯示屏和微控制器組成。它的主要工作原理是通過CPU操作系統(tǒng)對外部

20、或內(nèi)部存儲器中的圖像信息進行解碼,然后通過微控制器在顯示器上顯示圖像。</p><p>  1.2 國內(nèi)外研究現(xiàn)狀</p><p>  2003年,國內(nèi)第一款自主研發(fā)的“捷碩數(shù)碼相框”在滬面市。當(dāng)時它可存儲60幅圖片,可定時、間隔、循環(huán)地以靜態(tài)或動態(tài)的形式顯示10英寸LCD照片,并具有放大、縮小、旋轉(zhuǎn)等多種圖片顯示功能。相框內(nèi)還含有MP3播放功能。這款數(shù)碼相框的面世,為人們帶來全新的數(shù)碼理

21、念。隨著數(shù)字科技技術(shù)的進步,數(shù)碼相框的技術(shù)發(fā)展也日趨成熟。目前在國內(nèi)外,數(shù)碼相框系統(tǒng)設(shè)計的主流方案大概有三類[1]:</p><p>  (1)采用ARM+JPEG硬件解碼器作為核心處理系統(tǒng),解碼速度快,圖片顯示速度比較快捷,支持MPEG1, MPEG4,;在USB接口方面,支持USB2.0 Slave和USB1.1 Host;在音頻處理方面,支持mp3,wma,wav,aac,ape,flac,alac等音頻播

22、放??傮w來講其性能普遍比較全面,在靜態(tài)圖片處理,動態(tài)影像處理,音頻處理,存儲卡的支持,USB以及擴展功能上基本都做到了全覆蓋,而且功耗低,圖片分辨率也比較高。</p><p>  (2)采用單芯片處理系統(tǒng),PCB板結(jié)構(gòu)簡單,支持JPEG,BMP,GIF以及MP3、MP4的播放。這類相框成本比較低廉,但在圖片顯示效果上存在的問題是對高像素圖片的不支持,一般不高于600萬像素。</p><p>

23、;  (3)采用嵌入式的構(gòu)架來做數(shù)碼相框,采用純硬件解碼JPEG,對圖像的任何編輯操作均通過硬件來實現(xiàn),圖像處理速度快,支持圖像的像素也很高。但與第一類方案相比相比,在擴展功能方面比較單一。</p><p>  在國內(nèi),數(shù)碼相框產(chǎn)品更多的是強調(diào)多功能,而國外特別是歐美的用戶,對簡潔、實用的產(chǎn)品更為青睞。比如愛國者的“雙屏數(shù)碼相框”研發(fā)的目標(biāo)就是僅僅把數(shù)碼相框的“照片展示”特性發(fā)揮到極限。事實證明,這類數(shù)碼相框產(chǎn)品

24、也越來越受人們喜愛,隨之而然,數(shù)碼相框的發(fā)展也在朝這方面不斷地創(chuàng)新和進化。</p><p>  1.3 論文主要研究內(nèi)容</p><p>  本課題設(shè)計的數(shù)碼相框主要以MCS-51單片機作為控制核心,采用軟件解碼功能,嵌入以FATFS文件系統(tǒng),實現(xiàn)對存儲在SD卡內(nèi)的圖像文件進行讀取操作,并編寫算法對通用的圖像文件格式,例如BMP進行解碼操作,然后通過MCS-51單片機驅(qū)動液晶顯示屏,對解碼

25、后的圖像進行顯示。</p><p>  此方案的優(yōu)點在于兩個方面。一是制作成本低,硬件構(gòu)成簡單,設(shè)計方便。二是易于擴展和升級。其中的解碼功能是通過軟件模擬實現(xiàn),這樣使系統(tǒng)具有良好的靈活性和適應(yīng)性。</p><p>  第2章 數(shù)碼相框的硬件設(shè)計</p><p>  2.1 系統(tǒng)總體硬件設(shè)計</p><p>  數(shù)碼相框系統(tǒng)硬件設(shè)計結(jié)構(gòu)如圖2.

26、1所示。.</p><p>  圖2.1 數(shù)碼相框系統(tǒng)硬件設(shè)計結(jié)構(gòu)</p><p>  該硬件結(jié)構(gòu)設(shè)計,主要以MCS-51單片機最小系統(tǒng)為核心,配備電源電路、SD卡接口電路、按鍵控制器、LCD液晶彩屏、時鐘電路以及復(fù)位電路。MCS-51單片機最小系統(tǒng)具有基本的晶振系統(tǒng)以及I/O接口,可以為各個硬件設(shè)備提供相應(yīng)的時鐘信號,實現(xiàn)復(fù)位功能以及數(shù)據(jù)的傳輸功能[2]。電源電路包含電源轉(zhuǎn)換電路,設(shè)計了

27、與SD卡、MCS-51單片機以及LCD液晶屏的連接電路,并為其提供基本的工作電壓。SD卡接口電路配有SD卡座,并設(shè)計了SD卡座與單片機的連接電路。按鍵控制器主要完成液晶屏對圖片的顯示控制。</p><p>  2.2 單片機處理器模塊</p><p>  本課題數(shù)碼相框系統(tǒng)選用STC12C5A60S2系列單片機作為核心處理模塊。STC12C5A60S2為單時鐘/機器周期單片機,它具有高速、

28、低功耗以及超強抗干擾等等特點。與一般的單片機結(jié)構(gòu)相似,它的工作電壓為3.5v - 5.5v,擁有1KB的片上集成RAM以及60KB的程序存儲空間,40個通用I/O口,內(nèi)置復(fù)位,通用的全雙工異步串行口。該單片機結(jié)構(gòu)簡單,功能完備,適合小型嵌入式設(shè)備移植,且擁有的存儲器空間大小已能滿足對于SD卡圖像文件的讀取需要,基本上已達到本課題數(shù)碼相框系統(tǒng)核心處理器要求。</p><p>  2.2.1 單片機小系統(tǒng)設(shè)計<

29、/p><p>  除了選用STC12C5A60S2系列單片機作為核心處理模塊,在硬件電路上還需要設(shè)計外圍合適的電路,即單片機小系統(tǒng),以此啟動單片機。這部分主要的設(shè)計電路包括:</p><p><b>  (1) 時鐘電路</b></p><p>  STC12C5A60S2系列單片機可以使用外部時鐘,也可以靠內(nèi)部振蕩器提供時鐘信號[3]。本系統(tǒng)采用

30、外部24MHz晶振提供時鐘信號方式,將晶振連接到XTAL1和XTAL2之間,并與兩個電容相連接地,如圖2.2所示。</p><p>  圖2.2 單片機小系統(tǒng)時鐘電路設(shè)計結(jié)構(gòu)</p><p><b>  (2) 復(fù)位電路</b></p><p>  本系統(tǒng)采用外部按鍵手動復(fù)位,具體結(jié)構(gòu)如圖2.3所示。</p><p> 

31、 圖2.3 單片機小系統(tǒng)復(fù)位電路設(shè)計</p><p><b>  2.3 SD卡模塊</b></p><p>  SD卡(Secure Digital Memory Card),中文名稱為安全數(shù)字記憶卡。它是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,記憶容量高,數(shù)據(jù)傳輸快,且具備極大的靈活性以及很好的安全性。目前SD卡普遍運用于數(shù)碼相機、MP3以及手機等多媒體數(shù)碼設(shè)備

32、。</p><p>  SD卡一般有兩種可用的通訊協(xié)議:SD模式和SPI模式[4]。SD模式通常采用6線制傳輸,即CMD、SCLK、DATA0~DATA3,數(shù)據(jù)傳輸率高,不過傳輸?shù)拿罴皡f(xié)議相當(dāng)復(fù)雜。SPI模式則一般采用4線制,即SCLK、CS、MISO、MOSI,由于在傳輸期間,每次只啟用一條數(shù)據(jù)傳輸線,傳輸率較低,不過傳輸命令及協(xié)議相對SD模式簡單,易于實現(xiàn)。SD總線模式需要單片機有相應(yīng)的控制器接口,但MCS

33、-51單片機上并不具備這些接口設(shè)備[5],選用SD模式通信就要增加硬件成本,而相比之下,SPI模式可以簡化主機設(shè)計,降低成本。再者雖然SPI的數(shù)據(jù)傳輸效率較小,但已能滿足一般圖像的數(shù)據(jù)傳輸速率要求,而且它采用4線傳輸,簡捷方便,軟硬件易于實現(xiàn)。因此,在本課題中,選擇SPI模式是最佳的通訊方式。</p><p>  2.3.1 SD卡接口設(shè)計電路</p><p>  本系統(tǒng)中,SD卡接口通過

34、加載必要的外圍電路與單片機相應(yīng)的I/O進行連接,如圖2.4所示。</p><p>  圖2.4 SD卡接口設(shè)計電路</p><p>  接口SD_CS、MOSI、MISO、SCLK分別于單片機的I/O口P1.4~P1.7相連。SD卡的工作電壓為3.3v,而單片機的工作電壓為5v,由此需要處理SD卡與單片機之間電平不匹配的問題[6]。不過只要在接口兩端需要接入330Ω的緩沖電阻,就可完全解決

35、。具體設(shè)計如圖2.5所示。</p><p>  圖2.5 單片機與SD卡接口連接電路</p><p>  2.4液晶彩屏顯示模塊</p><p>  TFT (Thin Film Transistor)薄膜場效應(yīng)晶體管是目前普遍應(yīng)用于手機、電腦等數(shù)碼設(shè)備屏幕的真彩色液晶屏,它具有重量輕、體積小、低功耗、無輻射以及支持顯示全彩色圖像等特點。</p>&l

36、t;p>  本系統(tǒng)采用的TFT液晶屏為3.5英寸的24位真彩色數(shù)字屏,分辨率為320x240,電壓系統(tǒng)為5V。如圖2.6所示,選用8位數(shù)據(jù)方式驅(qū)動,顯示一個點時,采用16位RGB方式傳輸數(shù)據(jù),因此只需用到8根數(shù)據(jù)線。液晶彩屏其他接口例如片選CS、復(fù)位RST等分別與單片機I/O相連,并由單片機總線同步控制。另外,對于液晶屏的背光調(diào)節(jié),可接入1K的滑動電阻,并連接到地,通過調(diào)節(jié)電阻阻值,以達到良好的屏幕亮度。</p>&

37、lt;p>  圖2.6 液晶彩屏設(shè)計電路</p><p><b>  2.5按鍵模塊</b></p><p>  為便于控制圖片顯示播放,相框系統(tǒng)中加入了按鍵模塊,以此來作為圖片播放播放功能鍵。本系統(tǒng)采用簡單的直連式按鍵,共設(shè)4個按鍵Key1~Key4,并分別與單片機的P1.0~P1.3直連。當(dāng)鍵按下時接地,輸出低電平,操作簡單,易于實現(xiàn)。具體電路設(shè)計如圖2.7

38、所示。</p><p>  圖2.7 按鍵設(shè)計電路</p><p><b>  2.6 串口模塊</b></p><p>  為便于程序下載以及軟硬件調(diào)試,除了設(shè)計所需硬件電路,在單片機外圍電路中還加入了串口模塊,方便主機對單片機進行調(diào)控。</p><p>  圖2.8 串口設(shè)計電路</p><p&g

39、t;  與一般的8051單片機串口類似,采用MAX232作為串口的主芯片。在選擇異步通信方式(UART)下,主機通過TX_PC線路向MAX232發(fā)送命令,再由RXD(P3.0)串行數(shù)據(jù)輸入端傳送到單片機中;同樣也可由單片機通過TXD(P3.1)串行數(shù)據(jù)發(fā)送端發(fā)送信號到MAX232,再有RX_PC線路送給主機。</p><p><b>  2.7 電源電路</b></p><

40、;p>  在本系統(tǒng)中,由于各個硬件部分的工作電壓各不相同,比如SD卡需要3.3v工作電壓,而單片機及液晶彩屏則需要5v工作電壓,因此在主系統(tǒng)中還需要設(shè)計統(tǒng)一的電源電路,方便給各部分硬件提供工作電壓。</p><p>  圖2.9 電源設(shè)計電路</p><p>  在一般單片機外圍電路中,LM1117系列電源適配器經(jīng)常被選用,它具有穩(wěn)定性好、輸出電壓精度高、漏失電壓小等特點。在本系統(tǒng)中

41、,采用了5v轉(zhuǎn)3.3v的電源適配器,這樣有效簡化了電源電路設(shè)計,同時也解決了各個部件工作電壓不統(tǒng)一的問題。</p><p>  第3章 數(shù)碼相框的軟件設(shè)計</p><p>  3.1軟件總體設(shè)計結(jié)構(gòu)</p><p>  整個數(shù)碼相框的軟件系統(tǒng)按功能可以分為4個模塊:圖像文件讀取、圖像信息解碼、圖像文件顯示以及控制模塊。</p><p>  主

42、函數(shù)調(diào)用了各個模塊程序,實現(xiàn)了各個模塊的初始化過程以及接口配置,同時也規(guī)劃了程序的流程安排,如圖3.1所示。</p><p>  圖3.1 主程序流程圖</p><p>  3.2圖像文件讀取設(shè)計</p><p>  圖像文件的讀取主要包括3個部分,即SD卡的初始化、SPI數(shù)據(jù)傳輸以及FAT FS文件系統(tǒng)的移植。在整個程序設(shè)計中,單片機運用FAT FS文件系統(tǒng)實現(xiàn)對

43、SD卡內(nèi)文件的讀取,同時通過SPI數(shù)據(jù)傳輸協(xié)議傳輸圖像數(shù)據(jù)。</p><p>  3.2.1 SD卡初始化</p><p>  SD卡與單片機的通信都由單片機控制,單片機發(fā)送命令給SD卡,接收SD卡的響應(yīng)并確認SD卡的是否進入準(zhǔn)備狀態(tài)后,再進行下一步的命令操作。當(dāng)然,每次單片機對SD卡的進行任何操作前都必須拉低SD卡的片選信號CS,然后再發(fā)送命令。單片機與SD卡之間的常用命令總共有19個,

44、每個命令又會產(chǎn)生不同的響應(yīng)。</p><p>  本系統(tǒng)中SD卡初始化主要包括SD卡的上電復(fù)位以及選擇SPI通信模式。程序流程如圖3.2所示。</p><p>  圖3.2 SD卡初始化流程圖</p><p>  在接收到SD卡插入后的響應(yīng)后,單片機會先給SD卡發(fā)送74個時鐘周期,以完成SD卡的上電過程,之后再發(fā)送復(fù)位命令(CMD0)[7]。如果此時的片選信號CS為

45、低電平,那么SD卡將進入SPI總線模式,否則SD卡將一直保持SD總線模式。進入SPI模式后,單片機會。向SD卡發(fā)送激活命令(CMD1)。如果接收到的響應(yīng)為0,則表示SD卡已完成了初始化過程,處于空閑狀態(tài),等待單片機的下一個命令,否則單片機將繼續(xù)發(fā)送命令直到響應(yīng)為0。</p><p>  3.2.2 SPI數(shù)據(jù)傳輸</p><p>  STC12C5A60S2系列單片機提供了一種高速串行通信

46、接口,即SPI接口。它是一種全雙工、高速、同步的通信總線,與之相關(guān)的特殊功能的寄存器主要有:控制寄存器SPCTL、狀態(tài)寄存器SPSTAT以及數(shù)據(jù)寄存器SPDAT。</p><p>  (1) 控制寄存器SPCTL:SPI的使能控制端,確定單片機為主機還是從機,決定高低字節(jié)數(shù)據(jù)的傳輸優(yōu)先順序以及選擇SPI的時鐘頻率。</p><p>  (2) 狀態(tài)寄存器SPSTAT:用來判斷SPI數(shù)據(jù)是否

47、傳輸完成以及檢測是否對數(shù)據(jù)寄存器SPDAT進行寫操作。</p><p>  (3) 數(shù)據(jù)寄存器SPDAT:傳輸?shù)臄?shù)據(jù)位Bit7~Bit0。</p><p>  在使用SPI通信接口時,需要對三個寄存器進行相應(yīng)的初值設(shè)定,以達到SPI的初始化效果:</p><p>  sfr SPCTL = 0xCE; //啟動SPI傳輸,確定單片機為主機,高位字節(jié)數(shù)據(jù)

48、優(yōu)先發(fā)送,SPI時鐘頻率設(shè)定為主機的1/64</p><p>  sfr SPSTAT = 0xCD; //默認標(biāo)志位為“1”</p><p>  sfr SPDAT = 0xCF; //默認傳輸數(shù)據(jù)位為0xcf</p><p>  SD卡在SPI模式下可以選擇單塊和多塊讀操

49、作[8]。選擇單塊讀操作時,所讀的數(shù)據(jù)塊一般都固定為512字節(jié);選擇多塊讀操作時,可以指定的位置開始讀數(shù)據(jù),一直讀到接收到單片機發(fā)送的停止讀數(shù)據(jù)的命令。考慮到圖像數(shù)據(jù)的讀取要具有靈活性,便于系統(tǒng)程序調(diào)試,本系統(tǒng)采用多塊讀操作方式,具體操作流程如圖3.3所示。</p><p>  圖3.3 SD卡圖像數(shù)據(jù)讀取流程</p><p>  3.2.3 FAT FS文件系統(tǒng)移植設(shè)計</p>

50、;<p>  文件的讀取,是屬于文件系統(tǒng)的管理功能。因此要實現(xiàn)對SD卡內(nèi)文件的讀取,就需要在單片機中移植入一種SD卡所支持的文件系統(tǒng),進而通過文件系統(tǒng)向SD卡發(fā)送命令讀取圖片文件。</p><p>  (1) FAT FS文件系統(tǒng)簡介</p><p>  FATFS是一種完全免費開源的FAT文件系統(tǒng)模塊,專門為小型的嵌入式系統(tǒng)而設(shè)計[9],它具有一般文件系統(tǒng)所能實現(xiàn)的基本功能

51、,包括打開/關(guān)閉文件以及對文件進行讀寫操作等等。它完全用標(biāo)準(zhǔn)C語言編寫,很適合移植到單片機上;它支持多個存儲媒介,有獨立的緩沖區(qū),可以對多個文件進行讀/寫操作。其中也有一個簡化的版本Tiny—FatFs。該版本與FATFS的完全版用法一樣,不過因為它縮減了一般小型嵌入式系統(tǒng)所用不到的系統(tǒng)程序,只提供用戶一般所需要的幾個接口函數(shù),所以所需編寫的代碼量相對較少;而且它占用的內(nèi)存低,只要1KB RAM,僅支持一個存儲媒介,對于單片機而言,比較

52、容易實現(xiàn)。因此,對于文件系統(tǒng)的移植,Tiny—FatFs是個相當(dāng)不錯的選擇。</p><p>  (2) FAT文件系統(tǒng)的結(jié)構(gòu)原理</p><p>  FAT文件系統(tǒng)在磁盤中的存儲結(jié)構(gòu)如下圖3.4所示。所有部分連續(xù)存放,中間沒有間隔部分,所以通過計算根據(jù)上一部分存儲的結(jié)束地址可以得到下一部分開始的位置。</p><p>  圖3.4 FAT文件系統(tǒng)存儲結(jié)構(gòu)</

53、p><p><b>  a) 引導(dǎo)扇區(qū)</b></p><p>  引導(dǎo)扇區(qū)是文件系統(tǒng)操作的引導(dǎo)記錄區(qū),它包括了跳轉(zhuǎn)指令、廠商標(biāo)志、OS版本號、BPB參數(shù)塊、引導(dǎo)扇區(qū)代碼以及結(jié)束標(biāo)志等等。其中BPB參數(shù)塊更是包含了很多文件結(jié)構(gòu)信息,比如每扇區(qū)字節(jié)數(shù)、每簇扇區(qū)數(shù)、FAT表所占的扇區(qū)數(shù)、根目錄簇號、根目錄項數(shù)以及總扇區(qū)數(shù)等等。所有文件操作系統(tǒng)都必須通過引導(dǎo)扇區(qū)的引導(dǎo)記錄才能實

54、現(xiàn)對文件的操作。</p><p><b>  b) FAT文件表</b></p><p>  FAT文件表是用來給每個文件分配磁盤物理空間的數(shù)據(jù)結(jié)構(gòu),并記錄數(shù)據(jù)區(qū)簇鏈結(jié)構(gòu)。FAT文件系統(tǒng)最小的存儲單位為扇區(qū),一般每個扇區(qū)為512個字節(jié)。而簇則是FAT分配文件存儲空間的最小單位,它的大小通常為2n個扇區(qū),但實際大小是BPB信息中每簇扇區(qū)數(shù)與每扇區(qū)字節(jié)數(shù)的乘積大小。當(dāng)創(chuàng)建

55、文件時,即使文件大小只有一個字節(jié),操作系統(tǒng)也會分配一個最小單元給它,即一個簇。每個文件都同表中的若干項相對應(yīng),并在目錄中進行索引[10]。因此通過FAT表,可以了解到整個磁盤中所有文件的存儲信息。</p><p><b>  c) 目錄項</b></p><p>  在根目錄下,所有文件都有一個與之相對應(yīng)的目錄項。目錄項包含了文件開始的簇號,文件的創(chuàng)建時間以及文件的大

56、小等。因此在讀取文件時,可以先從目錄項中了解文件的基本信息,在配合FAT文件表準(zhǔn)確定位文件存放地址。</p><p>  (3) FAT FS文件系統(tǒng)的移植方法</p><p>  文件系統(tǒng)本身就具有各種文件操作功能,比如打開/關(guān)閉文件、讀取文件以及寫文件等等,而且它的對象僅僅是文件本身而已。因而移植FATFS文件系統(tǒng)的方法主要是將文件系統(tǒng)操作的對象設(shè)定為SD卡內(nèi)的文件,并且只對SD卡內(nèi)的

57、文件進行操作。為此,在移植過程中,只需要在原有的FATFS文件系統(tǒng)操作程序中移植入SD卡文件的操作程序即可。主要的操作程序包括以下三個方面:</p><p>  DSTATUS disk_initialize (void); //初始化SD卡</p><p>  DRESULT disk_readp();

58、 //讀指定扇區(qū)</p><p>  DRESULT disk_writep (BYTE* buff,DWORD sector); //寫指定扇區(qū)</p><p>  (4) FAT FS文件系統(tǒng)的讀取過程</p><p>  在根目錄下,讀取文件的主要流程如圖3.5所示。主要分為以下幾個步驟:</p><

59、;p>  圖3.5 FAT FS讀取文件流程圖</p><p>  a) FAT FS文件數(shù)據(jù)結(jié)構(gòu)</p><p>  類似于FAT引導(dǎo)扇區(qū)中BPB信息結(jié)構(gòu),F(xiàn)AT FS文件也有設(shè)定相應(yīng)的文件數(shù)據(jù)結(jié)構(gòu),以便于文件操作程序的簡化,達到開源的目的。</p><p>  typedef struct _FATFS_ {</p><p>  B

60、YTEfs_type; //文件類型</p><p>  BYTEcsize; //每一簇的扇區(qū)數(shù)</p><p>  BYTEflag; //文件標(biāo)志位</p><p>  BYTEcsect; //文件扇區(qū)地址</p

61、><p>  WORDn_rootdir; //根目錄項數(shù)</p><p>  BYTE*buf; //數(shù)據(jù)存儲緩沖區(qū)指針</p><p>  CLUSTmax_clust; //最大簇</p><p>  DWORDfatbase;

62、 //FAT文件表起始扇區(qū)號</p><p>  DWORDdirbase; //很目錄起始扇區(qū)號</p><p>  DWORDdatabase; //數(shù)據(jù)起始扇區(qū)號</p><p>  DWORDfptr; //文件名指針</p>

63、<p>  DWORDfsize; //文件大小</p><p>  CLUSTorg_clust; //文件起始簇號</p><p>  CLUSTcurr_clust; //文件當(dāng)前簇</p><p>  DWORDdsect;

64、 //文件當(dāng)前數(shù)據(jù)扇區(qū)</p><p><b>  } FATFS;</b></p><p>  b) FAT FS文件操作程序設(shè)計</p><p>  本系統(tǒng)中的FAT FS是一種開源的文件系統(tǒng),與其他FAT16、FAT32文件系統(tǒng)相比,它省去了很多一般所不用的文件操作程序,而且配合本課題的要求,在已經(jīng)簡化的FAT FS文件系統(tǒng)基礎(chǔ)上進行

65、了進一步的濃縮,因此本系統(tǒng)的FAT FS文件系統(tǒng)更加簡潔、實用。主要的文件操作程序包括以下幾個方面:</p><p>  FRESULT pf_open (const char*); //打開文件</p><p>  FRESULT pf_read (void*, WORD, WORD*); //對文件進行讀取操作&l

66、t;/p><p>  FRESULT pf_write (const void*, WORD, WORD*); //對文件進行寫操作</p><p>  FRESULT pf_lseek (DWORD); //按指定地址讀取文件數(shù)據(jù)</p><p>  3.3圖像文件解碼設(shè)計</p><p>  圖像文件

67、有多種存儲格式,比如BMP、JPG、GIF等等,要顯示一幅完整的圖片,必須要了解格式以及結(jié)構(gòu)?;旧蠄D像都有一個文件頭,通過文件頭,可以了解到有效的圖像信息,再運用相應(yīng)的解碼方法,就可以獲得真正的圖像像素數(shù)據(jù)。本課題主要實現(xiàn)對BMP格式圖像文件的解碼。</p><p>  3.3.1 BMP圖像解碼</p><p>  (1) BMP圖像文件簡介</p><p> 

68、 BMP圖像文件是位圖文件,位圖表示的是將一幅圖像分割成柵格,柵格的每一點稱為像素,每一個像素具有自己的RGB值,即一幅圖像是由一系列像素點構(gòu)成的點陣[11]。對于BMP的解碼主要是提取BMP文件中的像素數(shù)據(jù),即RGB值。</p><p>  BMP文件一般由4個部分組成:文件頭、文件信息頭、調(diào)色板以及像素數(shù)據(jù)。其中文件頭主要包含了圖像的大小、寬度、高度以及位面數(shù)等等;文件信息頭主要包含了每個像素的位數(shù)、水平分辨

69、率、垂直分辨率、位圖使用的顏色索引數(shù)以及有無調(diào)色板項等。調(diào)色板即調(diào)色板規(guī)范,保存有具體的顏色信息,用以描述RGB的值[12]。</p><p>  BMP還支持多種色系,一般有雙色位圖、8色位圖、16色位圖、16位增強色位圖、24位真彩色位圖以及32位真彩色位圖等等[13]。而每種色系的像素所占字節(jié)數(shù)又不相同,例如對于8位位圖,每個字節(jié)代表一個像素;而對于16位位圖,每兩個字節(jié)代表一個像素。</p>

70、<p>  (2) BMP圖像軟件解碼</p><p>  由于一般的BMP圖像并沒有經(jīng)過壓縮處理,因此在解碼時,只需要取出圖像文件中相應(yīng)的像素數(shù)據(jù)即可。</p><p>  a) BMP文件頭讀取</p><p>  在獲取像素數(shù)據(jù)之前,首先要通過讀取文件頭,了解BMP圖像的基本信息,為便于軟件模擬解碼,所要獲取的信息主要包括以下幾個方面:</p

71、><p>  extern DWORD PicDataOffSet; //圖像文件大小</p><p>  extern DWORD PicWidth; //圖像寬度</p><p>  extern DWORD PicHeight; //圖像高度</p&

72、gt;<p>  extern BYTE BitsPerPixel; //從文件開始到像素數(shù)據(jù)之間的偏移量</p><p>  extern Char BitCount; //每個像素所占位數(shù)</p><p>  其中BitCount在BMP文件中可以有1位、2位以及3位等多種可能。目前常用BMP圖

73、像文件中,24位真彩色色系比較流行,即3個字節(jié)代表一個像素點[13],本課題也將著重對這類圖像進行解碼。</p><p>  b) 獲取BMP圖像RGB數(shù)據(jù)</p><p>  一般的BMP像素數(shù)據(jù)三原色不是以RGB排列,而是以BGR的順序進行組合,因此在獲得像素數(shù)據(jù)之后,還必須將BGR像素數(shù)據(jù)轉(zhuǎn)化為RGB像素數(shù)據(jù),再將新數(shù)據(jù)發(fā)送到顯示屏。</p><p>  Un

74、signed char BMP_BGR_to_RGB(unsigned char *c) //將BGR轉(zhuǎn)換成RGB</p><p><b>  {</b></p><p><b>  U16 i;</b></p><p>  U8 C1, C2;</p><p>  for(i=0;i

75、<160;i++)</p><p><b>  {</b></p><p>  C1=c[i*3]; //B部分數(shù)據(jù)</p><p>  C2=c[i*3+2]; //R部分數(shù)據(jù)</p><p>

76、  c[i*3]=C2; </p><p>  c[i*3+2]=C1;</p><p><b>  }</b></p><p>  return *c ;</p><p><b>  }</b></p><p>

77、;  3.4圖像文件顯示設(shè)計</p><p>  3.4.1液晶彩屏初始化</p><p>  液晶彩屏的初始化過程主要包括彩屏的驅(qū)動以及必要的顯示模式設(shè)定。</p><p><b>  (1) 彩屏的驅(qū)動</b></p><p>  相對于SD卡的程序驅(qū)動,彩屏的驅(qū)動比較復(fù)雜。首先需要設(shè)定背光、片選、復(fù)位以及數(shù)據(jù)端口等

78、:</p><p>  #define LCD_BLEN_1LCD_BLEN=1; //開啟背光</p><p>  #define LCD_nRST_1LCD_nRST=1; //復(fù)位置1</p><p>  #define LCD_nCS_0 LCD_nCS=0;

79、 //拉低片選信號</p><p>  #define LCD_Dat_Rd P0; //數(shù)據(jù)端口設(shè)定為P0口</p><p>  其次,設(shè)置好液晶彩屏各參數(shù)之后還需要寫入各種命令,以驅(qū)動彩屏內(nèi)部各個模塊,包括初始化順序設(shè)定、設(shè)定讀寫區(qū)域以及面板控制等等。</p><p>  (2) 顯示模式設(shè)定</p>

80、<p>  BMP圖像中存儲的數(shù)據(jù)是從左下角開始存儲的,到右上角結(jié)束,也就是最后一行是正常的第一行,倒數(shù)第二行是正常的第二行。因此在顯示圖像時,必須對圖像進行翻轉(zhuǎn)處理[14]。</p><p>  Void LCD_SetGramPoit(WORD StartX,WORD StartY,BYTE HMode,BYTE VMode)</p><p><b>  {<

81、;/b></p><p>  WORD Temp;</p><p>  if(HMode==0)</p><p><b>  {</b></p><p>  if(VMode==0)</p><p>  Temp=0x1030;</p><p><b>  

82、else</b></p><p>  Temp=0x1010;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if(VMode==0)<

83、/p><p>  Temp=0x1020;</p><p><b>  else</b></p><p>  Temp=0x1000;</p><p><b>  }</b></p><p>  LCD_WrCmdDat(0x0003,Temp); //設(shè)定數(shù)據(jù)寫

84、入范圍</p><p>  LCD_WrCmdDat(0x0020,StartX); //設(shè)定寫入數(shù)據(jù)的水平地址</p><p>  LCD_WrCmdDat(0x0021,StartY); //設(shè)定寫入數(shù)據(jù)的垂直地址</p><p><b>  }</b></p><p>  當(dāng)HMode=

85、0時水平從左至右寫入,HMode=1時水平從右至左寫入;當(dāng)VMode=0時水平從上至下寫入,VMode=1時水平從下至上寫入。</p><p>  3.4.2彩屏點陣顯示設(shè)計</p><p>  (1) BMP三原色系轉(zhuǎn)化</p><p>  彩屏支持16位彩色顯示,顯示一般的16位色系BMP文件并不困難,不過對于24位真彩色色系的圖像文件卻無法正常顯示。因此在顯示

86、圖像之前,還需要將24位的BMP圖像轉(zhuǎn)化成能讓彩屏播放的16位彩色圖像。</p><p>  for(i=0;i<BMPBUFLEN;i=i+3)</p><p><b>  {</b></p><p>  Color=buff[i+2]>>3; </p><p>  C

87、olor=(Color<<6)|(buff[i+1]>>2); </p><p>  Color=(Color<<5)|(buff[i]>>3); </p><p><b>  }</b></p><p>  24位真彩色圖像3個字節(jié)(分別為R、G、B)代表一個像素,而16位

88、圖像則是兩個字節(jié)代表一個像素[15]。要實現(xiàn)兩者間的轉(zhuǎn)化,首先要先將R比特位右移3位,再左移3位,再與右移5位的G比特位相或,作為16位圖像的第一個字節(jié);然后B比特位右移3位,將G比特位左移兩位,再右移5位,之后兩者再相或,其結(jié)果作為16位圖像的第二個字節(jié)。</p><p>  (2) 點陣顯示模式設(shè)定</p><p>  彩屏的點陣顯示原理就是將像素點送往指定的區(qū)域,依次畫點顯示。所以在

89、顯示圖像之前,需要規(guī)定好顯示的區(qū)域以及像素點寫入的方式等等。具體應(yīng)用程序包括以下幾個方面:</p><p>  void LCDDrawRectangleP( ) ; //畫矩形框,設(shè)定圖像顯示區(qū)域</p><p>  void LCDSetWriteArea( ) ; //設(shè)定像素寫入?yún)^(qū)域</p><p&

90、gt;  void LCDClearScreen( ) ; //清屏</p><p>  void LCD_WrDat( ); // 寫入像素數(shù)據(jù)</p><p>  當(dāng)彩屏收到單片機發(fā)送的圖像基本信息之后,開始進行清屏并設(shè)定圖像顯示區(qū)域;在接收原始圖像數(shù)據(jù)時,邊接收邊進行24位色系到16位色系的轉(zhuǎn)化,每成功轉(zhuǎn)

91、化一個像素點,立即送往指定的畫圖區(qū)域,顯示圖像。具體流程如圖3.6所示。</p><p>  圖 3.6 點陣顯示設(shè)計流程圖</p><p><b>  3.5控制模塊</b></p><p>  3.51 定時器初始化</p><p>  與普通單片機一樣,STC12C5A60S3系列單片機內(nèi)部設(shè)置有定時器0和定時器1

92、兩個16位定時器。定時器有兩種工作方式:計數(shù)方式和定時方式。根據(jù)計數(shù)脈沖的來源不同,如果計數(shù)脈沖來自系統(tǒng)時鐘,則為定時方式,此時,每一個時鐘得到一個計數(shù)脈沖,計數(shù)值加1;如果計數(shù)脈沖來自外部引腳,則為計數(shù)方式,此時每來一個脈沖加1。本系統(tǒng)采用定時方式,由內(nèi)部系統(tǒng)時鐘提供脈沖,啟用定時器0,具體參數(shù)設(shè)置如下所示:</p><p>  void TimerInit(void) </p><p>

93、;<b>  {</b></p><p>  ET0 = 0; //關(guān)閉定時器0中斷</p><p>  TH0 = 56; //設(shè)定定時器0的初值</p><p>  TMOD= TMOD&0xF0;</p><p&g

94、t;  TMOD= TMOD|0x02; // 設(shè)定定時器0為定時功能,工作方式為8位自動重裝定時器</p><p>  TR0 = 1; // 啟動定時器0</p><p>  PT0 = 0; // 設(shè)定定時器0中斷控制位為低優(yōu)先級</p><p

95、>  ET0 = 1; // 啟動定時器0中斷 </p><p><b>  }</b></p><p>  3.5.2按鍵程序設(shè)計</p><p>  為便于控制圖像顯示的功能,本系統(tǒng)加入了按鍵模塊。按鍵程序的設(shè)計主要包括按鍵初始化、延時程序以及按鍵值獲取。</p&g

96、t;<p><b>  (1) 按鍵初始化</b></p><p>  本系統(tǒng)中只采用4個按鍵,即Key1~Key4,并采用簡單的直連模式,當(dāng)按鍵按下時,輸出低電平。因此在初始化程序中,只需統(tǒng)一將4個按鍵值置高電平,即可完成初始化。</p><p>  void KbdInit(void) </p><p><b>  

97、{</b></p><p>  KEY=KEY|0x0F; //按鍵值全部置1</p><p>  OldKey=KEY;</p><p><b>  }</b></p><p><b>  (2) 延時程序</b></p>

98、<p>  延時程序的設(shè)計為其他各個模塊程序的執(zhí)行帶來了緩沖時間。本系統(tǒng)中的延時可分為1ms、10ms和100ms。</p><p>  void Delay1ms (BYTE B_Value); //延時1ms</p><p>  void Delay10ms (BYTE B_Value); //延時10ms&l

99、t;/p><p>  void Delay100ms (BYTE B_Value); //延時100ms</p><p><b>  (3) 按鍵值獲取</b></p><p>  按鍵值的獲取主要通過與初始化中所設(shè)定的按鍵值進行位相與操作,得到改變的按鍵值,從而判斷哪個按鍵按下。當(dāng)然在獲取過程中,必須添加一定的延時以防

100、止抖動以及重復(fù)按鍵時間過長帶來的偏差。</p><p>  BYTE KbdGetKey(void) </p><p><b>  {</b></p><p><b>  BYTE key;</b></p><p>  key=KEY&0x0F;</p><p>  

101、OldKey=key;</p><p>  if(OldKey==key) //進行延時,保證重復(fù)鍵有一定的時間間隔</p><p><b>  {</b></p><p>  if(TimerCheck(2)!=TIMER_TMO)</p><p>  return KEYMAX;</

102、p><p><b>  }</b></p><p>  if((key&0x01)==0) //對P3.0上的按鍵進行檢測</p><p><b>  {</b></p><p>  Delay1ms(30); //30ms防抖動</p&

103、gt;<p><b>  key=KEY;</b></p><p>  if((key&0x01)==0)</p><p><b>  {</b></p><p>  TimerStart(2, 15); </p><p>  return KEY1;</p>&

104、lt;p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  第4章 制作成果展示及分析</p><p>  4.1 數(shù)碼相框硬件制作成果及分析</p><p>  圖 4.1

105、 數(shù)碼相框硬件制作成果圖</p><p>  如圖4.1所示,該數(shù)碼相框制作所選用的硬件器材相對較少,主硬件器材只有單片機、SD卡,串口以及液晶彩屏。因為采用軟件解碼圖像文件,因此縮減了不必要硬件解碼器,同時所有硬件模塊都采用了比較簡單但又滿足正常工作要求的外圍電路設(shè)計,這樣極大地縮減了成本,制作起來也相對容易。</p><p>  4.2 圖像顯示結(jié)果及分析</p><

106、;p>  本課題主要針對BMP圖像進行解碼顯示。如圖4.2所示,上面一張為原BMP圖像,24位真彩色,分辨率為320x240,底下一張為解碼后顯示在液晶彩屏上的BMP圖像。通過比較,液晶彩屏顯示的圖片畫面清晰,色澤良好,基本無失真。達到了圖像畫質(zhì)的基本標(biāo)準(zhǔn)。</p><p><b>  原BMP圖像</b></p><p><b>  解碼后BMP圖像

107、</b></p><p>  圖4.2 BMP圖像解碼前后對比圖</p><p>  當(dāng)然,除了圖像顯示的畫面效果,圖像顯示的速度也是重要的評判標(biāo)準(zhǔn)。不過由于該系統(tǒng)本身就有一些性能限制,比如在讀大文件時,由于單片機的RAM容量限制,一次最多只能對1個扇區(qū)(512字節(jié))進行讀取,因此在頻繁讀取的過程中,降低了圖像顯示的速度。但是從結(jié)果來看,畫面顯示的速度還是比較適中,處于人眼所能

108、接受的范圍之內(nèi),大約5秒鐘就能完整顯示一幅滿屏圖片。</p><p>  從整個顯示結(jié)果來看,總體上課題已能實現(xiàn)數(shù)碼相框的圖像顯示功能,不過由于51單片機本身的一些性能所限,特別是乘除法運算速度很慢,不能滿足對JPEG及GIF等文件解碼速度的要求,使得圖像顯示的速度受到了影響,因而對于實現(xiàn)大圖像文件比如JPG、GIF等等的解碼顯示也變得相當(dāng)局限。</p><p><b>  結(jié)論

109、</b></p><p>  目前,通過課題的研究,該數(shù)碼相框的系統(tǒng)功能都已基本實現(xiàn),其中包括實現(xiàn)了FATFS文件系統(tǒng)的移植,對SD卡內(nèi)文件的枚舉以及對符合格式要求的圖像文件實現(xiàn)自動顯示等等。同時該數(shù)碼相框已能成功播放大部分的無壓縮BMP圖像,畫面顯示速度適中,畫面效果也達到了圖像顯示的基本標(biāo)準(zhǔn)。當(dāng)然,相框中還配備了相應(yīng)的播放模式選擇功能,通過按鍵系統(tǒng),可以控制圖片進行切換顯示或者循環(huán)播放。</

110、p><p>  當(dāng)然,在功能上,該數(shù)碼相框還存在著很一些不足之處:</p><p>  (1) 目前的數(shù)碼相框只能支持一種圖像文件格式的播放,至于其他格式文件如JPG、GIF等均不能實現(xiàn)解碼顯示,依然有待擴展。</p><p>  (2) 對于大尺寸BMP圖片,該數(shù)碼相框還不能完全實現(xiàn)解碼播放,只支持低于彩屏尺寸320x240的小尺寸圖片。</p><

111、;p>  (3) 由于單片機數(shù)據(jù)存儲容量有限,造成了在讀取SD卡內(nèi)的圖像文件數(shù)據(jù)時,并不能一次性讀取大容量數(shù)據(jù),從而減緩了液晶彩屏顯示圖像的速度。因此,這也是該數(shù)碼相框的一個重要不足,同時也有待進一步優(yōu)化。</p><p>  總體上,該數(shù)碼相框的制作非常成功,無論硬件上還是軟件上都已達到了課題的基本要求,真正實現(xiàn)了制作簡單,易于實現(xiàn),成本低廉的數(shù)碼相框設(shè)計。</p><p><

112、;b>  參考文獻</b></p><p>  [1] 現(xiàn)有主流數(shù)碼相框方案解析及對比[EB/OL].http://www.liangteng.com/,2008.</p><p>  [2] Keil Software Inc.Cx51 Compiler[Z].Germany:Keil Software Inc,2001.</p><p>  [

113、3] 趙亮.單片機最小系統(tǒng)及I/O應(yīng)用[J/OL].電子制作,2008,2.</p><p>  [4] Matsushita Electric Industrial,San Disk Corporation Inc .SD Memory Card Specifications[Z].Physical layer specification,2000. </p><p>  [5] 張彬

114、杰.數(shù)碼相框也能自己做[J/OL].無線電,2009.</p><p>  [6] 蘇義鑫,程 敏,何力.基于AT89C52單片機的SD卡讀寫設(shè)計[J].世界電子元器件,2008,5.</p><p>  [7] 林倩,嚴(yán)桂林.基于STC12C5A60S2單片機的SD卡讀寫[J].電子元器件應(yīng)用,2010,4.</p><p>  [8] 張洪濤,莫文承,李兵兵.基

115、于SPI協(xié)議的SD卡讀寫機制與實現(xiàn)方法[J].電子元器件應(yīng)用,2008,3.</p><p>  [9] 洪岳煒,王百鳴,謝超英.一種易于移植和使用的文件系統(tǒng)FatFs Module[J].單片機與嵌入式系統(tǒng)應(yīng)用,2008(5).</p><p>  [10] 楊明極,陳方縣,吳學(xué)君.嵌入式系統(tǒng)中SD卡的FAT32文件系統(tǒng)的設(shè)計[J].電聲技術(shù),2010,34(4).</p>

116、<p>  [11] 賈玉珍,勒冰,劉琮,大海.BMP文件結(jié)構(gòu)的信息隱藏方法與實現(xiàn)[J].江西理工大學(xué)學(xué)報,2009,30(1).</p><p>  [12] 龔成清.RLE改進算法對BMP圖像無損壓縮的實現(xiàn)[J].現(xiàn)代計算機,2006. [13] 李偉,張利華.BMP文件解碼的研究與實現(xiàn)[J].計算機工程與設(shè)計,</p><p>  2006,27(7).</p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論