ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:836.17KB ,
资源ID:12093594      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12093594.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式综合实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式综合实验报告.docx

1、嵌入式综合实验报告本科生课程考试成绩单(试卷封面)院 系自动化学院专业自动化学生姓名学号课程名称嵌入式系统及课程设计课程编号08803250授课时间2015年9月7日- -9月18日周学时32学分2简要评语总评成绩(含平时成绩)备注 任课教师签名: 日期: 注:1. 以论文或大作业为考核方式的课程必须填此表,综合考试可不填。“简要评语缺填无效。2. 任课教师填写后与试卷一起送院系研究生教务员处。3. 学位课总评成绩以百分制计分。实验目的和要求1、 通过“基于华邦710的智能机器宠物”产品开发为案例,掌握基于uCLinux/ARM7的产品开发的流程及方法;2、 熟悉AC97接口的应用,了解音频文

2、件编解码方法;3、 开发简答的人机交互界面。实验原理实验板功能本系统围绕华邦的ARM7芯片(w90p710/745)实现了丰富的软硬件应用实例,既有前后台系统的应用,又有基于操作系统uClinux的应用,在这个基础上,用户可以快速开发自己的产品。硬件开发板由底板、核心板、LCD模块构成。其中LCD模块采用AUO的3寸TFT 真彩屏,型号为A030DL01,分辨率为960*240。实验方案与实验步骤实现开机动画(10分) 要求:起始状态在屏幕中央有一蓝色方块(大小自定,背景色为黑色),蓝色方块的四条边逐渐向四周扩展,扩展到接近屏幕边界时,蓝色方块又逐渐缩小到原来的起始状态。GUI界面设计(10分

3、)按键定义:定义四个键:左键、右键、确定键、退出键(每个按键对应一个指示灯,当按下此按键的时候,对应的指示灯点亮)(1)在实现开机动画后,显示主界面,在主界面上有两个菜单选项,分别表示MP3播放和电子相册功能。(所需的主界面背景图片在/exam/dat/table.dat,两个菜单图片在/exam/dat/mp3main.dat(mp3菜单图片)和/exam/dat/picturemain.dat(电子相册菜单图片),其中主界面图片为320*240大小,两个菜单图片为80*80大小)(2)设计左键和右键来选择两个菜单,菜单选中之后,选中的菜单反色显示。(所需的菜单反色显示图片在/exam/da

4、t/mp3main1.dat(mp3菜单反色显示图片),/exam/dat/picturemain1.dat(电子相册菜单反色显示图片) 菜单图片为80*80大小)(3)设计确定键,退出键,当选中菜单以后,按下确定键进入相应功能。进入相应功能以后按下退出键,可以返回到主界面。电子相册相应功能(30分)(1)当在主界面下按下选择电子相册菜单,按下确定键后,进入电子相册功能,将电子相册中的图片的名字以列表的形式显示在LCD上,并且通过左键和右键可以选择相应的文件名,并以高亮显示。在此界面下按退出键可退出到主界面下。(2)当在(1)的状态下,按下确定键以后,显示被选中的图片,并可以通过左右键显示上或

5、者下一张图片,按退出键可退出到(1)的状态下(即列表状态),当图片显示在LCD的状态下,按下确定键,自动浏览,确定键再次被按下,停止自动浏览。(电子相册所需的图片在/exam/picture下。图片大小为320*240)MP3相应功能(30分)(1)当在主界面下按下选择MP3菜单,按下确定键后,进入MP3功能,将MP3的名字以列表的形式显示在LCD上,并且通过左键和右键可以选择相应的文件名,并以高亮显示。在此界面下按退出键可退出到主界面下。(1)当在(1)的状态下按下确定键以后,播放选中的MP3,并在屏幕上只打印出“正在播放”文字信息(背景色为自定义),MP3播放完毕后自动返回到(1)的状态。

6、屏保功能(20分)在任何界面下,若3秒钟无任何按键按下,则进入屏保状态,按下任意键即退出屏保状态。要求屏保图片在屏幕边角起沿屏幕边缘按顺时针移动。(屏保图片为/exam/dat/protect.dat,图片大小为80*80)。注意事项:(1)凡是上述的图片大小为320*240的DAT文件均适用函数ShowPictureOnLcd();凡是上述图片大小为80*80的DAT文件,均使用函数ShowIconOnLcd();(2)ShowIconOnLcd()前两个参数为图片的在屏上显示的起始坐标。坐标单位大小与图片像素点单位距离相同。(3)Exam文件夹下有示例程序及代码,如需运行示例程序将(exa

7、m示例程序和代码程序以及示例程序所需文件)下的所有文件拷至U盘的根目录下。实验设备与器材配置实验设备及工具: PC机 一台 Windbond W90P710试验开发平台 一套 耳机线 一条交叉编译器: arm-elf-gcc实验记录实现开机动画题目分析第一步需要清屏,将屏幕设置为黑色。第二步调用ShowHighLightLcd()这一函数显示蓝色的色块,由于屏幕大小为320*240,左上角为(0,0),右上角为(0,240),左下角为(320,0),右下角为(320,240),在这样的坐标系下要显示蓝色色块在屏幕中间,必须先计算出它们的坐标。可以使蓝色色块由无逐渐铺满全屏。接下来要让方块在扩展

8、或缩回的时段不断清屏,每次清屏过后,方块的位置扩展或缩回。程序流程关键代码及注释 for(i = 0; i = 10; i + ) usleep(500000); memset(fb,0x00,ScreenSize); ShowHighLightLcd(160-i*16,120-i*12,160+i*16,120+i*12); for(i = 0; i 0) if(buf.row=0)&(buf.col=3) Set_EBILED(0x08); break; if(buf.row=0)&(buf.col=0) Set_EBILED(0x01); usleep(500000); if(loop

9、= 1) loop = 6; else if(loop != 1) loop -= 1; /ShowHighLightLcd(0,(loop-1)*20,320,loop*20); /ReadFileName(/usb/mpsong); usleep(100000); if(buf.row=0)&(buf.col=1) Set_EBILED(0x02); usleep(500000);/延时一秒 if(loop = 7) loop = 1; else if(loop != 7) loop += 1; /ShowHighLightLcd(0,(loop-1)*20,320,loop*20); /

10、ReadFileName(/usb/mpsong); usleep(50000);/延时0.05秒 if(buf.row=0)&(buf.col=2) Set_EBILED(0x04); strcpy(song_file,/usb/mpsong/); strcpy(num2str,fileloop-1.filename); /产生123 strcat(song_file,num2str); printf(%sn,song_file); switch(loop) /* case 1: ShowPictureOnLcd(/usb/xiangrikui.dat); ShowStringOnLCD(1

11、60,120,No Song!Please select next,fb,ScreenSize); break; case 2: ShowPictureOnLcd(/usb/xiangrikui.dat); ShowStringOnLCD(160,120,No Song!Please select next,fb,ScreenSize); break; */ case 1: ShowPictureOnLcd(/usb/huache.dat); /sprintf(num2str,%d,6); /产生123 /music_only(/usb/mpsong/6.mp3); /播放MP3文件,函数路口

12、参数为MP3文件在U盘的存储路径 break; case 2: ShowPictureOnLcd(/usb/huayuan.dat); /sprintf(num2str,%d,1); /产生123 /music_only(/usb/mpsong/1.mp3); break; case 3: ShowPictureOnLcd(/usb/meigui.dat); /sprintf(num2str,%d,2); /产生123 /music_only(/usb/mpsong/2.mp3); break; case 4: ShowPictureOnLcd(/usb/pugongying.dat); /s

13、printf(num2str,%d,3); /产生123 /music_only(/usb/mpsong/3.mp3); break; case 5: ShowPictureOnLcd(/usb/qiangwei.dat); /sprintf(num2str,%d,4); /产生123 /music_only(/usb/mpsong/4.mp3); break; case 6: ShowPictureOnLcd(/usb/table.dat); /sprintf(num2str,%d,5); /产生123 /music_only(/usb/mpsong/5.mp3); break; defau

14、lt: /ShowPictureOnLcd(/usb/movie/huache.dat); break; ShowStringOnLCD(180,80,fileloop-1.filename,fb,ScreenSize); ShowStringOnLCD(180,120,正在播放,fb,ScreenSize); music_only(song_file); /播放MP3文件,函数路口参数为MP3文件在U盘的存储路径 else /无按键 if(stopflag = 0) delay_times +; if(delay_times 10 ) protectflag = 1; delay_times

15、 = 0; ShowHighLightLcd(0,(loop-1)*20,320,loop*20); ReadFileName(/usb/mpsong); if(protectflag) /ShowIconOnLcd(120,80,/usb/movie/protect.dat); for(i = 0; i = 10 ; i +) memset(fb,0x00,ScreenSize); if(i = 3) ShowIconOnLcd(i * 80,0,/usb/protect.dat); else if(i = 5) ShowIconOnLcd(240,(i-3)*80,/usb/protect

16、.dat); else if(i = 8) ShowIconOnLcd(240 - (i-5)*80,160,/usb/protect.dat); else if(i 0) protectflag = 0; break; usleep(200000);/延时0.1秒 /memset(fb,0xff,ScreenSize); 问题及其原因分析A,问题:mp3播放完以后不能自动回到mp3文件目录的界面。原因分析:mp3播放的时候flag2=3,如果不把flag2改回1,那么一直会播放歌曲,不会停下来,只有flag2重新置为1,那么就会重新显示mp3的文件名。解决办法:mp3播放完以后把flag2重

17、新置为1。 B,问题:播放的时候显示文件名加“正在播放”,存储文件名的时候设置的字符串数组报错。原因分析:我们设置的是char*类型的一维数组,这样使用的时候应该对char*的指针开辟内存空间,没有初始化是不能使用的。解决办法:后来我们仿照”pub.h”里面定义了char型的二维数组,这样就不会出错了。效果图如下:电子相册相应功能题目分析电子相册稍微复杂一点,进入这一功能以后要检测多个按键,实现不同的功能,要能够左右键实现显示上一张、下一张图片,要能够按确定键自动浏览,再次按下确定键能暂停,最后还要能退出,因此我们考虑进入这个状态以后就设一个for(;)的循环,在里面不断检测按键,实现不同的功

18、能,直到退出键按下再使用break退出这个for(;)循环,否则,如果还在整个程序的while循环里面检测按键的话,一个按键能够实现的功能就比较多,写起来有点复杂。上一张下一张主要就是修改num2的数值。循环显示则还需要再设一个for(;)循环,不断显示图片,只有再次按下确定键才能暂停,暂停以后才能退出。程序流程见程序框架流程图。关键代码及注释while(1) usleep(1000000);/延时0.05秒 ShowPictureOnLcd(/usb/xiangrikui.dat); /显示图片,图片大小为320*240 ReadFileName(/usb/picture); count=r

19、ead(fd_key,&buf,sizeof(keymap);/count equal to how many key has been pressed at on time if(count0) if(buf.row=0)&(buf.col=3) Set_EBILED(0x08); break; if(buf.row=0)&(buf.col=0) Set_EBILED(0x01); usleep(500000); if(pic_loop = 1) pic_loop = 6; else if(pic_loop != 1) pic_loop -= 1; /ShowHighLightLcd(0,(

20、pic_loop-1)*20,320,pic_loop*20); /ReadFileName(/usb/picture); usleep(100000); if(buf.row=0)&(buf.col=1) Set_EBILED(0x02); usleep(500000);/延时一秒 if(pic_loop = 7) pic_loop = 1; else if(pic_loop != 7) pic_loop += 1; /ShowHighLightLcd(0,(pic_loop-1)*20,320,pic_loop*20); /ReadFileName(/usb/picture); usleep(50000);/延时0.05秒 if(buf.row=0)&(buf.col=2) Set_EBILED(0x04); while(1) usleep(1000000);/延时0.5秒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1