电子设计大赛

这两天和电子系的人一起参加了电子设计大赛,我们选择的题目是俄罗斯方块游戏机的实现.之所以选择这个题目是因为这个题目里边的程序部分占的比重比较大.其他的题目都是和模拟电路或者电子的关系非常大的题目.对我来说就不那么占优势了.

比赛只有2周的时间,刚好安排在5.1的时候,都没有办法休息一下了.到今天程序已经大部分完成了.但是做硬件的兄弟要考驾照板子迟迟没有做出来,不知道到时候能不能赶上提交日期.2周时间确实感觉有点恼火.

像这样的东西当然使用c51就可以搞定了阿.我们选用的是AT89S52的单片机.RAM有256BYTE,开始觉得有点小,不过程序优化下还是够用了.

今天才算正式开始开始设计了.希望5.8能顺利的交上去.不要出什么差错.

资源下载链接为: https://pan.quark.cn/s/a2fe00b11b66 俄罗斯方块。 红外遥控操作:通过红外遥控发送信息,实现游戏的开始、方块移动等功能。 LED矩阵显示:利用LED矩阵接收信息并操作俄罗斯方块。 串口通信:向电脑发送相关信息,包括开始信息、分数和结束信息。 打开单片机后,0.5秒内电脑串口显示“Welcome to play Tetris! Press Power_Key to start.”。 按下POWER键开始游戏。红外遥控键4和6分别用于左移和右移,2键用于旋转,5键用于加速下降。 游戏过程中,每消除一行,电脑串口会显示当前分数,如“Your score is 010.”。 游戏结束后,电脑显示“Game over!!! Press Power_key to replay.”,按下POWER键可重新开始。 封装设计:对俄罗斯方块游戏进行封装,对外只提供Tetris_Run()接口,其他功能由内部函数实现。 全局变量: LED_buf:8×8数组,用于保存LED矩阵状态。 Shape:7×2×4数组,保存七种方块形状。 其他变量:保存方块位置、方向、类型、分数、随机数种子、游戏状态等。 主要函数及实现思路: Tetris_Run():主循环函数。初始化相关变量,通过串口定时器向电脑发送信息,进入主循环接收并处理红外信号。 Timer2_Routine():定时器2中断函数。用于生成伪随机数,刷新LED矩阵,处理方块下落和行消除逻辑。 Set_Block():在指定位置设置方块。通过循环点亮对应LED。 Block_Move():移动方块。先清除当前位置方块,再点亮目标位置方块。 End_Check():判断游戏是否结束。检查新生成方块是否与已有方块碰撞,若碰撞则游戏结束,通过串口发送结束信息。 GenerateNewBlock():
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值