LPC1114的簡易數(shù)碼相框設(shè)計
2 軟件設(shè)計
2.1 TFT彩屏模塊驅(qū)動
彩屏模塊程序可以分為兩大類:一類是內(nèi)部函數(shù),主要由復(fù)位函數(shù)、寫數(shù)據(jù)函數(shù)、寫寄存囂函數(shù)、光標(biāo)設(shè)置函數(shù)、顯示窗口設(shè)置函數(shù)、清屏函數(shù)等組成,供TFT模塊內(nèi)部驅(qū)動程序調(diào)用;另一類為外部函數(shù),主要由TFT初始化、背光控制、顯示測試、寫點函數(shù)等組成,專門提供用戶應(yīng)用程序調(diào)用。
2.2 文件系統(tǒng)FatFs的移植
學(xué)習(xí)SPI總線時已經(jīng)介紹了讀/寫SD卡的方法,對于SD卡的讀寫操作都是以扇區(qū)為基本單位進行的,但是,系統(tǒng)又是如何讀取的呢?又是怎么知道文件存放在哪些扇區(qū)呢?本設(shè)計采用文件系統(tǒng)FatFs的方法對存儲器空間進行組織和分配,并對存入的文件進行保護和檢索。具體來說,也就是它負(fù)責(zé)為用戶建立文件、存入、讀出、修改、轉(zhuǎn)儲以及控制文件的存取,當(dāng)用戶不再使用的時候撤銷文件。
FatFs文件系統(tǒng)的結(jié)構(gòu)主要分為3個層;磁盤I/O操作、FatFs模塊和應(yīng)用層。前兩層分別是移植文件系統(tǒng)需要編寫的驅(qū)動函數(shù)層和文件系統(tǒng)操作層,而最后一層就是用戶操作層,當(dāng)文件系統(tǒng)移植完成后,用戶可以根據(jù)自己的需要編寫應(yīng)用程序,操作磁盤。
FatFs作為一種開源項目具有容易移植、代碼小、占用資源少、支持RTOS和多扇區(qū)讀/寫等特點,非常適合微處理器使用。要移植FatFs文件系統(tǒng),首先需要到FatFs文件系統(tǒng)的官方網(wǎng)站,下載文件系統(tǒng)源代碼。設(shè)計中使用的版本是FatFs R0.08b,具體移植步驟介紹如下:
①解壓下載的文件系統(tǒng),可以看到一共有兩個文件夾:一個是doe,包含F(xiàn)atFs的描述、特性說明等;另一個是src,可以存放所有的源代碼信息,一共有8個文件。
②在工程下新建一個文件夾,存放文件系統(tǒng)源代碼。
③把源代碼都添加到相應(yīng)的工程中,首先根據(jù)需要修改數(shù)據(jù)類型,在integer.h中修改適合的數(shù)據(jù)類型。
④配置文件系統(tǒng),可以根據(jù)字節(jié)的需要進行配置,從而減小代碼和內(nèi)存空間。
⑤打開diskio.c文件,編寫相應(yīng)的函數(shù),如初始化磁盤函數(shù)、磁盤狀態(tài)函數(shù)、讀/寫扇區(qū)函數(shù)、磁盤相關(guān)功能控制函數(shù)等。
⑥最后,需要在ff.c中添加函數(shù)get_fattime,此函數(shù)可獲取操作時間,便于在文件屬性中填寫相應(yīng)的創(chuàng)建、修改、訪問時間。
2. 3 BMP位圖顯示
BMP是Windows操作系統(tǒng)中的標(biāo)準(zhǔn)圖像文件格式,應(yīng)用非常廣泛。它采用位映射存儲格式,除了圖像深度可選擇以外,不采用其他任何壓縮,因此,BMP占用的空間很大。BMP文件的圖像深度可選擇1位、4位、8位、16位、32位等。BMP文件存儲數(shù)據(jù)時,圖像的掃描方式是按照從左到右、從下到上的順序。典型的BMP圖像文件由4部分組成,如表1所列。本文引用地址:http://2s4d.com/article/175923.htm
位圖顯示是通過函數(shù)參數(shù)傳遞文件名,通過文件名讀取文件數(shù)據(jù)。讀取位圖數(shù)據(jù)時,先讀取54字節(jié)的頭信息,再根據(jù)頭信息判斷是否為位圖圖像。如果不是位圖,直接返回不再讀取數(shù)據(jù);如果是位圖,再判斷是16位還是24位,并循環(huán)讀取數(shù)據(jù)信息,經(jīng)過數(shù)據(jù)轉(zhuǎn)換后發(fā)送到TFT進行顯示。
讀取位圖文件需要調(diào)用FatFs文件系統(tǒng)的API函數(shù),在讀取文件時需要注意以下3點:
①首先要f_mounth函數(shù)注冊工作區(qū),在文件讀取完成后,再調(diào)用這個函數(shù)來注銷工作區(qū);
②打開文件需要調(diào)用的f_open函數(shù),當(dāng)文件讀取完成后,再調(diào)用f_close函數(shù)關(guān)閉文件,所以這兩個函數(shù)必須成對出現(xiàn);
③在讀取文件時,可以由f_read函數(shù)返回的結(jié)果和次函數(shù)的讀取結(jié)果來判斷數(shù)據(jù)是否讀取完成。
2.4 系統(tǒng)整體工作流程
圖6為數(shù)碼相框軟件流程圖。系統(tǒng)上電后先按順序初始化系統(tǒng)時鐘、SSPO總線、SD卡以及TFT,之后循環(huán)掃描顯示數(shù)碼照片。代碼編寫過程中完全實現(xiàn)結(jié)構(gòu)化,只需要直接調(diào)用數(shù)碼相框,掃描顯示函數(shù)BmpFileSean()即可實現(xiàn)其功能。
結(jié)語
數(shù)碼相框是基于NXP公司推出的Cortex—M0內(nèi)核LPC1100系列ARM芯片LPC1114設(shè)計的,主要從硬件和軟件兩個方面介紹了一種簡易數(shù)碼相框的制作過程。硬件電路較為簡單,軟件方面通過FatFs文件系統(tǒng)的移植,能夠很好地完成BMP圖片的循環(huán)播放。經(jīng)試驗,LPC1114微控制器能夠穩(wěn)定地實現(xiàn)數(shù)碼相框的基本功能,實物效果如圖7所示。
對于一些特殊效果尚無法實現(xiàn),再加上除了BMP格式外,都要涉及解碼問題,而使用微處理器軟件解碼非常緩慢的。對于這些不完善的地方在后續(xù)的研究中將逐步解決。
電源濾波器相關(guān)文章:電源濾波器原理
評論