APP下载

基于51单片机控制的家用电子相册的设计和制作

2017-05-12张焱解鹏飞冉春秋王万雷汪语哲

软件工程 2017年3期
关键词:家用液晶C语言

张焱+解鹏飞+冉春秋+王万雷+汪语哲

摘 要:文章介绍了家用小型电子相册的设计和制作。采用51单片机作为控制核心,SD卡作为图像存储设备,TFT彩屏作为显示。使用单片机SPI接口控制SD卡的读写,并通过分析卡中存储的.bin格式文件的数据构成来实现SD卡中特定图片文件的解码处理,驱动LCD液晶屏的显示;同时还可以通过按键控制实现图片的前后翻和自动播放,体积小、成本低,有传统纸质相册无法比拟的优点,使照片的浏览更加生动。

关键词:51单片机;TFT彩屏;SD卡;电子相册

中图分类号:TP311.5 文献标识码: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)

电子相册继承了传统相片的温情和数码的时尚,给人类的生活带来了无穷的乐趣,在目前的家居生活中已经得到一定程度的普及,是目前最受欢迎的个性化数码产品之一。目前市场上的电子相册普遍价格昂贵,功能虽多但不实用。因而,结合了数字电子技术、数字信号存储技术和LCD液晶显示技术,开发一款低成本电子相册具有潜在的市场价值。

电子相册的成本很大程度上决定于其核心处理器的选取。尽管目前32位处理器炙手可热,却始终无法完全取代传统的8位单片机,两者各有千秋[1]。考虑家用电子相册的实际功能需求,选用了低成本8位大容量主控芯片STC89C54RD+作为控制核心,工业领域常见的有源矩陣类型液晶显示器TFT-LCD(薄膜场效应晶体管LCD)作为显示设备[2],在实现家用电子相册常用基本功能的同时大幅度降低了开发成本,有利于家用电子相册的推广和发展。

2 总体设计(Overall design)

硬件方面采用1GB的SD卡,芯片采用型号为STC89C54RD+型芯片,之所以选取STC89C54RD+是因为扩展RAM为1024字节[3]。使用5VDC为整个系统供电[4]。先制作最小系统,然后在按照原先设计电路图添加焊接元器件。本次设计采用自制的PCB电路板。程序设计开发使用常用的51系列开发软件Keil4,使用C语言进行编程。C语言作为一种高级编程语言,具有良好的结构性和移植性,在单片机中引入C语言,可以极大地方便单片机的编程和开发[5]。使用2.4寸TFT彩屏显示。整个软件划分为若干模块,分别调试,最后集成。具体软件模块主要有:SD卡读取模块、液晶驱动模块、主程序模块等。综合考虑此方案可行。整个系统的整体设计方案框图如图1所示。

3 硬件系统的设计(Hardware system design)

3.1 主控芯片选型及处理

使用低成本的51单片机在处理性能方面还存在一些不足,通过一些改进已经基本弥补了这些不足。第一点:相比于16位或者32位的单片机,51单片机的处理速度比较慢。因此选择使用24MHz的晶振提高单片机的处理速度。第二点:一张320*240分辨率的普通图片大小一般20—30kB,编程时生成的数组大小也很可观[6]。这就要求单片机具备足够大的程序存储器,还要有利于数据交换的足够大的RAM,普通51单片机是不能胜任的。因此采用STC89C54RD+单片机作为控制器,该单片机具有较高MCU运行速度且价格便宜,使用广泛,应用简单,功能丰富等优点。第三点:51单片机无法通过程序对各种格式的图片进行直接解码处理。因此需要先将图片转换成二进制文件,再对SD卡中的二进制图像文件进行软件解码分析处理,在TFT彩屏上还原出原本的图像。电路方面我们根据需要,极大地简化了电路,自制的PCB电路板体积小、成本低,便于携带。

3.2 2.4英寸TFT-LCD显示

彩屏模块裸屏控制器为ILI9328,支持8位和16位两种数据模式,屏幕大小为2.4英寸,分辨率为320*240,262k色,数据线为40针,触摸IC使用XPT2046,可实现触摸操作。因为只是用8位数据接口,因此可以直接使用LCD12864的接口。

3.3 SD卡电路

SD卡(Secure Digital Memory Card)是一种基于半导体FLASH的新一代记忆设备,它拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性[7]。SD卡支持SPI、1位SD、4位SD三种传输模式,利用SD卡配合TFT彩屏,进行相应的程序控制使彩屏可显示图片,从而实现数码相框功能。2.4寸彩屏分辨率为320*240,程序使用16bit表示一个点的颜色,格式为565格式。320×240×2=153600字节,即150kB,所以如果完整写一幅图片,需要150kB的ROM容量,显然51系列单片机是不够的(最大内部ROM64kB),所以需要SD卡存储图片。SD卡使用如下:1GB以下SD卡,格式化成FAT16格式。然后把需要显示的图片,大小为320*240像素,BMP或者JPEG等格式,通过Image2Lcd软件处理成bin格式,将.bin文件存储到SD卡中。SD卡中不要含有任何其他文件,之前必须先格式化SD卡。所使用的SD卡电路和TFT彩屏是集成在一起的,使电路更为方便,节约成本。

4 软件系统的设计(Software system design)

4.1 软件的总体设计

图片浏览支持自动播放和手动播放两种模式,开机进入自动播放,任意按键按下后停止自动播放,变成按键控制播放,复位后又变成自动播放。具体实现过程在Keil4软件中编写C语言程序来实现[8]。程序总体设计流程图如图3所示。

4.2 读写SD卡子程序设计

SD卡支持两种总线方式:SD方式和SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3進行数据通信。而SPI方式采用4线制,使用CS、CLK、DATIN、DATOUT进行数据通信。其中SD方式的数据传输速度比SPI要快,但是SD卡采用SD模式时,单片机要有相应的SD模式接口,或者有相应的SD卡控制单元,但是由于一般单片机都没有SD模式接口,所以采用单片机对SD卡进行读写时,一般都采用SPI方式。SD卡每次通信,传输48位,即6个字节的数据。第一个字节是命令,紧接着是4字节的参数,一般用于指定SD的字节地址。最后一个字节是校验码。一般,命令也就是用到0×40复位命令、0×41初始化命令、0×51读扇区命令、0×58写扇区命令。硬件SPI接口电平上,设置单片机的时钟线,默认为1,设置数据在时钟的后沿移位。注意,在初始化阶段最好设置为SPI频率为128分频,较低速度。等初始化完成再把分频系统改为4分频,较高速度,正常使用SD卡。SD卡读写程序流程图如图4所示。

4.3 液晶控制子程序设计

彩色液晶,只要使用带控制器的就可以了。当rs=0、rw上升沿跳变时,单片机P0口传送给彩色液晶的数据命令。当rs=1、rw上升沿跳变时,单片机P0口传送给彩色液晶的就是普通数据了。也可以使用带其他控制器的液晶。这些液晶控制器只要通过设置相应的控制线,发送相应的数据和命令,就可以很方便的使用了。整个图片显示流程如图5所示。

5 产品展示(Results show)

美观起见,采用3D打印机制作了一个红色盒子作为产品的外壳,整个成品的照片见图6。

6 结论(Conclusion)

文章给出了一款基于MCS-51单片机的电子相册的设计方案,实现了显示照片,自动播放,下翻和上翻功能,为降低成本起见,取消了对于家用电子相册而言华而不实的编辑图片等功能,今后可在技术水平和可靠性方面进一步改进和完善。

参考文献(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] 朱静宜.基于可穿戴设备智慧养老服务平台的构建[J].软件工程,2016(01):39-41.

[5] 周岚.浅析基于C语言的单片机技术[J].软件工程,2016,19(5): 30-31.

[6] 陈金立,高超.基于TFT-LCD显示屏的电子相册设计[J].自动化技术与应用,2013(11):67-70.

[7] 李世奇,董浩斌,李荣生.基于FatFs文件系统的SD卡存储器设计[J].测控技术,2011,30(12):79-81.

[8] 谭浩强.C语言程序设计(2版)[M].北京:清华大学出版社,2005.

作者简介:

张 焱(1996-),男,本科生.研究领域:通信工程专业.

解鹏飞(1996-),男,本科生.研究领域:通信工程专业.

冉春秋(1976-),男,博士,副教授.研究领域:复杂系统建模.

王万雷(1976-),男,博士,副教授.研究领域:工业生产优化.

汪语哲(1983-),男,博士,讲师.研究领域:自动控制.

猜你喜欢

家用液晶C语言
不可压液晶方程组的Serrin解
《液晶与显示》征稿简则
基于Visual Studio Code的C语言程序设计实践教学探索
家用对讲机的概述
传祺GM6:家用MPV新进阶
基于C语言的计算机软件编程
关于家用电热水器的安装及使用
高职高专院校C语言程序设计教学改革探索
论子函数在C语言数据格式输出中的应用
液晶与显示2015年第30卷第1期 目录