信息毕业设计论文.doc

上传人:laozhun 文档编号:4020914 上传时间:2023-04-01 格式:DOC 页数:37 大小:1.88MB
返回 下载 相关 举报
信息毕业设计论文.doc_第1页
第1页 / 共37页
信息毕业设计论文.doc_第2页
第2页 / 共37页
信息毕业设计论文.doc_第3页
第3页 / 共37页
信息毕业设计论文.doc_第4页
第4页 / 共37页
信息毕业设计论文.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《信息毕业设计论文.doc》由会员分享,可在线阅读,更多相关《信息毕业设计论文.doc(37页珍藏版)》请在三一办公上搜索。

1、毕业设计(论文)题 目 数码相框的设计与实现 姓 名 学 号 30702315 专业班级 信息0704 所在学院 信息与电气工程学院 指导教师(职称) 数码相框的设计与实现【摘要】 本课题以MCS-51单片机为开发平台,针对SD卡移植一种开源的FATFS文件系统,能自动对SD卡上的文件进行枚举,并对符合格式要求的图像文件进行读取操作。本系统采用软件解码技术,实现对通用图像文件格式BMP进行解码操作,并使图像在彩色LCD显示屏上显示,同时通过按键控制图像播放模式,包括图片的切换以及循环显示。该设计方案制作成本低,硬件构成简单,易于扩展和升级,其解码功能是通过软件模拟实现,这样使系统具有良好的灵活

2、性、适应性以及实用性。【关键词】 STC12C5A60S2单片机,FAT FS文件系统,BMP软件解码,SD卡 Design and Realization of Digital Photo Frame【Abstract】Based with MCS-51 MCU Development Platform,the system transfers an open source file system named FATFS for the SD card.This file system can automatically enumerate the files of SD card and

3、achieve read operation of the image file which meets the requirements of format. 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

4、an control the image playback mode,including the switch and cycle display. With low production costs and simple hardware ,this design is easy to expand and upgrade. Also the decoding function is achieved through software simulation, so that the system has good flexibility, adaptability and practical

5、ity.【Key Words】 STC12C5A60S2 MCU,FATFS FileSystem,BMP Software decoder,SD Card 目 录第1章 绪论11.1 选题背景11.2 国内外研究现状11.3 论文主要研究内容2第2章 数码相框的硬件设计32.1 系统总体硬件设计32.2 单片机处理器模块42.2.1 单片机小系统设计42.3 SD卡模块52.3.1 SD卡接口设计电路62.4液晶彩屏显示模块62.5按键模块72.6 串口模块82.7 电源电路8第3章 数码相框的软件设计103.1软件总体设计结构103.2图像文件读取设计113.2.1 SD卡初始化123.2

6、.2 SPI数据传输133.2.3 FAT FS文件系统移植设计143.3图像文件解码设计183.3.1 BMP图像解码183.4图像文件显示设计203.4.1液晶彩屏初始化203.4.2彩屏点阵显示设计213.5控制模块233.51 定时器初始化233.5.2按键程序设计24第4章 制作成果展示及分析264.1 数码相框硬件制作成果及分析264.2 图像显示结果及分析26结论28参考文献29附录A30致谢31图目录图2.1数码相框系统硬件设计结构3图2.2单片机小系统时钟电路设计结构4图2.3单片机小系统复位电路设计5图2.4 SD卡接口设计电路6图2.5单片机与SD卡接口连接电路6图2.6

7、液晶彩屏设计电路7图2.7按键设计电路7图2.8串口设计电路8图2.9电源设计电路9图3.1主程序流程图11图3.2 SD卡初始化流程图12图3.3 SD卡图像数据读取流程14图3.4 FAT文件系统存储结构15图3.5 FAT FS读取文件流程图17图3.6点阵显示设计流程图23图4.1数码相框硬件制作成果图26图4.2 BMP图像解码前后对比图27第1章 绪论1.1 选题背景近几年来,数码相机由于具有使用简便,拍摄效果好,可立刻观赏拍摄的照片,而且拍摄过程几乎不产生任何成本等优点,已经完全取代了传统相机。而随着数码相机的普及,所拍摄的数码照片数量也越来越多。大多数人都喜欢用存储器对数码相片

8、进行保存,一是因为这些照片的打印成本要高于传统的照片,二是这些照片可以随时地放到电脑上进行修改和观赏。但是随着相片数量的增加以及对这些相片的频繁使用,人们发现只能使用电脑工具处理这些照片变得十分局限。因此,为了能够更方便的保存并观赏数码相机拍摄的照片,与之相对应的数码相框就应运而生了。数码相框就是一个相框,不过它不用放进相片的方式来展示,它可以通过读卡器的接口从SD、MMC、CF、MS卡获取相片,然后通过一个液晶屏幕显示,并且它还具有保存、回放和循环浏览相片等功能。它比普通的相框更灵活多变,也给现在日益使用的数码相片一个新的展示空间,是观看和分享数码照片的专用设备。数码相框主要由CPU操作系统

9、、存储器、解码器、显示屏和微控制器组成。它的主要工作原理是通过CPU操作系统对外部或内部存储器中的图像信息进行解码,然后通过微控制器在显示器上显示图像。1.2 国内外研究现状2003年,国内第一款自主研发的“捷硕数码相框”在沪面市。当时它可存储60幅图片,可定时、间隔、循环地以静态或动态的形式显示10英寸LCD照片,并具有放大、缩小、旋转等多种图片显示功能。相框内还含有MP3播放功能。这款数码相框的面世,为人们带来全新的数码理念。随着数字科技技术的进步,数码相框的技术发展也日趋成熟。目前在国内外,数码相框系统设计的主流方案大概有三类1:(1)采用ARM+JPEG硬件解码器作为核心处理系统,解码

10、速度快,图片显示速度比较快捷,支持MPEG1, MPEG4,;在USB接口方面,支持USB2.0 Slave和USB1.1 Host;在音频处理方面,支持mp3,wma,wav,aac,ape,flac,alac等音频播放。总体来讲其性能普遍比较全面,在静态图片处理,动态影像处理,音频处理,存储卡的支持,USB以及扩展功能上基本都做到了全覆盖,而且功耗低,图片分辨率也比较高。(2)采用单芯片处理系统,PCB板结构简单,支持JPEG,BMP,GIF以及MP3、MP4的播放。这类相框成本比较低廉,但在图片显示效果上存在的问题是对高像素图片的不支持,一般不高于600万像素。(3)采用嵌入式的构架来做

11、数码相框,采用纯硬件解码JPEG,对图像的任何编辑操作均通过硬件来实现,图像处理速度快,支持图像的像素也很高。但与第一类方案相比相比,在扩展功能方面比较单一。在国内,数码相框产品更多的是强调多功能,而国外特别是欧美的用户,对简洁、实用的产品更为青睐。比如爱国者的“双屏数码相框”研发的目标就是仅仅把数码相框的“照片展示”特性发挥到极限。事实证明,这类数码相框产品也越来越受人们喜爱,随之而然,数码相框的发展也在朝这方面不断地创新和进化。1.3 论文主要研究内容本课题设计的数码相框主要以MCS-51单片机作为控制核心,采用软件解码功能,嵌入以FATFS文件系统,实现对存储在SD卡内的图像文件进行读取

12、操作,并编写算法对通用的图像文件格式,例如BMP进行解码操作,然后通过MCS-51单片机驱动液晶显示屏,对解码后的图像进行显示。此方案的优点在于两个方面。一是制作成本低,硬件构成简单,设计方便。二是易于扩展和升级。其中的解码功能是通过软件模拟实现,这样使系统具有良好的灵活性和适应性。第2章 数码相框的硬件设计2.1 系统总体硬件设计数码相框系统硬件设计结构如图2.1所示。. MCS-51 电源电路 SD卡 按键 LCD液晶彩屏 时钟电路 复位电路 图2.1 数码相框系统硬件设计结构该硬件结构设计,主要以MCS-51单片机最小系统为核心,配备电源电路、SD卡接口电路、按键控制器、LCD液晶彩屏、

13、时钟电路以及复位电路。MCS-51单片机最小系统具有基本的晶振系统以及I/O接口,可以为各个硬件设备提供相应的时钟信号,实现复位功能以及数据的传输功能2。电源电路包含电源转换电路,设计了与SD卡、MCS-51单片机以及LCD液晶屏的连接电路,并为其提供基本的工作电压。SD卡接口电路配有SD卡座,并设计了SD卡座与单片机的连接电路。按键控制器主要完成液晶屏对图片的显示控制。2.2 单片机处理器模块本课题数码相框系统选用STC12C5A60S2系列单片机作为核心处理模块。STC12C5A60S2为单时钟/机器周期单片机,它具有高速、低功耗以及超强抗干扰等等特点。与一般的单片机结构相似,它的工作电压

14、为3.5v - 5.5v,拥有1KB的片上集成RAM以及60KB的程序存储空间,40个通用I/O口,内置复位,通用的全双工异步串行口。该单片机结构简单,功能完备,适合小型嵌入式设备移植,且拥有的存储器空间大小已能满足对于SD卡图像文件的读取需要,基本上已达到本课题数码相框系统核心处理器要求。2.2.1 单片机小系统设计除了选用STC12C5A60S2系列单片机作为核心处理模块,在硬件电路上还需要设计外围合适的电路,即单片机小系统,以此启动单片机。这部分主要的设计电路包括:(1) 时钟电路STC12C5A60S2系列单片机可以使用外部时钟,也可以靠内部振荡器提供时钟信号3。本系统采用外部24MH

15、z晶振提供时钟信号方式,将晶振连接到XTAL1和XTAL2之间,并与两个电容相连接地,如图2.2所示。图2.2 单片机小系统时钟电路设计结构(2) 复位电路本系统采用外部按键手动复位,具体结构如图2.3所示。图2.3 单片机小系统复位电路设计2.3 SD卡模块SD卡(Secure Digital Memory Card),中文名称为安全数字记忆卡。它是一种基于半导体快闪记忆器的新一代记忆设备,记忆容量高,数据传输快,且具备极大的灵活性以及很好的安全性。目前SD卡普遍运用于数码相机、MP3以及手机等多媒体数码设备。SD卡一般有两种可用的通讯协议:SD模式和SPI模式4。SD模式通常采用6线制传输

16、,即CMD、SCLK、DATA0DATA3,数据传输率高,不过传输的命令及协议相当复杂。SPI模式则一般采用4线制,即SCLK、CS、MISO、MOSI,由于在传输期间,每次只启用一条数据传输线,传输率较低,不过传输命令及协议相对SD模式简单,易于实现。SD总线模式需要单片机有相应的控制器接口,但MCS-51单片机上并不具备这些接口设备5,选用SD模式通信就要增加硬件成本,而相比之下,SPI模式可以简化主机设计,降低成本。再者虽然SPI的数据传输效率较小,但已能满足一般图像的数据传输速率要求,而且它采用4线传输,简捷方便,软硬件易于实现。因此,在本课题中,选择SPI模式是最佳的通讯方式。2.3

17、.1 SD卡接口设计电路本系统中,SD卡接口通过加载必要的外围电路与单片机相应的I/O进行连接,如图2.4所示。图2.4 SD卡接口设计电路接口SD_CS、MOSI、MISO、SCLK分别于单片机的I/O口P1.4P1.7相连。SD卡的工作电压为3.3v,而单片机的工作电压为5v,由此需要处理SD卡与单片机之间电平不匹配的问题6。不过只要在接口两端需要接入330的缓冲电阻,就可完全解决。具体设计如图2.5所示。图2.5 单片机与SD卡接口连接电路2.4液晶彩屏显示模块TFT (Thin Film Transistor)薄膜场效应晶体管是目前普遍应用于手机、电脑等数码设备屏幕的真彩色液晶屏,它具

18、有重量轻、体积小、低功耗、无辐射以及支持显示全彩色图像等特点。本系统采用的TFT液晶屏为3.5英寸的24位真彩色数字屏,分辨率为320x240,电压系统为5V。如图2.6所示,选用8位数据方式驱动,显示一个点时,采用16位RGB方式传输数据,因此只需用到8根数据线。液晶彩屏其他接口例如片选CS、复位RST等分别与单片机I/O相连,并由单片机总线同步控制。另外,对于液晶屏的背光调节,可接入1K的滑动电阻,并连接到地,通过调节电阻阻值,以达到良好的屏幕亮度。图2.6 液晶彩屏设计电路2.5按键模块为便于控制图片显示播放,相框系统中加入了按键模块,以此来作为图片播放播放功能键。本系统采用简单的直连式

19、按键,共设4个按键Key1Key4,并分别与单片机的P1.0P1.3直连。当键按下时接地,输出低电平,操作简单,易于实现。具体电路设计如图2.7所示。图2.7 按键设计电路2.6 串口模块为便于程序下载以及软硬件调试,除了设计所需硬件电路,在单片机外围电路中还加入了串口模块,方便主机对单片机进行调控。图2.8 串口设计电路与一般的8051单片机串口类似,采用MAX232作为串口的主芯片。在选择异步通信方式(UART)下,主机通过TX_PC线路向MAX232发送命令,再由RXD(P3.0)串行数据输入端传送到单片机中;同样也可由单片机通过TXD(P3.1)串行数据发送端发送信号到MAX232,再

20、有RX_PC线路送给主机。2.7 电源电路在本系统中,由于各个硬件部分的工作电压各不相同,比如SD卡需要3.3v工作电压,而单片机及液晶彩屏则需要5v工作电压,因此在主系统中还需要设计统一的电源电路,方便给各部分硬件提供工作电压。图2.9 电源设计电路在一般单片机外围电路中,LM1117系列电源适配器经常被选用,它具有稳定性好、输出电压精度高、漏失电压小等特点。在本系统中,采用了5v转3.3v的电源适配器,这样有效简化了电源电路设计,同时也解决了各个部件工作电压不统一的问题。第3章 数码相框的软件设计3.1软件总体设计结构整个数码相框的软件系统按功能可以分为4个模块:图像文件读取、图像信息解码

21、、图像文件显示以及控制模块。主函数调用了各个模块程序,实现了各个模块的初始化过程以及接口配置,同时也规划了程序的流程安排,如图3.1所示。开始 各模块初始化 读取SD卡内文件 读取图像数据 显示图片 是否有文件 结束 扫描键盘判断是否有按键按下 读取下一个文件 是 否 是 否 对图像数据进行解码 图3.1 主程序流程图3.2图像文件读取设计图像文件的读取主要包括3个部分,即SD卡的初始化、SPI数据传输以及FAT FS文件系统的移植。在整个程序设计中,单片机运用FAT FS文件系统实现对SD卡内文件的读取,同时通过SPI数据传输协议传输图像数据。3.2.1 SD卡初始化SD卡与单片机的通信都由

22、单片机控制,单片机发送命令给SD卡,接收SD卡的响应并确认SD卡的是否进入准备状态后,再进行下一步的命令操作。当然,每次单片机对SD卡的进行任何操作前都必须拉低SD卡的片选信号CS,然后再发送命令。单片机与SD卡之间的常用命令总共有19个,每个命令又会产生不同的响应。本系统中SD卡初始化主要包括SD卡的上电复位以及选择SPI通信模式。程序流程如图3.2所示。开始 发送74个时钟周期 发送复位命令(CMD0) 进入SPI总线模式 接受SD卡响应 响应是否为0? 发送激活命令(CMD1) 是 结束 否 图3.2 SD卡初始化流程图在接收到SD卡插入后的响应后,单片机会先给SD卡发送74个时钟周期,

23、以完成SD卡的上电过程,之后再发送复位命令(CMD0)7。如果此时的片选信号CS为低电平,那么SD卡将进入SPI总线模式,否则SD卡将一直保持SD总线模式。进入SPI模式后,单片机会。向SD卡发送激活命令(CMD1)。如果接收到的响应为0,则表示SD卡已完成了初始化过程,处于空闲状态,等待单片机的下一个命令,否则单片机将继续发送命令直到响应为0。3.2.2 SPI数据传输STC12C5A60S2系列单片机提供了一种高速串行通信接口,即SPI接口。它是一种全双工、高速、同步的通信总线,与之相关的特殊功能的寄存器主要有:控制寄存器SPCTL、状态寄存器SPSTAT以及数据寄存器SPDAT。(1)

24、控制寄存器SPCTL:SPI的使能控制端,确定单片机为主机还是从机,决定高低字节数据的传输优先顺序以及选择SPI的时钟频率。(2) 状态寄存器SPSTAT:用来判断SPI数据是否传输完成以及检测是否对数据寄存器SPDAT进行写操作。(3) 数据寄存器SPDAT:传输的数据位Bit7Bit0。在使用SPI通信接口时,需要对三个寄存器进行相应的初值设定,以达到SPI的初始化效果:sfr SPCTL = 0xCE; /启动SPI传输,确定单片机为主机,高位字节数据优先发送,SPI时钟频率设定为主机的1/64sfr SPSTAT = 0xCD; /默认标志位为“1”sfr SPDAT = 0xCF;

25、/默认传输数据位为0xcfSD卡在SPI模式下可以选择单块和多块读操作8。选择单块读操作时,所读的数据块一般都固定为512字节;选择多块读操作时,可以指定的位置开始读数据,一直读到接收到单片机发送的停止读数据的命令。考虑到图像数据的读取要具有灵活性,便于系统程序调试,本系统采用多块读操作方式,具体操作流程如图3.3所示。开始 SD卡初始化 发送写命令(CMD17) 响应是否=0xfe? 接收两个字节CRC 接收指定数据块 是 结束 否 图3.3 SD卡图像数据读取流程3.2.3 FAT FS文件系统移植设计文件的读取,是属于文件系统的管理功能。因此要实现对SD卡内文件的读取,就需要在单片机中移

26、植入一种SD卡所支持的文件系统,进而通过文件系统向SD卡发送命令读取图片文件。(1) FAT FS文件系统简介FATFS是一种完全免费开源的FAT文件系统模块,专门为小型的嵌入式系统而设计9,它具有一般文件系统所能实现的基本功能,包括打开/关闭文件以及对文件进行读写操作等等。它完全用标准C语言编写,很适合移植到单片机上;它支持多个存储媒介,有独立的缓冲区,可以对多个文件进行读/写操作。其中也有一个简化的版本TinyFatFs。该版本与FATFS的完全版用法一样,不过因为它缩减了一般小型嵌入式系统所用不到的系统程序,只提供用户一般所需要的几个接口函数,所以所需编写的代码量相对较少;而且它占用的内

27、存低,只要1KB RAM,仅支持一个存储媒介,对于单片机而言,比较容易实现。因此,对于文件系统的移植,TinyFatFs是个相当不错的选择。(2) FAT文件系统的结构原理FAT文件系统在磁盘中的存储结构如下图3.4所示。所有部分连续存放,中间没有间隔部分,所以通过计算根据上一部分存储的结束地址可以得到下一部分开始的位置。图3.4 FAT文件系统存储结构a) 引导扇区引导扇区是文件系统操作的引导记录区,它包括了跳转指令、厂商标志、OS版本号、BPB参数块、引导扇区代码以及结束标志等等。其中BPB参数块更是包含了很多文件结构信息,比如每扇区字节数、每簇扇区数、FAT表所占的扇区数、根目录簇号、根

28、目录项数以及总扇区数等等。所有文件操作系统都必须通过引导扇区的引导记录才能实现对文件的操作。b) FAT文件表FAT文件表是用来给每个文件分配磁盘物理空间的数据结构,并记录数据区簇链结构。FAT文件系统最小的存储单位为扇区,一般每个扇区为512个字节。而簇则是FAT分配文件存储空间的最小单位,它的大小通常为2n个扇区,但实际大小是BPB信息中每簇扇区数与每扇区字节数的乘积大小。当创建文件时,即使文件大小只有一个字节,操作系统也会分配一个最小单元给它,即一个簇。每个文件都同表中的若干项相对应,并在目录中进行索引10。因此通过FAT表,可以了解到整个磁盘中所有文件的存储信息。c) 目录项在根目录下

29、,所有文件都有一个与之相对应的目录项。目录项包含了文件开始的簇号,文件的创建时间以及文件的大小等。因此在读取文件时,可以先从目录项中了解文件的基本信息,在配合FAT文件表准确定位文件存放地址。(3) FAT FS文件系统的移植方法文件系统本身就具有各种文件操作功能,比如打开/关闭文件、读取文件以及写文件等等,而且它的对象仅仅是文件本身而已。因而移植FATFS文件系统的方法主要是将文件系统操作的对象设定为SD卡内的文件,并且只对SD卡内的文件进行操作。为此,在移植过程中,只需要在原有的FATFS文件系统操作程序中移植入SD卡文件的操作程序即可。主要的操作程序包括以下三个方面:DSTATUS di

30、sk_initialize (void); /初始化SD卡DRESULT disk_readp(); /读指定扇区DRESULT disk_writep (BYTE* buff,DWORD sector); /写指定扇区(4) FAT FS文件系统的读取过程在根目录下,读取文件的主要流程如图3.5所示。主要分为以下几个步骤:开始 根目录查找 是否有文件? 文件起始簇号 读取指定的所有簇 文件读取完成 查找FAT表按簇序找到所有簇 结束 否 是 图3.5 FAT FS读取文件流程图a) FAT FS文件数据结构类似于FAT引导扇区中BPB信息结构,FAT FS文件也有设定相应的文件数据结构,以便

31、于文件操作程序的简化,达到开源的目的。typedef struct _FATFS_ BYTEfs_type; /文件类型BYTEcsize; /每一簇的扇区数BYTEflag; /文件标志位BYTEcsect; /文件扇区地址WORDn_rootdir; /根目录项数BYTE*buf; /数据存储缓冲区指针CLUSTmax_clust; /最大簇DWORDfatbase; /FAT文件表起始扇区号DWORDdirbase; /很目录起始扇区号DWORDdatabase; /数据起始扇区号DWORDfptr; /文件名指针DWORDfsize; /文件大小CLUSTorg_clust; /文件起

32、始簇号CLUSTcurr_clust; /文件当前簇DWORDdsect; /文件当前数据扇区 FATFS;b) FAT FS文件操作程序设计本系统中的FAT FS是一种开源的文件系统,与其他FAT16、FAT32文件系统相比,它省去了很多一般所不用的文件操作程序,而且配合本课题的要求,在已经简化的FAT FS文件系统基础上进行了进一步的浓缩,因此本系统的FAT FS文件系统更加简洁、实用。主要的文件操作程序包括以下几个方面:FRESULT pf_open (const char*); /打开文件FRESULT pf_read (void*, WORD, WORD*); /对文件进行读取操作F

33、RESULT pf_write (const void*, WORD, WORD*); /对文件进行写操作FRESULT pf_lseek (DWORD); /按指定地址读取文件数据3.3图像文件解码设计图像文件有多种存储格式,比如BMP、JPG、GIF等等,要显示一幅完整的图片,必须要了解格式以及结构。基本上图像都有一个文件头,通过文件头,可以了解到有效的图像信息,再运用相应的解码方法,就可以获得真正的图像像素数据。本课题主要实现对BMP格式图像文件的解码。3.3.1 BMP图像解码(1) BMP图像文件简介BMP图像文件是位图文件,位图表示的是将一幅图像分割成栅格,栅格的每一点称为像素,每

34、一个像素具有自己的RGB值,即一幅图像是由一系列像素点构成的点阵11。对于BMP的解码主要是提取BMP文件中的像素数据,即RGB值。BMP文件一般由4个部分组成:文件头、文件信息头、调色板以及像素数据。其中文件头主要包含了图像的大小、宽度、高度以及位面数等等;文件信息头主要包含了每个像素的位数、水平分辨率、垂直分辨率、位图使用的颜色索引数以及有无调色板项等。调色板即调色板规范,保存有具体的颜色信息,用以描述RGB的值12。BMP还支持多种色系,一般有双色位图、8色位图、16色位图、16位增强色位图、24位真彩色位图以及32位真彩色位图等等13。而每种色系的像素所占字节数又不相同,例如对于8位位

35、图,每个字节代表一个像素;而对于16位位图,每两个字节代表一个像素。(2) BMP图像软件解码由于一般的BMP图像并没有经过压缩处理,因此在解码时,只需要取出图像文件中相应的像素数据即可。a) BMP文件头读取在获取像素数据之前,首先要通过读取文件头,了解BMP图像的基本信息,为便于软件模拟解码,所要获取的信息主要包括以下几个方面:extern DWORD PicDataOffSet; /图像文件大小extern DWORD PicWidth; /图像宽度extern DWORD PicHeight; /图像高度extern BYTE BitsPerPixel; /从文件开始到像素数据之间的偏

36、移量extern Char BitCount; /每个像素所占位数其中BitCount在BMP文件中可以有1位、2位以及3位等多种可能。目前常用BMP图像文件中,24位真彩色色系比较流行,即3个字节代表一个像素点13,本课题也将着重对这类图像进行解码。b) 获取BMP图像RGB数据一般的BMP像素数据三原色不是以RGB排列,而是以BGR的顺序进行组合,因此在获得像素数据之后,还必须将BGR像素数据转化为RGB像素数据,再将新数据发送到显示屏。Unsigned char BMP_BGR_to_RGB(unsigned char *c) /将BGR转换成RGB U16 i; U8 C1, C2;

37、for(i=0;i160;i+) C1=ci*3; /B部分数据 C2=ci*3+2; /R部分数据 ci*3=C2; ci*3+2=C1; return *c ;3.4图像文件显示设计3.4.1液晶彩屏初始化液晶彩屏的初始化过程主要包括彩屏的驱动以及必要的显示模式设定。(1) 彩屏的驱动相对于SD卡的程序驱动,彩屏的驱动比较复杂。首先需要设定背光、片选、复位以及数据端口等:#define LCD_BLEN_1LCD_BLEN=1; /开启背光#define LCD_nRST_1LCD_nRST=1; /复位置1#define LCD_nCS_0 LCD_nCS=0; /拉低片选信号#defi

38、ne LCD_Dat_Rd P0; /数据端口设定为P0口 其次,设置好液晶彩屏各参数之后还需要写入各种命令,以驱动彩屏内部各个模块,包括初始化顺序设定、设定读写区域以及面板控制等等。(2) 显示模式设定BMP图像中存储的数据是从左下角开始存储的,到右上角结束,也就是最后一行是正常的第一行,倒数第二行是正常的第二行。因此在显示图像时,必须对图像进行翻转处理14。Void LCD_SetGramPoit(WORD StartX,WORD StartY,BYTE HMode,BYTE VMode)WORD Temp;if(HMode=0) if(VMode=0) Temp=0x1030; else

39、 Temp=0x1010; else if(VMode=0) Temp=0x1020; else Temp=0x1000; LCD_WrCmdDat(0x0003,Temp); /设定数据写入范围LCD_WrCmdDat(0x0020,StartX); /设定写入数据的水平地址 LCD_WrCmdDat(0x0021,StartY); /设定写入数据的垂直地址当HMode=0时水平从左至右写入,HMode=1时水平从右至左写入;当VMode=0时水平从上至下写入,VMode=1时水平从下至上写入。3.4.2彩屏点阵显示设计(1) BMP三原色系转化彩屏支持16位彩色显示,显示一般的16位色系B

40、MP文件并不困难,不过对于24位真彩色色系的图像文件却无法正常显示。因此在显示图像之前,还需要将24位的BMP图像转化成能让彩屏播放的16位彩色图像。for(i=0;i3; Color=(Color2); Color=(Color3); 24位真彩色图像3个字节(分别为R、G、B)代表一个像素,而16位图像则是两个字节代表一个像素15。要实现两者间的转化,首先要先将R比特位右移3位,再左移3位,再与右移5位的G比特位相或,作为16位图像的第一个字节;然后B比特位右移3位,将G比特位左移两位,再右移5位,之后两者再相或,其结果作为16位图像的第二个字节。(2) 点阵显示模式设定彩屏的点阵显示原理

41、就是将像素点送往指定的区域,依次画点显示。所以在显示图像之前,需要规定好显示的区域以及像素点写入的方式等等。具体应用程序包括以下几个方面:void LCDDrawRectangleP( ) ; /画矩形框,设定图像显示区域void LCDSetWriteArea( ) ; /设定像素写入区域void LCDClearScreen( ) ; /清屏void LCD_WrDat( ); / 写入像素数据当彩屏收到单片机发送的图像基本信息之后,开始进行清屏并设定图像显示区域;在接收原始图像数据时,边接收边进行24位色系到16位色系的转化,每成功转化一个像素点,立即送往指定的画图区域,显示图像。具体流

42、程如图3.6所示。开始 清屏 设定显示区域 接收原始图像数据 在指定区域写入像素数据 数据接收是否已完毕 ? 16位色系数据转化 结束 否 是 图 3.6 点阵显示设计流程图3.5控制模块3.51 定时器初始化与普通单片机一样,STC12C5A60S3系列单片机内部设置有定时器0和定时器1两个16位定时器。定时器有两种工作方式:计数方式和定时方式。根据计数脉冲的来源不同,如果计数脉冲来自系统时钟,则为定时方式,此时,每一个时钟得到一个计数脉冲,计数值加1;如果计数脉冲来自外部引脚,则为计数方式,此时每来一个脉冲加1。本系统采用定时方式,由内部系统时钟提供脉冲,启用定时器0,具体参数设置如下所示:void TimerInit(void) ET0 = 0; /关闭定时器0中断 TH0 = 56

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号