📄 cloc_adjust.lst
字号:
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 + -