一.硬件方案
本设计采用STC89C52RC单片机作为系统的芯片,实现人机交互、娱乐等功能。选用LCD12864实现俄罗斯方块游戏界面、图形显示;选用独立按键实现游戏控制。本设计实现的基本功能是:用按键控制目标方块的变换与移动;消除一行并计分,方块堆满时结束游戏等俄罗斯方块的基本功能。
硬件主要由51单片机+最小系统电路+按键电路+12864液晶显示电路设计而成。
二.设计功能
(1)主控芯片基于STC89C51/52(与AT89S51/52、AT89C51/52通用)单片机;
(2)采用LCD12864液晶显示屏;
(3)共有7个按键,除复位按键外,其余六个按键分别为:左移、右移、变形、下降、暂停、确定;
(4)设计有0~9个关卡,达到一定分数自动升级;
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:
(2)Protues仿真图如下:
四.软件设计
(1)程序流程图
(2)主程序源码
void main()
{
LCD_initialize();
LCD_clear();
while(1)
{
game_start_show();
select_speed();
game_initialize();//调用游戏初始化函数,初始化游戏所有变量以及在液晶屏上显示基本的信息
Tetris_main();
game_over_show();
}
}
//定时器0中断服务
void timer0() interrupt 1
{
TH0=0x00;
TL0=0x00;
if(time0_reg<10)
{
time0_reg++;
}
else
{
time0_reg=0;
if(pause_game_flag==0)
{
game_execute();
refurbish_display();
}
}
}
上一篇:基于51单片机的交通灯设计
下一篇:基于单片机的直流电机控制PWM调速代码
推荐阅读
史海拾趣
BERNSTEIN公司的历史可以追溯到Weimar时期,当时Bernstein兄弟在莱比锡创立了“Monopol”公司,专注于为电气建筑服务控制系统生产和制造低压产品。初创时期,公司面临着资金短缺、市场竞争激烈等诸多困难。然而,Bernstein兄弟凭借对技术的执着追求和对市场的敏锐洞察,成功研发出了一系列具有竞争力的产品,并逐渐在市场上站稳脚跟。
在环保和可持续发展成为全球共识的今天,Heatron LED Integration积极践行绿色发展理念。公司不仅在生产过程中注重节能减排和资源循环利用,还致力于推广高效、节能的LED照明产品。通过不断的技术创新和产品优化,公司成功推出了一系列低碳环保的LED照明解决方案,为推动全球绿色可持续发展贡献了自己的力量。
近年来,随着环保意识的提高和政府对塑料污染治理的关注,BOPLA积极响应国家号召,开始研发和推广生物基可降解材料。经过多年的努力,公司成功推出了BOPLA生物基膜材,实现了产品的绿色转型。这一创新不仅有助于减少塑料污染,还为公司赢得了更多的环保意识和绿色消费市场的青睐。
作为一家技术驱动型企业,Dytran始终将技术创新作为公司的核心竞争力。公司不断投入研发资源,推动传感器技术的升级和产业升级。在单轴和三轴IEPE加速度计、超高温充电模式传感器、高冲击传感器、电容式MEMS传感器等领域,Dytran都取得了显著的技术突破。这些新技术不仅提高了传感器的性能和精度,还拓展了其应用领域和市场空间。
同时,Dytran还注重与其他行业的合作与交流。通过与航空航天、汽车等行业的合作,Dytran将传感器技术应用于更多领域,推动了相关产业的发展。此外,公司还积极参与国际标准的制定和推广工作,为传感器技术的国际化和标准化做出了贡献。
面对日益复杂的军事需求和快速发展的技术环境,DLA积极推进技术创新和数字化转型。通过引入云计算、大数据、人工智能等先进技术,DLA实现了对全球供应链的实时监控和智能调度,大大提高了后勤保障的效率和准确性。同时,DLA还加强了对新型军事装备的研发和保障能力,确保美军在现代化战争中保持领先地位。
在21世纪初,DRS接受了价值16亿美元的合同,为美国陆军和海军陆战队的部队现代化计划制造加固式计算机。这一合同不仅展示了DRS在军事领域的实力,也进一步巩固了其在全球电子行业的地位。DRS提供的“探索者”MP加固式轻便多平台工作站,为数字战场提供了强大的支持。
控制板的电源要求,板子上电时先给单片机供电,再给其他的元器件供电,以便各个部件在单片机的控制范围内。板子断电时先断其他元器件的电源,再给单片机断电。大家讨论下控制的方式……… 查看全部问答∨ |
|
电耦合器,是近几年发展起来的一种半导体光电器件,由于它具有体积小、寿命长、抗干扰能力强、工作温度宽及无触点输入与输出在电气上完全隔离等特点,被广泛地应用在电子技术领域及工业自动控制领域中,它可以代替继电器、变压器、斩波器等,而用于 ...… 查看全部问答∨ |
我对Mini2440的中断感到非常困惑,我在LPC2103上中断几乎没什么问题。但是在Mini2440调试我都捕捉不到。最感到困惑的是假如我的开发板是内存地址0x30000000到0x40000000吧,那么这个指令mov r1,#0xffffffff和str r1,[r0]应该是会发生数 ...… 查看全部问答∨ |
我的平台上连着USB 3G上网卡,想达到这样的效果: 1. 点击“我的连接”时,就启动USB电源;稍等一会点“连接”就可以拔号了 2. 点“断开连接”时,就断开USB电源 不知修改哪里的代码,电源的控制很简单,设置一个使能引脚而已… 查看全部问答∨ |
我现在用的AU1250,现在读取大的图片和显示都比较慢,例如一张800*480的jpeg图片,读取图片大约150毫秒左右,显示图片在130-240毫秒左右。 在网上查的Samsung 6410有2D加速和jpeg硬加速,不知道能快多少啊?… 查看全部问答∨ |
之前发过帖子询问关于绘制窗口时的问题, A,B窗口互相独立,B弹出时会覆盖A,B隐藏时覆盖A的部分会刷白,之后在网上查询过资料后找到了解决的问题。 因为A,B窗口都是贴了PNG的图片,PNG用PS修饰之后可以显示透明的效果,于是就用了IImage绘制。 ...… 查看全部问答∨ |
我想试一下2个gprs模块的点对点通讯,但是连不通,2个模块拨通后都是10.14.x.x ip地址,为什么连不通?? 有人说是移动认为阻断了内网之间的ip连接。但是也没有查到较权威的说法?? 现在有的公司的gprs dtu产品提供点对点的通讯模式 ...… 查看全部问答∨ |
我用的是arm+linux 文件系统是用busybox制作的,再用mkfs.jffs2做成jffs文件系统; 但是现在出了个怪问题是:总的flash只有16M,分给boot和kernel 3M,还剩下13M;问题来了,我用du命令查看文件夹的大小,结果是已经有两个文件夹的大小分别是8.1M ...… 查看全部问答∨ |
我用的是(STM32F103R8) PC12作下降沿触发,外部输入的时序如下图: 下载 (20.77 KB) 2010-12-3 15:28 现在出现一个情况,搞了好长时间也没查出问题。… 查看全部问答∨ |