void T1_time() interrupt 3
{
TF1=0; //清除中断标志
TR1=0; //关中断
if(kenter==0||kxuanze==0)
{
delay(10);
if(kxuanze==0)
{
s1num++;
while(!kxuanze); /////////////
}
if(kenter==0)
{
++flag;
while(!kenter);
}
}
TH1=0xf8; //重装初始值(65535-2000)=63535=0xf82f
TL1=0x2f;
TR1=1; //开中断
}
void key_service() //按键服务的应用程序
{
if(s1num==1)
{
set_postion(0,4); //一行三列(第一菜单的界面)
Lcd_WriteCmd(0x0f); //光标闪烁
delay(6000);
}
else if(s1num==2) //变量为2
{
set_postion(1,4); //二行三列
Lcd_WriteCmd(0x0f); //光标闪烁
delay(6000);
}
else if(s1num==3) //变量为3
{
set_postion(2,4);
Lcd_WriteCmd(0x0f);
delay(6000);
}
if(s1num==4)
{
set_postion(3,4);
Lcd_WriteCmd(0x0f);
delay(6000);
}
if(s1num==5)
{
s1num=0;
delay(6000);
}
if(s1num!=0) //如果slnum不等于0,目的是为了让S1键起作用后S2键才发挥相应的作用
{
if((s1num==1)&&(flag==1)) //与选择键中选中的相应栏目对应
{
s1num=0;
Lcd_WriteCmd(0x01); //清屏
delay(5);
Lcd_WriteCmd(0x0f);
delay(5); //目的为了当进入父菜单后的子菜单,S1键能发挥作用
game ();
}
if((s1num==2)&&(flag==1))
{
s1num=0;
Lcd_WriteCmd(0x01); //清屏
delay(5);
Lcd_WriteCmd(0x0f);
delay(5);
speed(); //目的为了当进入父菜单后的子菜单,S1键能发挥作用
}
if((s1num==1)&&(flag==2)) //如果变量为2.,进入子菜单的下一级菜单,下s1num==1,否则会进入误操作
{
Lcd_WriteCmd(0x0C);
delay(5);
Lcd_WriteCmd(0x01);
delay(5);
Speed1();
}
if((s1num==2)&&(flag==2)) //if((s1num==2)&&(flag==2)&&(flag==1))
{
Lcd_WriteCmd(0x0C);
delay(5);
Lcd_WriteCmd(0x01);
delay(5);
Speed2();
}
if((s1num==3)&&(flag==2))
{
Lcd_WriteCmd(0x0C);
delay(5);
Lcd_WriteCmd(0x01);
delay(5);
Speed3();
}
if((s1num==4)&&(flag==2))
{
Lcd_WriteCmd(0x0C);
delay(5);
Lcd_WriteCmd(0x01);
delay(5);
Speed4();
}
if((s1num==3)&&(flag==1))
{
s1num=0; //目的为了当进入父菜单后的子菜单,S1键能发挥作用
Lcd_WriteCmd(0x01); //清屏
delay(5);
Lcd_WriteCmd(0x0f);
delay(5);
moshi();
}
if((s1num==1)&&(flag==2))
{
Lcd_WriteCmd(0x0C);
delay(5);
Lcd_WriteCmd(0x01);
delay(5);
moshi1();
}
if((s1num==2)&&(flag==2))
{
Lcd_WriteCmd(0x0C);
delay(5);
Lcd_WriteCmd(0x01);
delay(5);
moshi2();
}
if(s1num==4)
{
s1num=0;
}
if(flag==3)
{
flag=0;
}
}
}
|