挑战极限(一)!小玩意,AT89C2051驱动彩显玩方块游戏

2020-01-12 17:07发布

89C2051能干什么?这次我打算用它来做个方块游戏,用彩显来显示。
但2051那点速度,那点内存,做起来好不容易。
没有PWM输出,只能用软件模拟彩显的行,场同步信号。
仅128 BIT内存,其中112字节用作显示缓存,剩下给系统的只有16字节了。
硬件倒是简单,所以就连洞洞板也没焊,拿个IC座空中搭桥来测试。
程序还有些BUG,迟些改好后再上传。

(原文件名:图1.jpg)


(原文件名:图2.jpg)


(原文件名:图3.jpg)

以下蓝 {MOD}文字由版主:xuyiyi 于:2009-08-18,13:08:51 加入。


呵呵,终于做好了,并加了个动感的开机动画,先上视频。
点击此处下载 ourdev_421910.rar(文件大小:2.53M) (原文件名:Tetris.rar)

最新版原理图及 PCB图,终结完美版。
点击此处下载 ourdev_433410.rar(文件大小:49K) (原文件名:终结版VGA_3.rar)

俄罗斯方块游戏源码:
点击此处下载 ourdev_433333.rar(文件大小:12K) (原文件名:俄罗斯方块游戏_V33_源码[89C4051].rar)

俄罗斯方块游戏Hex码:
点击此处下载 ourdev_472211.rar(文件大小:3K) (原文件名:Tetris33 4051 hex file.rar)

网友 cowboy 设计总结:
  整板测试完毕,基本满意。还有一些小毛病:
1、显示网格信号时,发现有轻微拖尾现象,发现是下拉电阻R13(3.3K)过大所致,改为1K后正常。
2、三极管封装丝印画反了,所有三极管全部转 180度安装才正确,即将 C, E 引脚对换。
   切记不要按丝印的那个“D”形来安装,要转180度才正确。
3、电源退耦电容小了点,当扬声器阻抗较低,且电源内阻大时,画面有些干扰。

----------------------------------------------------------------------------------------------

网友 xiaozhiyong 测试 LS2051 总结:
  LS2051测试成功了。
关于LS2051每运行一条语句只用一个机器周期,所以在AT2051里的双周期语句后都得加NOP。我改了以后试了下发现能用,现在先发个暂时看着能用的程序。以下是测试程序:
点击此处下载 ourdev_433306.rar(文件大小:2K) (原文件名:LS2051test.rar)


(原文件名:成品图.jpg)


(原文件名:方块游戏框图.JPG)


(原文件名:Tetris.PNG)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
superyongzhe
1楼-- · 2020-01-15 20:30
真是不佩服都不行!
zcllsn
2楼-- · 2020-01-16 01:47
厉害~我顶你!
dcss
3楼-- · 2020-01-16 06:40
 精彩回答 2  元偷偷看……
cowboy
4楼-- · 2020-01-16 07:57
前两天没空,今天看了下存在的BUG,一时没有什么好的解决方法,请大家出点主意。
问题是如何判断不同形状的方块在移动时是否移出窗外。
试了好几种算法,都很复杂,简单的算法有些不正确,居然卡在这里。
具体情况是用一个8位变量L表示方块原点坐标(x,y),L的低3位表示x,范围0~7,L的bit3~bit6表示y,范围2~15.如何能用便捷的方法判定7种不同方块及4个不同的旋转角度在移动到某坐标时是否越界?
flyunlimit
5楼-- · 2020-01-16 09:39
焊工和编程能力都很了得。
hyz_avr
6楼-- · 2020-01-16 11:52
先移(或旋转)再判断..

一周热门 更多>