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

📄 keyboard.lst

📁 89s51单片机做的计数器
💻 LST
字号:
C51 COMPILER V7.06   KEYBOARD                                                              11/28/2006 23:11:15 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN keyboard.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE keyboard.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "reg51.h"
   2          #include "intrins.h"
   3          #include "keyboard.h"
   4          
   5          sbit P1_7=P1^7;
   6          //sbit P1_6=P1^6;
   7          void delay(void)
   8          {
   9   1       unsigned char i;
  10   1       for(i=0;i<10;i++)//i=10  210
  11   1       _nop_();
  12   1      }
  13          unsigned  scan_key(void)
  14            { 
  15   1          unsigned char result=0;
  16   1              P1_7=0;
  17   1          P1|=0x40;
  18   1          P3|=0x33;
  19   1          switch ((P3&0x33)|(P1&0x40))
  20   1                 {
  21   2                   case 0x33:  result=1; break;
  22   2                   case 0x72:  result=2; break;
  23   2                       case 0x71:  result=3; break;
  24   2                       case 0x63:  result=4; break;
  25   2                       case 0x53:  result=5; break;
  26   2                       default:        result=0; break;               
  27   2                 }
  28   1          return result;
  29   1        }
  30          /*      P1_7=0;
  31              P1|=0x40;
  32              switch (P1&0x40)
  33                     {
  34                       //case 0x80:  result=1; break;
  35                           case 0x00:  result=9; break;
  36                           default:        result=0; break;               
  37                     }
  38             P1_6=1;
  39             if(P1_6==0)
  40             result=1;
  41             P3|=0x33;
  42              switch (P3&0x33)
  43                     {
  44                       case 0x32:  result=2; break;
  45                           case 0x31:  result=3; break;
  46                           case 0x23:  result=4; break;
  47                           case 0x13:  result=5; break;
  48                           default:        result=0; break;               
  49                     }
  50              return result;
  51            }  */
  52          
  53          unsigned get_key(void)
  54            {
  55   1         unsigned char temp1,key_num=0;
C51 COMPILER V7.06   KEYBOARD                                                              11/28/2006 23:11:15 PAGE 2   

  56   1         unsigned int i=4000;//按键时间
  57   1         if((temp1=scan_key())!=0);
  58   1            {
  59   2                  delay();
  60   2              if( temp1==scan_key())
  61   2                      {
  62   3                       key_num=temp1;
  63   3                   while(scan_key()!=0&&i--);//放开按键或时间到都可以退出循环
  64   3                      }
  65   2                 }
  66   1         return key_num;
  67   1        }


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