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

📄 menu.lst

📁 采用C51语言完成基于74HC595的串口键盘与LED指示灯单元设计
💻 LST
字号:
C51 COMPILER V8.05a   MENU                                                                 10/14/2008 21:02:33 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE MENU
OBJECT MODULE PLACED IN menu.OBJ
COMPILER INVOKED BY: F:\Keil C51 V8\C51\BIN\C51.EXE menu.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "commons.h"
   2          
   3          //以下定义菜单相关的参数
   4          #define MENU_NUM        5
   5          #define MENU_MAX        9999
   6          #define MENU_MIN        0
   7          
   8          char _menu_name[] = {'a','b','c','d','e'};       //参数名的符号
   9          int _value[] = {1000, 20, 30, 40, 50};       //供计算用的参数数组
  10          int _menu_value[] = {0,0,0,0,0};                         //供显示用的参数数组
  11          unsigned char _menu_item = 0;                    //参数序号
  12          unsigned char _menu_status = MENU_OFF;   //当前检测进行阶段
  13          
  14          char n=0;
  15          
  16           char _menu_str[] = "      ";             //供显示用的字符串
  17          
  18          void menu_routine(void) {                                //菜单处理函数
  19   1              char i = 0;
  20   1              char key = get_key();                    //调用按键检测函数
  21   1              if (_menu_status == MENU_OFF) {          //当前菜单为关闭状态时
  22   2                      if (key == 0) {                                  //若按键0已被按下
  23   3                              _menu_status = MENU_ON;          //置当前菜单为打开状态
  24   3                              _menu_item = 0;                          //设置参数序号0
  25   3                              for (i = 0 ; i < MENU_NUM ; i++) {        
  26   4                                      _menu_value[i] = _value[i];     //将所有参数当前值取出,送入供显示的参数数组中
  27   4                              }                                                               //返回
  28   3                      }
  29   2              } else {                                                                //如果当前菜单为打开状态,则进行以下操作:
  30   2                      serial_output(0x10<<n);
  31   2                      if (key == 0) { //若按键0按下,则不保存键值,仅切换到下一个参数 
  32   3                          n=0;        
  33   3                              _menu_item ++;
  34   3                              if (_menu_item == MENU_NUM) {     //判断是否所有参数都循环到了
  35   4                                      _menu_status = MENU_OFF;          //若已循环完成,设置菜单关闭状态
  36   4                              }
  37   3                      } else if (key == 1) { //若按键1按下,则保存键值,并切换到下一个参数
  38   3                              n=1;
  39   3                              _value[_menu_item] = _menu_value[_menu_item];
  40   3                              if (++_menu_item == MENU_NUM) {
  41   4                                      _menu_status = MENU_OFF;
  42   4                              }
  43   3                      } else if (key == 2) { //若按键2按下,则参数值加1
  44   3                          n=2;
  45   3                              if(_menu_item==0)
  46   3                              _menu_value[_menu_item]=_menu_value[_menu_item]+1;
  47   3                              else if(_menu_item==1)
  48   3                              _menu_value[_menu_item]=_menu_value[_menu_item]+2;
  49   3                              else if(_menu_item==2)
  50   3                              _menu_value[_menu_item]=_menu_value[_menu_item]+3;
  51   3                              else if(_menu_item==3)
  52   3                          _menu_value[_menu_item]=_menu_value[_menu_item]+4;
  53   3                              else if(_menu_item==4)
  54   3                          _menu_value[_menu_item]=_menu_value[_menu_item]+5;
  55   3      
C51 COMPILER V8.05a   MENU                                                                 10/14/2008 21:02:33 PAGE 2   

  56   3                              if (_menu_value[_menu_item] > MENU_MAX) {
  57   4                                      _menu_value[_menu_item] = MENU_MAX;
  58   4                              }
  59   3                      } else if (key == 3) { //若按键3按下,则参数值减1               
  60   3                              n=3;
  61   3                              if(_menu_item==0)
  62   3                              _menu_value[_menu_item]=_menu_value[_menu_item]-1;
  63   3                              else if(_menu_item==1)
  64   3                              _menu_value[_menu_item]=_menu_value[_menu_item]-2;
  65   3                              else if(_menu_item==2)
  66   3                              _menu_value[_menu_item]=_menu_value[_menu_item]-3;
  67   3                              else if(_menu_item==3)
  68   3                          _menu_value[_menu_item]=_menu_value[_menu_item]-4;
  69   3                              else if(_menu_item==4)
  70   3                          _menu_value[_menu_item]=_menu_value[_menu_item]-5;
  71   3      
  72   3                              if (_menu_value[_menu_item] < MENU_MIN) {
  73   4                                      _menu_value[_menu_item] = MENU_MIN;
  74   4                              }
  75   3                      }
  76   2              }
  77   1                      if (_menu_status == MENU_ON) {
  78   2                      //菜单状态为开时,显示参数值
  79   2                      _menu_str[0] = _menu_name[_menu_item];//将参数名符号组装到供显示用的数组中
  80   2                      to_string(&_menu_str[1], 5, _menu_value[_menu_item]);//从LED的第3位起显示参数值
  81   2                      print(_menu_str);
  82   2              }
  83   1      
  84   1      }
  85          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    450    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     35       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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