⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 液晶菜单程序.c

📁 是一个24064液晶的菜单
💻 C
📖 第 1 页 / 共 3 页
字号:
       (COMMAND*)&main_menu[MAIN_PPL],
       &pll_menu[PLL_PLL3],
       &pll_menu[PLL_PLL1]
    },
    {
       &pll3,
       "子菜单5 ",
       2,
       (COMMAND*)&main_menu[MAIN_PPL],
       &pll_menu[PLL_PLL1],
       &pll_menu[PLL_PLL2]
    }
};
#define NO_HELP_COMMANDS     2
#define HELP_HELP1       0
#define HELP_HELP2       1
COMMAND code help_menu[NO_HELP_COMMANDS]=
{
    {
       &help1,
       "子菜单3 ",
       0,
       (COMMAND*)&main_menu[MAIN_HELP],
       &help_menu[HELP_HELP2],
       &help_menu[HELP_HELP1]
    },
    {
       &help2,
       "子菜单5 ",
       1,
       (COMMAND*)&main_menu[MAIN_HELP],
       &help_menu[HELP_HELP1],
       &help_menu[HELP_HELP2]
    }
};
COMMAND* current_command = &main_menu[MAIN_SET];
void move(unsigned char dir)
{
     switch (dir)
     {
       case KEY_UP:
       key=0x00;
          if (  current_command->parent != (COMMAND*)0)
          {
              current_command = current_command->up;
          }
          break;
       case KEY_DOWN:
       key=0x00;
          if (  current_command->parent != (COMMAND*)0)
          {
               current_command = current_command->down;
          }
          break;
       case KEY_RIGHT:
       key=0x00;
          if (  current_command->parent == (COMMAND*)0)
          {
               current_command = current_command->down;
          }
          break;
       case KEY_LEFT:
       key=0x00;
          if (  current_command->parent == (COMMAND*)0)
          {
               current_command = current_command->up;
          }
          break;
       case KEY_ENTER:
       key=0x00;
             (current_command->action)();
          break;
       case KEY_ESC:
       key=0x00;
         if (  current_command->parent != (COMMAND*)0)
          {
             current_command = current_command->parent;
             //BlockClr(0,50,40,170);
          }
         break;
         case KEY_STU:  
         key=0x00;

         break;
         case KEY_STD:  
         key=0x00;

         break;
       default:
       key=0x00;
          break;
     }
     MenuDisplay();
}
void MenuDisplay(void)
{
    unsigned char i;
    bit fb;
    if (  current_command->parent == (COMMAND*)0)
    {
        
         for(i=0;i<NO_MAIN_COMMANDS;i++)
        {
            if(current_command->ID==i)
            {
                fb=1;
            }
            else
            {
                fb=0;
            }
            dprintf(i*8,32,0,fb,main_menu[i].name);
        }
        WriteCommand( 0x59 );            // 写入指令DISP 
ON/OFF代码,后续参数:
        WriteData( 0x54 );                // 
00 00 01 00显示1区开显示,其余层关闭
    }
    if (  current_command->parent == (COMMAND*)&main_menu[MAIN_SET])
    {
        WriteCommand( 0x59 );            // 写入指令DISP 
ON/OFF代码,后续参数:
        WriteData( 0x44 );                // 
00 00 01 00显示1区开显示,其余层关闭
         for(i=0;i<NO_SET_COMMANDS;i++)
        {
            if(current_command->ID==i)
            {
                fb=1;
            }
            else
            {
                fb=0;
            }
            dprintf(MAIN_SET*8,51+16*i,0,fb,set_menu
[i].name);
        }
        Linexy( MAIN_SET*64,49,MAIN_SET*64+63,49,0,1);
        Linexy( 
MAIN_SET*64,49,MAIN_SET*64,51+NO_SET_COMMANDS*16,0,1);
        Linexy( 
MAIN_SET*64+63,49,MAIN_SET*64+63,51+NO_SET_COMMANDS*16,0,1);
        Linexy( 
MAIN_SET*64,51+NO_SET_COMMANDS*16,MAIN_SET*64+63,51+NO_SET_COMMANDS*16,0,1);

    }
    if (  current_command->parent == (COMMAND*)&main_menu[MAIN_METHOD])
    {
        WriteCommand( 0x59 );            // 写入指令DISP 
ON/OFF代码,后续参数:
        WriteData( 0x44 );                // 
00 00 01 00显示1区开显示,其余层关闭
         for(i=0;i<NO_FANGFA_COMMANDS;i++)
        {
            if(current_command->ID==i)
            {
                fb=1;
            }
            else
            {
                fb=0;
            }
            dprintf(MAIN_METHOD*8,51+16*i,0,fb,fangfa_menu
[i].name);
        }
        Linexy( MAIN_METHOD*64,49,MAIN_METHOD*64+63,49,0,1);
        Linexy( 
MAIN_METHOD*64,49,MAIN_METHOD*64,51+NO_FANGFA_COMMANDS*16,0,1);
        Linexy( 
MAIN_METHOD*64+63,49,MAIN_METHOD*64+63,51+NO_FANGFA_COMMANDS*16,0,1);
        Linexy( 
MAIN_METHOD*64,51+NO_FANGFA_COMMANDS*16,MAIN_METHOD*64+63,51+NO_FANGFA_COMMANDS*
16,0,1);
    }
    if (  current_command->parent == (COMMAND*)&main_menu[MAIN_FUNCTION])
    {
        WriteCommand( 0x59 );            // 写入指令DISP 
ON/OFF代码,后续参数:
        WriteData( 0x44 );                // 
00 00 01 00显示1区开显示,其余层关闭
        for(i=0;i<NO_GONGNENG_COMMANDS;i++)
        {
            if(current_command->ID==i)
            {
                fb=1;
            }
            else
            {
                fb=0;
            }
            dprintf
(MAIN_FUNCTION*8,51+16*i,0,fb,gongneng_menu[i].name);
        }
        Linexy( MAIN_FUNCTION*64,49,MAIN_FUNCTION*64+63,49,0,1);
        Linexy( 
MAIN_FUNCTION*64,49,MAIN_FUNCTION*64,51+NO_GONGNENG_COMMANDS*16,0,1);
        Linexy( 
MAIN_FUNCTION*64+63,49,MAIN_FUNCTION*64+63,51+NO_GONGNENG_COMMANDS*16,0,1);
        Linexy( 
MAIN_FUNCTION*64,51+NO_GONGNENG_COMMANDS*16,MAIN_FUNCTION*64+63,51+NO_GONGNENG_C
OMMANDS*16,0,1);
    }
    if (  current_command->parent == (COMMAND*)&main_menu[MAIN_PPL])
    {
        WriteCommand( 0x59 );            // 写入指令DISP 
ON/OFF代码,后续参数:
        WriteData( 0x44 );                // 
00 00 01 00显示1区开显示,其余层关闭
        for(i=0;i<NO_PLL_COMMANDS;i++)
        {
            if(current_command->ID==i)
            {
                fb=1;
            }
            else
            {
                fb=0;
            }
            dprintf(MAIN_PPL*8,51+16*i,0,fb,pll_menu
[i].name);
        }
        Linexy( MAIN_PPL*64,49,MAIN_PPL*64+63,49,0,1);
        Linexy( 
MAIN_PPL*64,49,MAIN_PPL*64,51+NO_PLL_COMMANDS*16,0,1);
        Linexy( 
MAIN_PPL*64+63,49,MAIN_PPL*64+63,51+NO_PLL_COMMANDS*16,0,1);
        Linexy( 
MAIN_PPL*64,51+NO_PLL_COMMANDS*16,MAIN_PPL*64+63,51+NO_PLL_COMMANDS*16,0,1);
    }
    if (  current_command->parent == (COMMAND*)&main_menu[MAIN_HELP])
    {
        WriteCommand( 0x59 );            // 写入指令DISP 
ON/OFF代码,后续参数:
        WriteData( 0x44 );                // 
00 00 01 00显示1区开显示,其余层关闭
        for(i=0;i<NO_HELP_COMMANDS;i++)
        {
            if(current_command->ID==i)
            {
                fb=1;
            }
            else
            {
                fb=0;
            }
            dprintf(MAIN_HELP*8,51+16*i,0,fb,help_menu
[i].name);
        }
        Linexy( MAIN_HELP*64,49,MAIN_HELP*64+63,49,0,1);
        Linexy( 
MAIN_HELP*64,49,MAIN_HELP*64,51+NO_HELP_COMMANDS*16,0,1);
        Linexy( 
MAIN_HELP*64+63,49,MAIN_HELP*64+63,51+NO_HELP_COMMANDS*16,0,1);
        Linexy( 
MAIN_HELP*64,51+NO_HELP_COMMANDS*16,MAIN_HELP*64+63,51+NO_HELP_COMMANDS*16,0,1);
     
    }
}
void set(void)
{
    current_command=&set_menu[SET_DDJ];
//    BlockClr(0,50,40,170);
    return;
}



再续 [zpq001] 2005-1-22 15:20:29
void method(void)
{
    current_command=&fangfa_menu[FANGFA_FANGFA1];
//    BlockClr(0,50,40,170);
    return;
}
void function(void)
{
    current_command=&gongneng_menu[GONGNENG_analyse];
//    BlockClr(0,50,40,170);
    return;
}
void pll(void)
{
      current_command=&pll_menu[PLL_PLL1];
//    BlockClr(0,50,40,170);
    return;
}
void help(void)
{
     current_command=&help_menu[HELP_HELP1];
//    BlockClr(0,50,40,170);
    return;
}
void help2(void)
{
}
void help1(void)
{
}
void pll3(void)
{
}
void pll2(void)
{
}
void pll1(void)
{
}
/****************************************************************************
* 函数: void analyse(void)
*----------------------------------------------------------------------------
* 参数:    无
*----------------------------------------------------------------------------
* 返回:    无
*----------------------------------------------------------------------------
* 目的:    
*----------------------------------------------------------------------------
* 举例:
*----------------------------------------------------------------------------
* 注意:
*----------------------------------------------------------------------------
* 需求:
*****************************************************************************/
void analyse(void)
{
    
}
/****************************************************************************
* 函数: void gongneng2(void)
*----------------------------------------------------------------------------
* 参数:    无
*----------------------------------------------------------------------------
* 返回:    无
*----------------------------------------------------------------------------
* 目的:    
*----------------------------------------------------------------------------
* 举例:
*----------------------------------------------------------------------------
* 注意:    注意步进电机速度问题
*----------------------------------------------------------------------------
* 需求:
*****************************************************************************/
void gongneng2(void)
{

}
/****************************************************************************
* 函数: void gongneng3(void)
*----------------------------------------------------------------------------
* 参数:    无
*----------------------------------------------------------------------------
* 返回:    无
*----------------------------------------------------------------------------
* 目的:    
*----------------------------------------------------------------------------
* 举例:    
*----------------------------------------------------------------------------
* 注意:    
*----------------------------------------------------------------------------
* 需求:
*****************************************************************************/
void gongneng3(void)
{

}
/****************************************************************************
* 函数: void gongneng4(void)
*----------------------------------------------------------------------------
* 参数:    无
*----------------------------------------------------------------------------
* 返回:    无
*----------------------------------------------------------------------------
* 目的:    
*----------------------------------------------------------------------------
* 举例:
*----------------------------------------------------------------------------
* 注意:
*----------------------------------------------------------------------------
* 需求:
*****************************************************************************/
void gongneng4(void)
{

}
void gongneng5(void)
{
}
void fang1(void)
{
    
}
void fang2(void)
{
    
}
void fang3(void)
{

}
void fang4(void)
{

}
void fang5(void)
{

}
void shezi(void)
{
}
void mainfangfa(void)
{
}
void biaoyang(void)
{
}
void brj(void)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -