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

📄 key.lst

📁 0-30v
💻 LST
字号:
C51 COMPILER V8.08   KEY                                                                   11/20/2008 22:02:47 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN KEY.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE KEY.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "reg52.h"
   2          #include<intrins.h>
   3          #include"IOCfg.c"
   4          #include"Config.h"
   5          #include"KEY.h"
   6          
   7          #define DBUS P0
   8          
   9          
  10          /************************************************************************************
  11            
  12                   刷新按键574数据
  13             
  14          ************************************************************************************/
  15          void DBUS2(uchar i)
  16          {
  17   1              DBUS = i;
  18   1              clk_574_2 = 0;  
  19   1          clk_574_2 = 1;      
  20   1      }
  21          
  22          
  23          /************************************************************************************
  24          *按键扫描 
  25          *返回键值  
  26          ************************************************************************************/
  27          uchar key_sm()
  28          {
  29   1              uchar key_data;
  30   1              RS  =  1;                       
  31   1              RW  =  0;       //--------避免液晶屏干扰数据总线 
  32   1              key1 = 1;
  33   1              key2 = 1;       //--------按键置高电平  
  34   1              key_data = 0xff;
  35   1              DBUS2(0xfe);
  36   1              if(key1 == 0){key_data = key_9;}
  37   1              if(key2 == 0){key_data = key_dian;}
  38   1              DBUS2(0xfd);
  39   1              if(key1 == 0){key_data = key_6;}
  40   1              if(key2 == 0){key_data = key_3;}
  41   1              DBUS2(0xfb);
  42   1              if(key1 == 0){key_data = key_5;}
  43   1              if(key2 == 0){key_data = key_2;}
  44   1              DBUS2(0xf7);
  45   1              if(key1 == 0){key_data = key_8;}
  46   1              if(key2 == 0){key_data = key_0;}
  47   1              DBUS2(0xef);
  48   1              if(key1 == 0){key_data = key_4;}
  49   1              if(key2 == 0){key_data = key_1;}
  50   1              DBUS2(0xdf);
  51   1              if(key1 == 0){key_data = key_7;}
  52   1              if(key2 == 0){key_data = key_esc;}
  53   1              DBUS2(0xbf);
  54   1              if(key1 == 0){key_data = key_you;}
  55   1              if(key2 == 0){key_data = key_xia;}
C51 COMPILER V8.08   KEY                                                                   11/20/2008 22:02:47 PAGE 2   

  56   1              DBUS2(0x7f);            
  57   1              if(key1 == 0){key_data = key_zuo;}
  58   1              if(key2 == 0){key_data = key_shang;}
  59   1              DBUS2(0xff);
  60   1              if(key1 == 0){key_data = key_enter;}
  61   1      
  62   1              return  key_data;       
  63   1      }
  64          
  65          /******************************************************************
  66          //      函数名:delayms
  67          //      功  能:精确延时10mS
  68          //      参  数:
  69          //      返回值:
  70          使用22.1184MHz 晶振的时候 ,循环次数是229  ;
  71          ******************************************************************/
  72          void delay10ms(void)
  73          {
  74   1              unsigned char j;
  75   1              unsigned char i;
  76   1              for(i = 10; i != 0; i--)
  77   1              {
  78   2                      for(j = 0; j < 229; j++);
  79   2              }
  80   1      }
  81          /************************************************************************************
  82          *按键扫描去抖动  
  83          *返回键值     
  84          ************************************************************************************/
  85          uchar key_num()
  86          {       
  87   1          uchar key_bz;
  88   1          key_bz = key_sm();
  89   1              if(key_bz != 0xff)
  90   1              {
  91   2                  delay10ms();
  92   2                      delay10ms();
  93   2                      if(key_bz == key_sm())
  94   2                      {
  95   3                              while(key_sm() != 0xff);
  96   3                              delay10ms();
  97   3                              delay10ms();
  98   3                              while(key_sm() != 0xff);
  99   3                      }
 100   2                  else{key_bz = 0xff;}
 101   2              }               
 102   1              return key_bz;
 103   1      }
 104          
 105          
 106          
 107          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    209    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V8.08   KEY                                                                   11/20/2008 22:02:47 PAGE 3   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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