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

📄 cs11-1.lst

📁 《手把手教你学单片机的C程序设计》及实验程序
💻 LST
字号:
C51 COMPILER V7.06   CS11_1                                                                01/07/2007 13:22:54 PAGE 1   


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

stmt level    source

   1          #include <REG51.H>              
   2          #define uchar unsigned char
   3          #define uint unsigned int               
   4          uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
   5          uchar ACT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; 
   6          //========================
   7          uchar status_flag;              
   8          uint year;                              
   9          uchar month;                            
  10          uchar day;                                      
  11          uchar temp_year_l,temp_month;   
  12          uchar temp_year_h;                      
  13          //---------------------------------------
  14          void key_S1(void);              
  15          void key_S2(void);              
  16          void key_S4(void);                      
  17          void delay(uint k);                     
  18          uchar conv(uint year,uchar month);                      
  19          //----------------------------------------
  20          void main(void)                         
  21          {       uchar i;                                
  22   1              uint temp1,temp2;                               
  23   1              while(1)                        
  24   1              {       key_S4();                       
  25   2                      switch(status_flag)     
  26   2                      {                                       
  27   3                      case 0: key_S1();temp1=temp_year_l;
  28   3                              key_S2();temp2=temp_year_h;break;       
  29   3                      case 1: key_S1();month=temp_month;break;
  30   3                      default :break;         
  31   3                      }                               
  32   2                      year=temp1+(temp2*100);
  33   2                      //---------------------------
  34   2                      day=conv(year,month);   
  35   2                      //------------------------------
  36   2                      for(i=0;i<40;i++)                       
  37   2                      {                                       
  38   3                      switch(status_flag)     
  39   3                      {                                       
  40   4                      case 0:P0=SEG7[year%10];P2=ACT[4];delay(1);
  41   4                                      P0=SEG7[(year%100)/10];P2=ACT[5];delay(1);
  42   4                                      P0=SEG7[(year/100)%10];P2=ACT[6];delay(1);
  43   4                                      P0=SEG7[year/1000];P2=ACT[7];delay(1);break;                            
  44   4                      case 1:P0=SEG7[month%10];P2=ACT[2];delay(2);
  45   4                                      P0=SEG7[month/10];P2=ACT[3];delay(2);break;
  46   4                      case 2:if(day){ P0=SEG7[day%10];P2=ACT[0];delay(2);
  47   5                                                      P0=SEG7[day/10];P2=ACT[1];delay(2);}
  48   4                              else{   P0=0x00;P2=0xff;delay(2);               
  49   5                                      P0=0x00;P2=0xff;delay(2);}break;        
  50   4                      default :break;                                                 
  51   4                      }                                               
  52   3                      }                                               
  53   2              }                                                       
  54   1      }                                                       
  55          //----------------------------------------------
C51 COMPILER V7.06   CS11_1                                                                01/07/2007 13:22:54 PAGE 2   

  56          void delay(uint k)                              
  57          {                                                               
  58   1      uint i,j;                                                       
  59   1      for(i=0;i<k;i++){                                       
  60   2      for(j=0;j<121;j++)                                      
  61   2      {;}}                                                    
  62   1      }                                                               
  63          //-----------------------------------------------
  64          void key_S1(void)                               
  65          {                                                               
  66   1              P3=0xff;                                        
  67   1                if(P3==0xfb)                  
  68   1                {                                                     
  69   2                  switch(status_flag) 
  70   2                  {                                           
  71   3                  case 0:temp_year_l++;       
  72   3                       if(temp_year_l>99)temp_year_l=0;break; 
  73   3                  case 1:temp_month++;        
  74   3                       if(temp_month>12)temp_month=1;break;   
  75   3                  default :break;                     
  76   3                  }                                           
  77   2               }                                                      
  78   1      }                                                               
  79          //---------------------------------------------
  80          void key_S2(void)                                       
  81          {                                                               
  82   1              P3=0xff;                                        
  83   1                if(P3==0xf7)                          
  84   1                {                                             
  85   2                  switch(status_flag)         
  86   2                  {                                   
  87   3                  case 0:temp_year_h++;       
  88   3                  if(temp_year_h>99)temp_year_h=0;break;      
  89   3                  default :break;                             
  90   3                  }                                   
  91   2                }                                                     
  92   1      }                                                               
  93          //---------------------------------------------
  94          void key_S4(void)                               
  95          {                                                       
  96   1              P3=0xff;                                        
  97   1              if(P3==0xdf)status_flag++;                      
  98   1              if(status_flag>2)status_flag=0;                         
  99   1      }                                                               
 100          
 101          //---------------------------------------------
 102          uchar conv(uint year,uchar month)               
 103          {uchar len;                                     
 104   1                      switch(month)                   
 105   1                      {                                       
 106   2                      case 1:len=31;break;            
 107   2                      case 3:len=31;break;            
 108   2                      case 5:len=31;break;            
 109   2                      case 7:len=31;break;            
 110   2                      case 8:len=31;break;            
 111   2                      case 10:len=31;break;           
 112   2                      case 12:len=31;break;           
 113   2                      case 4:len=30;break;            
 114   2                      case 6:len=30;break;            
 115   2                      case 9:len=30;break;            
 116   2                      case 11:len=30;break;           
 117   2                      case 2:if(year%4==0&&year%100!=0||year%400==0)len=29;
C51 COMPILER V7.06   CS11_1                                                                01/07/2007 13:22:54 PAGE 3   

 118   2                              else len=28;break;
 119   2                      default:return 0;break;         
 120   2                      }                                               
 121   1                      return len;                             
 122   1      }                                                               


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