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

📄 key.lst

📁 基于C51的通用人机界面程序
💻 LST
字号:
C51 COMPILER V7.08   KEY                                                                   02/27/2006 16:50:27 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN .\output\key.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND OBJECT(.\output\key.obj)

line level    source

   1          #define _key_ 
   2          #include "general.h"
   3          //定义标志位
   4          //bit           f_KEYOFF;
   5          //bit                   f_TIMER0;
   6          
   7          static uchar code code_key[16]={0x11,0x12,0x14,0x18,//3
   8                                                                          0x21,0x22,0x24,0x28,//7
   9                                                                          0x41,0x42,0x44,0x48,//11
  10                                                                          0x81,0x82,0x84,0x88};//15
  11             
  12          /*      -- 1 -- 2 -- 3 -- enter --
  13                  -- 4 -- 5 -- 6 --
  14              -- 7 -- 8 -- 9 --
  15                  -- 0 -- 
  16          /******************************************
  17          查键值表,特征键值转为顺序键值
  18          ******************************************/
  19          uchar get_key(uchar c)
  20          {
  21   1         uchar i=0;
  22   1         while(code_key[i]!= c) 
  23   1              i++;
  24   1         return i;//0x00~0x0f
  25   1       }
  26          
  27          /**************************************************************
  28          名称:kbscan                                     
  29          描述:键盘扫描,有延时
  30          输入:无
  31          输出:返回键值key
  32          其他:P0.4~7扫描输出,P0.0~3输入进来
  33          **************************************************************/
  34          uchar kbscan(void)
  35          {
  36   1              uchar sccode,recode;
  37   1              P0=0x0f;                                                        //00001111
  38   1              if((P0&0x0f)!=0x0f)                                     //若有键按下
  39   1              {
  40   2                      delay(5);                                               //薄膜按键推荐延时,1
  41   2                      if((P0&0x0f)!=0x0f)
  42   2                      {
  43   3                              sccode=0xef;
  44   3                              while((sccode&0x01)!=0)
  45   3                              {
  46   4                                      P0=sccode;
  47   4                                      if((P0&0x0f)!=0x0f)
  48   4                                      {
  49   5                                              recode=(P0&0x0f)|0xf0;
  50   5                                              while((P0&0x0f)!=0x0f);//空while,等待键抬起再返回键值
  51   5                                              return(get_key((~sccode)+(~recode)));//返回特征字节->顺序键码
  52   5                                              //C1:10-01,02,04,08             11,12,14,18
  53   5                                              //C2:20-01,02,04,08             21,22,24,28
  54   5                                              //C3:40-01,02,04,08             41,42,44,48
  55   5                                              //C4:80-01,02,04,08             81,82,84,88
C51 COMPILER V7.08   KEY                                                                   02/27/2006 16:50:27 PAGE 2   

  56   5                                      }
  57   4                                      else
  58   4                                      sccode=(sccode<<1)|0x01;
  59   4      
  60   4                              }
  61   3      
  62   3                      }
  63   2              }
  64   1              else
  65   1              while((P0&0x0f)!=0x0f);//
  66   1              return(0x10);//无键按下,返回16
  67   1      }
  68          
  69          /**************************
  70          参数设置操作
  71          **************************
  72          void paraset(   uchar para,
  73                                          uchar temp,
  74                                          uchar Index,
  75                                          uchar index_fa,
  76                                          uchar index_br1,
  77                                          uchar index_br2)
  78          {
  79                  uchar key;
  80                  key=kbscan();//
  81                  switch(key)
  82                  {
  83                          //case NUM1:            {temp=1;break;}
  84                          //case NUM2:            {temp=2;break;}
  85                          //case NUM3:            {temp=3;break;}
  86                          case NUM4:              {temp=4;break;}
  87                          //case NUM5:            {temp=5;break;}
  88                          case NUM6:              {temp=6;break;}
  89                          //case NUM7:            {temp=7;break;}
  90                          case NUM8:              {temp=8;break;}
  91                          //case NUM9:            {temp=9;break;}
  92                          case NUM0:              {temp=0;break;}
  93                          case BN_ENT:    {para=temp;Index=index_fa;break;}
  94                          case BN_ESC:    {temp=para;Index=index_fa;break;}
  95                          case BN_PGUP:   {Index=index_br1;break;}
  96                          case BN_PGDN:   {Index=index_br2;break;}
  97                  }
  98          }
  99          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    102    ----
   CONSTANT SIZE    =     16    ----
   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 + -