简单菜单系统Proteuspg12864液晶

上传人:s9****2 文档编号:496827152 上传时间:2023-03-09 格式:DOC 页数:23 大小:399KB
返回 下载 相关 举报
简单菜单系统Proteuspg12864液晶_第1页
第1页 / 共23页
简单菜单系统Proteuspg12864液晶_第2页
第2页 / 共23页
简单菜单系统Proteuspg12864液晶_第3页
第3页 / 共23页
简单菜单系统Proteuspg12864液晶_第4页
第4页 / 共23页
简单菜单系统Proteuspg12864液晶_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《简单菜单系统Proteuspg12864液晶》由会员分享,可在线阅读,更多相关《简单菜单系统Proteuspg12864液晶(23页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! Mega16单片机程序 interface.h/*移植时要实现以下函数:LcdClrScrn(); /清屏ShowARROW(SysSclt); /在某一行显示箭头DisShowARROW(SysSclt); /在某一行不显示箭头ShowLine(0, Copy Right); /在某一行显示字符串uchar GetKey(); /按键检测函数。 返回Key_Up Key_Down Key_Right Key_Left*/#ifndef _INTERFACE_H_#define _INTERFACE_H_ #include KEY.h /exte

2、rn void Interface(void); #define GOTO_CHILD 0XFC#define FROM_FATHER 0XFC #define GOTO_FATHER 0XFD /之前设置为0xff 不对,有问题,子界面返回时,不刷新#define FROM_CHILD 0XFD /# #define INT8U unsigned char INT8U Key; /系统按键.INT8U KeyDir = FROM_FATHER; /用来各个界面之间的切换时传递参数./=/系统界面函数声明区.(一定要声明!) 有几个不同的界面就有几个函数void UI_Idle(void);v

3、oid UI_Help(void);void UI_Time();void UI_Temperature();void UI_Play();void UI_Set();void (*pUI)()=UI_Idle; /界面指针初始化为IDLE函数. 函数指针 /pUI();为当前while()大循环下执行的函数#define UI_GOTO(index) pUI=(index); #define UI_GOTO_CHILD(index) pUI=(index); KeyDir=GOTO_CHILD;#define UI_GOTO_FATHER(index) pUI=(index); KeyDir

4、=GOTO_FATHER;/=/以下是各个界面的函数实现.每个函数都要在上面声明!/空闲状态下的循环.void UI_Idle()static INT8U SysSclt=0; /当前选中的是哪一项switch(Key) /进入菜单. case FROM_FATHER: case FROM_CHILD: /case GOTO_FATHER: LcdClrScrn(); / 0 1 2 3 4 #define IDLE_MENU_MAX 4 ShowLine(0,1.Temperature); ShowLine(1,2.Time); ShowLine(2,3.Play Games); ShowL

5、ine(3,4.Set ); ShowLine(4,5.Help); ShowLine(7, select); ShowARROW(SysSclt); break; /箭头上移 case Key_Up: DisShowARROW(SysSclt); if(SysSclt=0)SysSclt=IDLE_MENU_MAX; else SysSclt-; ShowARROW(SysSclt); break; /箭头下移 case Key_Down: DisShowARROW(SysSclt); SysSclt+; if(SysScltIDLE_MENU_MAX)SysSclt=0; ShowARRO

6、W(SysSclt); break; /确定 进入 子项 case Key_Right: if(SysSclt = 0) /Temperature UI_GOTO_CHILD(UI_Temperature); /KeyDir = GOTO_CHILD; break; if(SysSclt = 1) /Time UI_GOTO_CHILD(UI_Time); /KeyDir = GOTO_CHILD; break; if(SysSclt = 2) /Time UI_GOTO_CHILD(UI_Play); /KeyDir = GOTO_CHILD; break; if(SysSclt = 3)

7、/Time UI_GOTO_CHILD(UI_Set); /KeyDir = GOTO_CHILD; break; if(SysSclt = 4) /help UI_GOTO_CHILD(UI_Help); /KeyDir = GOTO_CHILD; break; default:break;/switchvoid UI_Temperature()switch(Key) /进入菜单. case FROM_FATHER: /case FROM_CHILD: LcdClrScrn(); ShowLine(0, The); ShowLine(2, Temperature); ShowLine(4,

8、is 27); /改天加DS18B20实际测一个 ShowLine(7, back); break; case Key_Left: UI_GOTO_FATHER(UI_Idle); break; default:break;/switchvoid UI_Time()switch(Key) /进入菜单. case FROM_FATHER: /case FROM_CHILD: LcdClrScrn(); ShowLine(0, The Time is ); ShowLine(2, 09-12-24); ShowLine(4, 0:01 1234567890); ShowLine(7, back);

9、 break; case Key_Left: UI_GOTO_FATHER(UI_Idle); break; default:break;/switchvoid UI_Play()switch(Key) /进入菜单. case FROM_FATHER: /case FROM_CHILD: LcdClrScrn(); ShowLine(0, YOU get to ); ShowLine(1, go back to); ShowLine(2, STUDY); ShowLine(4, Made dy LYQ); ShowLine(7, back); break; case Key_Left: UI_

10、GOTO_FATHER(UI_Idle); break; default:break;/switchvoid UI_Set()switch(Key) /进入菜单. case FROM_FATHER: /case FROM_CHILD: LcdClrScrn(); ShowLine(0, Nothing NOW); ShowLine(7, back); break; case Key_Left: UI_GOTO_FATHER(UI_Idle); break; default:break;/switchvoid UI_Help()switch(Key) /进入菜单. case FROM_FATHE

11、R: /case FROM_CHILD: LcdClrScrn(); ShowLine(0, Copy Right); ShowLine(2, I love China); ShowLine(4, Made dy LYQ); ShowLine(7, back); break; case Key_Left: UI_GOTO_FATHER(UI_Idle); break; default:break;/switch/系统的大循环.void Interface(void)/=/以下为按键的处理.Key = GetKey(); if(KeyDir!=0) /KeyDir=GOTO_CHILD or KeyDir=GOTO_FATHER; /建立一种传递信息的变量. Key = KeyDir; KeyDir = 0; /=/以下为界面的相互调用pUI();#endif =

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号