設計了一種利用STC單時鐘單片機、TFT-LCD彩屏和SD卡等器件來實現的電子相冊。相比于傳統相冊,電子相冊具有長期保存,編輯簡單等優點。本設計使用單片機硬件SPI接口實現與SD卡內存儲數據的快速傳輸,并通過分析卡中存儲的bin和bmp格式文件的數據構成來實現SD卡中特定圖片文件的解碼處理,并顯示到彩屏上,同時還可以通過按鍵控制來實現圖片的前翻后翻和自動播放。
1 引言
TFT-LCD(薄膜場效應晶體管LCD)是一種有源矩陣類型液晶顯示器(AM-LCD)[1]。TFT-LCD目前可以在亮度對比度、功耗和壽命、體積和重量等綜合性能上全面趕超CRT的顯示器件。它憑借優良的性能、大規模生產特性、高自動化程度、低廉的原材料成本、廣闊的發展空間,已成為新世紀的主流顯示產品,是21世紀全球經濟增長的一個亮點,大多數數碼產品、商用設備以及展覽館的設備中都有它的身影。
日常所見的涉及圖像顯示的案例很多都可以考慮用真彩顯示器來實現,基于這個思路,傳統的相冊也發生了新的變化。科技滲透于人們生活中的每一個角落,電子相冊的出現使得這類物品有了更加方便的展示和更多的表現方式,人們也更加趨向于使用電子相冊。電子相冊從實現手段上可以分為硬件類型和軟件類型,本設計屬于硬件類型。硬件類型的電子相冊是使用獨立的LCD顯示屏和主控芯片等元件展示數碼照片的獨立電子產品,在一些設計中還可以借助通信口外接到電視機對數碼照片進行顯示。傳統意義上的相冊和相框只能靜態地展示一張照片,而電子相冊卻可以實現多張照片的顯示,甚至可以動態的顯示照片,大大豐富了展示的內容,這便是電子相冊的魅力所在。
本設計采用TFT-LCD屏、單片機、SD卡等器件來構成電子相冊的硬件電路系統,通過軟件編程實現在液晶屏幕上自動或手動播放SD卡內的格式為bin和bmp的圖像文件。
圖1 電子相冊的電路設計框圖
2 系統硬件設計
圖2 TFT-LCD液晶顯示模塊
液晶顯示模塊電路如圖2所示。
(2) SD卡電路模塊
在SD卡電路模塊中,本文采用了SPI總線模式[2]:即使用4線制與單片機進行通信。除了該4線以及地線和電源線外,其他引腳可懸空。另外考慮到數據傳輸的安全性和穩定性,本設計在通信線上加上一組二極管來保護I/O口。在實際電路中焊接的是SD卡槽而不是SD卡本身。SD卡電路模塊如圖3所示。
(3) 電子相冊的整體電路
電子相冊的電路設計原理圖如圖4所示,主要包括電源濾波指示模塊、單片機STC12C5A60S2最小系統、下載模塊、電平轉換模塊、TFT-LCD液晶顯示模塊、SD卡電路模塊以及一些簡單的按鍵電路。
3 系統程序設計
3.1 主程序流程圖
圖3 SD卡電路模塊
圖4 系統電路原理圖
從應用層面上,開機上電后,單片機將發送指令來分別復位和初始化SD卡和彩屏,然后通過FAT32文件系統調用底層的SD卡驅動按塊讀取數據[3,4],經由單片機根據文件格式進行數據處理后再顯示到彩屏,根據按鍵的響應,執行相應的子流程。主程序流程如圖5所示。
3.2 文件處理子程序
(1) bin文件
通過Img2Lcd取模軟件對圖片進行取模,可以獲得圖片的純數據文件即bin文件。對每個像素點取16位的色彩數據,這能遵循彩屏驅動中數據讀取函數的讀取方法。bin文件讀取流程如圖6所示。從根目錄下文件的目錄項信息中可以得到文件的拓展名,由此對每個字符進行判斷,滿足條件才開始讀取。由于緩存只設為512字節,這與單片機中的RAM有關,因此每一簇需按扇區進行讀取,如果一扇區是512字節,那么一次能傳給彩屏32個像素點的數據。因此,取模獲得的bin文件是有利于本設計中電子相冊的實現。
(2) bmp文件
bmp是windows操作系統下的一種無損圖片格式,windows系統自身內部的各繪圖操作也都是以bmp為基礎,可見該圖片格式在操作系統中的地位。從數據結構上看,它由位圖文件頭、位圖信息頭、調色板和位圖數據組成[4]。在位圖文件頭中,本設計需要采用記錄在偏移量0x000A處的信息,它描述的是從文件開始到位圖數據的距離(偏移量)。此外,在0x0000處2字節的文件標識可用于判斷該文件是否是“BM”格式。
圖5 主程序流程圖
圖6 bin文件讀取流程圖
設計中考慮到彩屏的規格參數,使用的bmp圖片都要符合16位深、160×128像素這兩個條件,可以用Photoshop來生成。更細節的規定,文件位圖信息頭中偏移量0x001E的Compression的值要為0,即無壓縮算法,此時位圖沒有色彩表,每16位/像素,但這16位數據又和彩屏的顯示模式不大一樣。具體為最低5位表示B的分量,中間5位表示G的分量,再高5位表示R的分量,最高位保留為0,就是所謂的RGB555。如果直接用從SD卡中讀取的bmp圖片數據傳遞給彩屏,顯然會造成顯示顏色的偏差。通過取模獲得的純數據文件則是RGB565模式,能夠保證彩屏可以正常顯示圖片,不存在顏色顯示的偏差。因此,如果要正常顯示bmp圖片,需要在文件處理中首先進行解碼處理變成RGB565模式,具體可以采用以下方法:將原來中間5位的G擴展成6位,即左移一位后右邊補0。另外,bmp圖片的數據是按從下往上、從左往右排列的,這時圖像的高度為正數。此時,從左下角開始逐行往上掃描,一幅畫面的最后一個像素點應該是右上角。bmp文件處理流程如圖7所示。
圖7 bmp文件處理流程
結束語
參考文獻:
[1] 申智源.TFT-LCD技術:結構、原理及制造技術[M].北京:電子工業出版社,2012.
本文地址:本文地址: http://m.xznet110.com/apply/d_1ntn773r3uf84_1.html
拷貝地址上一篇:電路設計中電阻的選擇及其作用
下一篇:RFID讀寫器核心軟件設計概述
版權聲明:版權歸中國自動化網所有,轉載請注明出處!
熱詞: