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

📄 1.2.lst

📁 基于单片机的电子表与温度计
💻 LST
字号:
C51 COMPILER V7.06   1_2                                                                   07/12/2008 17:46:02 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 1_2
OBJECT MODULE PLACED IN 1.2.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE 1.2.c BROWSE DEBUG OBJECTEXTEND

stmt 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,ke2,ke3,ke4,
   6          ry,ry0,ry1,hf,hf0,hf1,hf2,
   7          bian,ge,shi,bai,qian,q1,q2,
   8          q3,q4,t,f,ke12,dian;
   9          uchar code table[]={
  10          0xa0,0xbb,0x62,0x2a,0x39,
  11          0x2c,0x24,0xba,0x20,0x28};
  12                  void into()
  13          {
  14   1              TMOD=0x22;
  15   1              EA=1;
  16   1              ET0=1;
  17   1              TR0=1;
  18   1              TH0=56;
  19   1              TL0=56;
  20   1              a=0;
  21   1              b=0;
  22   1              c=0;
  23   1              d=0;
  24   1              q1=0xf7;
  25   1              q2=0xfd;
  26   1              q3=0xfb;
  27   1              q4=0xfe;
  28   1              f=0xff;
  29   1              ke1=1;
  30   1              ke2=0;
  31   1              ke3=1;
  32   1              ke4=1;
  33   1              ry=280;
  34   1              hf=1290;
  35   1              xi=0;
  36   1              n=2008;
  37   1      } 
  38          void delay(uint b)
  39          {
  40   1              for(x=b;x>0;x--)
  41   1                      for(y=30;y>0;y--);
  42   1      }
  43                  void display()
  44          {
  45   1              ge=xi%10;
  46   1              P0=q1;
  47   1              P2=table[ge];
  48   1               delay(10);
  49   1              shi=xi%100/10;
  50   1              P0=q2;
  51   1              P2=table[shi];
  52   1               delay(10);
  53   1              bai=xi/100%10;
  54   1              P0=q3;
  55   1              P2=table[bai];
C51 COMPILER V7.06   1_2                                                                   07/12/2008 17:46:02 PAGE 2   

  56   1               delay(10);
  57   1              qian=xi/1000;
  58   1              P0=q4;
  59   1              P2=table[qian];
  60   1               delay(10);
  61   1              if (dian)
  62   1              {
  63   2                      if (c%2)
  64   2                      {
  65   3                              P0=0xf5;
  66   3                              P2=0xdf;
  67   3                      }       
  68   2                      else
  69   2                              P2=0xff;
  70   2          }
  71   1                      dian=0;  
  72   1      }
  73          void key()
  74          {
  75   1              ke=P0&0xf0;
  76   1              if (ke==0xe0||ke==0xd0||ke==0xb0||ke==0x70)
  77   1                      {
  78   2                              delay(10);
  79   2                              if (ke==0xe0||ke==0xd0||ke==0xb0||ke==0x70)
  80   2                              {
  81   3                                      kex=ke;
  82   3                                      delay(500);
  83   3                                      ke0=P0&0xf0;
  84   3                              }
  85   2                      }
  86   1              switch(kex)
  87   1              {
  88   2                      case 0xb0:      if (ke!=ke0)ke1++;break;
  89   2                      case 0x70: if (ke!=ke0)ke2++;break;
  90   2                      case 0xd0: if (ke!=ke0)ke3++;break;
  91   2                      case 0xe0: if (ke!=ke0)ke4++;break;
  92   2              }
  93   1              kex=0;
  94   1              if (ke1>4)
  95   1                 ke1=1;
  96   1              if (ke2>4)
  97   1                 ke2=0;
  98   1              switch(ke1)
  99   1              {
 100   2                      case 1:xi=c1;break;
 101   2                      case 2:xi=hf1,dian=1;break;
 102   2                      case 3:xi=ry1;break;
 103   2                      case 4:xi=n;break;
 104   2              }
 105   1              if (ke2>0)
 106   1              {
 107   2                      switch(ke2)
 108   2                      {
 109   3                              case 1: if (c%2)t=f,f=q1,q1=t;
 110   3                                              if (ke!=ke0&&ke==0xb0)ge++;
 111   3                                      if (ke!=ke0&&ke==0x70)ge--;break;
 112   3                              case 2: if (c%2)t=f,f=q2,q2=t;
 113   3                                              if (ke!=ke0&&ke==0xb0)shi++;
 114   3                                              if (ke!=ke0&&ke==0x70)shi--;break;
 115   3                              case 3: if (c%2)t=f,f=q3,q3=t;
 116   3                                              if (ke!=ke0&&ke==0xb0)bai++;
 117   3                                              if (ke!=ke0&&ke==0x70)bai--;break;
C51 COMPILER V7.06   1_2                                                                   07/12/2008 17:46:02 PAGE 3   

 118   3                              case 4: if (c%2)t=f,f=q4,q4=t;
 119   3                                              if (ke!=ke0&&ke==0xb0)qian++;
 120   3                                              if (ke!=ke0&&ke==0x70)qian--;break;
 121   3                      }
 122   2                      d=ge+shi*10+bai*100+qian*1000;
 123   2              xi=d;  
 124   2                      if (ke1!=0)
 125   2                      {
 126   3                              ke12=ke1+5;
 127   3                              switch(ke12)
 128   3                              {
 129   4                                      case 7:hf0=d;break;
 130   4                                      case 8:ry0=d;break;
 131   4                                      case 9:n0=d;break;
 132   4                              }
 133   3                              ke12=ke1-5;
 134   3                      }  
 135   2                                                      if (ke1!=0&&P1^3==0xf7)
 136   2                      {
 137   3                              ke12=ke1+5;
 138   3                              switch(ke12)
 139   3                              {
 140   4                                      case 6:c=d;break;
 141   4                                      case 7:hf=d;break;
 142   4                                      case 8:ry=d;break;
 143   4                                      case 9:n=d;break;
 144   4                              }
 145   3                              ke12=ke1-5;
 146   3                      }                                
 147   2                      ke1=0; 
 148   2              }
 149   1      } 
 150          void year()
 151          {
 152   1              if(c==3600)
 153   1                      c=0;
 154   1          if (!(c%60))
 155   1                      hf++;
 156   1              if(hf==24*60)
 157   1              {
 158   2                      ry++;
 159   2                      hf=0;
 160   2              }
 161   1          switch(ry/30)
 162   1              {
 163   2                      case 1:   if (ry%60==32)ry=ry+28;break;
 164   2                      case 2:   if (ry%60==30)ry=ry+30;break;
 165   2                      case 3:   if (ry%60==32)ry=ry+28;break;
 166   2                      case 4:   if (ry%60==31)ry=ry+29;break;
 167   2                      case 5:   if (ry%60==32)ry=ry+28;break;
 168   2                      case 6:   if (ry%60==31)ry=ry+29;break;
 169   2                      case 7:   if (ry%60==32)ry=ry+28;break;
 170   2                      case 8:   if (ry%60==32)ry=ry+28;break;
 171   2                      case 9:   if (ry%60==31)ry=ry+29;break;
 172   2                      case 10:  if (ry%60==32)ry=ry+28;break;
 173   2                      case 11:  if (ry%60==31)ry=ry+29;break;
 174   2                      case 12:  if (ry%60==32)ry=ry+28;break;
 175   2                      default : ;
 176   2              }
 177   1              if (ry==365)
 178   1                      n++;
 179   1      }  
C51 COMPILER V7.06   1_2                                                                   07/12/2008 17:46:02 PAGE 4   

 180          void time()
 181          {
 182   1              if (n==n0&&ry1==ry0&&hf1==hf0)
 183   1              {
 184   2                      P1=0xfe;
 185   2              }
 186   1              if (hf1!=hf0)
 187   1                      P1=0xff;
 188   1      }
 189          void transfrom ()
 190          {
 191   1              hf1=hf%10+hf%60/10*10+hf/60%10*100+hf/60/10*1000;
 192   1              c1=c%10+c%60/10*10+c/60%10*100+c/60/10*1000;
 193   1              ry1=ry%10+ry%60/10*10+ry/60%10*100+ry/60/10*1000;
 194   1      }
 195          void main()
 196          {
 197   1              into();
 198   1              while(1)
 199   1              {
 200   2                      year();
 201   2                      key();
 202   2                  transfrom ();
 203   2                      display();
 204   2                      time();
 205   2              }
 206   1      } 
 207          void exter0() interrupt 1
 208          {
 209   1              a++;
 210   1              if(a==4608)
 211   1                              {
 212   2                              c++;
 213   2                              a=0;
 214   2                              }                       
 215   1      }


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