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

📄 ex05.lst

📁 单片机键盘扫描程序
💻 LST
字号:
C51 COMPILER V7.03   EX05                                                                  05/22/2005 12:51:27 PAGE 1   


C51 COMPILER V7.03, COMPILATION OF MODULE EX05
OBJECT MODULE PLACED IN ex05.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ex05.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*******************************************************************************
   2            Title:  演示程序5 - 按键检测                                                                          *
   3            Name:   ex05.c                                                                *
   4            Date:   2005-5-5                                                              *
   5            Ver:    1.0                                                                   *                         
             -                       *
   6            web:   http://www.mcustudy.com                                               *
   7          ********************************************************************************
   8          *  描述:                                                                       *
   9          *         按键扫描程序                                                         *
  10          *         上电时, 点亮P00口LED                                                 *
  11          *         按下K1时, LED向右移一位                                              *
  12          *         按下K2时, LED向左移一位                                              *
  13          *******************************************************************************/
  14          
  15          #include <reg51.h>
  16          #include <intrins.h>
  17          
  18          
  19          sbit    K1 = P3^2;
  20          sbit    K2 = P3^3;
  21          
  22          unsigned char scan_key()
  23          {
  24   1              unsigned char key_s;
  25   1              key_s = 0x00;
  26   1              key_s |= K2;
  27   1              key_s <<= 1;
  28   1              key_s |= K1;
  29   1              return key_s;           
  30   1      }
  31          
  32          void proc_key(unsigned char key_v)
  33          {
  34   1              if((key_v & 0x01) == 0)
  35   1              {
  36   2                      P0 = _cror_(P0,1);
  37   2              }
  38   1              else if((key_v & 0x02) == 0)
  39   1              {
  40   2                      P0 = _crol_(P0, 1);
  41   2              }
  42   1      }
  43          
  44          void delayms(unsigned char ms)  // 延时子程序
  45          
  46          {                                               
  47   1              unsigned char i;
  48   1              while(ms--)
  49   1              {
  50   2                      for(i = 0; i < 120; i++);
  51   2              }
  52   1      }
  53          
  54          
C51 COMPILER V7.03   EX05                                                                  05/22/2005 12:51:27 PAGE 2   

  55          
  56          main()
  57          {
  58   1              
  59   1              unsigned char key_s,key_v;
  60   1              key_v = 0x03;
  61   1              P0 = 0xfe;
  62   1              while(1)
  63   1              {
  64   2                      key_s = scan_key();
  65   2                      if(key_s != key_v)
  66   2                      {
  67   3                              delayms(20);
  68   3                              key_s = scan_key();
  69   3                              if(key_s != key_v)
  70   3                              {       
  71   4                                      key_v = key_s;
  72   4                                      proc_key(key_v);
  73   4                                      delayms(150);   
  74   4                              }
  75   3                      }
  76   2              }       
  77   1      }
  78          
  79          


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