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