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

📄 jianpanshumaxianshi.lst

📁 适用于单片机ARM等控制器的键盘程序
💻 LST
字号:
C51 COMPILER V7.06   JIANPANSHUMAXIANSHI                                                   12/26/2008 11:35:31 PAGE 1   


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

stmt level    source

   1          #include<stdio.h>    //通用4*4小键盘程序,可以用数码管显示键值
   2          #include<at89x52.h>  //可用于51单片机,晶振频率11.0592MHZ
   3          
   4          #define uchar unsigned char
   5          #define uint  unsigned int
   6          
   7          int Hang;
   8          int Lie;
   9          int Mazhi[4][4]={{1,2,4,3},{5,6,8,7},{9,0,11,10},{12,13,15,14}};
  10          /**************************************************************/
  11          //      0    1    3   2
  12          
  13          //      1    2    3   4     .........
  14          //      5    6    7   8     ......... .
  15          //      9    0    .   >     ......... .  P2接通用四乘四小键盘   
  16          //     EXE  MENU  ESC <     .........
  17          
  18          //     |-----|        
  19          //     |     |              ........
  20          //     |-----|              ........ . 
  21          //     |     |              ........ .  P3 接数码管显示
  22          //     |-----| .            ........
  23          
  24          //    .-.                          .
  25          //   . ? .                  ..........  P2_0接LED显示按下状态
  26          //    .=.                          .
  27          
  28          //程序作者:王庆波,黑龙江大学电子工程学院06级,爱好者工作室,borlittle,Q:634172943      
  29          /*************************************************************/
  30          int mz;
  31          uchar code dis_7[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x7F,0x88,0xc6,0xa1,0x86,0x83};
  32          /*对应键值为          0     1     2    3    4   5     6    7    8    9    .    A     C    D     E   B  */
  33          int Key_scan();
  34          void Delay();
  35          
  36          void main()
  37          {
  38   1        int key;
  39   1        P1=0x00;
  40   1        P0_0=0;
  41   1        while(1)
  42   1        {
  43   2        key=Key_scan();
  44   2        if(key==1)
  45   2        {
  46   3        mz=Mazhi[Lie][Hang]; //获取码值
  47   3        P3=dis_7[mz];        //查表输出段码
  48   3        P1=0x80;
  49   3        }
  50   2        Delay();
  51   2        P1=0x00;
  52   2         }
  53   1      }
  54          
  55          void Delay()               //延时子程序
C51 COMPILER V7.06   JIANPANSHUMAXIANSHI                                                   12/26/2008 11:35:31 PAGE 2   

  56          {
  57   1      long i;
  58   1      for(i=5000;i>0;i--);
  59   1      }
  60          int Key_scan()
  61          {
  62   1              P2=0xF0;               //行扫描
  63   1              if((P2&0xF0)!=0xF0)
  64   1              {
  65   2              switch(P2)
  66   2              {
  67   3              case 0x70:
  68   3                      Hang=0;
  69   3                      break;
  70   3              case 0xB0:
  71   3                      Hang=1;
  72   3                      break;
  73   3              case 0xD0:
  74   3                      Hang=2;
  75   3                      break;
  76   3              case 0xE0:
  77   3                      Hang=3;
  78   3                      break;
  79   3              default:
  80   3                      break;
  81   3              }
  82   2              Delay();
  83   2              P2=0x0F;                //列扫描
  84   2              if((P2&0x0F)!=0x0F)
  85   2              {
  86   3                      switch(P2)
  87   3                      {
  88   4              case 0x07:
  89   4                      Lie=0;
  90   4                      break;
  91   4              case 0x0B:
  92   4                      Lie=1;
  93   4                      break;
  94   4              case 0x0D:
  95   4                      Lie=2;
  96   4                      break;
  97   4              case 0x0E:
  98   4                      Lie=3;
  99   4                      break;
 100   4              default:
 101   4                      break;
 102   4                      }
 103   3              return 1;
 104   3              }
 105   2      }
 106   1              else
 107   1              {
 108   2              return 0;
 109   2              }
 110   1      }
 111          
 112          
 113          
 114          


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V7.06   JIANPANSHUMAXIANSHI                                                   12/26/2008 11:35:31 PAGE 3   

   CODE SIZE        =    239    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     38       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 + -