大家好,今天来为大家分享51单片机12864大液晶屏俄罗斯方块游戏ROTEUS教程的一些知识点,和的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
//**************************************************** ******************************************************
//**************************************************** ******************************************************
//**程序名称:俄罗斯方块游戏**
//** 版本说明:该版本为第一个版本,在LCD1608版本4的基础上进行改进,目前只能绘制游戏区域的边框。 **
//**完成时间:2007年8月28日**
//**************************************************** ******************************************************
//**************************************************** ******************************************************
//**************************************************** ******************************************************
//* *
//********************************头文件和宏定义************ ******************
//* *
//**************************************************** ******************************************************
#include 'includes.h'
#定义TIME1H0x3C
#define TIME1L0xB0 //定时器1溢出时间:50ms
#定义SCANPORT P1
//**************************************************** ******************************************************
//* *
//********************************全局变量**************** * **********************
//* *
//**************************************************** ******************************************************
//无符号字符代码uca_TEST[]={0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0};
//
//防抖标志
//
位b_KeyShock=0; //键盘防抖标志位。
//当按键中断发生时,首先判断该位。
//0--执行键盘扫描和键码处理程序; 1--不执行。
位b_KillShock=0; //防抖标志清除位:0--不清除; 1--清除。
无符号字符uc_KillCount=0; //抖动标志清除计数,使用定时器1。
//
//键盘扫描使能标志
//
位b_KeyScan=0; //0--不扫描;
//1--扫描。
//**************************************************** ******************************************************
//* *
//********************************主要函数**************** *** **********************
//* *
//**************************************************** ******************************************************
/********************** 主要的**********************/
无效主(无效)
{
vLCD初始化();
vShowOneChin(0,0,uca_QING);
vShowOneChin(2,0,uca_SHU);
vShowOneChin(4,0,uca_RU);
vShowOneChin(6,0,uca_MAOHAO);
vShowGraph(2,60,32,4,uca_Pig);
vShowFrame();
扫描端口=0x0F;
//外部中断0,用于使能键盘扫描和键码处理标志
IT0=1; //中断方式:下降沿。
EX0=1; //启用外部中断。
//定时器1,用于清除防抖标志
TH1=时间1小时;
TL1=时间1L;
TR1=1; //启动定时器1
ET1=1; //使能定时器1中断
EA=1;
同时(1)
{
if(b_KeyScan==1) //如果有按键按下,则进行按键扫描和键码处理。
{
b_KeyScan=0;
vKeyProcess(ucKeyScan());
}
}
}
//**************************************************** ******************************************************
//* *
//* ******************************外部中断0,用于使能键盘扫描和键码处理**** ******************
//* *
//**************************************************** ******************************************************
void vINT0(void) 中断0
{
if(b_KeyShock==0)
{
b_KeyScan=1; //打开键盘扫描标志。
b_KeyShock=1; //设置防抖标志。
}
否则b_KeyShock=0; //如果有抖动,则不进行按键扫描,并恢复防抖标志。
//设置防抖清除标志位
if(b_KeyShock==1)
b_KillShock=1; //如果防抖标志打开,则打开防抖标志清除位。
//300ms后清除防抖标志。
}
//**************************************************** ******************************************************
//* *
//* ******************定时器1中断,用于计时功能和防抖标志位清除**************** * **************
//* *
//**************************************************** ******************************************************
void vTimer1(void) 中断3
{
//
//清除防抖标志
//
if(b_KillShock==1)
{
if(uc_KillCount==5) //当防抖标志位为1时,300ms后清除抖动标志位。
{
b_KeyShock=0;
b_KillShock=0;
uc_KillCount=0;
}
否则uc_KillCount++;
}
//
//恢复定时器1溢出时间
//
TH1=时间1小时;
TL1=时间1L;
}
最后,如果大家有什么意见或者建议,欢迎给我留言。让我们共同学习、共同进步。
谢谢大家!
用户评论
太怀旧了!小时候经常玩俄罗斯方块,没想到现在还能通过单片机体验到这感觉。
有7位网友表示赞同!
这个教程看起来很详细,我打算跟着做一台送给我小朋友的特别的礼物。
有5位网友表示赞同!
我已经看完了教程,现在开始动手组装!希望最终效果能达到预期!
有19位网友表示赞同!
单片机和俄罗斯方块真是绝妙的结合! 看着这个小游戏的屏幕感觉特别有画面感。
有19位网友表示赞同!
这款游戏是不是可以自定义配个主题音乐?那样就更完美了!
有7位网友表示赞同!
我虽然不会编程,但还是想试试跟着教程做一台出来。学习新的东西总是一件很有意思的事情。
有8位网友表示赞同!
51单片机玩游戏真的太酷了!比我现在玩的手机游戏要有质感多了。
有9位网友表示赞同!
这款俄罗斯方块的游戏难度怎么样?会不会太难打败?
有14位网友表示赞同!
教程里提到了大液晶屏,这屏幕尺寸看起来应该就挺合适了吧。
有6位网友表示赞同!
玩单片机游戏的乐趣在于自己动手造出来这个东西! 更有成就感!
有12位网友表示赞同!
喜欢玩俄罗斯方块的人简直不能错过这款游戏!
有14位网友表示赞同!
这个教程给做出来了,送给我女朋友肯定很能打她的心!
有12位网友表示赞同!
希望以后还有更多单片机游戏开发出来,我很期待!
有7位网友表示赞同!
有没有一些扩展的教程可以改变游戏的背景色?我要把这款俄罗斯方块个性化定制!
有15位网友表示赞同!
这个游戏如果支持蓝牙连接多个玩家一起玩就好了!
有9位网友表示赞同!
大液晶屏看起来画面真的很大!体验感应该会很棒吧。
有18位网友表示赞同!
我想问一下,这款游戏除了俄罗斯方块之外,还有其他玩法吗?
有12位网友表示赞同!
这款游戏的音效怎么样?是不是会有那个经典的俄罗斯方块音乐?
有18位网友表示赞同!