单片机中 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

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

  1. java代码中如何嵌入c语言,Android中Java代码与C的互相调用(JNI的简单使用)

    引言 最近在做项目的时候,接触到JNI,想一想自己第一次接触这个东西的时候,还是好久之前,现在既然接触到了,那我就简单的跟大家讲一讲JNI的基本使用方法. JNI(Java Native Interf ...

  2. 【排序算法】简单选择排序及实例_C语言代码实现_Python代码实现

    博客对您有所帮助的话,欢迎给个赞啦,你的鼓励是对我最大的支持! 有不足之处也请您评论指教 简单选择排序 简单选择排序是选择排序的一种. 问:那么什么是选择排序? 答:每趟从待排序的记录中选出关键字最小 ...

  3. 基于单片机的LCD菜单设计

    在小型的单片机设备中,需要使用LCD菜单进行人机交互.对于这种交互的实现,一来无需像在手机上做APP一样,做出花哨的界面效果:二来这种小设备也不支持那样太消耗资源的界面系统.所以这种场合下,需要我们亲 ...

  4. 代码检查规则:Python语言案例详解

    在之前的文章中代码检查规则:Java语言案例详解学习了Java的检查规则.我们今天将学习<代码检查规则:Python语言案例详解>,内容主要分为两个部分:Python的代码检查规则和Pyt ...

  5. 简述如何书写工程化的简单代码

    在坛子里混了这么久,看了很多同学的代码,感觉到大家的代码,学校里面的书生气有点重,对于细节考虑不够,有时候,感觉和吃了颗苍蝇一样,确实很不舒服. 这里根据我个人的经验,给大家简述一下,工程化代码,以及 ...

  6. 数据结构——顺序栈和链式栈的简单实现和解析(C语言版)

    摘自:数据结构学习--顺序栈和链式栈的简单实现和解析(C语言版) 作者:正弦定理 发布时间:2020-11-26 21:26:49 网址:https://blog.csdn.net/chineseko ...

  7. 简单的计算机程序代码,优秀程序员通过简单代码,窥探电脑编程中强大的数组操作功能...

    优秀程序员通过简单代码,窥探电脑编程中强大的数组操作功能.编程语言中,数组是一个非常重要的概念,也是一种很常用的类型.本文中通过javascript语言的代码实例,展现编程中数组的魅力.在javasc ...

  8. Jquery简单的右侧浮动菜单

    今天有空稍微看了下Jquery动画函数animate这个方法,发现可以用这个方法来做下简单的右侧浮动菜单 因为经常做淘宝页面时候会碰到这样的效果 以前都是用人家的javascript组件代码 发现老是 ...

  9. php js多语言切换,php简单实现多语言切换的方法_php技巧

    本文实例讲述了php简单实现多语言切换的方法.分享给大家供大家参考,具体如下: 1.主程序代码: $value){ if($_SESSION["language"] == $val ...

  10. 简单的车票管理系统(c语言)

    简单的车票管理系统(c语言) 前言 车票管理系统 管理员登陆 录入信息 查询信息(分为按车次和按终点站) 操作员登陆 查询信息 订票 退票 总结点击这里 最最重要的在这里 前言:(作者瞎比比,没耐心请 ...

最新文章

  1. Comment:研究微生物,只靠多组学根本不够
  2. 对第三方 SDK 依赖冲突,重新打个包试试
  3. Python 技术篇-读取文件,将内容保存dict字典中。去掉字符串中的指定字符方法,dict字典的遍历
  4. c++:opencv的安装和配置
  5. 《应届生求职面试全攻略》学习笔记(三)——面试题目分类讲解
  6. [Effective JavaScript 笔记]第29条:避免使用非标准的栈检查属性
  7. J2ME最佳实践之联网开发-编写反应灵敏的联网提示界面
  8. GC Blocks Lost等待事件
  9. 【原】 图片预览 Image preview
  10. python笔试题(一)
  11. linux ping 不通 arp incomplete,关于show arp表,显示Incomplete问题
  12. 企业园区网IPv6地址规划方案与应用
  13. USB3.0:VL817Q7-C0的LAYOUT指南(三)
  14. 产品经理面试必问5大问题 (六)
  15. python明文密文_「每日一练」Python实现明文和密文的输入
  16. 如何使用格式工厂将vtt文件格式字幕加在视频文件中
  17. 奉劝那些想涨工资的程序员,这些 IT 大神们都在用的网站,你越早知道越好(建议收藏)!!...
  18. 基于SSH的婴幼儿产品销售系统的开发与设计毕业设计论文
  19. 盘点Java技术在生活中的10大应用
  20. JAVA连接SQL2005

热门文章

  1. ubantu无法连接外网的解决方法
  2. 照片宽高比怎么设置_2019年中级会计报名照片上传完整攻略
  3. Nginx 跨域配置
  4. 计算机设计大赛南京邮电大学,喜讯:我校信息学子在中国大学生计算机设计大赛中再创佳绩...
  5. 谷歌翻译API-python接口-Googletrans
  6. 观察:家乡的、身边的真实互联网
  7. MySQL树结构查询所有叶子节点
  8. 浅谈论文查重检测过程中的常见问题
  9. 单片机超声波测距模块原理与源码解析
  10. C# html日期选择控件,C#实现日期选择