【新文案】基于51单片机8x8点阵贪吃蛇综合课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于51单片机8x8点阵贪吃蛇综合课程设计报告
此文档为WORD版可编辑修改
《电子线路综合》
课程设计报告设计课题:贪吃蛇掌上游戏机
专业班级:电子信息班
学生姓名:
指导教师:
设计时间:2016 .12 .23
目录
一、设计任务与要求
二、方案设计与论证
三、原理图及元器件清单
四、性能测试与分析
五、性能测试与分析
六、结论与心得
七、参考文献
八、附录
贪吃蛇掌上游戏机
一、设计任务与要求
基本功能:
制作一个8*8点阵的贪吃蛇游戏,系统以单片机的c语言的软件设计,系统通过LED点阵屏为载体显示数据,并用四个输入端表示四个控制键(上下左右)。
系统硬件部分由STC89C52RC单片机,8*8点阵屏, 4个按键,软件部分在keil环境下用c51语言编写,包括游戏初始蛇的段数,以及障碍墙壁,游戏结束时自动复位。
具体要求:
1、用四个按钮控制蛇的方向,蛇的原始段数为2点,并设置墙壁。
2、蛇的移动速度随着蛇的段数增加而增加,当蛇碰到墙壁和自己的身体时死亡
3、用proteus设计,仿真基于STC89C52RC单片机的8*8点阵贪吃蛇的硬件电
路。
4、蛇死亡,游戏结束,系统自动复位。
二、方案设计与论证
图1、系统框图
1、贪吃蛇的移动
当蛇没有吃到任何食物时,每次步进蛇头的将要到的下一个LED灯点亮,而蛇尾那个LED灯会灭掉,程序设计时只要将蛇尾那点位置的值传给蛇头下一个位置的值,再改变蛇
尾的值即可。
而蛇头下一个位置根据蛇头和偏移量来确定,每次上下左右按键决定了蛇步
进的偏移量,只要将蛇头的位置加上偏移量的值即得到新的蛇头位置。
当蛇头碰到四周的
墙壁或者碰到自己的身体,小蛇就立即毙命并结束游戏。
2、食物的随机出现
食物的出现是一种随机行为,所以必须做一个随机数,而且食物出现的位置不能与蛇
的位置相同,也不能超出墙外,否则就要重置食物。
这里使用程序中的定时计数器的低八
位 TL0的数值,由于TL0不断变化,不同的时间点数值不同,我这里使用的是C语言里的stdlib.h文件库,使用里面的随机函数srand(),先利用srand(TL0)获得TL0的数值,再利用两次rand()%8分别得到食物出现的横纵坐标的位置。
三、原理图及元器件清单
1.单位电路设计
(1)AT89C52单片机最小系统模块
本系统以STC89C52RC为核心加上复位电路和晶振电路组成,本系统选用12M 的晶振,使得单片机有合理的运行速度。
起振电容30pF对振荡器的频率高低,振荡器的稳定性和振荡器的快速性影响较合适复位电路为按键高电平复位。
图2、最小系统模块
(2)8*8点阵屏模块
LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示程序的运行情况,是模块化的显示组件,本设计采用8*8共阳红色点阵显示屏,用来显示贪吃蛇的游戏画面。
图3、8*8点阵屏模块
(3)独立按键模块
4个按键控制蛇的游走方向(上下左右)的功能简介明了
图4、独立键盘
(4)系统总原理图说明
贪吃蛇是一款经典的小游戏,玩家使用方向键控制一条很短(游戏刚开始)的蛇,通
过不断的吃豆豆,蛇身会逐渐的加长,当蛇撞到身体或墙壁时游戏结束
图5、总原理图
2.元件清单
表1、元件清单
元件名称符号数值单位备注单价(元/个)电阻R1—R8 10K 欧姆1/4瓦8
电解电容C5 10 μF 电解,250v耐压 2
瓷片电容C1-4 103 PF 50v耐压 4
8*8点阵屏LED8*8 \ \ \ 1 晶振X1 12 M 250v耐压 1
单片机MUC1 \ \ STC89C52RC 1
按键Key1-4 \ \ \ 4
二极管D1-4 1N34A \ 正向导通压降约为
0.2~0.3V
4
总计: 12 元
四、安装与调试
程序软件编译器使用uVision3。
在用uVision3编写单片机程序时,因uVision3往往只能修改语法上的错误,对于算法上的问题不好检查,而直接下到单片机
里又受电路板的限制而不方便调试,因此这里使用Proteus进行电路仿真。
该软件具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能,同时有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
先在Proteus上绘制硬件电路(并未画出驱动电路),电路设计完成后就可以进行仿真。
先双击单片机,把用uVision3编译生成的HEX文件指定为下载文件,点击PLAY键即可进行仿真。
当出现ANALYSER ERRORS时,表示电路有错误,列表中说明了具体的错误,必须要先排错才可以进行仿真。
软件调试及Proteus仿真完成后就进行硬件的安装。
本设计按照原先设计好的
电路图进行总体上的布置,采用人工搭电路的方法进行硬件的安装。
安装时要
考虑受热、稳固等多方面的影响使用电烙铁时要控制好焊接的时间,电烙铁停
留的时间太短,焊锡不易完全熔化,形成“虚焊”,而焊接时间太长又容易损坏元器件,每一两秒内要焊好一个焊点,若没完成,宁愿等一会儿再焊一次。
其
次芯片的摆置要方便连线,焊接时要先把芯片拔出,等线接好了再插上去。
在
焊接时要考虑电路的抗干扰能力同时要充分考虑电源对单片机的影响。
每焊接
完一个模块,要用万能表根据电路图检查有没有接错、短路等现象,确认正确
后再继续下一个模块
五、性能测试与分析
主程序工作流程如图3所示,系统上电后首先对LED进行初始化,接着对定时器初始化,并启动定时器,接着执行程序主体逻辑,程序主体逻辑执行一遍后检查是否有中断发
生。
中断源有两个,一个是驱动贪吃蛇自动前行的定时中断,另一个是用户控制贪吃蛇移
动方向的键盘中断,任意中断的到来都将改变贪吃蛇的当前状态。
若当前没有中断发生,
主程序继续判断蛇头是否碰壁或头尾相撞,若是,结束游戏,否则继续执行程序主体循环。
图6 主程序工作流程
六、结论与心得
1.通电前要检查电路是否短路。
2.严禁在系统连错的情况下通电。
3.在调试过程中发现有元器件烧毁,应立即切断主电源,认真检查电路找出原因,才可再次通电.
4. 在调试过程中如有发现时间变化参数很大,应认真找出原因,是否原件的热性不好。
应更换元件,电路设计是否合理。
七、参考文献
[1] 李朝青,刘艳玲等.单片机原理及接口技术[M].北京:北京航空航天大学出
版社,2013.
[2]边春元等.C51单片机典型模块设计与应用[M].北京:机械工业出版社,2008.
[3]杨将新,李军华,刘东骏等.单片机程序设计及应用从基础到实
[M]. 北京:电子工业出版社,2006.
[4]雷思孝,冯育长等.单片机系统设计及工程应用[M].北京:电子工业出版社,
2005.
[5]白小明,徐芳等.汇编语言程序设计[M].北京:中国铁道出版社,2009.
[6]于京,张景璐.51单片机C程序设计与应用案例[M].北京:中国电力出版社,
2006.
[7]王港元.电子电工实践指导(第三版)[M].南昌:江西科学技术出版社,2003.
[8]阎石.数字电子技术基础[M].北京:高等教育出版社,2006.
[9]高吉祥,徐欣,吴帅等.基本技能训练与单元电路设计[M].北京:电子工业出
版社,2007.
[10]孙裕晶,沙玲等.实用控制系统设计教程[M].长春:吉林大学出版社,2000.。