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

📄 3x4矩阵键盘的扫描程序.lst

📁 单片机+4*4键盘
💻 LST
字号:
C51 COMPILER V8.02   3X4__阵键盘的扫描程序                                                 02/29/2008 22:21:46 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 3X4__阵键盘的扫描程序
OBJECT MODULE PLACED IN 3x4矩阵键盘的扫描程序.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 3x4矩阵键盘的扫描程序.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /* 3x4矩阵键盘的扫描程序
   2          按相应的按键,数码管显示相应的数字,星号键和井号键分别显示为E和F
   3          *********************************
   4          Create by:左秀龙 
   5          support:
   6          Tel:0755-82879296
   7          email: cutedesign@tom.com
   8          Date: 2005/06/23
   9          *********************************
  10          测试通过*/
  11          
  12          #include<AT89X51.h>
  13          #define unchar unsigned char
  14          #define unint unsigned int
  15          unchar code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7c,0x39,0x5e,0x79,0x71};
  16          void KeyScan();
  17          void delay10ms(unsigned char time);
  18          void Dispaly(unsigned char k);
  19          
  20          unsigned char key,temp;
  21          
  22          void main() //主程序
  23          {
  24   1      while(1)
  25   1      {
  26   2      KeyScan();
  27   2      }
  28   1      }
  29          
  30          void KeyScan() //按键扫描子程序
  31          {
  32   1      P3=0xFF;
  33   1      P3_3=0;
  34   1      temp=P3;
  35   1      temp&=0xF0;
  36   1      if(temp!=0xF0)
  37   1      {
  38   2      delay10ms(1);
  39   2      temp=P3;
  40   2      temp&=0xF0;
  41   2      if(temp !=0xF0)
  42   2      {
  43   3        temp=P3;
  44   3        temp&=0xF0;
  45   3      
  46   3        switch(temp)
  47   3        {
  48   4        case 0x70:
  49   4        key=1;break;
  50   4        case 0xB0:
  51   4        key=2;break;
  52   4        case 0xD0:
  53   4        key=3;break;
  54   4        }
  55   3        Dispaly(key);
C51 COMPILER V8.02   3X4__阵键盘的扫描程序                                                 02/29/2008 22:21:46 PAGE 2   

  56   3      }
  57   2      }
  58   1      
  59   1      P3=0xFF;
  60   1      P3_2=0;
  61   1      temp=P3;
  62   1      temp&=0xF0;
  63   1      if(temp !=0xF0)
  64   1      {
  65   2      delay10ms(1);
  66   2      temp=P3;
  67   2      temp&=0xF0;
  68   2      if(temp !=0xF0)
  69   2      {
  70   3        temp=P3;
  71   3        temp&=0xF0;
  72   3      
  73   3        switch(temp)
  74   3        {
  75   4        case 0x70:
  76   4        key=4;break;
  77   4        case 0xB0:
  78   4        key=5;break;
  79   4        case 0xD0:
  80   4        key=6;break;
  81   4        }
  82   3        Dispaly(key);
  83   3      }
  84   2      }
  85   1      
  86   1      P3=0xFF;
  87   1      P3_1=0;
  88   1      temp=P3;
  89   1      temp&=0xF0;
  90   1      if(temp !=0xF0)
  91   1      {
  92   2      delay10ms(1);
  93   2      temp=P3;
  94   2      temp&=0xF0;
  95   2      if(temp !=0xF0)
  96   2      {
  97   3        temp=P3;
  98   3        temp&=0xF0;
  99   3      
 100   3        switch(temp)
 101   3        {
 102   4        case 0x70:
 103   4        key=7;break;
 104   4        case 0xB0:
 105   4        key=8;break;
 106   4        case 0xD0:
 107   4        key=9;break;
 108   4        }
 109   3        Dispaly(key);
 110   3      }
 111   2      }
 112   1      
 113   1      P3=0xFF;
 114   1      P3_0=0;
 115   1      temp=P3;
 116   1      temp&=0xF0;
 117   1      if(temp !=0xF0)
C51 COMPILER V8.02   3X4__阵键盘的扫描程序                                                 02/29/2008 22:21:46 PAGE 3   

 118   1      {
 119   2      delay10ms(1);
 120   2      temp=P3;
 121   2      temp&=0xF0;
 122   2      if(temp !=0xF0)
 123   2      {
 124   3        temp=P3;
 125   3        temp&=0xF0;
 126   3      
 127   3        switch(temp)
 128   3        {
 129   4        case 0x70:
 130   4        key=14;break;
 131   4        case 0xB0:
 132   4        key=0;break;
 133   4        case 0xD0:
 134   4        key=15;break;
 135   4        }
 136   3        Dispaly(key);
 137   3      }
 138   2      }
 139   1      }
 140          
 141          //延时程序
 142          void delay10ms(unsigned char time)
 143          {
 144   1      unsigned char a,b,c;
 145   1      for(a=0;a<time;a++)
 146   1      for(b=0;b<10;b++)
 147   1        for(c=0;c<120;c++)
 148   1        ;
 149   1      }
 150          
 151          void Dispaly(unsigned char k) //显示程序
 152          {
 153   1      P0=table[k];
 154   1      P2_1=0;
 155   1      }


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