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

📄 key.lst

📁 基于c8051f020的应用
💻 LST
字号:
C51 COMPILER V7.06   KEY                                                                   06/25/2008 15:44:08 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN KEY.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe KEY.C DB OE

stmt level    source

   1          //********************************************************************************************************
             -******************
   2          #include <c8051F020.h>
   3          #include "HEAD.H"
   4          //********************************************************************************************************
             -******************
   5          xdata unsigned char con_press_mark;
   6          //********************************************************************************************************
             -******************
   7          bit key_line_in(void)
   8          {
   9   1              IN_KEY_ROW = 1; 
  10   1              
  11   1              return ( IN_KEY_ROW ) ;
  12   1      
  13   1      }
  14          //********************************************************************************************************
             -******************
  15          
  16          void key_line_out(unsigned char out_data)
  17          {
  18   1         xdata unsigned char i;
  19   1      
  20   1         KEY_CLK_0
  21   1         for (i = 0 ;  i< 8 ; i ++)
  22   1              {       
  23   2                  out_data <<= 1;
  24   2                      if(CY)
  25   2                              KEY_DATA_1
  26   2                      else
  27   2                              KEY_DATA_0
  28   2                  KEY_CLK_1
  29   2                  KEY_CLK_0
  30   2              }
  31   1              KEY_DATA_1
  32   1      }
  33          //********************************************************************************************************
             -******************
  34          
  35          unsigned char get_key( unsigned char countinue_dir )
  36          {
  37   1              key_line_out(0);
  38   1              if(key_line_in())
  39   1              {
  40   2                      IN_KEY_ROW = 0; 
  41   2                      Delay_ms( 100 ) ;
  42   2                      return (0);//判断无键输入  
  43   2              }
  44   1              Delay_ms( 10 ) ;
  45   1              if(key_line_in()) return (0);
  46   1         //有键输入
  47   1              key_line_out(0xfe) ;
  48   1              if(!key_line_in())
  49   1              {
  50   2                      KEYLED=1;
C51 COMPILER V7.06   KEY                                                                   06/25/2008 15:44:08 PAGE 2   

  51   2                      while(!key_line_in() && countinue_dir);//       WDTCR = 0x37;
  52   2                      KEYLED=0;
  53   2                      if(!countinue_dir) 
  54   2                      {
  55   3                              if(con_press_mark < 4) 
  56   3                              {
  57   4                                      countinue_dir = 10;
  58   4                                      while(!key_line_in() )
  59   4                                      {
  60   5                                          Delay_ms((5 - con_press_mark) * 20);
  61   5                                              if(!countinue_dir-- ) {con_press_mark++; break;} 
  62   5                                      }
  63   4                              }
  64   3                      }
  65   2                      else con_press_mark = 0;
  66   2                      return (UP_ARROW_KEY);
  67   2              }
  68   1      
  69   1              key_line_out(0xfd) ;
  70   1              if(!key_line_in())
  71   1              {
  72   2                      KEYLED=1;
  73   2                      while(!key_line_in() && countinue_dir);//       WDTCR = 0x37;
  74   2                      KEYLED=0;
  75   2                      if(!countinue_dir) 
  76   2                      {
  77   3                              if(con_press_mark < 4) 
  78   3                              {
  79   4                                      countinue_dir = 10;
  80   4                                      while(!key_line_in() )
  81   4                                      {
  82   5                                          Delay_ms((5 - con_press_mark) * 20);
  83   5                                              if(!countinue_dir-- ) {con_press_mark++; break;} 
  84   5                                      }
  85   4                              }
  86   3                      }
  87   2                      else con_press_mark = 0;
  88   2                      return (LEFT_ARROW_KEY);
  89   2              }
  90   1      
  91   1              key_line_out(0xfb) ;
  92   1              if(!key_line_in())
  93   1              {
  94   2                      KEYLED=1;
  95   2                      while(!key_line_in() && countinue_dir);//       WDTCR = 0x37;
  96   2                      KEYLED=0;
  97   2                      if(!countinue_dir) 
  98   2                      {
  99   3                              if(con_press_mark < 4) 
 100   3                              {
 101   4                                      countinue_dir = 10;
 102   4                                      while(!key_line_in() )
 103   4                                      {
 104   5                                          Delay_ms((5 - con_press_mark) * 20);
 105   5                                              if(!countinue_dir-- ) {con_press_mark++; break;} 
 106   5                                      }
 107   4                              }
 108   3                      }
 109   2                      else con_press_mark = 0;
 110   2                      return (DOWN_ARROW_KEY);
 111   2              }
 112   1      
C51 COMPILER V7.06   KEY                                                                   06/25/2008 15:44:08 PAGE 3   

 113   1              key_line_out(0xf7) ;
 114   1              if(!key_line_in())
 115   1              {
 116   2                      KEYLED=1;
 117   2                      while(!key_line_in() && countinue_dir);//       WDTCR = 0x37;
 118   2                      KEYLED=0;
 119   2                      if(!countinue_dir) 
 120   2                      {
 121   3                              if(con_press_mark < 4) 
 122   3                              {
 123   4                                      countinue_dir = 10;
 124   4                                      while(!key_line_in() )
 125   4                                      {
 126   5      
 127   5                                          Delay_ms((5 - con_press_mark) * 20);
 128   5                                              if(!countinue_dir-- ) {con_press_mark++; break;} 
 129   5                                      }
 130   4                              }
 131   3                      }
 132   2                      else con_press_mark = 0;
 133   2                      return (RIGHT_ARROW_KEY);
 134   2              }
 135   1      
 136   1              key_line_out(0xef) ;
 137   1              if(!key_line_in())
 138   1              {
 139   2                      KEYLED=1;
 140   2                      while(!key_line_in());
 141   2                      KEYLED=0;
 142   2                      return (RETURN_KEY);
 143   2              }
 144   1              return(0);
 145   1      }
 146          
 147          //********************************************************************************************************
             -******************
 148          // The End
 149          //********************************************************************************************************
             -******************


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    472    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      1       1
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
   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 + -