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

📄 wl005.lst

📁 51单片机键盘的相关处理
💻 LST
字号:
C51 COMPILER V8.02   WL005                                                                 08/01/2007 16:48:19 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE WL005
OBJECT MODULE PLACED IN wl005.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE wl005.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************************
   2          *  标题:  ME300系列单片机开发系统演示程序 - 按键扫描程序                       *
   3          *  硬件: ME300A+,ME300B                                                       *
   4          *  文件:  wl005.C                                                              *
   5          *  日期:  2004-1-5                                                             *
   6          *  版本:  1.0                                                                  *
   7          *  作者:  伟纳电子 - Freeman                                                   *
   8          *  邮箱:  freeman@willar.com                                                   *
   9          *  网站: http://www.willar.com                                                *
  10          ********************************************************************************
  11          *  描述:                                                                       *
  12          *         按键扫描程序                                                         *
  13          *         上电时, 点亮P00口LED                                                 *
  14          *         按下K1时, LED向右移一位                                              *
  15          *         按下K2时, LED向左移一位                                              *
  16          ********************************************************************************
  17          *  跳线设置:                                                                  *
  18          *     ME300A+    JP1 全部短接,JP2短接2-3端                                    *
  19          *     ME300B     JP1 短接,    JP2短接2-3端                                    *
  20          *                                                                              *
  21          ********************************************************************************
  22          * 【版权】 Copyright(C)伟纳电子 www.willar.com  All Rights Reserved            *
  23          * 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
  24          *******************************************************************************/
  25          
  26          #include <reg51.h>
  27          #include <intrins.h>
  28          
  29          unsigned char scan_key();
  30          void proc_key(unsigned char key_v);
  31          void delayms(unsigned char ms);
  32          
  33          sbit    K1 = P1^4;
  34          sbit    K2 = P1^5;
  35          
  36          main()
  37          {
  38   1              
  39   1              unsigned char key_s,key_v;
  40   1              key_v = 0x03;
  41   1              P0 = 0xfe;
  42   1              while(1)
  43   1              {
  44   2                      key_s = scan_key();
  45   2                      if(key_s != key_v)
  46   2                      {
  47   3                              delayms(10);
  48   3                              key_s = scan_key();
  49   3                              if(key_s != key_v)
  50   3                              {       
  51   4                                      key_v = key_s;
  52   4                                      proc_key(key_v);                                        
  53   4                              }
  54   3                      }
  55   2              }       
C51 COMPILER V8.02   WL005                                                                 08/01/2007 16:48:19 PAGE 2   

  56   1      }
  57          
  58          unsigned char scan_key()
  59          {
  60   1              unsigned char key_s;
  61   1              key_s = 0x00;
  62   1              key_s |= K2;
  63   1              key_s <<= 1;
  64   1              key_s |= K1;
  65   1              return key_s;           
  66   1      }
  67          
  68          void proc_key(unsigned char key_v)
  69          {
  70   1              if((key_v & 0x01) == 0)
  71   1              {
  72   2                      P0 = _cror_(P0,1);
  73   2              }
  74   1              else if((key_v & 0x02) == 0)
  75   1              {
  76   2                      P0 = _crol_(P0, 1);
  77   2              }
  78   1      }
  79          
  80          void delayms(unsigned char ms)  
  81          // 延时子程序
  82          {                                               
  83   1              unsigned char i;
  84   1              while(ms--)
  85   1              {
  86   2                      for(i = 0; i < 120; i++);
  87   2              }
  88   1      }


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