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

📄 menu.h

📁 单片机菜单程序框架
💻 H
字号:
#ifndef   __MENU_h__ 
#define   __MENU_h__ 
#include "step_motor.h" 


/********************** 
*    目录结构体定义   * 
**********************/ 
struct MenuItem    
{ 
    short MenuCount; 
    char *DisplayString; 
    void (*Subs)(); 
    struct MenuItem *ChildrenMenus; 
    struct MenuItem *ParentMenus; 
}Null; 

void NullSubs(void) 
{ 
} 

/**************************************************** 
*   使用说明:                                       * 
*      要定义一个菜单,需要做以下几步工作            * 
*      1、定义一个结构体数组                         * 
*      2、如果这个菜单是子菜单,那么把上级菜单的     * 
*         *ChildrenMenus指针指向该数组的首地址,      * 
*         并且设置ParentMenus为上层目录的地址        * 
*      3、如果这个菜单是 根菜单,那么直接将MenuPoint * 
*         指针指向该数组的首地址                     * 
*      4、通过写一个函数为该数组的每一个元素初始化   * 
*      5、如果菜单项是最终选项,那么将*ChildrenMenus * 
*         置为NULL,将函数指针*Subs指向实现功能的    * 
*         函数。                                     * 
****************************************************/ 

struct MenuItem MotorMenu[4]; 
struct MenuItem P_Degree[5]; 
struct MenuItem N_Degree[4]; 

/*********************** 
*     函 数 声 明 区   * 
***********************/ 
void MainMenuInit(void); 
void P_DegreeInit(void); 
void N_DegreeInit(void); 

/************************************************************** 
*  函数说明:编辑菜单初始化函数                           * 
**************************************************************/ 
void N_DegreeInit(void) 
{ 
    N_Degree[0].MenuCount = 5; 
    N_Degree[0].DisplayString = "      7.5 度    "; 
    N_Degree[0].Subs = Turn_7_5t; 
    N_Degree[0].ChildrenMenus = &Null; 
    N_Degree[0].ParentMenus = MotorMenu; 
     
    N_Degree[1].MenuCount = 5; 
    N_Degree[1].DisplayString = "      15度      "; 
    N_Degree[1].Subs = Turn_15t; 
    N_Degree[1].ChildrenMenus = &Null; 
    N_Degree[1].ParentMenus = MotorMenu; 
     
    N_Degree[2].MenuCount = 5; 
    N_Degree[2].DisplayString = "      30度      "; 
    N_Degree[2].Subs = Turn_30t; 
    N_Degree[2].ChildrenMenus = &Null; 
    N_Degree[2].ParentMenus = &Null; 
     
    N_Degree[3].MenuCount = 5; 
    N_Degree[3].DisplayString = "      60度      "; 
    N_Degree[3].Subs = Turn_60t; 
    N_Degree[3].ChildrenMenus = &Null; 
    N_Degree[3].ParentMenus = MotorMenu; 
		
    N_Degree[4].MenuCount = 5; 
    N_Degree[4].DisplayString = "      90度      "; 
    N_Degree[4].Subs = Turn_90t; 
    N_Degree[4].ChildrenMenus = &Null; 
    N_Degree[4].ParentMenus = MotorMenu;   
} 

/************************************************************** 
*  函数说明:文件菜单函数初始化                             * 
**************************************************************/ 
void P_DegreeInit(void) 
{ 
    P_Degree[0].MenuCount = 5; 
    P_Degree[0].DisplayString = "      7.5 度    "; 
    P_Degree[0].Subs = Turn_7_5; 
    P_Degree[0].ChildrenMenus = &Null; 
    P_Degree[0].ParentMenus = MotorMenu; 
     
    P_Degree[1].MenuCount = 5; 
    P_Degree[1].DisplayString = "      15度      "; 
    P_Degree[1].Subs = Turn_15; 
    P_Degree[1].ChildrenMenus = &Null; 
    P_Degree[1].ParentMenus = MotorMenu; 
     
    P_Degree[2].MenuCount = 5; 
    P_Degree[2].DisplayString = "      30度      "; 
    P_Degree[2].Subs = Turn_30; 
    P_Degree[2].ChildrenMenus = &Null; 
    P_Degree[2].ParentMenus = &Null; 
     
    P_Degree[3].MenuCount = 5; 
    P_Degree[3].DisplayString = "      60度      "; 
    P_Degree[3].Subs = Turn_60; 
    P_Degree[3].ChildrenMenus = &Null; 
    P_Degree[3].ParentMenus = MotorMenu; 
		
    P_Degree[4].MenuCount = 5; 
    P_Degree[4].DisplayString = "      90度      "; 
    P_Degree[4].Subs = Turn_90; 
    P_Degree[4].ChildrenMenus = &Null; 
    P_Degree[4].ParentMenus = MotorMenu;    
} 

/************************************************************** 
*  函数说明:根菜单初始化                                     * 
**************************************************************/ 
void MainMenuInit(void) 
{ 
     MotorMenu[0].MenuCount = 2; 
     MotorMenu[0].DisplayString = "      正转      "; 
     MotorMenu[0].Subs = NullSubs; 
     MotorMenu[0].ChildrenMenus = P_Degree; 
     MotorMenu[0].ParentMenus = &Null; 

     MotorMenu[1].MenuCount = 2; 
     MotorMenu[1].DisplayString = "      反转      "; 
     MotorMenu[1].Subs = NullSubs; 
     MotorMenu[1].ChildrenMenus = N_Degree; 
     MotorMenu[1].ParentMenus = &Null; 
} 

#endif 



⌨️ 快捷键说明

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