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

📄 1276.lst

📁 51单片机C程序
💻 LST
字号:
C51 COMPILER V6.12  1276                                                                   03/28/2007 09:22:11 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE 1276
OBJECT MODULE PLACED IN .\1276.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\1276.c DEBUG OBJECTEXTEND

stmt level    source

   1          //按下16个矩阵键盘依次在数码管上显示1-16的平方。如按下
   2          //第一个显示1,第二个显示4...
   3          #include<reg52.h>
   4          #define uc unsigned char
   5          #define ui unsigned int
   6          sbit dus=P2^6;
   7          sbit wes=P2^7;
   8          
   9          ui num,temp,a2,a1,a0;
  10          uc code table[]={
  11          0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  12          0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  13          
  14          ui kscan();
  15          delay(uc x)
  16          {
  17   1        ui i,j;
  18   1        for(i=100;i>0;i--)
  19   1         for(j=x;j>0;j--);
  20   1      }
  21          display(ui bi,ui si,ui ge)
  22          {
  23   1          
  24   1      	P0=0xff;
  25   1          wes=1;
  26   1          wes=0;
  27   1      	P0=table[bi];
  28   1      	dus=1;
  29   1      	dus=0;
  30   1      	P0=0xf7;
  31   1      	wes=1;
  32   1      	wes=0;
  33   1          delay(1);
  34   1      	
  35   1          P0=0xff;
  36   1          wes=1;
  37   1          wes=0;
  38   1      	P0=table[si];
  39   1      	dus=1;
  40   1      	dus=0;
  41   1      	P0=0xef;
  42   1      	wes=1;
  43   1      	wes=0;
  44   1          delay(1);
  45   1      	
  46   1      
  47   1          P0=0xff;
  48   1          wes=1;
  49   1          wes=0;
  50   1      	P0=table[ge];
  51   1      	dus=1;
  52   1      	dus=0;
  53   1      	P0=0xdf;
  54   1      	wes=1;
  55   1      	wes=0;
C51 COMPILER V6.12  1276                                                                   03/28/2007 09:22:11 PAGE 2   

  56   1          delay(1);
  57   1      	
  58   1      	
  59   1      }
  60          
  61          void main()
  62          {
  63   1      	while(1)
  64   1          {
  65   2      	a2=kscan()/100;
  66   2      	a1=kscan()%100/10;
  67   2          a0=kscan()%100%10;
  68   2          display(a2,a1,a0);//kscan的返回值是num
  69   2      
  70   2          }
  71   1      }
  72          
  73          ui kscan()
  74          {
  75   1          P3=0xfe;
  76   1          temp=P3;
  77   1          temp=temp&0xf0;
  78   1           if(temp!=0xf0)
  79   1      	{
  80   2      	    delay(8);
  81   2      		if(temp!=0xf0)
  82   2      		{
  83   3      			switch(temp)
  84   3      			{
  85   4      			 case 0xe0:num=1;
  86   4      				break;
  87   4      			 case 0xd0:num=4;
  88   4      				break;
  89   4      			 case 0xb0:num=9;
  90   4      				break;
  91   4      			 case 0x70:num=16;
  92   4      				break;
  93   4      
  94   4      			}      
  95   3               while(temp!=0xf0)   //松手检测
  96   3      			{
  97   4      				temp=P3;
  98   4      				temp=temp&0xf0;
  99   4      				display(a2,a1,a0);
 100   4             		}
 101   3              }
 102   2             
 103   2           }
 104   1      	P3=0xfd;
 105   1          temp=P3;
 106   1          temp=temp&0xf0;
 107   1           if(temp!=0xf0)
 108   1      	{
 109   2      		delay(8);
 110   2      		if(temp!=0xf0)
 111   2      		{
 112   3      			switch(temp)
 113   3      			{
 114   4      			 case 0xe0:num=25;
 115   4      				break;
 116   4      			 case 0xd0:num=36;
 117   4      				break;
C51 COMPILER V6.12  1276                                                                   03/28/2007 09:22:11 PAGE 3   

 118   4      			 case 0xb0:num=49;
 119   4      				break;
 120   4      			 case 0x70:num=64;
 121   4      				break;
 122   4      			}
 123   3      			while(temp!=0xf0)
 124   3      			{
 125   4      				temp=P3;
 126   4      				temp=temp&0xf0;
 127   4      				display(a2,a1,a0);
 128   4      			}
 129   3              }
 130   2         }
 131   1      	P3=0xfb;
 132   1          temp=P3;
 133   1          temp=temp&0xf0;
 134   1           if(temp!=0xf0)
 135   1      	{
 136   2      		delay(8);
 137   2      		if(temp!=0xf0)
 138   2      		{
 139   3      			switch(temp)
 140   3      			{
 141   4      			 case 0xe0:num=81;
 142   4      				break;
 143   4      			 case 0xd0:num=100;
 144   4      				break;
 145   4      			 case 0xb0:num=121;
 146   4      				break;
 147   4      			 case 0x70:num=144;
 148   4      				break;
 149   4      			}
 150   3      			while(temp!=0xf0)
 151   3      			{
 152   4      				temp=P3;
 153   4      				temp=temp&0xf0;
 154   4      				display(a2,a1,a0);
 155   4      			}
 156   3              }
 157   2            
 158   2          }
 159   1      	P3=0xf7;
 160   1          temp=P3;
 161   1          temp=temp&0xf0;
 162   1           if(temp!=0xf0)
 163   1      	{
 164   2      	delay(8);
 165   2      		if(temp!=0xf0)
 166   2      		{
 167   3      			switch(temp)
 168   3      			{
 169   4      			 case 0xe0:num=169;
 170   4      				break;
 171   4      			 case 0xd0:num=196;
 172   4      				break;
 173   4      			 case 0xb0:num=225;
 174   4      				break;
 175   4      			 case 0x70:num=256;
 176   4      				break;
 177   4      			}
 178   3      			while(temp!=0xf0)
 179   3      			{
C51 COMPILER V6.12  1276                                                                   03/28/2007 09:22:11 PAGE 4   

 180   4      				temp=P3;
 181   4      				temp=temp&0xf0;
 182   4      				display(a2,a1,a0);
 183   4      			}
 184   3              }
 185   2           
 186   2            }
 187   1      	return num;//返回值是num
 188   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    632    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10       6
   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 + -