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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机课程设计报告Word下载.docx

1、本课程设计是以一款高性能的三星芯片s5pv210ah为核心,在Linux环境下生成可执行文件,通过LCD显示屏触摸操作,完成2048游戏开发。通过本课程设计,可以体现嵌入式技术的优越性。关键词: 嵌入式;LCD屏;Linux;游戏开发;一 总设计流程二、设计要求及内容(一)c语言源代码编写 经过分析,该游戏的开发主要以下分为五大部分:1、linux文件IO通过如下代码,我们将实现linux文件的输入与输出:fd = open(/dev/fb0, O_RDWR); if (fd = -1) perror(open failed:); / 打开失败 return -1; 以及在程序结束时,我们使用

2、完该文件关闭文件代码:close(fd);2、bmp图片格式解析为实现2048游戏的开发,对图片进行操作是必不可少的,通过找寻一些带数字的BMP格式的图片,将这些图片按照游戏规则显示显示在屏幕上。如下的代码即为如何将一张BMP格式的图片显示在LCD屏幕上。void LCD_Draw_Bmp(int x0, int y0, char *bmpname) int fd; int i = 0; int x, y; unsigned char pixels100*100*3; fd = open(bmpname, O_RDONLY); lseek(fd, 54, SEEK_SET); read(fd,

3、 pixels, 100*100*3); close(fd); / for (y = 0; y 100; y+) for (x = 0; x x+) unsigned char r, g, b; int color; b = pixelsi+; g = pixelsi+; r = pixelsi+; color = (r 16) |(g deltaY) if(endX startX) direct = MOVE_RIGHT; break; else direct = MOVE_LEFT; if(endY startY) / direct = MOVE_DOWN; direct = MOVE_U

4、P; close(fd);return direct;LINUX文件下会提供我们一个屏幕操作的接口,我们只需调用该接口文件,通过判断是X操作还是Y操作,通过不同的返回值,根据判断即可判断出屏幕滑动操作是往上下左右那个方向。4、C二维数组及矩阵变换算法该算法是本游戏的核心算法,也是2048游戏开发的难点所在,通过分析,发现我们主要是对matrix_2048XY矩阵进行变换操作,该变换操作可分为上下左右四种,为这四种操作分别写一子函数,其中向左移动时,该矩阵变换规律实现的代码如下:void Move_left() / 向左移动操作 int i,j,k; Zero_b(); for(i=0; i4;

5、 i+) / 通过一个buffer数组实现将不为的数左移 k=0; for(j=0; j j+) if(matrix_2048ij!=0) bufferik=matrix_2048ij; k+; i+) if(bufferij!=matrix_2048ij) Flag_Move=1; if(bufferij=bufferij+1&(j+1)4) bufferij=2*bufferij; for(k=j+2; k4&bufferik!=0; k+) bufferik-1=bufferik; bufferik-1=0; matrix_2048ij=bufferij;该算法的核心思想是把不为0的数先

6、往左移,然后判断相邻的数是否相等,如果相等即前前面一个数乘以2,后面的数被依次被更以后的数所覆盖,最终实现左移操作。5、随机函数2048游戏的实现离不开随机函数,当玩家进行一项滑动的操作时,屏幕上需在空白随机出现“2”或者“4”的图片,但是出现前者的概率应大于后者,在这里,为实现随机函数,我们取计算机的时间为随机数的种子,通过调用sandom()函数实现,具体代码如下:void Get_Random() int index_x=0,index_y=0,index_rad; int rad4= 2,2,4,2; int i,j; int num=0; int table44; index_rad

7、=random()%4; tableij=17; if(matrix_2048ij=0) tableij=num; num+; num=random()%num; if(tableij=num) matrix_2048ij=radindex_rad;为提高取随机数的效率,我们采用了对空白格子编号的方法,通过计算出空白格子个数,再对其进行取随机编号数,可一次性得到应该在哪个空白位置出现随机出现图片。(二)生成可执行文件生成C语言源代码编号后,需要将该源代码生成可执行文件,我们通过在电脑上安装虚拟机软件,并在虚拟机上运行Linux操作系统,在该系统终端我们进行一些命令操作得到了可在我们的嵌入式芯片

8、执行的文件。生成可执行文件命令:arm-linux-gcc -o (三)烧录得到了可执行文件后,我们最后就是将该可执行文件烧录进入我们的芯片中执行,在此我们借用了一个名为secureCRT绿色烧录软件。在此这里有一些该软件下进行操作的部分命令: rz :用串口命令下载文件到开发板上面去 chmod +x : 给这个文件加上可执行权限(excutable) ./ : 运行可执行文件 以下是该软件工作时的截图:三、结束语通过这次的课程设计,我深刻的感受到了嵌入式技术的魅力,比起单片机,嵌入式技术有着明显的优势,从处理速度上即可明显的看出二者优异。我很高兴能够顺利的完成此次课程设计,但是这次之所以能

9、够顺利地完成是与老师和同学的帮助离不开的。在刚开始时,我们组就遇到了不少的困难,老师每天讲的内容,总是有一些跟不上,多亏了老师的耐心的讲解,以及课后自己去认真专研,才逐渐消化了课上的知识,跟上了老师的脚步。在此,我想感谢一下此次课程设计的老师和我一起学习的同学。虽然这次课程设计结束了,但是我觉得我还是有必要继续学习下去,去更加深刻的了解什么是嵌入式技术。四、参考文献【1】 深圳托普微科技开发有限公司LM2028 LCD ModuleUser ManualEBOLhttp:wwwtopwaydisplaycorn,2O0412-20 【2】 谢自美,电子线路设计、实验、测试,华中理工大学出版社,2003。【3】 宋春荣,通用集成电路速查手册,山东科学技术出版社,1995。【4】Arnold Berger,嵌入式系统设计,吕骏 译, 北京:电子工业出版社, 2002 五、附录源程序:#include sys/stat.hfcntl.hsys/mman.hstdio.herrno.hunistd.h#inc

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

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