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

📄 4x4.lst

📁 单片机子程序,C源代码,4X4矩阵键盘,KEIL C开发环境.
💻 LST
字号:
C51 COMPILER V8.08   4X4                                                                   07/31/2008 00:39:25 PAGE 1   


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

line level    source

   1          #include <reg51.h>
   2          #include <intrins.h>
   3          
   4          #define uchar unsigned char
   5          #define uint  unsigned int
   6          
   7          uchar ledbit=0 ;  //记录按键次数
   8          uchar data leddata[8] ;  //数组用于记录输入的数
   9          uchar idata regment[8]={0,0,0,0,0,0,0,0};   //缓冲区数组
  10          
  11          uchar code keytable[16]={0xEE,0xED,0xEB,0xE7,   //0,1,2,3
  12                                   0xDE,0xDD,0xDB,0xD7,   //4,5,6,7
  13                                                           0xBE,0xBD,0xBB,0xB7,   //8,9,.,H
  14                                                           0x7E,0x7D,0x7B,0x77};  //-,C,A,E   (按键码表)            
  15          
  16          /*uchar code keytable[16]={0x7D,0xD7,0xBE,0xBD, //C,7,8,9
  17                                   0x7B,0xDE,0xDD,0xDB,   //A,4,5,6
  18                                                           0x77,0xED,0xEB,0xE7,   //E,1,2,3
  19                                                           0x7E,0xEE,0xBB,0xB7};  //-,0,.,H  (按键码表)           */
  20          
  21           
  22          uchar code ledtable[16]={ 0xC0,0xF9,0xA4,0xB0,0x99,
  23                                    0x92,0x82,0xf8,0x80,0x90,
  24                                                            0x88,0x83,0xC6,0xA1,0x86,0x8E };  //(数码管显示码表)
  25          
  26          
  27          
  28          
  29          /*uchar code ledtable[16]={0xed,0x81,0xf4,0xb5, //0,1,2,3
  30                                   0x99,0x3d,0x7d,0x85,   //4,5,6,7
  31                                   0xfd,0xbd,0x02,0xd9,   //8,9,.,h
  32                                                           0x10,0x6c,0xdd,0x7c};  //-,c,a,e   (数码管显示码表)*/
  33          
  34          /*uchar code ledtable[16]={0xbd,0x7d,0xb5,0xd9, //9,6,3,h
  35                                   0xfd,0x3d,0xf4,0x02,   //8,5,2,.
  36                                   0x85,0x99,0x81,0xed,   //7,4,1,0
  37                                                           0x6c,0xdd,0x7c,0x10};  //c,a,e,-   (数码管显示码表)*/
  38          
  39          //廷时函数
  40          void delay()
  41          {
  42   1              uchar i;
  43   1              for(i=0;i<=200;i++){;}
  44   1      }
  45          
  46          void main()
  47          {
  48   1              uchar input1,input2,dis_buf,i,j,k;
  49   1              while(1)
  50   1              {
  51   2                      P1=0x0f ;//扫描P1口的低位
  52   2                      if(P1!=0x0f)
  53   2                      {
  54   3                              input1=P1;
  55   3                              P1=0xf0 ;//扫描P1口的高位
C51 COMPILER V8.08   4X4                                                                   07/31/2008 00:39:25 PAGE 2   

  56   3                              input2=P1;
  57   3                              dis_buf=input1+input2;//得到组合后的键码
  58   3                              for(i=0;i<16;i++)
  59   3                              {
  60   4                                      if(dis_buf==keytable[i])//查表找到对应的按键值
  61   4                                      {
  62   5                                              if(ledbit==8) ledbit=0;//输入超过8位则位数回零
  63   5                                              leddata[ledbit]=ledtable[i];//通过按键值找到数码管显示码,并将显示码保存在数组中
  64   5                                              ledbit++ ;
  65   5                                              
  66   5                                              if(dis_buf==0x7E)
  67   5                                              {//sum();
  68   6                                                      for(j=0;j<8;j++)
  69   6                                                      {
  70   7                                                              regment[i]=ledtable[i];
  71   7                                                      }
  72   6                                                      for(j=0;k<8;j++)
  73   6                                                      {
  74   7                                              //              ledtable[i]=0x00;
  75   7                                                      }
  76   6                                                      P2=0x00;
  77   6                                              }
  78   5                                              break ;  
  79   5                                      }
  80   4                              }
  81   3                              P1=0xf0 ;
  82   3                              while(P1!=0xf0) ;//等待按键松开
  83   3                      }
  84   2                      //显示部份
  85   2                      for(i=0;i<ledbit;i++)
  86   2                      {
  87   3                              P2=_cror_(0x7f,i);//从P2.7开始循环左移
  88   3                              delay();
  89   3      
  90   3                              P0=leddata[ledbit-i-1];
  91   3                              delay();
  92   3                      
  93   3                      }
  94   2                      P0=0x00;
  95   2              }
  96   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    163    ----
   CONSTANT SIZE    =     32    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9       1
   IDATA SIZE       =      8    ----
   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 + -