張焱+解鵬飛+冉春秋+王萬雷+汪語哲
摘 要:文章介紹了家用小型電子相冊的設(shè)計和制作。采用51單片機(jī)作為控制核心,SD卡作為圖像存儲設(shè)備,TFT彩屏作為顯示。使用單片機(jī)SPI接口控制SD卡的讀寫,并通過分析卡中存儲的.bin格式文件的數(shù)據(jù)構(gòu)成來實(shí)現(xiàn)SD卡中特定圖片文件的解碼處理,驅(qū)動LCD液晶屏的顯示;同時還可以通過按鍵控制實(shí)現(xiàn)圖片的前后翻和自動播放,體積小、成本低,有傳統(tǒng)紙質(zhì)相冊無法比擬的優(yōu)點(diǎn),使照片的瀏覽更加生動。
關(guān)鍵詞:51單片機(jī);TFT彩屏;SD卡;電子相冊
中圖分類號:TP311.5 文獻(xiàn)標(biāo)識碼:A
Abstract:This paper introduces the design and implementation of an electronic album,which applies the 51 MCU as the core control device,the SD card as the image storage device, and the TFT color screen as the display device.The SCM SPI interface is used to control the reading and writing on the SD card.By analyzing the data structure of .bin files stored in the SD card,the specific image files on the SD card is decoded and the display of the LCD is driven.Image display and the slideshow can be implemented through the keyboard control.In general,with its characteristics of small size and low cost,the home electronic album provides users with superior experience in viewing images to the traditional paper album.
Keywords:MCS-51;TFT color screen;SD card;electronic album
1 引言(Introduction)
電子相冊繼承了傳統(tǒng)相片的溫情和數(shù)碼的時尚,給人類的生活帶來了無窮的樂趣,在目前的家居生活中已經(jīng)得到一定程度的普及,是目前最受歡迎的個性化數(shù)碼產(chǎn)品之一。目前市場上的電子相冊普遍價格昂貴,功能雖多但不實(shí)用。因而,結(jié)合了數(shù)字電子技術(shù)、數(shù)字信號存儲技術(shù)和LCD液晶顯示技術(shù),開發(fā)一款低成本電子相冊具有潛在的市場價值。
電子相冊的成本很大程度上決定于其核心處理器的選取。盡管目前32位處理器炙手可熱,卻始終無法完全取代傳統(tǒng)的8位單片機(jī),兩者各有千秋[1]??紤]家用電子相冊的實(shí)際功能需求,選用了低成本8位大容量主控芯片STC89C54RD+作為控制核心,工業(yè)領(lǐng)域常見的有源矩陣類型液晶顯示器TFT-LCD(薄膜場效應(yīng)晶體管LCD)作為顯示設(shè)備[2],在實(shí)現(xiàn)家用電子相冊常用基本功能的同時大幅度降低了開發(fā)成本,有利于家用電子相冊的推廣和發(fā)展。
2 總體設(shè)計(Overall design)
硬件方面采用1GB的SD卡,芯片采用型號為STC89C54RD+型芯片,之所以選取STC89C54RD+是因?yàn)閿U(kuò)展RAM為1024字節(jié)[3]。使用5VDC為整個系統(tǒng)供電[4]。先制作最小系統(tǒng),然后在按照原先設(shè)計電路圖添加焊接元器件。本次設(shè)計采用自制的PCB電路板。程序設(shè)計開發(fā)使用常用的51系列開發(fā)軟件Keil4,使用C語言進(jìn)行編程。C語言作為一種高級編程語言,具有良好的結(jié)構(gòu)性和移植性,在單片機(jī)中引入C語言,可以極大地方便單片機(jī)的編程和開發(fā)[5]。使用2.4寸TFT彩屏顯示。整個軟件劃分為若干模塊,分別調(diào)試,最后集成。具體軟件模塊主要有:SD卡讀取模塊、液晶驅(qū)動模塊、主程序模塊等。綜合考慮此方案可行。整個系統(tǒng)的整體設(shè)計方案框圖如圖1所示。
3 硬件系統(tǒng)的設(shè)計(Hardware system design)
3.1 主控芯片選型及處理
使用低成本的51單片機(jī)在處理性能方面還存在一些不足,通過一些改進(jìn)已經(jīng)基本彌補(bǔ)了這些不足。第一點(diǎn):相比于16位或者32位的單片機(jī),51單片機(jī)的處理速度比較慢。因此選擇使用24MHz的晶振提高單片機(jī)的處理速度。第二點(diǎn):一張320*240分辨率的普通圖片大小一般20—30kB,編程時生成的數(shù)組大小也很可觀[6]。這就要求單片機(jī)具備足夠大的程序存儲器,還要有利于數(shù)據(jù)交換的足夠大的RAM,普通51單片機(jī)是不能勝任的。因此采用STC89C54RD+單片機(jī)作為控制器,該單片機(jī)具有較高M(jìn)CU運(yùn)行速度且價格便宜,使用廣泛,應(yīng)用簡單,功能豐富等優(yōu)點(diǎn)。第三點(diǎn):51單片機(jī)無法通過程序?qū)Ω鞣N格式的圖片進(jìn)行直接解碼處理。因此需要先將圖片轉(zhuǎn)換成二進(jìn)制文件,再對SD卡中的二進(jìn)制圖像文件進(jìn)行軟件解碼分析處理,在TFT彩屏上還原出原本的圖像。電路方面我們根據(jù)需要,極大地簡化了電路,自制的PCB電路板體積小、成本低,便于攜帶。
3.2 2.4英寸TFT-LCD顯示
彩屏模塊裸屏控制器為ILI9328,支持8位和16位兩種數(shù)據(jù)模式,屏幕大小為2.4英寸,分辨率為320*240,262k色,數(shù)據(jù)線為40針,觸摸IC使用XPT2046,可實(shí)現(xiàn)觸摸操作。因?yàn)橹皇怯?位數(shù)據(jù)接口,因此可以直接使用LCD12864的接口。
3.3 SD卡電路
SD卡(Secure Digital Memory Card)是一種基于半導(dǎo)體FLASH的新一代記憶設(shè)備,它擁有高記憶容量、快速數(shù)據(jù)傳輸率、極大的移動靈活性以及很好的安全性[7]。SD卡支持SPI、1位SD、4位SD三種傳輸模式,利用SD卡配合TFT彩屏,進(jìn)行相應(yīng)的程序控制使彩屏可顯示圖片,從而實(shí)現(xiàn)數(shù)碼相框功能。2.4寸彩屏分辨率為320*240,程序使用16bit表示一個點(diǎn)的顏色,格式為565格式。320×240×2=153600字節(jié),即150kB,所以如果完整寫一幅圖片,需要150kB的ROM容量,顯然51系列單片機(jī)是不夠的(最大內(nèi)部ROM64kB),所以需要SD卡存儲圖片。SD卡使用如下:1GB以下SD卡,格式化成FAT16格式。然后把需要顯示的圖片,大小為320*240像素,BMP或者JPEG等格式,通過Image2Lcd軟件處理成bin格式,將.bin文件存儲到SD卡中。SD卡中不要含有任何其他文件,之前必須先格式化SD卡。所使用的SD卡電路和TFT彩屏是集成在一起的,使電路更為方便,節(jié)約成本。
4 軟件系統(tǒng)的設(shè)計(Software system design)
4.1 軟件的總體設(shè)計
圖片瀏覽支持自動播放和手動播放兩種模式,開機(jī)進(jìn)入自動播放,任意按鍵按下后停止自動播放,變成按鍵控制播放,復(fù)位后又變成自動播放。具體實(shí)現(xiàn)過程在Keil4軟件中編寫C語言程序來實(shí)現(xiàn)[8]。程序總體設(shè)計流程圖如圖3所示。
4.2 讀寫SD卡子程序設(shè)計
SD卡支持兩種總線方式:SD方式和SPI方式。其中SD方式采用6線制,使用CLK、CMD、DAT0~DAT3進(jìn)行數(shù)據(jù)通信。而SPI方式采用4線制,使用CS、CLK、DATIN、DATOUT進(jìn)行數(shù)據(jù)通信。其中SD方式的數(shù)據(jù)傳輸速度比SPI要快,但是SD卡采用SD模式時,單片機(jī)要有相應(yīng)的SD模式接口,或者有相應(yīng)的SD卡控制單元,但是由于一般單片機(jī)都沒有SD模式接口,所以采用單片機(jī)對SD卡進(jìn)行讀寫時,一般都采用SPI方式。SD卡每次通信,傳輸48位,即6個字節(jié)的數(shù)據(jù)。第一個字節(jié)是命令,緊接著是4字節(jié)的參數(shù),一般用于指定SD的字節(jié)地址。最后一個字節(jié)是校驗(yàn)碼。一般,命令也就是用到0×40復(fù)位命令、0×41初始化命令、0×51讀扇區(qū)命令、0×58寫扇區(qū)命令。硬件SPI接口電平上,設(shè)置單片機(jī)的時鐘線,默認(rèn)為1,設(shè)置數(shù)據(jù)在時鐘的后沿移位。注意,在初始化階段最好設(shè)置為SPI頻率為128分頻,較低速度。等初始化完成再把分頻系統(tǒng)改為4分頻,較高速度,正常使用SD卡。SD卡讀寫程序流程圖如圖4所示。
4.3 液晶控制子程序設(shè)計
彩色液晶,只要使用帶控制器的就可以了。當(dāng)rs=0、rw上升沿跳變時,單片機(jī)P0口傳送給彩色液晶的數(shù)據(jù)命令。當(dāng)rs=1、rw上升沿跳變時,單片機(jī)P0口傳送給彩色液晶的就是普通數(shù)據(jù)了。也可以使用帶其他控制器的液晶。這些液晶控制器只要通過設(shè)置相應(yīng)的控制線,發(fā)送相應(yīng)的數(shù)據(jù)和命令,就可以很方便的使用了。整個圖片顯示流程如圖5所示。
5 產(chǎn)品展示(Results show)
美觀起見,采用3D打印機(jī)制作了一個紅色盒子作為產(chǎn)品的外殼,整個成品的照片見圖6。
6 結(jié)論(Conclusion)
文章給出了一款基于MCS-51單片機(jī)的電子相冊的設(shè)計方案,實(shí)現(xiàn)了顯示照片,自動播放,下翻和上翻功能,為降低成本起見,取消了對于家用電子相冊而言華而不實(shí)的編輯圖片等功能,今后可在技術(shù)水平和可靠性方面進(jìn)一步改進(jìn)和完善。
參考文獻(xiàn)(References)
[1] ShuQing,WangChuanjun.The Research of MCU Ultrasonic Range FinderMa[A].Proceedings of 2016 IEEE International Symposium on Computer,Consumer and Control,(IS3C 2016 V8),2016.
[2] Lee, Chia-Yen;Chiang, Ming-Chien.Aggregate Production Planning with Small Data in TFT-LCD Manufacturing[A].Automation Science and Engineering (CASE),2015 IEEE International Conference on,2015.
[3] Hu Xiaojuan,ChenTie,ZhaoNan.Research on Rail Temperature Measuring Meter Based on DS18B20 and STC12C series MCU[A].RISTI-RevistaIbericade Sistemas e Tecnologias de Informacao,2016.
[4] 朱靜宜.基于可穿戴設(shè)備智慧養(yǎng)老服務(wù)平臺的構(gòu)建[J].軟件工程,2016(01):39-41.
[5] 周嵐.淺析基于C語言的單片機(jī)技術(shù)[J].軟件工程,2016,19(5): 30-31.
[6] 陳金立,高超.基于TFT-LCD顯示屏的電子相冊設(shè)計[J].自動化技術(shù)與應(yīng)用,2013(11):67-70.
[7] 李世奇,董浩斌,李榮生.基于FatFs文件系統(tǒng)的SD卡存儲器設(shè)計[J].測控技術(shù),2011,30(12):79-81.
[8] 譚浩強(qiáng).C語言程序設(shè)計(2版)[M].北京:清華大學(xué)出版社,2005.
作者簡介:
張 焱(1996-),男,本科生.研究領(lǐng)域:通信工程專業(yè).
解鵬飛(1996-),男,本科生.研究領(lǐng)域:通信工程專業(yè).
冉春秋(1976-),男,博士,副教授.研究領(lǐng)域:復(fù)雜系統(tǒng)建模.
王萬雷(1976-),男,博士,副教授.研究領(lǐng)域:工業(yè)生產(chǎn)優(yōu)化.
汪語哲(1983-),男,博士,講師.研究領(lǐng)域:自動控制.