- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ARM7芯片的数码相框开发
深 圳 大 学 实 验 报 告
实验课程名称:
实验项目名称: 基于ARM7芯片的数码相框开发
学院: 计算机与软件学院 专业: 软件工程
报告人: 学号: 班级:
同组人:学号: 班级:
指导教师:
实验时间: 2009-10-12 ~ 2010-9-12
实验报告提交时间:
教务处制
实验目的与要求:
了解ARM指令集;
掌握直入键盘与矩阵键盘的原理和键盘寄存器的功能;
掌握图像处理算法;
掌握配置LCD控制器实现显示图片与文字。
使用实验箱实现数码相框的功能;
了解AXD Debugger 仿真调试的使用方法;
掌握8 段码的知识;
方法、步骤:
系统设计思路:
实验中使用的硬件设备是实验箱的LCD显示模块,LED显示模块,4*4键盘模块。
系统开始时,先显示开机图片,然后进入图片播放模式,当有按键捕获信号时,在LED上显示相应的值并进入相对应的按键中断程序。当要进行图片处理时,使用按键上一张或下一张选择要处理的图片、再按对应的图片处理按键进行图片处理。
系统流程图:
以上为整个系统简要流程图,之后各种模块实现皆是为此展开。
LCD显示图片原理:
在系统内会有一段存储空间与显示屏的像素点对应,通过改变该存储空间的内容,从而改变显示屏的内容,该存储空间被称为Frame Buffer,或显存,显示屏上的每一点都必然与Frame Buffer 里的某一位置对应,所以解决显示屏的显示问题,首先需要解决的是Frame Buffer 的大小以及屏上的每一象素与Frame Buffer 的映射关系。按照显示屏的性能或显示模式区分,显示屏可以以单色或彩色显示,我们的数码相框采用的是16位色(65536 种颜色)显示。
计算机反映自然界的颜色是通过RGB 值来表示的,如果要在屏幕某一点显示某种颜色,则必须给出响应的RGB 值,Frame Buffer 为屏幕提供显示的内容,就必须能够从Frame Buffer里得到每一个象素的RGB 值,在16 位/象素的模式下,Frame Buffer 里的每个单元16 位,每个单元代表一个象素的RGB 值,如下图显示:
FrameBufferSize的大小计算公式如下图,所以640×480,16 位/象素,单屏幕模式,Frame buffer 大小为 个字节。
我们使用image2LCD软件将图片装换成数组形式,数组开始的8个数据为图片信息,之后数组中每2个数据为一个像素点的颜色,由数组开始的8个数据得出图片大小,按顺序排列之后数据便可在LCD中显示整个图片。由于长度问题,存在高8位与低8位,所以像素点的对应RGB值为后一个数据左移8位再加上前一个数据。
LCD像素显示主要函数:
void lcd_put_pixel(int x,int y,unsigned char c)
{
long int base_addr;
base_addr = 0xa;
if(x1280 y480)//限制图片显示范围
(*((unsigned char *)(base_addr+y*1280+x))) = c;
}
4*4键盘捕获原理:
通过调用直入键盘接口和矩阵键盘、并初始化和调用键盘寄存器,实现了4*4键盘同时使用,使得系统可以通过键盘的按键来驱动8 段数码管的点亮(在此实验中,LED的点亮是为了检验按键是否正常,在日后版本中此功能可去掉)和做出相应图片处理效果。
4*4键盘的主要功能:
系统进入图片处理时,通过按键捕获进行相应的图片处理效果。同时也会显示相应的LED。(测试期间方便检验按键是否正确)
实验过程及内容:
图像处理算法:(所有效果图请见数据处理分析)
正常图片显示:(之后所有图像处理的基础)
判断图片数组前8个数据得到图片长宽后,通过LCD像素显示主要函数按顺序把图片数组数据填充到Frame Buffer中,最终LCD得以把图片显示出来。(之后各图像处理算法均通过此算法基础进行修改得来)
图片放大:
图片放大采用整数倍放大,简单来说就是原来一个像素点在放大后显示4个像素点。例如
文档评论(0)