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

📄 key.lst

📁 零基础单片机C语言设计全套教程
💻 LST
字号:
C51 COMPILER V8.08   KEY                                                                   08/24/2008 20:43:01 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN Key.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE Key.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<stdio.h>                                               //头文件
   2          #include<reg52.h>                                               //头文件
   3          
   4          int row;                                                                //定义行号
   5          int tier;                                                               //定义列号
   6          
   7          int KeyScan();                                                  //声明键盘扫描子函数
   8          void Delay();                                                   //声明延时子函数
   9          
  10          void main()                                                     //主函数
  11          {
  12   1      int Key,i;
  13   1      P2=0x00;                                                                //初始化为LED灭
  14   1      while(1)                                                                //开始循环扫描键盘
  15   1      {
  16   2              Key=KeyScan();                                  //调用键盘扫描子函数,获取键值
  17   2      
  18   2              for(i=0;i<Key;i++)                                      //根据键值,控制LED闪烁的次数
  19   2              {
  20   3                      P2=0x01;                                        //点亮发光二级管
  21   3                      Delay();
  22   3                      P2=0x00;                                                //熄灭发光二级管
  23   3                      Delay();
  24   3              }
  25   2      Key=0;                                                  //键值归零
  26   2      }
  27   1      }
  28          int KeyScan()                                           //键盘扫描子函数
  29          {
  30   1      P1=0xF0;                                                                //列输出全0
  31   1      if((P1&0xF0)!=0xF0)                                             //扫描行,如果不全为0,则进入
  32   1      {
  33   2              switch(P1)                                              //获得行号
  34   2              {
  35   3                      case 0x70:
  36   3                              row=1;                                  //行号
  37   3                              break;
  38   3                      case 0xB0:
  39   3                              row=2;                                  //行号
  40   3                              break;
  41   3                      case 0xD0:
  42   3                              row=3;                                  //行号
  43   3                              break;
  44   3                      case 0xE0:
  45   3                              row=4;                                  //行号
  46   3                              break;
  47   3                      default:
  48   3                              break;
  49   3              }
  50   2              Delay();                                                        //延时去抖动
  51   2              P1=0x0F;                                                        //行输出全0
  52   2              if((P1&0x0F)!=0x0F)                                     //扫描列,如果不全为0,则确认按键按下
  53   2              {
  54   3                      switch(P1)                                      //获得列号
  55   3                      {
C51 COMPILER V8.08   KEY                                                                   08/24/2008 20:43:01 PAGE 2   

  56   4                              case 0x07:
  57   4                                      tier=1;                         //列号
  58   4                                      break;
  59   4                              case 0x0B:
  60   4                                      tier=2;                         //列号
  61   4                                      break;
  62   4                              case 0x0D:
  63   4                                      tier=3;                         //列号
  64   4                                      break;
  65   4                              case 0x0E:
  66   4                                      tier=4;                         //列号
  67   4                                      break;
  68   4                              default:
  69   4                                      break;
  70   4                      }
  71   3                      return 4*(row-1)+tier;                  //计算键值并返回
  72   3              }
  73   2      }
  74   1      else
  75   1      {
  76   2              return 0;                                                       //未扫描到按键按下,返回0
  77   2      }
  78   1      }
  79          void Delay()                                                    //延时子函数
  80          {
  81   1      int i;
  82   1      for(i=1000;i>0;i--);                                            //空循环,延时
  83   1      }


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