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)
1 产生精准的VGA信号时序
受速度限制,VGA显示模式用最低的640*480@60Hz,这时行频是31.46875K,场频率是59.94Hz.如果单片机有硬件PWM,则行场同步信号可以轻易用PWM实现.由于2051没有PWM,只能用软件模拟,并且不能用定时中断的方式,因为要求速度太高,中断响应速度不够快,且响应时间也不一致,所以本程序中都是把行同步信号穿插在程序的各个适当位置,类似于双线程并行执行,主振也选用2051能承受的最高频率24MHz.
2 合理分配内存.
2051只有128字节内存,要储存一幅画面,显示缓存就需占大部分.主窗口内的面积越大,占用内存就越多.经估算窗口内用14行*8列比较合适.此时显示缓冲占用112字节.余下的16字节用于程序中的工作寄器5字节, 堆栈2字节,其它为全局量.
3 协调各个功能模块之间的工作配合
系统的任务不算多,主要的有显示处理,同步处理,音效处理,按键处理,游戏规则处理(包括方块移动,定时下落,重叠检测,越界检测,得分计数,速度升级).各任务之间协调用类似于状态机的方法,但又不完全等同.由于是用汇编,在很多情况下充分利用汇编的灵活性,使程序的模块化不是很明显.系统的主循环选用显示一帧的时间约16.66MS(60Hz),所有任务必须在这时间内处理完成.
由于程序还在完善中,先发一个临时的版本,大家一起来改进.不是正式版本,注释较少,如果不明之处再单独讨论吧.
点击此处下载 ourdev_420122.rar(文件大小:5K) (原文件名:Tetris11.rar)
(原文件名:方块游戏框图.JPG)
支持!
早阵子我跟著一个外国的开源CPU项目搞了个硬件,蛮好玩的. 不过作者弄的VGA部份比较占空间(六块PCB),我就想可不可以接一片ISA总线的VGA卡来显示. 应该是可行的, 这个网站 (http://tinyvga.com/avr-isa-vga) 有用单片机接VGA卡的实例. 不过她本身的设计是用ATMega128的, 我想学习移到51上实验一下, 不过汇编部份搞不懂就暂时搁置了.
楼主若有时间及兴趣可否提点一下?
大家若对开源CPU项目有兴趣可到他的网页浏览一下, http://www.mycpu.eu/, 作者也不赖的, 除了CPU外也弄了个实时操作系统.
一周热门 更多>