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

📄 key.lst

📁 电磁流量计的源程序。将流体流量用电磁转换方式变换成弱电信号
💻 LST
字号:
C51 COMPILER V6.02  KEY                                                                    09/10/2005 17:11:40 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN D:\2005_09\Key.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE D:\2005_09\Key.c SMALL DB OE CO OT(SIZE) 

stmt level    source

   1          /************************************************************************/
   2          /*                                                                      */
   3          /*			key scan 			                                        */
   4          /*                                                                      */
   5          /*              Author: zhiqiang huo                                    */
   6          /*         left key P2.7                                                */
   7          /*          mid key p2.6                                                */
   8          /*         right key P2.5                                               */
   9          /************************************************************************/
  10          
  11          #include "reg52.h"
  12          #include "typedef.h"
  13          #include "function.h"
  14          #include "define.h"
  15          #include "varible.h"
  16          
  17          #define LEFTKEY 0x01            //LEFF KEY
  18          #define MIDDLEKEY 0x02      //
  19          #define RIGHTKEY 0x03
  20          #define SETMIMA 0x04       //left and mid key
  21          #define BIAODIN 0x05       //mid and right key
  22          #define KEY_TM 4
  23          #define NOKEY  0
  24          #define KEYOK  1
  25          
  26          sbit POP_PORT = P3^7 ;
  27          //***************function declare******************
  28          void Key_init(void);
  29          void Key_hd(void);
  30          void Key_scan(void);
  31          unsigned char Key_judge(void);
  32          void Con_key(void);
  33          //***************8*********************************
  34          
  35          
  36           /****************************/
  37           /****************************/
  38           void Key_init(void)
  39           {
  40   1        unsigned char i;
  41   1        for(i=0;i<4;i++)
  42   1           key_data[i] = 0 ;
  43   1        key_tmr = 0;
  44   1        keyvld = 0;
  45   1        keyvld_old = 0 ;
  46   1        key_flag_F = (bit)0;
  47   1        judge_pop = 0;
  48   1        empty_pop_F = 0 ;
  49   1        set_dp_F = 0;
  50   1        return;
  51   1        }
  52          
  53            /****************************/
  54            /****************************/
  55          void Key_hd(void)
C51 COMPILER V6.02  KEY                                                                    09/10/2005 17:11:40 PAGE 2   

  56          {
  57   1       Key_scan();
  58   1       if(key_tmr != 0)
  59   1          key_tmr--;
  60   1       else {
  61   2            key_tmr = KEY_TM;
  62   2      	  if(Key_judge() == KEYOK)
  63   2      	     Con_key();
  64   2      	  if(judge_pop >= 3)
  65   2      	     empty_pop_F = EMPTY;
  66   2      	  else if(judge_pop <= 1)
  67   2      	     empty_pop_F = FULL ;
  68   2      	  }
  69   1       return;
  70   1       }
  71          
  72          
  73          /***************************************/
  74          /***************************************/
  75          void Key_scan(void)
  76           
  77          {
  78   1        unsigned char i;
  79   1        P2=P2|0xe0;     
  80   1        key_data[0]=(~P2)&0xe0;    // get P2.5,P2.6,P2.7
  81   1        for(i=3;i>0;i--)
  82   1         {
  83   2          key_data[i]= key_data[i-1];
  84   2          }
  85   1        if(POP_PORT == EMPTY)
  86   1        {
  87   2        	if(judge_pop <= 3)
  88   2        	   judge_pop++;
  89   2        }
  90   1        else
  91   1        {
  92   2        	if(judge_pop > 1)
  93   2        	   judge_pop--;
  94   2        }
  95   1      
  96   1      return;	   
  97   1      
  98   1      }
  99           
 100          
 101          /******************************/
 102          /******************************/
 103          unsigned char  Key_judge(void)
 104          {
 105   1       if((key_data[0] == key_data[1])&&(key_data[1] == key_data[2])
 106   1              &&(key_data[2] == key_data[3]))
 107   1              
 108   1           return(1);
 109   1       else 
 110   1           return(0);
 111   1      
 112   1      }
 113          
 114          /*************************/
 115          /*************************/
 116          void Con_key(void)
 117          {
C51 COMPILER V6.02  KEY                                                                    09/10/2005 17:11:40 PAGE 3   

 118   1        switch(key_data[1])
 119   1        {
 120   2         case 0x80:
 121   2               keyvld = LEFTKEY;
 122   2      		 break;
 123   2         case 0x40:
 124   2               keyvld = MIDDLEKEY;
 125   2      		 break;
 126   2         case 0x20:
 127   2               keyvld = RIGHTKEY;
 128   2      	     break;
 129   2         case 0xc0:
 130   2               keyvld = SETMIMA;
 131   2      		 break;
 132   2         case 0x60:
 133   2               keyvld = BIAODIN;
 134   2      		 break;
 135   2      	default :
 136   2      	     keyvld = NOKEY;
 137   2      		 break;
 138   2         }
 139   1         if(keyvld == NOKEY)
 140   1            {
 141   2      	     keyvld_old = keyvld ;
 142   2      		 key_flag_F = 0;
 143   2      		 multi_key_F = 0;
 144   2      	   }
 145   1      
 146   1         else if(keyvld != keyvld_old)
 147   1              {
 148   2              	if(multi_key_F == 1)
 149   2              	 ;
 150   2                  else
 151   2                   {
 152   3      	            keyvld_old = keyvld;
 153   3      	            key_flag_F = 1;
 154   3      	         }
 155   2      	    }
 156   1      	    
 157   1            return;
 158   1        }
 159          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    241    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -