keyenvent.lst

来自「电能表源码」· LST 代码 · 共 123 行

LST
123
字号
C51 COMPILER V7.50   KEYENVENT                                                             08/07/2008 09:01:15 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE KEYENVENT
OBJECT MODULE PLACED IN keyenvent.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bottom\keyenvent.c LARGE OPTIMIZE(9,SIZE) BROWSE NOAREGS MODDP2 INCDIR(C:\D
                    -OCUMENTS AND SETTINGS\ADMINISTRATOR.LENOVO-80B42371\桌面\VANGO\程序\var\) DEBUG OBJECTEXTEND PRINT(.\keyenvent.lst) OBJE
                    -CT(keyenvent.obj)

line level    source

   1          /*************************************************************************************
   2          
   3                  文件类型:按键操作
   4                  文件作用:
   5                  修改权限:
   6                  文件相关:
   7                  
   8                  创 建 人:chenbo
   9                  创建日期:2007.06.21
  10                  当前版本:Ver0.1
  11                  
  12                  版本信息:Ver0.1                                        GeminiKQ
  13          
  14          **************************************************************************************/
  15          #include "Tiger.h"
  16          
  17          //==================================================================
  18          //函数功能:初始化按键状态
  19          //
  20          //==================================================================
  21          void init_keyevent(void)
  22          {
  23   1         time_keypag_on=0;                //按键持续时间清零
  24   1      //   time_keyup_on=0;
  25   1         sta_keypag=key_upstation;        //按键处于未按下状态
  26   1      //   sta_keyup=key_upstation;
  27   1         flag_keypag.byte=0xff;         //扫描状态初始化
  28   1      //   flag_keyup.byte=0xff;
  29   1      }
  30          
  31          
  32          //========================================================================
  33          //函数功能:停电时扫描按键事件
  34          //备注:返回1:按键按下,返回0:按键没按下
  35          //========================================================================
  36          unsigned char key_scantindian(void)
  37          { EXTERN union byte_define temp_keysta;
  38   1        uint8 value;  
  39   1      /*  flag_keypag.byte=flag_keypag.byte<<1;
  40   1        if((Key_pag&0x10)==0x10)
  41   1              key_pag_1=1;
  42   1        else
  43   1              key_pag_1=0;
  44   1        if((key_pag_1==key_up_2)&&(key_pag_1==key_up_3)&&(key_pag_1==key_on))
  45   1             value=1;
  46   1        else
  47   1             value=0;
  48   1      */ 
  49   1      return value;    
  50   1      }
  51          
  52          //===============================================================================
  53          //函数功能:读按键状态
C51 COMPILER V7.50   KEYENVENT                                                             08/07/2008 09:01:15 PAGE 2   

  54          //
  55          //===============================================================================
  56          void read_keysta(void)
  57          {  DISENOUT_dn;                              //禁止输出
  58   1         OPEN_keypag;                              //允许输入 
  59   1         flag_keypag.byte=flag_keypag.byte<<1;
  60   1          if((Key_pag&0x10)==0x10)
  61   1              key_pag_1=1;
  62   1          else
  63   1              key_pag_1=0;
  64   1      //    key_pro_1=Key_pro;
  65   1      //    key_up_1=Key_up;
  66   1      }
  67          //=================================================================================
  68          //函数功能:按键处理
  69          //备注:10ms扫描一次
  70          //==================================================================================
  71          void keymode(void)
  72          { read_keysta();                               //读按键状态
  73   1        if(key_pag_1==key_pag_2)                    //pro键有事情发生
  74   1           { if(key_pag_1==key_on)                   //pro键按下
  75   2                    { if(sta_keypag==key_upstation)         //如果是未按状态
  76   3                      { sta_keypag=key_dnstation;           //按键状态变为按下状态
  77   4                      }
  78   3                }
  79   2                 else if(key_pag_1==key_off)                     //如果按键松开
  80   2                    { if(sta_keypag!=key_upstation)              //如果是在按键按下的情况下松开
  81   3                             { sta_keypag=key_upstation;             //置当前状态为松开
  82   4                       type_dispevent=keyup_envent;        //pro键按下事件发生
  83   4                                       sta_meterrun=run_prosta;              //进入编程模式
  84   4                                       time_runprosta=0;                     //编程维持时间清零
  85   4                             }
  86   3                        }
  87   2               }   
  88   1        
  89   1      }                                                                                                         
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    126    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----       1
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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