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

📄 key.lst

📁 基于51单片机的1602显示的计算器
💻 LST
字号:
C51 COMPILER V7.50   KEY                                                                   09/29/2007 20:19:21 PAGE 1   


C51 COMPILER V7.50, 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          /************************************************************************************/
   2          /*     程序名:44键盘代码                                                           */
   3          /*                                                                                  */
   4          /*     晶振:12.0 M                                        CPU型号:AT89S52         */
   5          /*                                                                                  */
   6          /*                                                                                  */
   7          /*     功能描述: 44键盘代码,需将J10,J20相应的键用杜邦线连接起来                   */
   8          /*                                                                                                                              */
   9          /*                              MENU_yes        <-              ->              NO_back                                         */
  10          /*                              1                       2                       3                       +                                       */                   
  11          /*                  4           5           6           -                           */
  12          /*                  7           8           9           0                           */
  13          /*                                                                                  */
  14          /*     QQ:276193028                                                                             */
  15          /*     E-mail:shenchangwei945@163.com                                               */
  16          /*                                                                                                                                                      */
  17          /*                                                                                  */
  18          /*                                                现代虚拟仪器仪表研究所            */
  19          /*                                                         2007-09-15               */
  20          /************************************************************************************/ 
  21          
  22          #include<reg51.h>
  23          #define uchar unsigned char
  24          
  25          #define countend        40
  26          
  27          #define countsub        5
  28          /*
  29          #define Key_con         P3
  30          #define key_yes         0x18 //MENU_yes
  31          #define key_L           0x14 //<-
  32          #define key_R           0x12 //->
  33          #define key_no          0x11 //NO_back
  34          
  35          #define key_1           0x28 //1
  36          #define key_2           0x24 //2
  37          #define key_3           0x22 //3
  38          #define key_+           0x21 //+
  39          
  40          #define key_4           0x48 //4
  41          #define key_5       0x44 //5
  42          #define key_6           0x42 //6
  43          #define key_-           0x41 //-
  44          
  45          #define key_7           0x88 //7
  46          #define key_8           0x84 //8
  47          #define key_9           0x82 //9
  48          #define key_0           0x81 //0
  49          */
  50          #define L 10
  51          bit keyflag = 0;
  52          
  53          extern void Delay_1ms(unsigned char t);
  54          extern Key_con;
  55          unsigned char kbscan();
C51 COMPILER V7.50   KEY                                                                   09/29/2007 20:19:21 PAGE 2   

  56          
  57          uchar keyscan(void);
  58          
  59          /**************此函数具有长按加速功能******************/
  60          
  61          unsigned char keyscan(void)
  62          {
  63   1              unsigned char i,code_l,code_h[4] = {0xfe,0xfd,0xfb,0xf7};
  64   1              static unsigned char keycounter = 0;
  65   1              Key_con = 0xF0;
  66   1              if((Key_con & 0xF0)!= 0xF0)
  67   1              {
  68   2              Delay_1ms(20);
  69   2                      if((Key_con & 0xf0)!= 0xF0)
  70   2                      { 
  71   3                              for(i = 0; i<4; i++)
  72   3                              {
  73   4                                  Key_con = code_h[i];
  74   4                              if((Key_con & 0xF0) != 0XF0)
  75   4                              {
  76   5                                      code_l = (Key_con & 0xF0) | 0x0F;
  77   5                                              if(keyflag)//不是第一次按下则执行以下程序
  78   5                                              {
  79   6                                                      keycounter++;//计数器加1
  80   6                                                      if(keycounter == countend)
  81   6                                                      {
  82   7                                                              keycounter -= countsub;//到一百了再减去
  83   7                                                              return ((~code_h[i])+(~code_l));
  84   7                                                      }
  85   6                                                      else    
  86   6                                                      {return 0;}  //没有到100则返回0
  87   6                                              }
  88   5                                              else  //第一次按下则执行以下程序
  89   5                                      {
  90   6                                                      keyflag = 1;  //置标志位
  91   6                                                      return ((~code_h[i])+(~code_l));
  92   6                                              }
  93   5                              }        
  94   4                              }
  95   3                      }
  96   2              }
  97   1              else
  98   1              {
  99   2                      keyflag = 0;keycounter = 0;return (0);
 100   2              }
 101   1      } 


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


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

⌨️ 快捷键说明

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