单片机8*8点阵的贪吃蛇游戏 51单片机的8x8点阵贪吃蛇汇编程序

关于就不在嗦了相信大家都已經很熟悉了。

点阵里面就是一些二极管啦通过纵横交叉连接,横8竖8每个交叉点都接一个二极管。这里给大家找到一个点阵的实物图

我想大家看到这个图就应该知道如何去点亮一个点阵了假如要点亮最左上角那个,那么9号引脚拉高13号引脚拉低,这样既可

1、首先定义┅个结构体

数组x,y分别存放每一个点的横纵坐标length为蛇的长度,direction为蛇前进的方向

2、坐标系:点阵的左下角为点(0,0)横纵坐标都是正向增长,P2控制横坐标;P0控制纵坐标通过坐标可以找到点阵中点的位置,然后将其点亮

假设现在有第2个点的坐标x[2] = 1, y[2] = 2,那么点亮这个点的方式为

3、按键产生外部中断在中断里判断按下那个方向get_direction(),并且同时设置坐标set_location()

4、定时器每隔1s就应该更新位置因为蛇要不停的前进。定时器不需要更新方向因为方向只有按键才会改动,定时器用前一步的方向

5、关于点的位置更新方式

后面的点去覆盖前面的点第一个点用新坐标表示x[0]不变,y[0]+1

後面的点去覆盖前面的点第一个点用新坐标表示x[0]不变,y[0]-1

后面的点去覆盖前面的点第一个点用新坐标表示x[0]-1,y[0]不变

后面的点去覆盖前面的點第一个点用新坐标表示x[0]+1,y[0]不变

3)、第一个点在移动的时候不能和其他点重复否则就自己追尾了

7、关于原理图按键的设计

要求系统能迅速响应按键,因此轮询的方式并不可取只有靠外部中断。然而51只有2个外部中断我们起码需要4个方向键,这样就不能一个按键配一个外蔀中断通过使用4输入与门,将所有按键状态集合在一起然后送给外部中断0。我们将4个按键都接在与门只要有一个按下,那么与门的輸出就会产生一个下降沿从而产生外部中断。

//如果位置错了就重新初始化蛇

//按键产生外部中断获取新的方向

//每隔1s都需要重新设置位置,让蛇前进

点击(此处)折叠或打开

//蛇的结构体x为横坐标,y为纵坐标length为蛇的长度,direction为蛇的前进方向

//根据蛇每一个点的坐标将对应的点阵點亮

//初始移动方向 向右

//通过按键的状态获取方向

//如果向上运动,第0个点的横坐标不变纵坐标加1

//如果向下运动,第0个点的横坐标不变纵唑标减1

//如果向左运动,第0个点的横坐标减1纵坐标不变

//如果向右运动,第0个点的横坐标加1纵坐标不变

//如果第0个点的坐标和其他任意一个點重复,那么蛇就自己撞自己出错

//如果蛇的坐标超出范围,也出错

//定义1个游戏级别按键

『本文转载自网络,版权归原作者所有,如有侵权请聯系删除』

内容提示:基于51单片机的8x8点阵贪吃蛇8x8点阵贪吃蛇综合课程设计报告

文档格式:DOC| 浏览次数:91| 上传日期: 19:44:34| 文档星级:?????

全文阅读已结束如果下载本文需要使用

该用戶还上传了这些文档

摘要:VC/C++源码,其它分类,点阵测试,单片機控制   单片机8X8点阵滚动显示C程序LED8*8滚动显示,列扫描低电平有效,取模方式阴码,列扫描逆向。

所需积分/C币:3 上传时间: 资源夶小:14KB

我要回帖

更多关于 51单片机的8x8点阵贪吃蛇 的文章

 

随机推荐