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

📄 menutop.lst

📁 CPU.H CPU相关定义 Main.C 主函数 Ks0108.C LCD驱动 ASCII.c 8x8 8x16 英文字模 KeyScan.C 键盘扫描 MenuPara.C 菜单
💻 LST
字号:
C51 COMPILER V7.20   MENUTOP                                                               09/04/2007 23:38:42 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE MENUTOP
OBJECT MODULE PLACED IN .\Obj\MenuTop.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Src\MenuTop.C LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\Lst\MenuTop.lst) OBJE
                    -CT(.\Obj\MenuTop.obj)

line level    source

   1          /******************************************************************************
   2           * MenuTop.C - 顶层菜单 条项菜单核心函数 图标层函数等
   3           *
   4           *
   5           * DESCRIPTION: -
   6           *
   7           * modification history
   8           * --------------------
   9           * 01a, 04/sep/2007, 梁炎昌 written
  10           * --------------------
  11           ******************************************************************************/
  12          
  13          #include "CPU.H"
  14          #include "Ks0108.H"
  15          #include "Menu.H"
  16          
  17          
  18          //void Bar(U8 Item_,U8 ItemNum_);
  19          void DispBuildTime(void);//编译时间
  20          
  21          /*
  22          *****************************************************************************
  23          * InitMenuVal - 初始化菜单系统
  24          * DESCRIPTION: -
  25          * 该函数必须在进入菜单前被调用   初始化全局变量
  26          * @Para void:
  27          * Return :
  28          *
  29          *****************************************************************************
  30          */
  31          void InitMenuVal(void)
  32          {
  33   1          WhereBackup_i = 0;
  34   1          ItemBackup_i = 0;
  35   1          Layer = 0;
  36   1          FatherIndex[Layer++] = MenuTopIndex;  //push index  待机界面作为起点
  37   1      }
  38          /*
  39          *****************************************************************************
  40          * DispMenuTop - 待机界面层5个函数
  41          * DESCRIPTION: -
  42          * DispMenuTop   DispMenuTopUp  DispMenuTopDown  DispMenuTopLeft DispMenuTopRight
  43          *
  44          *
  45          *
  46          *****************************************************************************
  47          */
  48          void DispMenuTop(void)//待机界面
  49          {
  50   1          GUI_Clear();
  51   1          GUI_DispStringAtBar("Desktop",0,0,126,GUI_TA_HCENTER);
  52   1          //显示按键对应的文字提示,0-->"菜单"
  53   1          GUI_DispStringAtBar(*(Tip[language].Text),0,Enter_PosY,126,GUI_TA_HCENTER);
  54   1      }
C51 COMPILER V7.20   MENUTOP                                                               09/04/2007 23:38:42 PAGE 2   

  55          //待机界面下Up键的处理
  56          void DispMenuTopUp(void)
  57          {
  58   1      //-------------------
  59   1          KeyPressCount = 0;
  60   1      //-------------------
  61   1          GUI_Clear();
  62   1      //-------------------
  63   1      //这里是顶层菜单,因此在进入子菜单前需要初始化变量
  64   1          InitMenuVal();
  65   1      //--------------------------
  66   1      //状态跳转,进入子菜单
  67   1          //jump to Menu index
  68   1          Jump2Menu(MenuIndex,FlashMode_AutoInit);
  69   1          return;
  70   1      }
  71          //待机界面下Down键的处理
  72          void DispMenuTopDown(void)
  73          {
  74   1      
  75   1          if((KeyPressCount++)==0x0F){
  76   2              GUI_Clear();
  77   2              DispBuildTime();
  78   2              GUI_Delay(6500);
  79   2              KeyPressCount = 0;
  80   2              // we need reflash screen
  81   2              Jump2Menu(MenuTopIndex,FlashMode_ReFlash);
  82   2              return;
  83   2      
  84   2          }
  85   1          //return to MenuTop index
  86   1          Jump2Menu(MenuTopIndex,FlashMode_NoAction);
  87   1          return;
  88   1      }
  89          //待机界面下Left键的处理
  90          void DispMenuTopLeft(void)
  91          {
  92   1          KeyPressCount = 0;
  93   1      /*
  94   1      *   这里可以做这个按键的功能定义,因为这是在待机界面下
  95   1      *   比如,做某个子菜单的快捷链接--按下该按键就直接跳转到某个子菜单
  96   1      */
  97   1      //-------------------
  98   1      //这里是顶层菜单,因此在进入子菜单前需要初始化变量
  99   1      //    InitMenuVal();
 100   1      //--------------------------
 101   1      //状态跳转,进入子菜单
 102   1          Jump2Menu(MenuTopIndex,FlashMode_NoAction);
 103   1          return;
 104   1      }
 105          //待机界面下Right键的处理
 106          void DispMenuTopRight(void)
 107          {
 108   1          KeyPressCount = 0;
 109   1      //----------------------
 110   1      //    ClearLCD();
 111   1      //    DispRate(0);  //功能函数的"快捷方式"  到测量显示
 112   1      //功能函数执行完毕后重新回到待机界面
 113   1      //    Jump2Menu(MenuTopIndex);
 114   1          Jump2Menu(MenuTopIndex,FlashMode_NoAction);
 115   1          return;
 116   1      }
C51 COMPILER V7.20   MENUTOP                                                               09/04/2007 23:38:42 PAGE 3   

 117          /*
 118          ********************************************************
 119          ********************************************************
 120          */
 121          //-----------------------
 122          //菜单备份函数
 123          //备份当前菜单的各个参数
 124          void PUSH(void)
 125          {
 126   1          WhereBackup[WhereBackup_i++] = Where;      //备份Where--->高亮显示的位置
 127   1          ItemBackup[ItemBackup_i++] = Item;         //备份Item--->当前项的位置
 128   1          FatherIndex[Layer++] = KeyFuncIndex;      //备份KeyFuncIndex--->状态机的状态
 129   1      //-------------------------------
 130   1      
 131   1      //-------------------------------
 132   1      
 133   1      }
 134          //菜单还原函数
 135          void POP(void)
 136          {
 137   1          Layer--;      //先弹出一层,因为使用的是++,因此当前Layer指向下一个数组位置
 138   1          KeyFuncIndex = FatherIndex[Layer-1];     //恢复KeyFuncIndex
 139   1          Where = WhereBackup[--WhereBackup_i];    //恢复高亮显示位置Where
 140   1          Item = ItemBackup[--ItemBackup_i];       //恢复项位置Item
 141   1      //-------------------------------
 142   1      
 143   1      //-------------------------------
 144   1          Flash = FlashMode_ReFlash;                     //子项返回,请求刷新
 145   1      }
 146          
 147          /*
 148          *****************************************************************************
 149          * BarDisp - Bar型菜单显示
 150          * DESCRIPTION: -
 151          *
 152          * @Para s:BAR显示的文字内容
 153          * @Para X:X轴坐标
 154          * @Para Y:Y轴坐标
 155          * @Para HighLight:1--->高亮显示当前项  0--->普通显示当前项
 156          //HightLight = 1--->HightLight Disp
 157          //HightLight = 0--->Normal Disp
 158          * Return :
 159          *
 160          *****************************************************************************
 161          */
 162          //void BarDisp(U8 _CONST_ *s,U8 X,U8 Y,U8 HighLight)
 163          void BarDisp(U8 *s,U8 X,U8 Y,U8 HighLight)
 164          {
 165   1      
 166   1      #ifdef LessCPUUseage
                  if (HighLight == 1) { //高亮显示
                      GUI_DispStringAtBar(s,X+8,Y,120,GUI_TA_LEFT);
                      GUI_SetEnFont(En_8x16);
                      GUI_DispCharAt('>',X,Y);
                  } else {  //通常显示
                      //显示Bar的Text
                      GUI_DispStringAtBar(s,X+8,Y,120,GUI_TA_LEFT);
                      GUI_SetEnFont(En_8x16);
                      GUI_DispCharAt(' ',X,Y);
                  }
              #else
 178   1          if (HighLight == 1) { //高亮显示
C51 COMPILER V7.20   MENUTOP                                                               09/04/2007 23:38:42 PAGE 4   

 179   2      //------------------------------------
 180   2              GUI_SetTextMode(GUI_TEXTMODE_REVERSE);//更改字体颜色来突出显示
 181   2              GUI_DispStringAtBar(s,X,Y,120,GUI_TA_LEFT);
 182   2              GUI_SetTextMode(GUI_TEXTMODE_NORMAL);        //恢复原有字体颜色和背景颜色
 183   2      //------------------------------------
 184   2          } else {  //通常显示
 185   2              //显示Bar的Text
 186   2              GUI_DispStringAtBar(s,X,Y,120,GUI_TA_LEFT);
 187   2          }
 188   1      #endif
 189   1      }
 190          /*
 191          FIXME!!!
 192          如何修改BarMenuInit和如何处理Item Where的初始化来达到如此一个目的?
 193          当前系统语言设定是英语,而英语这个项在第2项位置,因此如何能做到当菜单进入语言选择时,反显位置就在英语那里

⌨️ 快捷键说明

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