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

📄 cs15-2.lst

📁 《手把手教你学单片机的C程序设计》及实验程序
💻 LST
字号:
C51 COMPILER V7.06   CS15_2                                                                02/18/2007 10:55:17 PAGE 1   


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

stmt level    source

   1          #include <REG51.H>                      
   2          #define uint unsigned int               
   3          #define uchar unsigned char     
   4          uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
   5          uchar code ACT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
   6          uchar status;
   7          sbit OUT=P1^0;                                  
   8          void delay(uint k);                             
   9          //***********************************
  10          struct time                                     
  11          {                                                       
  12          uchar sec;                                      
  13          uchar msec;                                     
  14          };                                                      
  15          struct time run_time,set_time;  
  16          struct time *pt1,*pt2;                  
  17          //***********************************
  18          void initial(void)                              
  19          {                                                       
  20   1      TMOD=0x11;                                      
  21   1      TH0=-(10000/256);                       
  22   1      TL0=-(10000%256);                       
  23   1      TH1=-(1000/256);                                
  24   1      TL1=-(1000%256);                        
  25   1      ET0=1;ET1=1;TR1=1;                      
  26   1              EA=1;                                   
  27   1      }                                                       
  28          //***********************************
  29          void time0(void) interrupt 1            
  30          {                                                       
  31   1      TH0=-(10000/256);                       
  32   1      TL0=-(10000%256);                       
  33   1      run_time.msec++;                        
  34   1      if(run_time.msec>99){run_time.sec++;run_time.msec=0;}
  35   1      if(run_time.sec>99){run_time.msec=0;run_time.sec=0;}
  36   1      if((pt2->msec>0)||(pt2->sec>0))
  37   1      {
  38   2              if((pt1->msec==pt2->msec)&&(pt1->sec==pt2->sec)){TR0=0;OUT=0;}
  39   2      }
  40   1      }                                                       
  41          //***********************************
  42          void display(uchar cnt)
  43          {
  44   1                                              switch(cnt)     
  45   1                                              {                               
  46   2                                              case 0:P0=SEG7[run_time.msec%10];P2=ACT[0];break;
  47   2                                              case 1:P0=SEG7[run_time.msec/10];P2=ACT[1];break;
  48   2                                              case 2:P0=SEG7[run_time.sec%10];P2=ACT[2];break;
  49   2                                              case 3:P0=SEG7[run_time.sec/10];P2=ACT[3];break;
  50   2                                              case 4:P0=SEG7[set_time.msec%10];P2=ACT[4];break;
  51   2                                              case 5:P0=SEG7[set_time.msec/10];P2=ACT[5];break;
  52   2                                              case 6:P0=SEG7[set_time.sec%10];P2=ACT[6];break;
  53   2                                              case 7:P0=SEG7[set_time.sec/10];P2=ACT[7];break;
  54   2                                              default:break;
  55   2                                               }                      
C51 COMPILER V7.06   CS15_2                                                                02/18/2007 10:55:17 PAGE 2   

  56   1      }
  57          //***********************************
  58          void set_ms_display(uchar cnt)
  59          {                                       switch(cnt)             
  60   1                                              {                       
  61   2                                              case 0:P0=SEG7[run_time.msec%10];P2=ACT[0];break;
  62   2                                              case 1:P0=SEG7[run_time.msec/10];P2=ACT[1];break;
  63   2                                              case 2:P0=SEG7[run_time.sec%10];P2=ACT[2];break;
  64   2                                              case 3:P0=SEG7[run_time.sec/10];P2=ACT[3];break;
  65   2                                              case 4:P0=SEG7[set_time.msec%10]|0x80;P2=ACT[4];break;
  66   2                                              case 5:P0=SEG7[set_time.msec/10]|0x80;P2=ACT[5];break;
  67   2                                              case 6:P0=SEG7[set_time.sec%10];P2=ACT[6];break;
  68   2                                              case 7:P0=SEG7[set_time.sec/10];P2=ACT[7];break;
  69   2                                              default:break;
  70   2                                              }                       
  71   1      }
  72          //********************************************
  73          void set_s_display(uchar cnt)
  74          {
  75   1                                              switch(cnt)             
  76   1                                              {       
  77   2                                              case 0:P0=SEG7[run_time.msec%10];P2=ACT[0];break;
  78   2                                              case 1:P0=SEG7[run_time.msec/10];P2=ACT[1];break;
  79   2                                              case 2:P0=SEG7[run_time.sec%10];P2=ACT[2];break;
  80   2                                              case 3:P0=SEG7[run_time.sec/10];P2=ACT[3];break;
  81   2                                              case 4:P0=SEG7[run_time.msec%10];P2=ACT[4];break;
  82   2                                              case 5:P0=SEG7[set_time.msec/10];P2=ACT[5];break;
  83   2                                              case 6:P0=SEG7[set_time.sec%10]|0x80;P2=ACT[6];break;
  84   2                                              case 7:P0=SEG7[set_time.sec/10]|0x80;P2=ACT[7];break;
  85   2                                              default:break;
  86   2                                              }
  87   1      }
  88          //******************************
  89          void time1(void) interrupt 3            
  90          {                                                       
  91   1      static uchar cnt;                               
  92   1      TH1=-(1000/256);                                
  93   1      TL1=-(1000%256);                        
  94   1      cnt++;                                          
  95   1      if(cnt>7)cnt=0;                         
  96   1              switch(status)                  
  97   1              {                                               
  98   2              case 5: display(cnt);break;             
  99   2              case 0:  display(cnt);break;    
 100   2              case 1:  set_ms_display(cnt);break;                     
 101   2              case 2:  set_s_display(cnt);break;                      
 102   2              default:break;                          
 103   2              }                                                       
 104   1      }                                                               
 105          //****************************************
 106          void key_s1(void)                                       
 107          {                                       
 108   1              P3=0xff;                                                
 109   1                if(P3==0xfb)                          
 110   1                {                                                     
 111   2                  switch(status)                      
 112   2                  {                                           
 113   3                  case 1:if(set_time.msec==99)set_time.msec=99;
 114   3                                      else set_time.msec++;break;
 115   3                  case 2:if(set_time.sec==99)set_time.sec=99;
 116   3                                      else set_time.sec++;break;      
 117   3                  default :break;                     
C51 COMPILER V7.06   CS15_2                                                                02/18/2007 10:55:17 PAGE 3   

 118   3                  }                                           
 119   2                }                                                     
 120   1      }                                                               
 121          //****************************************
 122          void key_s2(void)                                       
 123          {                                                               
 124   1              P3=0xff;                                                
 125   1                if(P3==0xf7)                          
 126   1                {                                                     
 127   2                  switch(status)                      
 128   2                  {                                           
 129   3                  case 1:if(set_time.msec==0)set_time.msec=0;
 130   3                                      else set_time.msec--;break;
 131   3                  case 2:if(set_time.sec==0)set_time.sec=0;
 132   3                                      else set_time.sec--;break;
 133   3                  default :break;                     
 134   3                  }                                           
 135   2                }                                                     
 136   1      }                                                               
 137          //-----------------------------------------------
 138          void key_s4(void)                                       
 139          {                                                               
 140   1              P3=0xff;                                                
 141   1                      if(P3==0xdf){status++;} 
 142   1                      if(status==3)status=1;          
 143   1                      if(status==6)                           
 144   1                      {run_time.msec=0;               
 145   2                      run_time.sec=0;                 
 146   2                      status=0;}                              
 147   1      }                                                               
 148          //*****************************************
 149          void key_s3(void)                                       
 150          {                                                               
 151   1              P3=0xff;                                                
 152   1                      if(P3==0xef){status=5;TR0=1;}
 153   1      }                                                               
 154          //*****************************************
 155          void main(void)                                 
 156          {                                                               
 157   1              pt1=&run_time;pt2=&set_time;    
 158   1              initial();                                              
 159   1              for(;;)                                         
 160   1              {                                                       
 161   2                      key_s1();                               
 162   2                      key_s2();                               
 163   2                      key_s3();                               
 164   2                      key_s4();                               
 165   2                      delay(300);                             
 166   2              }                                                       
 167   1      }                                                               
 168          //****************************************
 169          void delay(uint k)                                      
 170          {                                                               
 171   1      uint data i,j;                                          
 172   1      for(i=0;i<k;i++)                                        
 173   1      {for(j=0;j<121;j++)                                     
 174   2      {;}}                                                            
 175   1      }                                                               


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1015    ----
C51 COMPILER V7.06   CS15_2                                                                02/18/2007 10:55:17 PAGE 4   

   CONSTANT SIZE    =     18    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12    ----
   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 + -