贪吃蛇设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C51程序设计》期末项目考核

项目设计报告

题目:点阵贪吃蛇设计

学院:

专业:

班级:

学号:

姓名:

目录

1项目要求及功能 (2)

1.1电路要求 (2)

1.2 程序要求 (2)

2项目设计 (2)

2.1整体设计思路及原理 (2)

2.1.1蛇的运动处理 (3)

2.1.2点阵屏的原理图 (4)

2.2贪吃蛇的设计的基本思路 (4)

2.3硬件电路设计 (4)

2.4单片机最小系统图模块 (5)

2.5点阵屏显示模块 (5)

2.6按键控制电路模块 (5)

2.7贪吃蛇程序流程图 (5)

3项目仿真 (6)

3.1仿真效果图及电路图 (6)

3.11仿真效果图 (6)

3.2测试结果分析 (6)

4贪吃蛇设计总结 (7)

5 参考文献 (8)

附录 (8)

附录Ⅰ整体电路图 (8)

1.1按键控制电路 (8)

1.2单片机最小系统图及点阵屏显示电路仿真图 (9)

附录Ⅱ源程序清单 (9)

1项目要求及功能

项目要求:通过使用C51单片机和点阵显示屏,制作贪吃蛇并通过KEI软件写出程序,运用PROTUES仿真软件测试其功能

1.1电路要求

通过使用单片机和点阵屏完成电路的各部分并实现贪吃蛇所需的全部功能。通过仿真软件实现对电路和软件设计的检查和验收。

1.2 程序要求

通过使用KEIL软件,使用C语言并结合硬件电路,实现硬件所需要的功能,要求程序简单易懂,代码效率高,无错误,生成HEX,文件并将文件烧入仿真软件中。

2项目设计

2.1 整体设计思路及原理

随着科技的发展,现代生活节奏越来越快,人们的工作生活压力也随之加大。设计一款操作简单,生动新颖,娱乐性强,便于携带的小游戏,在繁忙的工作生活之余玩玩这款小游戏,不仅可以调节人们的情绪,使人心情舒畅,还能健脑益智,为更好地投入工作学习做好准备。

随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界。人们不再拘泥于,加班,出差成了现代人不可避免的公务。而此时一款可以随时随地娱乐的游戏成了必需品。贪吃蛇这一游戏简单易行,操作方便,娱乐性较强,吸引了不少人。这一款游戏紧紧地抓住了人们的心理,虽然简单,却其乐无穷,在人们不断追求更多的欲望下,该游戏给人们带来了追逐的快感,以及成功后的满足感,对于一直处于高压下的现代人是很好的放松工具。当前科学技术飞速发展,特别是微电子技术,计算机软件与应用技术的发展,使得人们的日常生活丰富多彩。单片微型计算机(简称单片机)作为微型计算机家族的一员,以其独特的结构,良好的稳定性,便宜的价格在嵌入式领域广泛应用。与传统的PC上设计的贪吃蛇游戏不同,本次作者利用Proteus 硬件仿真软件,采用单片机、液晶显示屏、扬声器、按键等搭建硬件平台,C语言编程,实现便携地贪吃蛇游戏。

本文基于单片机设计的贪吃蛇游戏,具有传统意义上的贪吃蛇游戏的特点:通过使用左右上下按键,改变蛇的运动方向来吃到食物,可以说程序简洁,游戏很容易上手,让游戏者体会到即使是使用点阵屏但游戏的趣味性仍不减。

运用单片机技术和C程序设计及其模拟电子技术,通过点阵显示屏显示。需要使用的电路分为以下模块,单片机最小系统图、点阵显示屏电路、方向控制电路,三个部分组成。

使用单片机作为控制核心,可以简化硬件电路,采用软件编程控制单片机实现硬件电路的功能,降低能耗,降低成本。软件采用C语言编程,方便灵活,大大加快了软件开发速度,缩短了开发周期,并且便于移植。为提高开发效率和硬件稳定性,采用了功能强大的硬件仿真软件Proteus,依托该软件提供的仿真环境搭配Keil作为软件开发调试环境进行仿真调试成功。

贪吃蛇的制作思路及原理。通过点阵屏点亮一个点,然后再点亮旁边的另一个点,形成“蛇”,然后,再在点阵屏上面选一个点为蛇的食物,通过手动按键使蛇移动,并判断是否撞墙。并找到食物,并吞下食物,然后蛇长大,变长,直到蛇咬住尾巴死亡,重新开始。

2.1.1蛇的运动处理

(1)运动处理。根据用户按键的键值蛇身进行柔体传动。所谓柔体传动,指贪吃蛇运动的时候并不是整条蛇向一个方向运动的,而是在每个时钟到来时,由蛇头带动每个点阵的方向都向下一个点阵传播,然后自己向新的方向运动一步。运动后,下一个点阵由于得到了上一个点阵的方向,就按照此方向同样地运动一步。所以,它会马上填补上一个点阵的位置,如此类推。实际上在设计贪吃蛇的时候,只需要把蛇尾的那个点阵去掉,然后在蛇头的新方向上放一个点阵就可以了。因此定义一个函数用于更新点的坐标,只要知道蛇头或蛇尾的坐标和运动方向,就可以调用该函数更新蛇头或蛇尾的坐标,同时调用相关显示函数,实现蛇运动处理。蛇头的方向可以通过按键捕获实时获得。而蛇尾的方向获得要困难得多。为节省空间,定义一个无符号char 型一维数组按位存储蛇头方向信息。蛇身运动期间需要在该数组中记录下每次蛇身移动一步,蛇头的运动方向。定义两个变量分别代表蛇头和蛇尾,每次存储蛇头运动方向后,代表蛇头的变量加一,以便在下一位置继续存储蛇头运动方向;代表蛇尾的变量则指向数组的开始位置,通过该变量读取数组中蛇尾的运动方向(因为存在该数组中蛇头的运动方向,随着蛇头坐标的移动,存在数组开始位置的运动方向即是蛇尾的运动方向),通过读取的蛇尾运动方向便可以更新蛇尾坐标。

(2)吃到豆子的处理。蛇头坐标与豆子坐标相等,则吃到豆子。如果吃到豆子,在蛇头位置增加一个单位点阵,并更新豆子的坐标。

2.1.2点阵屏的原理图

由上面的点阵屏原理,图可知,要点亮一个发光二极管,需要在正极的那一个引脚上接入高电平,在负极接入低电平。点阵屏的二极管的排列为横线为接正极,列线接入负极,点亮一个发光二极管,则正极即横线这一端一个为高电平其余为低电平,列线这一端即负极这一端有一个低电平,其余为高电平。这样便实现了点亮一个指定的发光二极管。在贪吃蛇里面,必须同时点亮多个点。则需要用到延时在贪吃蛇中使用的延时为 255us*50=12.75ms。

2.2贪吃蛇的设计的基本思路

蛇运动控制模块详细设计与实现:本模块主要进行蛇运动的控制,触发各种事件的响应。主要开发内容包括蛇的方向、蛇的速度、蛇的位置的控制,吃食物、撞边界、撞自己判断并调用其它模块进行相应操作。根据不同的等级,使贪吃蛇以不同的速度前进。

具体功能如下:

(1)贪吃蛇按一定方向移动

(2)贪吃蛇根据按键改变方向

(3)贪吃蛇判断吃食物

(4)贪吃蛇判断撞边界

(5)贪吃蛇判断撞自己

(6)修改游戏地图标记表

2.3 硬件电路设计

硬件电路设计包括三个部分分别为:单片机最小系统图、点阵屏显示电路模块、

相关文档
最新文档