📄 menu.c
字号:
/*********************************************************************************************************
* menu service program
* QZhao,2007
* All Rights Reserved
* File : menu.c
* By : QZhao
* Contact : zq1987731@163.com
*********************************************************************************************************/
/*★★★可调用函数:FUN_MENU(keynum)->菜单(对应按键)功能服务函数*/
/*********************************************************************************************************
*
* 菜单列表
*
*********************************************************************************************************/
void start_menu(void)
{
W_LCD(0x01,1); //清屏
delayms(10);
DIS_LCD(2,1,"初始化......完成",16);
DIS_LCD(3,1,"请按任意键继续..",16);
}
//主菜单
void main_menu(void)
{
W_LCD(0x01,1); //清屏
delayms(10);
DIS_LCD(1,1,"1)时间设定",10);
DIS_LCD(2,1,"2)屏幕背光",10);
DIS_LCD(4,1,"4)设定完成",10);
}
//1)扩展菜单
void sub1(void)
{
W_LCD(0x01,1); //清屏
delayms(10);
DIS_LCD(1,1,"1)时间设定",10);
DIS_LCD(2,1,"2)日期设定",10);
DIS_LCD(3,1,"3)保存设置并返回",16);
DIS_LCD(4,1,"4)返回上级菜单",14);
}
//1)扩展菜单_子1
void sub1_1(void)
{
W_LCD(0x01,1); //清屏
delayms(10);
DIS_LCD(1,1,"时间设置:",10);
DIS_LCD(2,1,"时--分--秒",10);
DIS_LCD(3,2,"-- --",6);
DIS_LCD(4,1,"4)返回",6);
}
//1)扩展菜单_子2
void sub1_2(void)
{
W_LCD(0x01,1); //清屏
delayms(10);
DIS_LCD(1,1,"日期设置:",10);
DIS_LCD(2,1,"年--月--日--周",14);
DIS_LCD(3,2,"-- -- --",10);
DIS_LCD(4,1,"4)返回",6);
}
//2)扩展菜单
void sub2(void)
{
W_LCD(0x01,1); //清屏
delayms(10);
DIS_LCD(1,1,"背光是否开启?",14);
DIS_LCD(2,1,"2)开启",6);
DIS_LCD(3,1,"3)关闭",6);
DIS_LCD(4,1,"4)返回上级菜单",14);
}
void sub4(void)
{
W_LCD(0x01,1); //清屏
delayms(10);
DIS_LCD(1,1,"初值设定完成?",14);
DIS_LCD(2,1,"2)指针式时钟显示",16);
DIS_LCD(3,1,"3)完成,开始显示",16);
DIS_LCD(4,1,"4)返回上级菜单",14);
}
void sub4_1(void)
{
W_LCD(0x01,1); //清屏
delayms(10);
DIS_LCD(1,1,"当前时间:20 年",16);
DIS_LCD(2,2,"月 日 星期",12);
DIS_LCD(3,3,"点 分 秒",10);
DIS_LCD(4,1,"T: ℃",16);
}
/*************************************************************************************************************************************
*
* 菜单服务函数
* 入口参数:扫描到的键值
* 返回值:TRUE or FALSE
* 功能:根据菜单选择对扫描到的键值进行处理
*
*************************************************************************************************************************************/
/************************************************主菜单服务函数******************************************************************/
/**/ bool FUN_MENU(void)
/**/ {
/**/ main_menu(); //调出主菜单
/**/
/**/ do //扫描并等待按键
/**/ {
/**/ keynum=KEY_SCAN();
/**/ }while(!keynum);
/**/
/**/ switch(keynum)
/**/ {
/**/ case 1:
/**/ fun1();
/**/ break;
/**/ case 2:
/**/ fun2();
/**/ break;
/**/ case 4:
/**/ fun4();
/**/ break;
/**/ }
/**/ return TRUE;
/**/ }
/********************************************************************************************************************************/
/****************************************1)扩展菜单功能服务函数******************************************************/
/**/ bool fun1(void)
/**/ {
/**/ sub1(); //1)扩展菜单调用
/**/ while(1)
/**/ {
/**/ do //扫描并等待按键
/**/ {
/**/ keynum=KEY_SCAN();
/**/ }while(!keynum);
/**/
/**/ switch(keynum)
/**/ {
/**/ case 1:
/**/ fun1_1();
/**/ break;
/**/ case 2:
/**/ fun1_2();
/**/ break;
/**/ case 3:
/**/ fun1_3();
/**/ case 4:
/**/ return TRUE;
/**/ } //switch
/**/ } //while
/**/ } //fun1
/********************************************************************************************************************/
/*********************************1)扩展菜单_子1功能服务函数(时分秒输入)*********************************/
/**/ bool fun1_1(void)
/**/ {
/**/ uchar x[3][2],temp_T[3],i,jump;
/**/
/**/ temp_T[0]=TIME.HR;
/**/ temp_T[1]=TIME.MIN;
/**/ temp_T[2]=TIME.SEC;
/**/
/**/ sub1_1();
/**/
/**/ for(i=0;i<3;i++)
/**/ {
/**/ x[i][0]=(temp_T[i]-(temp_T[i]%10))/10+0x30;
/**/ x[i][1]=temp_T[i]%10+0x30;
/**/ DIS_LCD(3,2*i+1,x[i],2);
/**/ }
/************************************************时分秒输入**********************************************/
/**/ for(i=0;i<3;i++)
/**/ {
/**/ jump=1;
/**/ while(jump)
/**/ {
/**/ do
/**/ {
/**/ keynum=KEY_SCAN();
/**/ }while(!keynum);
/**/
/**/ switch(keynum)
/**/ {
/**/ case 1: if(temp_T[0] == 23) {temp_T[0] = 0; break;}
/**/ if(temp_T[1] == 59) {temp_T[1] = 0; break;}
/**/ if(temp_T[2] == 59) {temp_T[2] = 0; break;}
/**/ temp_T[i]++; break;
/**/ case 2: if(temp_T[0] == 0) {temp_T[0] = 23; break;}
/**/ if(temp_T[1] == 0) {temp_T[1] = 59; break;}
/**/ if(temp_T[2] == 0) {temp_T[2] = 59; break;}
/**/ temp_T[i]--; break;
/**/ case 3: if(temp_T[0] >= 19) {temp_T[0] -= 19; break;}
/**/ if(temp_T[1] >= 55) {temp_T[1] -= 55; break;}
/**/ if(temp_T[2] >= 55) {temp_T[2] -= 55; break;}
/**/ temp_T[i]+=5; break;
/**/ case 4: if(temp_T[0] <= 4) {temp_T[0] += 19; break;}
/**/ if(temp_T[1] <= 4) {temp_T[1] += 55; break;}
/**/ if(temp_T[2] <= 4) {temp_T[2] += 55; break;}
/**/ temp_T[i]-=5; break;
/**/ case 5: jump=0;
/**/ }
/**/
/**/ x[i][0]=(temp_T[i]-(temp_T[i]%10))/10+0x30;
/**/ x[i][1]=temp_T[i]%10+0x30;
/**/ DIS_LCD(3,2*i+1,x[i],2); //display
/**/ } //while
/**/ } //for
/**/
/**/ TIME.HR = temp_T[0];
/**/ TIME.MIN = temp_T[1];
/**/ TIME.SEC = temp_T[2];
/**/
/**/ return TRUE;
/**/ } //fun1_1
/********************************************************************************************************/
/********************************1)扩展菜单_子2功能服务函数(年月日周输入)********************************/
/**/ bool fun1_2(void)
/**/ {
/**/ uchar x[4][2],i,jump,temp_D[4];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -