简单代码实现LCD菜单(C语言的实现方法---加强版 有视频教程)

                单片机中 LCD实现菜单方法

 

 

 

       我上篇BLOG《12864实现菜单(C51控制 原创) 》发表后有很多网友,来咨询我这方,面的问题。没办法了,回邮件很辛苦。千奇百怪的问题,很辛苦的哇!!

                

 

      现在有在在发一会代码上去。并且有视屏教程。是我半年前写的,非常好的代码,大家可以清晰的看到:如何使用C语言去实现LCD 的菜单。

 

      因为这个代码写了有段时间了,所以录制视频的是很不太顺。呵呵!不过凭你的聪明才智我想我已经,讲的非常非常之详细了。

 

注明:

      这次代码,1个积分。基本上算是送无偿给大家了。1分就是看看有多少人下载咯!哈哈~~~~~

 

 

下面发一段简单的代码:(精华也是代码的一部分如果需要就去CSDN下载吧)

//=====================================================================
//      菜单指针指向的函数(既索引对应的功能体)
//=====================================================================
void Top_Menu(void)
{
Send_EnterKey();
Send_String("***************************/r/n");
Send_String("*******主菜单界面*********/r/n");
Send_String("***************************/r/n");
Send_String("***************************/r/n");
Send_String("建立时间:"__DATE__" /r/n");
Send_String("          "__TIME__" /r/n");
Send_String("左键:   进入菜单    /r/n");
Send_String("右键:   进入宝典    /r/n/r/n");
Send_String("%K1菜单%          %K2宝典%/r/n");
Send_String("***************************/r/n");
Send_EnterKey();

LED1_ON();
}

 


void Menu_IN(void)
{
Send_EnterKey();
Send_String("***************************/r/n");
Send_String("*******进入菜单界面*********/r/n");
Send_String("***************************/r/n");
Send_String("短信      信息宝典     设置 /r/n");
Send_String("彩信相册  彩信         彩信帝国/r/n");
Send_String("互联网    电话本       播放器  /r/n");
Send_String("通话记录   闹钟        多媒体/r/n");
Send_String("                 %K3返回%/r/n");
Send_String("***************************/r/n");
Send_EnterKey();
LED2_ON();
}


void baodian(void)
{
Send_EnterKey();
Send_String("***************************/r/n");
Send_String("*******进入宝典界面*********/r/n");
Send_String("***************************/r/n");
Send_String("1、新闻资讯/r/n");
Send_String("2、天气预报/r/n");
Send_String("3、聊天交友/r/n");
Send_String("4、无限游戏/r/n");
Send_String("5、笑话情趣/r/n");
Send_String("6、神机妙算/r/n");
Send_String("7、两性生活/r/n");
Send_String("                 %K3返回%/r/n");
Send_String("***************************/r/n");
Send_EnterKey();

 

LED3_ON();
 
}

 

//=====================================================================
//      菜单的实现代码如下:
//=====================================================================
#define MENU_SIZE 18             //菜单长度

unsigned char KeyFuncIndex=0;    //存放当前的菜单索引

void (*KeyFuncPtr)();            //定义按键功能指针
//定义类型
typedef struct
{
   unsigned char KeyStateIndex;   //当前的状态索引号
   unsigned char KeyLiftState;    //按下向左键时的状态索引号
   unsigned char KeyRightState;   //按下向右键时的状态索引号
   unsigned char KeyReturnState;  //按下返回键时的状态索引号
   void (*CurrentOperate)();      //当前状态应该执行的功能操作
}  StateTab;
//=====================================================================

 //数据结构数组
StateTab code KeyTab[MENU_SIZE]=
{
    {0,1,2,0,   (*Top_Menu)},      //顶层
 {1,1,1,0,   (*Menu_IN)},    //菜单
 {2,2,2,0,   (*baodian)},       //宝典
};
//=====================================================================
void MenuOperate(void)
{

     if(K1==0)        //左键
  {KeyFuncIndex=KeyTab[KeyFuncIndex].KeyLiftState;}
  if(K2==0)     //右键
  {KeyFuncIndex=KeyTab[KeyFuncIndex].KeyRightState;}
  if(K3==0)     //返回键
  {KeyFuncIndex=KeyTab[KeyFuncIndex].KeyReturnState;}
  //此处添加按键错误代码
  
 //下面是执行按键的操作
 KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
 (*KeyFuncPtr)();     //执行当前的按键操作
}
//======================================================================
//              菜单功能程序结束
//======================================================================

 

void main()
{
 #ifdef Enable_UART_Debug   //调用串口初始化程序
 Init_Com();   
 #endif
 MenuOperate();

 while(1)
 {
  if(K1==0||K2==0||K3==0)
  {LED_OFF();MenuOperate(); }
 }
}

 

 

 

好好研究!你一定能成功!这篇博客只讲解代码精华部分。 

代码思路可以移植到任何LCD.不管是彩色还是黑白,LED也行啊!

 

下载地址:http://download.csdn.net/source/1923194 

 

 

  • 5
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值