perf(MCU课设): 更改延时选项以加强显示效果
This commit is contained in:
parent
81d8da0747
commit
b77d77f03b
3 changed files with 30 additions and 50 deletions
|
@ -1,29 +1,9 @@
|
||||||
#include "delay.h"
|
#include "delay.h"
|
||||||
#include <intrins.h>
|
#include <intrins.h>
|
||||||
void delay100us()
|
|
||||||
{
|
|
||||||
unsigned char i, j;
|
|
||||||
|
|
||||||
_nop_();
|
|
||||||
_nop_();
|
|
||||||
i = 2;
|
|
||||||
j = 15;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
while (--j);
|
|
||||||
} while (--i);
|
|
||||||
}
|
|
||||||
|
|
||||||
//void delay(int i)
|
|
||||||
//{
|
|
||||||
// int j = i;
|
|
||||||
// for(;j>0;j--)
|
|
||||||
// delay100us();
|
|
||||||
//}
|
|
||||||
|
|
||||||
void delay(int n)
|
void delay(int n)
|
||||||
|
|
||||||
{int i, j;
|
{int i, j;
|
||||||
for(i=n;i>0;i--)
|
for(i=n;i>0;i--)
|
||||||
for(j = 28; j > 0; j--);
|
for(j = 7; j > 0; j--);
|
||||||
}
|
}
|
|
@ -52,7 +52,7 @@ void time() interrupt 1 //
|
||||||
|
|
||||||
if(PIN_4 == 0)
|
if(PIN_4 == 0)
|
||||||
{
|
{
|
||||||
delay(10);
|
delay(50);
|
||||||
if(PIN_4 == 0)
|
if(PIN_4 == 0)
|
||||||
opr = confirm;
|
opr = confirm;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ Menu M_MAINMENU;//
|
||||||
Menu M_BLOCK; //俄罗斯方块
|
Menu M_BLOCK; //俄罗斯方块
|
||||||
Menu M_BALL; //弹球
|
Menu M_BALL; //弹球
|
||||||
|
|
||||||
Menu M_STARTUP;
|
Menu M_ABOUT;
|
||||||
|
|
||||||
Menu* NOW; //当前菜单指针
|
Menu* NOW; //当前菜单指针
|
||||||
Menu* LAST = NULL; //上一个状态的菜单
|
Menu* LAST = NULL; //上一个状态的菜单
|
||||||
|
@ -26,29 +26,8 @@ enum OPR opr = idle;
|
||||||
static unsigned char local[10] = {0};
|
static unsigned char local[10] = {0};
|
||||||
unsigned char score = 0;
|
unsigned char score = 0;
|
||||||
extern enum GS blockGameStatus;
|
extern enum GS blockGameStatus;
|
||||||
//初始化显示
|
|
||||||
void m_startup(struct _menu* this)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
if(LAST != &M_STARTUP)
|
|
||||||
{
|
|
||||||
LAST = &M_STARTUP;
|
|
||||||
|
|
||||||
drawNAME(); //绘制名字
|
|
||||||
delay(1000);
|
|
||||||
drawNUMBER(); //绘制学号
|
|
||||||
}
|
|
||||||
|
|
||||||
if(opr == right)
|
|
||||||
{
|
|
||||||
opr = idle;
|
|
||||||
NOW = this->n; //转向下一菜单
|
|
||||||
clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//主菜单
|
//主菜单
|
||||||
void m_mainmenu(struct _menu* this)
|
void m_mainmenu(struct _menu* this)
|
||||||
{
|
{
|
||||||
|
@ -89,7 +68,7 @@ void m_mainmenu(struct _menu* this)
|
||||||
NOW = &M_BALL; //转向下一菜单
|
NOW = &M_BALL; //转向下一菜单
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
NOW = &M_STARTUP; //转向下一菜单
|
NOW = &M_ABOUT; //转向下一菜单
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,21 +134,42 @@ void m_block(struct _menu* this)
|
||||||
dropPiece(); //若有需要,块下落
|
dropPiece(); //若有需要,块下落
|
||||||
judgeBlock(); //若有需要,清除一行
|
judgeBlock(); //若有需要,清除一行
|
||||||
drawBlock(); //绘制界面
|
drawBlock(); //绘制界面
|
||||||
delay(200);
|
delay(800);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//关于页
|
||||||
|
void m_about(struct _menu* this)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
if(LAST != &M_ABOUT)
|
||||||
|
{
|
||||||
|
LAST = &M_ABOUT;
|
||||||
|
|
||||||
|
drawNAME(); //绘制名字
|
||||||
|
delay(5000);
|
||||||
|
drawNUMBER(); //绘制学号
|
||||||
|
}
|
||||||
|
|
||||||
|
if(opr == confirm)
|
||||||
|
{
|
||||||
|
opr = idle;
|
||||||
|
NOW = &M_MAINMENU; //转向下一菜单
|
||||||
|
clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void menuInit()
|
void menuInit()
|
||||||
{
|
{
|
||||||
M_STARTUP.n = &M_MAINMENU;
|
|
||||||
M_STARTUP.f = m_startup;
|
|
||||||
|
|
||||||
M_MAINMENU.f = m_mainmenu;
|
M_MAINMENU.f = m_mainmenu;
|
||||||
M_BLOCK.f = m_block;
|
M_BLOCK.f = m_block;
|
||||||
|
M_ABOUT.f = m_about;
|
||||||
|
|
||||||
#ifdef DEBUG_MODE
|
#ifdef DEBUG_MODE
|
||||||
NOW = &M_DEBUG;
|
NOW = &M_DEBUG;
|
||||||
#else
|
#else
|
||||||
NOW = &M_STARTUP;
|
NOW = &M_MAINMENU;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue