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

📄 menu_func.lst

📁 自己花了很长时间编写的单片机开发板程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MENU_FUNC
OBJECT MODULE PLACED IN MENU_FUNC.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE MENU_FUNC.C LARGE BROWSE DEBUG OBJECTEXTEND CODE

line level    source

   1          #include <at89x52.h>
   2          #include <stdio.h>
   3          #include <absacc.h>
   4          #include <intrins.h>
   5          #include <xbyte.h>
   6          #include <lcd_code.h>
   7          #include <ocm12864.h>
   8          #include <iic.h>
   9          #include <pca9555.h>
  10          #include <18b20.H>
  11          #include <24c32.h>
  12          #include <menu_func.h>
  13          
  14          typedef xdata struct  
  15                  {
  16                      uchar KeyTab_MenuIndex;                     //当前状态索引号           
  17                  uchar KeyTab_PressOk;                   //按下"回车"键时转向的状态索引号          
  18                  uchar KeyTab_PressEsc;                  //按下"返回"键时转向的状态索引号          
  19                  uchar KeyTab_PressDown;                 //按下"向下"键时转向的状态索引号          
  20                  uchar KeyTab_PressUp;                   //按下"向上"键时转向的状态索引号          
  21                  void      ( code *CurrentOperate)();   //当前状态应该执行的功能操作
  22                  }KeyTabStruct;
  23          void  ( code *KeyFuncPtr)();                       //按键功能指针
  24          //CurMenuID=本菜单ID 
  25          //OkMenuID=子菜单层所对应的菜单ID,ID=254已经到底了               
  26          //EscMenuID=父菜单层所对应的菜单ID,ID=254为菜单已经到顶了                        
  27          //DownMenuID=弟菜单层所对应的菜单ID,ID=254为菜单是独生子                   
  28          //UpMenuID=兄菜单层所对应的菜单ID,ID=254 单是独生子                        
  29          //CurFunction=本菜单所对应的菜单函数指针
  30          KeyTabStruct xdata KeyTab[]=
  31                  {
  32                          //CurMenuID,        OkMenuID,         EscMenuID,       DownMenuID,           UpMenuID,        CurFunctio
             -n
  33                          {MENU_FACE,         MENU_ROOT,        254,             254,                  254,             (*DispFaceBmp
             -)},
  34                          {MENU_ROOT,             MENU_VIEW,        254,             254,                  254,             (*DispMenu
             -_Root)},
  35                          {MENU_VIEW,             MENU_VIEW_1,      MENU_ROOT,       MENU_OPERATION,       MENU_HELP,       (*DispMenu
             -_View)},
  36                          {MENU_VIEW_1,       254,              MENU_VIEW,       MENU_VIEW_2,              MENU_VIEW_3,     (*Menu_Dis
             -pTmp)},
  37                          {MENU_VIEW_2,       254,              MENU_VIEW,       MENU_VIEW_3,              MENU_VIEW_1,     (*Menu_DAC
             -0808)},
  38                          {MENU_VIEW_3,       254,              MENU_VIEW,       MENU_VIEW_1,          MENU_VIEW_2,     (*Menu_ADC
             -0832)},
  39                          {MENU_OPERATION,        MENU_OPERATION_1, MENU_ROOT,       MENU_TEST,            MENU_VIEW,       (*DispMenu_Op
             -eration)},
  40                          {MENU_OPERATION_1,  254,              MENU_OPERATION,  MENU_OPERATION_2,     MENU_OPERATION_3,(*Menu_Mot
             -or_s)},
  41                          {MENU_OPERATION_2,  254,              MENU_OPERATION,  MENU_OPERATION_3,     MENU_OPERATION_1,(*MenuFunc
             -tion)},
  42                          {MENU_OPERATION_3,  254,              MENU_OPERATION,  MENU_OPERATION_1,     MENU_OPERATION_2,(*Menu_Mem
             -oryData)},                        
  43                          {MENU_TEST,         MENU_TEST_1,      MENU_ROOT,       MENU_HELP,            MENU_OPERATION,  (*DispMenu
             -_Test)},
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 2   

  44                          {MENU_TEST_1,       254,              MENU_TEST,       MENU_TEST_2,          MENU_TEST_3,     (*Menu_Ser
             -ialReceive_PC)},
  45                          {MENU_TEST_2,           254,              MENU_TEST,       MENU_TEST_3,          MENU_TEST_1,     (*Menu_Seria
             -lSend_PC)},
  46                          {MENU_TEST_3,           254,              MENU_TEST,       MENU_TEST_4,          MENU_TEST_2,     (*Menu_Seria
             -lReceive_MCU)},
  47                          {MENU_TEST_4,           254,              MENU_TEST,       MENU_TEST_1,          MENU_TEST_3,     (*Menu_Seria
             -lSend_MCU)},
  48                          {MENU_HELP,         MENU_HELP_1,      MENU_ROOT,       MENU_VIEW,            MENU_TEST,       (*DispMenu
             -_Help)},
  49                          {MENU_HELP_1,       254,              MENU_HELP,       MENU_HELP_2,          MENU_HELP_2,     (*MenuFunc
             -tion)},
  50                          {MENU_HELP_2,       254,              MENU_HELP,       MENU_HELP_1,          MENU_HELP_1,         (*MenuFunctio
             -n_Help_2)},
  51                  };
  52          
  53          /*----------------------接收菜单功能键---------*/
  54          void GetKeyInput()
  55          {
  56   1              switch(NowKey)                   
  57   1                              {
  58   2                                case  KEY_OK://   KEY_OK,             KEY_UP,         KEY_ESC,
  59   2                                              
  60   2                                                if(KeyTab[iMenuID].KeyTab_PressOk!=254)                   //   按下OK键时的状态
  61   2                                                        {
  62   3                                                           iMenuID=KeyTab[iMenuID].KeyTab_PressOk;
  63   3                                                           JudgeHLight();                                                                                                     
  64   3                                                        }
  65   2                                              else                                                                                        //已经到底层
  66   2                                                        {
  67   3                                                           KeyFuncPtr=KeyTab[iMenuID].CurrentOperate;                                                                                          
  68   3                                           ( *KeyFuncPtr)();                                                      //      执行当前ID的功能函数
  69   3                                                        }        
  70   2                                                                                      
  71   2                                              break;                  
  72   2                           case       KEY_ESC:
  73   2                                              
  74   2                                              if(KeyTab[iMenuID].KeyTab_PressEsc!=254)
  75   2                                                      {                                             
  76   3                                                         iMenuID=KeyTab[iMenuID].KeyTab_PressEsc;         //     按下ESC键时的状态      
  77   3                                                         JudgeHLight();                                       
  78   3                                                      }
  79   2                                              break;
  80   2                               case   KEY_DOWN:
  81   2                                              if(KeyTab[iMenuID].KeyTab_PressDown!=254)
  82   2                                                      {                                                                                               //     按下DOWN键时的状态
  83   3                                                        iMenuID=KeyTab[iMenuID].KeyTab_PressDown;
  84   3                                                        JudgeHLight();                                        
  85   3                                                      }
  86   2                                              break;
  87   2                           case       KEY_UP:
  88   2                                              if(KeyTab[iMenuID].KeyTab_PressUp!=254)
  89   2                                                      {                                                                                                //       按下UP键时的状态
  90   3                                                      iMenuID=KeyTab[iMenuID].KeyTab_PressUp; 
  91   3                                                      JudgeHLight();                                          
  92   3                                                      }
  93   2                                              break;          
  94   2                                                                                      
  95   2                               default:
  96   2                                              break;          
  97   2                      }
  98   1      
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 3   

  99   1      }
 100          
 101          
 102          
 103          
 104          
 105          /*-----------显示当前的菜单----------*/
 106          void JudgeHLight()
 107          {
 108   1         switch(iMenuID)
 109   1              {
 110   2                case  MENU_FACE:
 111   2                              DispFaceBmp();
 112   2                              break;
 113   2            case      MENU_ROOT:
 114   2                              DispFaceBmp();
 115   2                              break;
 116   2                case  MENU_VIEW:
 117   2                              DispMenu_Root();
 118   2                              break;
 119   2                case  MENU_VIEW_1:
 120   2                case  MENU_VIEW_2:
 121   2                case  MENU_VIEW_3:    
 122   2                              DispMenu_View();
 123   2                              break;
 124   2                case  MENU_OPERATION:
 125   2                              DispMenu_Root();
 126   2                              break;
 127   2                case  MENU_OPERATION_1:
 128   2                case  MENU_OPERATION_2:
 129   2                case  MENU_OPERATION_3:
 130   2                              DispMenu_Operation();
 131   2                              break;
 132   2                case  MENU_TEST:
 133   2                              DispMenu_Root();
 134   2                              break;
 135   2                case  MENU_TEST_1:
 136   2                case  MENU_TEST_2:
 137   2                case  MENU_TEST_3:
 138   2                case  MENU_TEST_4:
 139   2                              DispMenu_Test();
 140   2                              break;
 141   2                case  MENU_HELP:
 142   2                              DispMenu_Root();
 143   2                              break;
 144   2                case  MENU_HELP_1:
 145   2                case  MENU_HELP_2:        
 146   2                              DispMenu_Help();
 147   2                              break;          
 148   2                default:
 149   2                              break;
 150   2              }
 151   1      
 152   1      //////////////////////////反百显示当前按钮//////////////////////
 153   1              switch (iMenuID)                                                                 
 154   1                {   
 155   2                    case  MENU_VIEW: 
 156   2                                        
 157   2                                         chn_fdisp(0,0,2,16,1,2,hz_view);                                       
 158   2                              
 159   2                                      break;
 160   2                        case  MENU_VIEW_1: 
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 4   

 161   2                                        
 162   2                                          chn_fdisp(0,0,2,16,1,2,hz_view_1); 
 163   2                                         
 164   2                                      break;
 165   2                        case  MENU_VIEW_2:                      
 166   2                                          chn_fdisp(2,0,2,16,1,2,hz_view_2);                             
 167   2                                      break;
 168   2                        case  MENU_VIEW_3:
 169   2                                  chn_fdisp(4,0,2,16,1,1,hz_view_2+32); 
 170   2                          chn_fdisp(4,16,2,16,1,1,hz_view_2);
 171   2                              break;
 172   2                        case  MENU_OPERATION: 
 173   2      
 174   2                                         chn_fdisp(2,0,2,16,1,2,hz_operation);
 175   2                                      break;
 176   2                        case  MENU_OPERATION_1: 
 177   2      
 178   2                                         chn_fdisp(0,0,2,16,1,4,hz_operation_1);
 179   2                                      break;
 180   2                        case  MENU_OPERATION_2:   
 181   2                                         chn_fdisp(2,0,2,16,1,2,hz_operation_2);      //数据
 182   2                         chn_fdisp(2,32,2,16,1,2,hz_operation_3);     //存储
 183   2                                      break;
 184   2                        case  MENU_OPERATION_3:   
 185   2                                         
 186   2                                       chn_fdisp(4,0,2,16,1,2,hz_operation_2);    //数据
 187   2                       chn_fdisp(4,32,2,16,1,2,hz_operation_4);       //读取 
 188   2                                      break;
 189   2                        case  MENU_TEST: 
 190   2                                         
 191   2                                         chn_fdisp(4,0,2,16,1,2,hz_test);
 192   2                                        
 193   2                                      break;
 194   2                        case  MENU_TEST_1:                      
 195   2                                         
 196   2                                          chn_fdisp(0,0,2,16,1,2,hz_test_1);
 197   2                          chn_fdisp(0,32,2,16,1,2,hz_test_2); 
 198   2                                                                      
 199   2                                      break;
 200   2                        case  MENU_TEST_2:                                                       
 201   2                        
 202   2                                         chn_fdisp(2,0,2,16,1,2,hz_test_1);
 203   2                         chn_fdisp(2,32,2,16,1,2,hz_test_3);                          
 204   2                                        
 205   2                                      break;
 206   2                        case  MENU_TEST_3:
 207   2                               chn_fdisp(4,0,2,16,1,2,hz_test_4);
 208   2                       chn_fdisp(4,32,2,16,1,2,hz_test_2);
 209   2                              break;
 210   2                        case  MENU_TEST_4:
 211   2                                chn_fdisp(6,0,2,16,1,2,hz_test_4);
 212   2                        chn_fdisp(6,32,2,16,1,2,hz_test_3); 
 213   2                              break;
 214   2                        case  MENU_HELP:             
 215   2                                         chn_fdisp(6,0,2,16,1,2,hz_help);                             
 216   2                                      break;            
 217   2                        case  MENU_HELP_1:                       
 218   2                                         chn_fdisp(0,0,2,16,1,2,hz_help);
 219   2                         num_disp(1,0,32,1);                   
 220   2                                      break;
 221   2                        case  MENU_HELP_2:
 222   2                                         chn_fdisp(2,0,2,16,1,2,hz_about);
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 5   

 223   2                                      break;
 224   2                        default: 
 225   2                                      break;    
 226   2                }
 227   1      
 228   1      }
 229          
 230          void MenuFunction()
 231          {    
 232   1      }
 233          
 234          /*-------显示开机画面-------*/
 235          void DispFaceBmp()
 236          {  
 237   1         clrscr();
 238   1         cs1=1;
 239   1         cs2=0;
 240   1         chn_disp(0,0,2,16,1,4,hz_face);
 241   1         chn_disp(4,0,2,16,1,3,hz_make);
 242   1         chn_disp(6,32,2,8,1,4,hz_me);
 243   1         cs1=0;
 244   1         cs2=1;
 245   1         chn_disp(0,0,2,16,1,4,(hz_face+128));

⌨️ 快捷键说明

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