×

使用51单片机应用12864实现菜单的电路图免费下载

消耗积分:1 | 格式:pdf | 大小:0.24 MB | 2019-04-23

分享资料个

  现在有在在发一会代码上去。并且有视屏教程。是我半年前写的,非常好的代码,大家可以清晰的看到:如何使用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也行啊!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !