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

📄 read_key.lst

📁 用89C2051实现的软PLC。PLC程序存在24C04,用按健输入程序
💻 LST
字号:
C51 COMPILER V6.23a  READ_KEY                                                              12/13/2002 12:45:23 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE READ_KEY
OBJECT MODULE PLACED IN Read_Key.OBJ
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE Read_Key.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /* DA is key's high 4 bits  
   2             if (DA == 0) 
   3                   high(key) = 1
   4             else 
   5                   high(key) = 0
   6          
   7             if (Inc == 0)
   8                   low(key) = 1
   9             if (Dec == 0)
  10                   low(key) = 2
  11             if (Wri == 0)
  12                   low(key) = 3
  13          */
  14          
  15          #include "reg51.h"
  16          
  17          void delay(unsigned int); 
  18          bit b_inc = 0,b_dec = 0,da_first = 0;
  19          sbit Inc = P1^0;
  20          sbit Dec = P1^1;
  21          sbit DA  = P1^2;
  22          sbit Wri = P3^2;
  23          unsigned char i;
  24          
  25          unsigned char Read_Key(unsigned char *d,unsigned char *pc)
  26          {
  27   1         unsigned char key;
  28   1         P1 = P1 | 0x0f;
  29   1         if (Inc == 0)
  30   1         {  
  31   2             delay(10);
  32   2                 if (Inc ==0)
  33   2                 {   
  34   3                     if (b_inc == 0)
  35   3                         {  
  36   4                            delay(300);
  37   4                                b_inc = 1;
  38   4                         }
  39   3                         if (DA == 0)
  40   3                 {   
  41   4                            key = 0x11;      // if (DA == 0) high(key) = 2; 
  42   4                                (*pc)++;
  43   4                         }
  44   3                         else                   //if (Inc == 0) low(key) = 1;  
  45   3                         {    key = 0x01;
  46   4                              (*d)++;
  47   4                         }
  48   3                 for ( i = 0;Inc == 0 && i < 60;i++)
  49   3                          delay(1);
  50   3                 }
  51   2          }
  52   1              else if (Dec == 0)
  53   1          { 
  54   2             delay(10);
  55   2                 if (Dec == 0)
C51 COMPILER V6.23a  READ_KEY                                                              12/13/2002 12:45:23 PAGE 2   

  56   2                 { 
  57   3                     if (b_dec == 0)
  58   3                         {
  59   4                            delay(300);
  60   4                                b_dec = 1;
  61   4                         }
  62   3                         if (DA == 0)
  63   3                         {    
  64   4                             key = 0x12;
  65   4                                 (*pc)--;
  66   4                         }
  67   3                         else
  68   3                         {  
  69   4                     key = 0x02;
  70   4                                 (*d)--;
  71   4                         }
  72   3                         for (i = 0;Dec == 0 && i < 60;i++)
  73   3                             delay(1);
  74   3                      }
  75   2           }
  76   1               else if (DA == 0)
  77   1               {
  78   2                   delay(50);
  79   2                       if (DA == 0)
  80   2                       {
  81   3                      b_inc = b_dec = 0;
  82   3                          if (Wri == 0)
  83   3                                  key = 0x13;
  84   3                              else
  85   3                          {
  86   4                      key = 0x10;
  87   4                      if (!da_first)
  88   4                      {
  89   5                          da_first = 1;
  90   5                          (*pc)++;
  91   5                      }
  92   4                  }
  93   3                       }
  94   2               }
  95   1               else if (Wri == 0)
  96   1               {   
  97   2                   b_inc = b_dec = da_first = 0;
  98   2                   delay(100);
  99   2                       if (Wri == 0)
 100   2                       {
 101   3                          key = 0x03;
 102   3                       }
 103   2               }
 104   1               else 
 105   1               {  
 106   2                  b_inc = b_dec = da_first = 0;
 107   2              key = 0x00;
 108   2               }
 109   1               return key;
 110   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    257    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V6.23a  READ_KEY                                                              12/13/2002 12:45:23 PAGE 3   

   DATA SIZE        =      1       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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