
51贪吃蛇点阵屏
简介
利用16x16点阵屏,结合相应的程序代码实现贪吃蛇小游戏,同时我还为其添加了一些文字和两个循环动画。
简介:利用16x16点阵屏,结合相应的程序代码实现贪吃蛇小游戏,同时我还为其添加了一些文字和两个循环动画。开源协议
:GPL 3.0
描述
项目介绍
这是我初次尝试原理图和pcb的绘制,可能存在一些不合理的地方,方案仅供参考!如果你想直接复用我的pcb设计,达到与我作品同样的效果,请一定要阅读工程描述中的“注意事项”。
2022暑假闲来无事,我突然想动手做一做电路板,毕竟身为一个电子爱好者怎能不会设计自己的电路板呢?于是在众多EDA软件中我选择了立创EDA,对于新手大学生来说简直不要太好。经过多次修改我终于决定打板。板子到手后我激动地焊接好所有的元器件,烧录!插电!开机!映入眼帘的却是布满整个点阵屏的“乱码”......经过我多次排查终于发现是我点阵引脚排母放错了,都需要旋转180度才行。但用杜邦线调整之后屏幕依旧是乱码,我百思不得其解😥。再经过我多次排查才终于发现原来是我8脚排阻买错了...应该买B型,我却买成了A型。最后我又重新设计了pcb,购买元器件,再次打板!焊接!烧录!插电!开机!终于!!!一条活生生的贪吃蛇在我眼前爬行!
这个项目准确来说就是个16x16点阵屏显示模块,只要肯花时间编程,还可以用它实现其他很多的显示效果。由于我时间精力有限,暂时只实现了贪吃蛇游戏。游戏时可以暂停和恢复,还可以加速和减速(没记错的话任何界面都可以调速)。同时在游戏开始前还可以按下组合键进入隐藏界面,隐藏界面可显示一些文字,也可以显示预设的循环动画(我预设了两个动画)。
另外,这个项目仍有低概率碰到bug,可能会导致游戏异常结束或蛇身异常,但遇到的概率很小(我也只遇到过几次,并且不知道是哪里的问题😂)。
---2022.09.12首发
---2022.12.25更新:
所有元器件的淘宝购买链接已经上传至附件excel表格里,有需要的可根据表格链接购买。(仅供参考)
---2022.12.30更新:
修改了代码的一点细节
原理图设计说明
点阵屏的扫描显示参考了之前在立创开源平台的另一位兄弟的原理图,现在记不清是哪一个项目了..其余部分都是我自由发挥的了,没有考虑太多东西,所以原理图的一些细节可能还存在很多不合理的地方,方案仅供参考。我第一次diy只要保证能用就行😄
PCB设计说明
pcb绝大多数设计规则都用了立创EDA的默认值,布线用了自动布线+手动调整(我自己完全手动布线可能效果还没有自动布线来得好😂)。我尽量避开我所知道的pcb常见设计错误,但可能还是有不合理的地方,总之......还是能用就行。
软件说明
代码中我几乎把每一个函数都编成了独立的头文件,方便我在后续修改时快速定位到我想修改的代码块:
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include "stdlib.h" //用于产生随机数
#include "Typedef.h" //定义程序所需的各种变量
#include "Delay.h" //延时函数
#include "Scan.h" //按键扫描
#include "Display.h" //用于显示贪吃蛇
#include "Timer.h" //与定时器相关的函数
#include "Move.h" //贪吃蛇前进一格
#include "Int.h" //与外部中断相关的函数(加速与减速)
#include "Push.h" //将蛇身的拐点储存
#include "GameOver.h" //游戏结束(还可进入其他界面)
#include "MakeFood.h" //生成蛇的食物坐标
#include "Video.h" //用于显示文字、动画
#include "SelectModel.h" //选择模式(经典or自由)
代码由我自己独立写完,所以某些地方可能显得比较凌乱、呆板,属正常现象。
实物展示说明
直接上图吧!
详细功能见演示视频
注意事项
1、点阵屏为4个8x8共阴点阵,单个点阵边长为32mm,点阵屏带有丝印的一方都朝向右侧安装(如图);
2、左上角的按钮开关是控制左侧烧录接口的供电的。同时也能在type-c供电时,使右侧电阻工作,增大整体的耗电电流(做这个是为了防止用充电宝为机器供电时,因工作电流太小而导致充电宝自动休眠,暂时没想到更好的方法。所以如果用充电头供电,就无需按下左侧按钮开关);
3、外壳采用的是2mm厚度的亚克力板,淘宝激光加工而成;
4、微动开关规格为:6*6*10(总高度为10mm);
5、键帽总高度为6mm,内径为3.4mm;
6、烧录代码需要额外搭配USB转串口模块,从左侧预留的烧写口进行烧录;
7、本项目用到的9脚排阻为A型,8脚排阻为B型;
8、用于安装点阵的排母一定要选用如图的圆孔排母,否则点阵会接触不良;
9、固定外壳用的螺丝和铜柱规格如下(单位:mm):
位置/名称 | 规格 | 头部直径 | 厚度 | 长度 |
---|---|---|---|---|
顶层平头螺丝 | M3 | 6 | --- | (螺纹长)5 |
铜柱 | M3 | --- | --- | 7 |
底层螺母 | M3 | --- | 2.4 | --- |
底层平头螺丝 |
M3 | 6 | --- | (螺纹长)10 |
底层垫片 |
M3 | (外径)7 | 0.5 | --- |
实物装配图:
演示视频
其它附件上传
设计图

BOM


评论