#include<reg51.h>
#include<intrins.h>
#include"lcd.h"
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
typedef unsigned int u16; //對數據類型進行聲明定義
typedef unsigned char u8;
static int flag =0; //標記
void delay(u16 i) //延時
{
while(i--);
}
void menu0 ()
{
Lcd1602_Write_Cmd(0x01);
LcdShowStr(0,0," hello ") ;
delay(1000);
}
void menu1 ()
{
Lcd1602_Write_Cmd(0x01);
LcdShowStr(0,0," welcome ") ;
delay(1000);
}
void menu2 ()
{
Lcd1602_Write_Cmd(0x01);
LcdShowStr(0,0," nihao ") ;
delay(1000);
}
void keyscan()
{
if(k1==0)
{
delay(1000);
if(k1==0)
{
flag=1;
}
}
if(k2==0)
{
delay(1000);
if(k2==0)
{
flag=2;
}
}
if(k3==0)
{
delay(1000);
if(k3==0)
{
flag=0;
}
}
}
void menu()
{
keyscan();
switch(flag)
{
case 0:
{
menu0();
}
break;
case 1:
{
menu1();
break;
}
case 2:
{
menu2();
break;
}
}
}
void main(void)
{
InitLcd1602();
while(1)
{
menu();
delay(5000);
}
}
已經改好了具體的功能是一開始顯示第一個菜單hello 當第一按鍵按下時顯示第二個菜單,welcome,當第二個按鍵按下時顯示第第三個菜單,當第三個按鍵按下時,顯示第一個菜單,也就是返回鍵。一開始的程序里面沒想清楚switch語句的用法所以搞錯了 。謝謝各位啦。具體的菜單想要什么就改動就可以了~ |