挑战极限(一)!小玩意,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条回答
zaixian
1楼-- · 2020-01-20 17:29
很强悍...51就要用asm才够速度,,,那么用片avr,用c编程速度够了吧!!!!!!!!
另外换1T的51,比如stc10/11 F系列,估计用c页可以了,,,,

看能否移植一下...
418425051
2楼-- · 2020-01-20 21:35
 精彩回答 2  元偷偷看……
zaixian
3楼-- · 2020-01-21 02:48
建议:【55楼】 cowboy

你去stc申请6片,stc新版1T的mcu吧(免费),发个传真就有了......
这样你可以试试用c编译.....
37150839
4楼-- · 2020-01-21 07:15
非常不错,顶牛人!
cowboy
5楼-- · 2020-01-21 13:06
只要有硬件PWM的MCU,都能产生VGA时序,其它的功能都可以用一般编程的方法,用C来编。AT的2051能行的,STC的也行,AVR也行。
游戏程序也不算难,只是要多花点时间和心思。我也曾用ARM做过方块程序,由于资源丰富,编程容易多了。用2051来做,只是想求证一下低档MCU的极限能力有多强。
转个关于VGA时序的文章,希望对大家有所帮助,http://www.eda121.com/arm/yyarnm/200709/698.html
55楼的程序还有些BUG,程序仍在完善中...
cowboy
6楼-- · 2020-01-21 17:12
顺便提一下,电路中晶体标识为24MHz,实际要用用24.1680 MHz才能符合标准。用24MHz晶体,可能有某些显示器不接受。

一周热门 更多>