基于ARM7芯片的数码相框开发.doc
《基于ARM7芯片的数码相框开发.doc》由会员分享,可在线阅读,更多相关《基于ARM7芯片的数码相框开发.doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、深 圳 大 学 实 验 报 告实验课程名称: 实验项目名称:基于ARM7芯片的数码相框开发 学院: 计算机与软件学院 专业: 软件工程 报告人:学号:班级: 同组人:学号:班级: 指导教师: 实验时间:2009-10-12 2010-912 实验报告提交时间:教务处制实验目的与要求:(1) 了解ARM指令集;(2) 掌握直入键盘与矩阵键盘的原理和键盘寄存器的功能;(3) 掌握图像处理算法;(4) 掌握配置LCD控制器实现显示图片与文字。(5) 使用实验箱实现数码相框的功能;(6) 了解AXD Debugger 仿真调试的使用方法;(7) 掌握8 段码的知识;方法、步骤:系统设计思路:实验中使用
2、的硬件设备是实验箱的LCD显示模块,LED显示模块,44键盘模块。系统开始时,先显示开机图片,然后进入图片播放模式,当有按键捕获信号时,在LED上显示相应的值并进入相对应的按键中断程序。当要进行图片处理时,使用按键上一张或下一张选择要处理的图片、再按对应的图片处理按键进行图片处理.系统流程图:以上为整个系统简要流程图,之后各种模块实现皆是为此展开.LCD显示图片原理:在系统内会有一段存储空间与显示屏的像素点对应,通过改变该存储空间的内容,从而改变显示屏的内容,该存储空间被称为Frame Buffer,或显存,显示屏上的每一点都必然与Frame Buffer 里的某一位置对应,所以解决显示屏的显
3、示问题,首先需要解决的是Frame Buffer 的大小以及屏上的每一象素与Frame Buffer 的映射关系。按照显示屏的性能或显示模式区分,显示屏可以以单色或彩色显示,我们的数码相框采用的是16位色(65536 种颜色)显示。计算机反映自然界的颜色是通过RGB 值来表示的,如果要在屏幕某一点显示某种颜色,则必须给出响应的RGB 值,Frame Buffer 为屏幕提供显示的内容,就必须能够从Frame Buffer里得到每一个象素的RGB 值,在16 位/象素的模式下,Frame Buffer 里的每个单元16 位,每个单元代表一个象素的RGB 值,如下图显示:FrameBufferSi
4、ze的大小计算公式如下图,所以640480,16 位/象素,单屏幕模式,Frame buffer 大小为614400 个字节。我们使用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_add
5、r = 0xa0500000; if(x1280 & y480)/限制图片显示范围 (*(unsigned char )(base_addr+y1280+x)) = c;4*4键盘捕获原理: 通过调用直入键盘接口和矩阵键盘、并初始化和调用键盘寄存器,实现了44键盘同时使用,使得系统可以通过键盘的按键来驱动8 段数码管的点亮(在此实验中,LED的点亮是为了检验按键是否正常,在日后版本中此功能可去掉)和做出相应图片处理效果.44键盘的主要功能:系统进入图片处理时,通过按键捕获进行相应的图片处理效果.同时也会显示相应的LED。(测试期间方便检验按键是否正确)实验过程及内容:图像处理算法:(所有效果图
6、请见数据处理分析)正常图片显示:(之后所有图像处理的基础) 判断图片数组前8个数据得到图片长宽后,通过LCD像素显示主要函数按顺序把图片数组数据填充到Frame Buffer中,最终LCD得以把图片显示出来。(之后各图像处理算法均通过此算法基础进行修改得来)图片放大:图片放大采用整数倍放大,简单来说就是原来一个像素点在放大后显示4个像素点。例如2倍放大时就是将每个像素点的颜色填充为以他为左上角的2*2矩形的4个像素点,此时图片长宽都增大一倍实现图像放大效果。灰度效果:灰度效果就是将图像各个像素的RGB值提取出来进行加权运算后再填充回去,便可达到灰度效果。值得注意的是,在本实验中,加权运算之前G
7、值需要右移一位(因为本实验中LCD显示的R、G、B长度分别为5、6、5,经过实验多次尝试,要得到灰度需要在加权运算中保持长度一致),加权运算后G值再左移一位,并RGB值判断是否溢出。图片镜像:镜像变换是指将指定区域的图像左右翻转地显示在屏幕。分析镜像变换过程可以发现:每行图像信息的处理方式是相同的,而且行顺序不发生变化,只是每一行的像素信息按从左到右的顺序进行了左右颠倒,从而实现了镜像变换。因此,采用按行逐点变换的方式实现图像的镜像。图片缩小:图片缩小采用整数倍缩小,简单来说就是像素点间隔显示。例如2倍缩小时就是将像素点矩阵的奇数坐标保留,偶数坐标舍去来实现图像缩小效果。石雕效果:浮雕效果就是
8、只将图像的变化部分突出出来,而相同颜色部分则被淡化,使图像出现纵深感,从而达到浮雕效果,实验采用的算法是将要处理的像素取值为与处于对角线上的另一个像素间的差值,然后在让对应的RGB值分别加上16、32、16,作为新像素点的值。颜色翻转:反色的原理是将R、G、B值反转。用0XFF减去数组中的每一个值即可以得到新的数组,在对应显示即可。旋转90:图片旋转的原理就是将像素点矩阵旋转90,然后将再将新的矩阵显示出来。如下图:百叶窗效果: 图片百叶窗效果显示就是显示图片时按一定的数目间隔显示(实验中取10)。例如纵向的百叶窗效果就是当第1列显示完毕后显示第11列,当超多图片长度后回到第2列显示,如此类推
9、知道显示完图片.图像切换的算法:程序一开始声明一指针,通过按键捕获和指针切换指向不同的图像数组便可实现不同图片间的切换。以此为基础,实现了图片的幻灯片播放效果、下一张和上一张的切换等。下一张图片切换的流程图:数据处理分析:图像放大:(左边为原图(正常效果),右边为效果图)灰度效果:(左边为原图,右边为效果图)镜像效果:(左边为原图,右边为效果图)图像缩小:(左边为原图,右边为效果图)石雕效果:(左边为原图,右边为效果图)颜色翻转:(左边为原图,右边为效果图)旋转90:(左边为原图,右边为效果图)百叶窗效果:(左边为原图,中间为横向效果图,右边为纵向效果图)图像切换效果:数目相框市场调研与功能设
10、想PPT:数码相框功能实现PPT:实验结论:通过本次实验,使我对汇编与C语言混合编程,掌握了8 段码的知识,直入键盘与矩阵键盘的原理和键盘寄存器的功能有了更深入的了解,并清楚了解到如何配置LCD控制器,实现显示图片与文字,还有学会许多图像处理算法.在实验中,使得自己学到的东西得以学以致用,并成功实现各种功能,那种喜悦心情令人难以忘怀。但同时在实验中也认识到了自己学习中的不足。在实验中遇到关于过不少的难题,如:图像显示的实验、系统架构、图像处理方面的算法等.但通过与队友相互讨论,上网或去图书馆找资料,最终都一一克服了这些难题并最后成功地完成实验。期间不仅增强了自己团队合作能力与自我学习能力,更使
11、自己的编程能力在本次实验中得到了很大的提升。虽然本次实验完成的数码相框还有一些代码没有很好完善,例如实数倍缩放,任意角度旋转等功能。功能效果方面也还存在一些不足,例如图像不能二次处理,图像压缩,缺少系统菜单等不足。但我相信通过本次实验种种成功的、不足的、失败的经验,能使我在日后的实验中更好地发挥,并使我不断进步。缺陷与不足是在所难免的,但它们却能鞭策我向前。指导教师批阅意见:成绩评定: 指导教师签字: 年 月 日备注:注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。附录:(源程序代码)library_register
12、。s EXPORT gpio_GPDR1 EXPORT gpio_GPDR2 EXPORT gpio_GAFR1_U EXPORT gpio_GAFR2_LEXPORT init_GPDR1 EXPORT init_GPDR2 EXPORT init_GAFR1_U EXPORT init_GAFR2_L EXPORT desc_word_0 EXPORT desc_word_1 EXPORT desc_word_2 EXPORT desc_word_3 EXPORT init_word_0 EXPORT init_word_1 EXPORT init_word_2 EXPORT init_w
13、ord_3 EXPORT LCCR0 EXPORT LCCR1 EXPORT LCCR2 EXPORT LCCR3 EXPORT FBR0 EXPORT FBR1 EXPORT LCSR EXPORT LIIDR EXPORT FDADR0 EXPORT FDADR1 EXPORT init_LCCR0 EXPORT init_LCCR1 EXPORT init_LCCR2 EXPORT init_LCCR3 EXPORT init_FBR0 EXPORT init_FBR1 EXPORT init_FDADR0 EXPORT backlight_cs EXPORT lcdlight EXPO
14、RT MDCNFG EXPORT MDREFR EXPORT MSC0 EXPORT MSC1 EXPORT MSC2 EXPORT MECR EXPORT SXCNFG EXPORT SXMRS EXPORT MDMRS EXPORT BOOT_DEF EXPORT init_MDCNFG EXPORT init_MDREFR EXPORT init_MSC0 EXPORT init_MSC1 EXPORT init_MSC2 EXPORT init_MECR EXPORT init_SXCNFG EXPORT init_SXMRS EXPORT init_MDMRS EXPORT init
15、_BOOT_DEF AREA library_register ,DATA ,READONLY;GPIO configurationgpio_GPDR1 EQU 0x40e00010gpio_GPDR2 EQU 0x40e00014gpio_GAFR1_U EQU 0x40e00060gpio_GAFR2_L EQU 0x40e00064init_GPDR1 EQU 0xfc000000init_GPDR2 EQU 0x7fffinit_GAFR1_U EQU 0xaaa00000init_GAFR2_L EQU 0x2aaaaaaa;Frame Descriptordesc_word_0 E
16、QU 0xa0300000desc_word_1 EQU 0xa0300004desc_word_2 EQU 0xa0300008desc_word_3 EQU 0xa030000cinit_word_0 EQU 0xa0300000init_word_1 EQU 0xa0500000init_word_2 EQU 0x0init_word_3 EQU 0x00096000;LCD ControllerLCCR0 EQU 0x44000000 LCCR1 EQU 0x44000004LCCR2 EQU 0x44000008LCCR3 EQU 0x4400000CFBR0 EQU 0x44000
17、020FBR1 EQU 0x44000024LCSR EQU 0x44000038LIIDR EQU 0x4400003CFDADR0 EQU 0x44000200FDADR1 EQU 0x44000210init_LCCR0 EQU 0x7b008f9;3b008f8;003008f8init_LCCR1 EQU 0x6481067f;530fee7finit_LCCR2 EQU 0x220001df;210a05dfinit_LCCR3 EQU 0x4400006;0440ff07init_FBR0 EQU 0x0init_FBR1 EQU 0x0init_FDADR0 EQU 0xa03
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM7 芯片 数码 开发
限制150内