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;
}
}
}
|