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

📄 cloc_adjust.lst

📁 自己做的时钟
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V8.05a   CLOC_ADJUST                                                          06/07/2007 19:40:28 PAGE 9   

  39          // ------ Private variable definitions------------------------------
  40          static tByte Time_in_state;
  41          static tByte Time_in_state1;
  42          static tByte Time_Sub;
  43          tByte state;
  44          // Possible system states
  45          typedef 
  46          enum { NO_CHANGE,CH_HOUR,CH_MIN}eChange_State;
  47          static eChange_State Change_State_G;
  48          
  49          /*------------------------------------------------------------------*-
  50                  CLOCK_LED_Time_Adjust_init
  51          _*------------------------------------------------------------------*/
  52          void CLOCK_LED_Time_Adjust_Init(void)
  53                  {
  54   1               Change_State_G = NO_CHANGE;
  55   1               state = 0;
  56   1              }
  57          /*------------------------------------------------------------------*-
  58          
  59            CLOCK_LED_Time_Adjust
  60            Adjust the global time variables.
  61          
  62            *** Must be scheduled once per 200 ~500 ms
  63          -*------------------------------------------------------------------*/
  64          void CLOCK_LED_Time_Adjust(void)  
  65                  { 
  66   1                          SET_pin = 1;
  67   1                                      if(SET_pin == 0)
  68   1                                      {
  69   2                                              if(++Time_in_state1 == 2)
  70   2                                                      {
  71   3                                                              Time_in_state1 = 0;
  72   3                                                              if(++state ==3)
  73   3                                                              {
  74   4                                                                      state = 0;
  75   4                                                              }
  76   3                                                      }
  77   2                                                      switch (state)
  78   2                                                      {
  79   3                                                              case 0:
  80   3                                                              {
  81   4                                                              Change_State_G = NO_CHANGE;     
  82   4                                                                      break;
  83   4                                                              }
  84   3                                                              case 1:
  85   3                                                              {
  86   4      
  87   4      
  88   4                                                                      Change_State_G =  CH_HOUR;
  89   4                                                                      break;
  90   4                                                              }
  91   3                                                              case 2:
  92   3                                                              {
  93   4                                                                      Change_State_G =  CH_MIN;
  94   4                                                                      break;
  95   4                                                              }
  96   3                                                      }
  97   2                                      }
  98   1                                      else 
  99   1                                      {
 100   2                                              Time_in_state1 = 0;
C51 COMPILER V8.05a   CLOC_ADJUST                                                          06/07/2007 19:40:28 PAGE 10  

 101   2                                      }
 102   1                      switch (Change_State_G)
 103   1                      {
 104   2      
 105   2      
 106   2                              case NO_CHANGE:
 107   2                              {
 108   3                                 
 109   3                              state = 0;
 110   3                                      break;
 111   3                              }
 112   2                              case CH_HOUR:
 113   2                              {   ADD_pin = 1;
 114   3                                      if(ADD_pin == 0)
 115   3                                      {
 116   4                                              if(++Time_in_state ==2 )
 117   4                                              {   Time_in_state = 0;
 118   5                                                      if(++Hou_G == 24)
 119   5                                                      {
 120   6                                                              Hou_G = 0;
 121   6                                                      }
 122   5                                              }
 123   4                                              break;
 124   4                                      }
 125   3                               SUB_pin = 1;
 126   3                                      if(SUB_pin == 0)
 127   3                                       {
 128   4                                              if(++Time_Sub > 2)
 129   4                                              {
 130   5                                                  Time_Sub = 0;
 131   5                                                      if(--Hou_G < 0)
 132   5                                                      {
 133   6                                                              Hou_G = 23;
 134   6                                                      }
 135   5                                              }
 136   4                                        break ;
 137   4                                        }
 138   3                                       Time_Sub = 0;
 139   3                                       Time_in_state = 0;
 140   3                                      
 141   3                                       LED_Mx4_Data_G[2] = LED_Table_G[(Hou_G % 10) + 10];
 142   3                                       LED_Mx4_Data_G[3] = LED_Table_G[(Hou_G / 10) + 10];
 143   3                                       LED_Mx4_Data_G[1] = LED_Table_G[Min_G / 10];
 144   3                       LED_Mx4_Data_G[0] = LED_Table_G[Min_G % 10];
 145   3                                  
 146   3                                       break ;
 147   3                              }
 148   2                              case CH_MIN:
 149   2                              {
 150   3                              ADD_pin = 1;
 151   3                              if(ADD_pin == 0)
 152   3                                      {
 153   4                                      if(++Time_in_state >2 )
 154   4                                              {  Time_in_state = 0;
 155   5                                                      if(++Min_G > 23)
 156   5                                                      {
 157   6                                                              Min_G = 0;
 158   6                                                      }
 159   5                                      }
 160   4                                              break;
 161   4                                      }
 162   3                                              
C51 COMPILER V8.05a   CLOC_ADJUST                                                          06/07/2007 19:40:28 PAGE 11  

 163   3                                      SUB_pin = 1;
 164   3                                      if(SUB_pin == 0)
 165   3                                       {
 166   4                                              if(++Time_Sub > 2)
 167   4                                                      {
 168   5                                                              Time_Sub = 0;
 169   5                                                              if(--Min_G < 0)
 170   5                                                              {
 171   6                                                                      Min_G = 23;
 172   6                                                              }
 173   5                                              }
 174   4                                        break  ;
 175   4                                        }
 176   3                                      Time_in_state = 0;
 177   3                       Time_Sub = 0;
 178   3                                   LED_Mx4_Data_G[2] = LED_Table_G[Hou_G % 10];
 179   3                                       LED_Mx4_Data_G[3] = LED_Table_G[Hou_G / 10];
 180   3                               LED_Mx4_Data_G[1] = LED_Table_G[(Min_G / 10) + 10];
 181   3                       LED_Mx4_Data_G[0] = LED_Table_G[(Min_G % 10) + 10];    
 182   3                                       break ;
 183   3                              }
 184   2                      }
 185   1              }
C51 COMPILER V8.05a   CLOC_ADJUST                                                          06/07/2007 19:40:28 PAGE 12  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION CLOCK_LED_Time_Adjust_Init (BEGIN)
                                           ; SOURCE LINE # 52
                                           ; SOURCE LINE # 53
                                           ; SOURCE LINE # 54
0000 E4                CLR     A
0001 F500        R     MOV     Change_State_G,A
                                           ; SOURCE LINE # 55
0003 F500        R     MOV     state,A
                                           ; SOURCE LINE # 56
0005 22                RET     
             ; FUNCTION CLOCK_LED_Time_Adjust_Init (END)

             ; FUNCTION CLOCK_LED_Time_Adjust (BEGIN)
                                           ; SOURCE LINE # 64
                                           ; SOURCE LINE # 65
                                           ; SOURCE LINE # 66
0000 D290              SETB    SET_pin
                                           ; SOURCE LINE # 67
0002 20902F            JB      SET_pin,?C0002
                                           ; SOURCE LINE # 68
                                           ; SOURCE LINE # 69
0005 0500        R     INC     Time_in_state1
0007 E500        R     MOV     A,Time_in_state1
0009 B4020D            CJNE    A,#02H,?C0003
                                           ; SOURCE LINE # 70
                                           ; SOURCE LINE # 71
000C E4                CLR     A
000D F500        R     MOV     Time_in_state1,A
                                           ; SOURCE LINE # 72
000F 0500        R     INC     state
0011 E500        R     MOV     A,state
0013 B40303            CJNE    A,#03H,?C0003
                                           ; SOURCE LINE # 73
                                           ; SOURCE LINE # 74
0016 E4                CLR     A
0017 F500        R     MOV     state,A
                                           ; SOURCE LINE # 75
                                           ; SOURCE LINE # 76
0019         ?C0003:
                                           ; SOURCE LINE # 77
0019 E500        R     MOV     A,state
001B 14                DEC     A
001C 600C              JZ      ?C0007
001E 14                DEC     A
001F 600E              JZ      ?C0008
0021 2402              ADD     A,#02H
0023 7012              JNZ     ?C0009
                                           ; SOURCE LINE # 78
                                           ; SOURCE LINE # 79
0025         ?C0006:
                                           ; SOURCE LINE # 80
                                           ; SOURCE LINE # 81
0025 E4                CLR     A
0026 F500        R     MOV     Change_State_G,A
                                           ; SOURCE LINE # 82
0028 800D              SJMP    ?C0009
                                           ; SOURCE LINE # 83
                                           ; SOURCE LINE # 84
002A         ?C0007:
C51 COMPILER V8.05a   CLOC_ADJUST                                                          06/07/2007 19:40:28 PAGE 13  

                                           ; SOURCE LINE # 85
                                           ; SOURCE LINE # 88
002A 750001      R     MOV     Change_State_G,#01H
                                           ; SOURCE LINE # 89
002D 8008              SJMP    ?C0009
                                           ; SOURCE LINE # 90
                                           ; SOURCE LINE # 91
002F         ?C0008:
                                           ; SOURCE LINE # 92
                                           ; SOURCE LINE # 93
002F 750002      R     MOV     Change_State_G,#02H
                                           ; SOURCE LINE # 94
0032 8003              SJMP    ?C0009
                                           ; SOURCE LINE # 95
                                           ; SOURCE LINE # 96
                                           ; SOURCE LINE # 97
0034         ?C0002:
                                           ; SOURCE LINE # 99
                                           ; SOURCE LINE # 100
0034 E4                CLR     A
0035 F500        R     MOV     Time_in_state1,A
                                           ; SOURCE LINE # 101
0037         ?C0009:
                                           ; SOURCE LINE # 102
0037 E500        R     MOV     A,Change_State_G
0039 14                DEC     A
003A 6011              JZ      ?C0012
003C 14                DEC     A
003D 7003              JNZ     $ + 5H
003F 020000      R     LJMP    ?C0019
0042 2402              ADD     A,#02H
0044 6003              JZ      $ + 5H
0046 020000      R     LJMP    ?C0026
                                           ; SOURCE LINE # 103
                                           ; SOURCE LINE # 106
0049         ?C0011:
                                           ; SOURCE LINE # 107

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -