简单代码实现LCD菜单(C语言的实现方法---加强版 有视频教程)
2009-12-21 19:34
866 查看
单片机中 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
我上篇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
相关文章推荐
- 单片机c语言下lcd多级菜单的一种实现方法
- 单片机C语言下LCD多级菜单的一种实现方法
- 单片机C语言下LCD多级菜单的一种实现方法
- 单片机c语言下lcd多级菜单的一种实现方法
- 简单代码实现LCD菜单
- 视频二值化处理基本方法以及简单代码实现
- 简单的C语言快速排序实现代码
- 4行代码简单实现js树形菜单
- 通过AJAX调用页面后台代码方法实现省级三级联动效果 (简单练习)前台
- 利用jquery的attr方法一行代码实现的简单的图片切换效果
- log4j JAVA 简单日志功能 实现 实例 教程 代码
- jquery实现最简单的滑动菜单效果代码
- JS+CSS简单树形菜单实现方法
- C语言MD5加密算法的简单调用实现(另附:Java/Python/Shell/Golang方法)
- jQuery实现简单的列表式导航菜单效果代码
- JS+CSS简单树形菜单实现方法
- 树莓派实现web控制GPIO教程(安装方法更简单,网页效果更好)
- 简单的CSS 下拉导航菜单实现代码
- 1.1XAF框架开发视频教程-简单的订单管理实现过程,视频,提纲,及教程源码
- 一段简单的代码,实现iOS源生播放器,在线播放视频