基于protues与keli下贪吃蛇的实现

一.设计内容及功能

1.1设计内容

制作一个8*8点阵的贪吃蛇游戏,系统以单片机的C语言的软件设计,系统通过LED点阵屏为载体显示数据,并用四个输入端表示四个控制键(上下左右)。系统硬件部分通过protues实现,软件代码部分在keil4环境下用C51语言编写,包括游戏初始化蛇的节数,以及障碍墙壁,分数的显示,游戏结束时自动复位。

1.2 完成的功能

1、用四个按钮控制贪吃蛇的行径,蛇的初始长度为2点,设置墙壁。
2、蛇吃到长度为1点的食物时,自身长度增加1点,数码管显示分数加一。
3、当蛇碰到墙壁或自己的身体时游戏结束。
4、游戏结束,系统自动复位。

1.3程序下载地址

https://download.youkuaiyun.com/download/mysterious_z/15814483

二. 硬件设计

2.1 原理图

在这里插入图片描述

2.1.1 整体电路设计

贪吃蛇是一款经典的小游戏,玩家使用方向键控制一条很短( 游戏刚开始)的蛇,通过不断的吃豆豆,蛇身会逐渐的加长,当蛇撞到身体或墙壁时游戏结束

2.1.2 单位电路设计

(1)AT89C51单片机最小系统模块
本系统以STC89C52RC为核心加上晶振电路组成,本系统选用12MHz的晶振,使得单片机有合理的运行速度。
在这里插入图片描述

(2)8*8点阵屏模块
LED点阵屏通过LED (发光二极管)组成,以灯珠亮灭来显示程序的运行情况,是模块化的显示组件,本设计采用8*8蓝色点阵显示屏,用来显示贪吃蛇的游戏画面。
在这里插入图片描述
(3)独立按键模块
使用7408与74LS11两个与门连接四个按键控制蛇的游走方向
在这里插入图片描述

(4)数码管显示模块
使用共阴极蓝色数码管显示游戏取得的分数
在这里插入图片描述
(5)74LS245及RESPACK-8
74LS245用作双端输入输出接口,提高I/O的驱动能力,RESPACK-8作为排阻使用。
在这里插入图片描述

2.2 设计连线

1.8*8点阵部分

使用芯片74LS245与排阻,连接8*8点阵矩阵,使其能正常显示贪吃蛇界面。

2.按键

使用两个与门,与单片机的端口结合,可以更明确地看出其关系,并且是矩阵键盘最后接地。

3.显示数码管

数码管的显示使用二段数码管和排阻连接,能更好的显示数字。

一.程序功能 利用数码管的动态显示,以模拟贪食蛇。S1、S2、S3、S4分别控制蛇的上、下、左、右的移动,当蛇吃到随机点亮的dp时,则态显示的数码管的亮点个数自动加一,同时作为蛇食物的dp点重新随机点亮一个(注意这里只考虑0~2号前三个数码管的dp点作为食物。第四个数码管的dp点若作为食物,蛇吃后必定撞墙,为了确保蛇能不断长长的可能性,所以第四个数码管的dp不考虑作为食物)。当出现蛇越过数码管的边缘、蛇首尾重合或者蛇的长度(已点亮的数码管点的个数)超过定义的最大长度(程序定义的是6,可以改动)时,游戏结束。 二.程序原理 》》》》》》》》》》》》》》》》 三.关键代码 /******************************************************************* * Copyright (C),2012-2014,764 Studio. * File name: segsnake.c * Author: zzb Version: v1.0 * Date: Mar 30.2012 * Description: 数码管模拟的贪食蛇 * Function List: init(void) 初始化 * gamePlay(void) 游戏启动控制 * createFood(void) 随机选择要点亮的dp * drawFood(void) 点亮已选择的dp作为食物 * drawSnake(void) 点亮蛇身 * touchWall(void) 越过数码管的边缘 * touchSelf(void) 碰到已点亮的点 * gameOver(void) 游戏结束 * moveSnake(void) 按设定的方向移动已亮的点 * oppositeDirection(i16 keyCode) 输入方向原来方向相反时,不做处理 * foodEat(void) 点亮的dp被吃到 * expandSnake(void) 吃到dp后的蛇变长 * getKey(void) 获取按键信息 * main() 入口函数 ********************************************************************/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风送雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值