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

📄 key.lst

📁 采用1*4,4*4键盘同时控制,带有8位数码显示的数控直流电源驱动及应用程序(Keil c51)
💻 LST
字号:
C51 COMPILER V7.09   KEY                                                                   10/19/2006 13:24:53 PAGE 1   


C51 COMPILER V7.09, 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 "reg51.h"
   2          
   3          #define LED_BIT P3 
   4          #define LED_SEG P0
   5          
   6          #define KeyIO P2    //p2口接4mul4键盘
   7          
   8          sbit ScanIO = P3^3;     //p3.3为附加扫描线扩展1mul8键盘
   9          unsigned char Key_Vlue[25] = {0x77,0xb7,0xd7,0xe7,0x7b,0xbb,0xdb,0xeb,
  10                                                            // 0     1    2    3  4        5        6        7
  11                                                               0x7d,0xbd,0xdd,0xed,0x7e,0xbe,0xde,0xee,
  12                                                            // 8    9    10   11   12   13   14   15
  13                                                                  0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  14          unsigned char Scan_Key1mul8()
  15          {
  16   1              unsigned char i;
  17   1              unsigned char scancode,keycode;
  18   1              ScanIO = 0;
  19   1              scancode = 0xff;//P2口输出全1则无键闭合
  20   1              KeyIO = scancode;       
  21   1              keycode = KeyIO;
  22   1              if(keycode!=0xff)
  23   1              {
  24   2                      for(i=16;i<24;i++)
  25   2                      {
  26   3                              if(keycode == Key_Vlue[i])
  27   3                                      return (i);//返回的是键值的相对位置16~23                                
  28   3                      }               
  29   2              }
  30   1              return 0xff;//无键按下时返回值为0xff    
  31   1      }
  32          
  33          
  34          
  35          //线反转法4mul4键盘扫描子程序
  36          unsigned char Scan_Key4mul4()
  37          {
  38   1              unsigned char i;
  39   1              unsigned char scancode,keycode,keycode_line,keycode_row;
  40   1      
  41   1              scancode = 0xf0;//列置低,行置高
  42   1              KeyIO = scancode;//输入扫描码,扫描行
  43   1              keycode_line = KeyIO;
  44   1      
  45   1              scancode = 0x0f;//列置高,行置低
  46   1              KeyIO = scancode;//输入扫描码,扫描列
  47   1              keycode_row = KeyIO;
  48   1      
  49   1              keycode = ((keycode_line&0xF0)|(keycode_row&0x0F));
  50   1              for(i=0;i<16;i++)
  51   1              {
  52   2                      if(keycode==Key_Vlue[i])
  53   2                              return (i);//返回的是键值的相对位置0~15
  54   2              }
  55   1              return 0xff;//无键按下时返回值为0xff
C51 COMPILER V7.09   KEY                                                                   10/19/2006 13:24:53 PAGE 2   

  56   1      }
  57          
  58          unsigned char Key(void)
  59          {
  60   1              unsigned char temp;
  61   1              temp=Scan_Key1mul8();
  62   1              if(temp!=0xff)
  63   1                      return temp;
  64   1              else
  65   1          {
  66   2                      temp=Scan_Key4mul4();
  67   2                      if(temp!=0xff)
  68   2                              return temp;
  69   2              }
  70   1              return 0xff;
  71   1      }
  72          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     90    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     25    ----
   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 + -