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

📄 1.3.lst

📁 基于单片机的电子表与温度计
💻 LST
字号:
C51 COMPILER V7.50   1_3                                                                   08/17/2008 19:05:24 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 1_3
OBJECT MODULE PLACED IN 1.3.OBJ
COMPILER INVOKED BY: E:\keil3\C51\BIN\C51.EXE 1.3.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #define uint unsigned int
   3          #define uchar unsigned char
   4          uint a,b,c,c1,d,x,y,xi,n,n0,
   5          ke,ke0,kex,ke1,k1,ke2,ke3,ke4,
   6          ry,ry0,ry1,hf,hf0,hf1,hf2,hf3,
   7          bian,ge,shi,bai,qian,q1,q2,
   8          q3,q4,t,f,f1,f2,f3,ke12;
   9          uchar code table[]={
  10          //0x12,0x7e,0x43,0x4a,0x2e,
  11          //0x8a,0x82,0x5e,0x02,0x0a};
  12          0xc0,0xf9,0xa4,0xb0,0x99,
  13          0x92,0x82,0xf8,0x80,0x90};
  14                          
  15          void into()
  16          {
  17   1              TMOD=0x22;
  18   1              EA=1;
  19   1              ET0=1;
  20   1              TR0=1;
  21   1              TH0=56;
  22   1              TL0=56;
  23   1              a=0;
  24   1              b=0;
  25   1              c=0;
  26   1              d=0;
  27   1              q1=0xef;
  28   1              q2=0xf7;
  29   1              q3=0xfb;
  30   1              q4=0xfd;
  31   1              f=0xff;
  32   1                      f1=0xff;
  33   1                      f2=0xff;
  34   1                      f3=0xff;
  35   1              ke1=0;
  36   1              ke2=0;
  37   1              ke3=1;
  38   1              ke4=1;
  39   1              ry=187;
  40   1              hf=123;
  41   1              xi=0;
  42   1              n=2008;
  43   1      //      P0=0x00;
  44   1      }
  45          void delay(uint b)
  46          {
  47   1              for(x=b;x>0;x--)
  48   1                      for(y=30;y>0;y--);
  49   1      }
  50          void display()
  51          {
  52   1              ge=xi%10;
  53   1              P1=q1;
  54   1              P2=table[ge];
  55   1               delay(10);
C51 COMPILER V7.50   1_3                                                                   08/17/2008 19:05:24 PAGE 2   

  56   1              shi=xi%100/10;
  57   1              P1=q2;
  58   1              P2=table[shi];
  59   1               delay(10);
  60   1              bai=xi/100%10;
  61   1              P1=q3;
  62   1              P2=table[bai];
  63   1               delay(10);
  64   1              qian=xi/1000;
  65   1              P1=q4;
  66   1              P2=table[qian];
  67   1              delay(10);
  68   1              P1=0xff;
  69   1      }
  70          
  71          
  72          void key()
  73          {
  74   1              
  75   1              uchar i,j;
  76   1              ke=P3&0x3c;
  77   1               
  78   1          if (a>3000)
  79   1                      i=c; 
  80   1              if (a<1500)
  81   1                      j=c; 
  82   1              if (ke==0x38||ke==0x34||ke==0x2c||ke==0x1c)
  83   1                      {
  84   2                              delay(10);
  85   2                              if (ke==0x38||ke==0x34||ke==0x2c||ke==0x1c)
  86   2                              {
  87   3                                      kex=ke;
  88   3                                      delay(500);
  89   3                                      ke0=P3&0x3c;
  90   3                              
  91   3                              }
  92   2                      }
  93   1              switch(kex)
  94   1              {
  95   2                      case 0x38:      if (ke!=ke0)ke1++;break;
  96   2                      case 0x34: if (ke!=ke0)ke2++;break;
  97   2              //      case 0x2c: if (ke!=ke0)ke3++;break;
  98   2              //      case 0x1c: if (ke!=ke0)ke4++;break;
  99   2              }
 100   1              kex=0;
 101   1              if (ke1>4)
 102   1                 ke1=0;
 103   1              if (ke2>4)
 104   1                 ke2=0;
 105   1                  
 106   1          if (ke1==0)
 107   1          {
 108   2                              k1=2;
 109   2                 if (c%60>20&&c%60<=40)
 110   2                              k1=3;
 111   2             if (c%60>40&&c%60<=60)
 112   2                      k1=4;
 113   2                 switch(k1)
 114   2                      {
 115   3                              case 2:xi=hf1;break;
 116   3                              case 3:xi=ry1;break;       
 117   3                              case 4:xi=n;break;
C51 COMPILER V7.50   1_3                                                                   08/17/2008 19:05:24 PAGE 3   

 118   3                      default : ;
 119   3                      }  
 120   2          }   
 121   1        else    
 122   1                      switch(ke1)
 123   1                      {
 124   2                              case 1:xi=c1;break;
 125   2                              case 2:xi=hf1;break;
 126   2                              case 3:xi=ry1;break;
 127   2                              case 4:xi=n;break;
 128   2                              default : ;
 129   2                      }  
 130   1              if (ke2>0)
 131   1              {
 132   2                      switch(ke2)
 133   2                      {
 134   3                              case 1: if (i!=j)t=f,f=q1,q1=t;
 135   3                                              if (ke!=ke0&&ke==0x2c)ge++;
 136   3                                      if (ke!=ke0&&ke==0x1c)ge--;break;
 137   3                              case 2: if(i!=j)t=f1,f1=q2,q2=t;
 138   3                                              if (ke!=ke0&&ke==0x2c)shi++;
 139   3                                              if (ke!=ke0&&ke==0x1c)shi--;break;
 140   3                              case 3: if (i!=j)t=f2,f2=q3,q3=t;
 141   3                                              if (ke!=ke0&&ke==0x2c)bai++;
 142   3                                              if (ke!=ke0&&ke==0x1c)bai--;break;
 143   3                              case 4: if (i!=j)t=f3,f3=q4,q4=t;
 144   3                                              if (ke!=ke0&&ke==0x2c)qian++;
 145   3                                              if (ke!=ke0&&ke==0x1c)qian--;break;
 146   3                              default : ;
 147   3                      }
 148   2                      d=ge+shi*10+bai*100+qian*1000;
 149   2                      xi=d;
 150   2                      if (ke1!=0)
 151   2                              ke12=ke1+5;
 152   2                      switch(ke12)
 153   2                      {
 154   3                              case 7:hf0=d;break;
 155   3                              case 8:ry0=d;break;
 156   3                              case 9:n0=d;break;
 157   3                      }
 158   2                      if (ke1!=0)
 159   2                      {
 160   3                              switch(ke12)
 161   3                              {
 162   4                                      case 6:c=d;break;
 163   4                                      case 7:hf=d;break;
 164   4                                      case 8:ry=d;break;
 165   4                                      case 9:n=d;break;
 166   4                              }
 167   3                              ke12=ke1-5;
 168   3                      }                                
 169   2              //      ke1=0;  
 170   2              }
 171   1       
 172   1      }
 173          void year()
 174          {                       
 175   1              if(c==3600)
 176   1              {
 177   2                      c=0;
 178   2                      hf3++;
 179   2              }
C51 COMPILER V7.50   1_3                                                                   08/17/2008 19:05:24 PAGE 4   

 180   1              hf=hf3*60+c/60;
 181   1              if(hf==24*60)
 182   1              {
 183   2                      ry++;
 184   2                      hf=0;
 185   2              }
 186   1              if (ry==373)
 187   1                      n++,ry=31;
 188   1          switch(ry/31)
 189   1              {
 190   2                      //case 1:   if (ry%60==32)ry=ry+28;break;
 191   2                      case 2:   if (ry%31==29)ry=ry+2;break;
 192   2              //      case 3:   if (ry%60==32)ry=ry+28;break;
 193   2                      case 4:   if (ry%31==30)ry=ry+1;break;
 194   2              //      case 5:   if (ry%60==32)ry=ry+28;break;
 195   2                      case 6:   if (ry%31==30)ry=ry+1;break;
 196   2              //      case 7:   if (ry%60==32)ry=ry+28;break;
 197   2              //      case 8:   if (ry%60==32)ry=ry+28;break;
 198   2                      case 9:   if (ry%31==30)ry=ry+1;break;
 199   2              //      case 10:  if (ry%60==32)ry=ry+28;break;
 200   2                      case 11:  if (ry%31==30)ry=ry+1;break;
 201   2              //      case 12:  if (ry%60==32)ry=ry+28;break;
 202   2                      default : ;
 203   2              } 
 204   1      
 205   1      } 
 206          void time()
 207          {
 208   1              if (n==n0&&ry1==ry0&&hf1==hf0)
 209   1              {
 210   2                      P0=0x01;
 211   2              }
 212   1              if (hf1!=hf0)
 213   1                      P0=0x00;
 214   1      
 215   1      }
 216          void transfrom ()
 217          {
 218   1              hf1=hf%10+hf%60/10*10+hf/60%10*100+hf/60/10*1000;
 219   1              c1=c%10+c%60/10*10+c/60%10*100+c/60/10*1000;
 220   1              ry1=(ry/31+1)%10+(ry%31+1)/10*10+ry/31%10*100+ry/31/10*1000;
 221   1      }
 222          void main()
 223          {
 224   1              into();
 225   1      
 226   1              while(1)
 227   1              {       
 228   2                      year();
 229   2                      key();
 230   2                  transfrom ();
 231   2                      display();
 232   2                      time();
 233   2                              
 234   2              }
 235   1      } 
 236          void exter0() interrupt 1
 237          {
 238   1              a++;
 239   1              if(a==4608)
 240   1                              {
 241   2                              c++;
C51 COMPILER V7.50   1_3                                                                   08/17/2008 19:05:24 PAGE 5   

 242   2                              a=0;
 243   2                              }                       
 244   1      }


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