420 lines
15 KiB
Plaintext
420 lines
15 KiB
Plaintext
C51 COMPILER V9.60.0.0 COMMON 03/23/2023 16:31:25 PAGE 1
|
||
|
||
|
||
C51 COMPILER V9.60.0.0, COMPILATION OF MODULE COMMON
|
||
OBJECT MODULE PLACED IN .\Objects\common.obj
|
||
COMPILER INVOKED BY: d:\Keil_v5\C51\BIN\C51.EXE mycode\common.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\myinc) DEBUG OBJECTEXT
|
||
-END PRINT(.\Listings\common.lst) TABS(2) OBJECT(.\Objects\common.obj)
|
||
|
||
line level source
|
||
|
||
1 #include "common.h"
|
||
2 #include "GPIO.h"
|
||
3 #include "tm1650.h"
|
||
4 #include "STDIO.H"
|
||
5 #include "EEPROM.h"
|
||
6 #include "timer.h"
|
||
7 u8 keyflag = 0;
|
||
8 u8 sunmode = 1;
|
||
9 u8 pog = 4;
|
||
10 u16 keytime = 0;
|
||
11 u8 keyloog = 0;
|
||
12 u8 speedmode1 = speedstart, speedmode2 = speedstart, speedmode3 = speedstart, speedmode4 = speedstart, sub
|
||
-division1 = substart, subdivision2 = substart, subdivision3 = substart, subdivision4 = substart;
|
||
13 u8 num[9] = 0;
|
||
14 static void key_add(u8 *speedmode, u8 *subdivision)
|
||
15 {
|
||
16 1 u8 key__time = 0;
|
||
17 1 if (keyloog)
|
||
18 1 key__time = 100;
|
||
19 1 else
|
||
20 1 key__time = 500;
|
||
21 1 switch (pog)
|
||
22 1 {
|
||
23 2 case 1:
|
||
24 2 break;
|
||
25 2 case 2:
|
||
26 2 if (keyflag == 0)
|
||
27 2 {
|
||
28 3 *speedmode += 1;
|
||
29 3 if (*speedmode >= speedmax)
|
||
30 3 *speedmode = speedmax;
|
||
31 3 keyflag = 1;
|
||
32 3 }
|
||
33 2 if (keytime > key__time)
|
||
34 2 {
|
||
35 3 *speedmode += 1;
|
||
36 3 keytime = 0;
|
||
37 3 keyloog = 1;
|
||
38 3 if (*speedmode >= speedmax)
|
||
39 3 *speedmode = speedmax;
|
||
40 3 }
|
||
41 2 break;
|
||
42 2 case 3:
|
||
43 2 if (keyflag == 0)
|
||
44 2 {
|
||
45 3 *subdivision += 1;
|
||
46 3 if (*subdivision >= subdivisionmax)
|
||
47 3 *subdivision = subdivisionmax;
|
||
48 3 keyflag = 1;
|
||
49 3 }
|
||
50 2 if (keytime > key__time)
|
||
51 2 {
|
||
52 3 *subdivision += 1;
|
||
53 3 keytime = 0;
|
||
C51 COMPILER V9.60.0.0 COMMON 03/23/2023 16:31:25 PAGE 2
|
||
|
||
54 3 keyloog = 1;
|
||
55 3 if (*subdivision >= subdivisionmax)
|
||
56 3 *subdivision = subdivisionmax;
|
||
57 3 }
|
||
58 2 break;
|
||
59 2 }
|
||
60 1 }
|
||
61
|
||
62 static void key_Redu(u8 *speedmode, u8 *subdivision)
|
||
63 {
|
||
64 1 u8 key__time = 0;
|
||
65 1 if (keyloog)
|
||
66 1 key__time = 100;
|
||
67 1 else
|
||
68 1 key__time = 500;
|
||
69 1 switch (pog)
|
||
70 1 {
|
||
71 2 case 1:
|
||
72 2 break;
|
||
73 2 case 2:
|
||
74 2 if (keyflag == 0)
|
||
75 2 {
|
||
76 3 *speedmode -= 1;
|
||
77 3 if (*speedmode <= speedmin)
|
||
78 3 *speedmode = speedmin;
|
||
79 3 keyflag = 1;
|
||
80 3 }
|
||
81 2 if (keytime > key__time)
|
||
82 2 {
|
||
83 3 *speedmode -= 1;
|
||
84 3 keytime = 0;
|
||
85 3 keyloog = 1;
|
||
86 3 if (*speedmode <= speedmin)
|
||
87 3 *speedmode = speedmin;
|
||
88 3 }
|
||
89 2 break;
|
||
90 2 case 3:
|
||
91 2 if (keyflag == 0)
|
||
92 2 {
|
||
93 3 if (*subdivision <= subdivisionmin)
|
||
94 3 *subdivision = subdivisionmin;
|
||
95 3 else
|
||
96 3 *subdivision -= 1;
|
||
97 3 keyflag = 1;
|
||
98 3 }
|
||
99 2 if (keytime > key__time)
|
||
100 2 {
|
||
101 3 keytime = 0;
|
||
102 3 keyloog = 1;
|
||
103 3 if (*subdivision <= subdivisionmin)
|
||
104 3 *subdivision = subdivisionmin;
|
||
105 3 else
|
||
106 3 *subdivision -= 1;
|
||
107 3 }
|
||
108 2 break;
|
||
109 2 }
|
||
110 1 }
|
||
111 void keyscan()
|
||
112 {
|
||
113 1 if (k1 == 0)
|
||
114 1 if (keyflag == 0)
|
||
115 1 {
|
||
C51 COMPILER V9.60.0.0 COMMON 03/23/2023 16:31:25 PAGE 3
|
||
|
||
116 2 timex = 400 * subdivision1;
|
||
117 2 DIR = 1;
|
||
118 2 sunmode = 1;
|
||
119 2 keyflag = 1;
|
||
120 2 setconfig();
|
||
121 2 }
|
||
122 1 if (k2 == 0)
|
||
123 1 if (keyflag == 0)
|
||
124 1 {
|
||
125 2 timex = 400 * subdivision2;
|
||
126 2 DIR = 0;
|
||
127 2 sunmode = 2;
|
||
128 2 keyflag = 1;
|
||
129 2 setconfig();
|
||
130 2 }
|
||
131 1 if (k3 == 0)
|
||
132 1 if (keyflag == 0)
|
||
133 1 {
|
||
134 2 timex = 800 <<subdivision3;
|
||
135 2 DIR = 1;
|
||
136 2 sunmode = 3;
|
||
137 2 keyflag = 1;
|
||
138 2 setconfig();
|
||
139 2 }
|
||
140 1 if (k4 == 0)
|
||
141 1 if (keyflag == 0)
|
||
142 1 {
|
||
143 2 timex = 0;
|
||
144 2 sunmode = 4;
|
||
145 2 keyflag = 1;
|
||
146 2 setconfig();
|
||
147 2 }
|
||
148 1 if (k5 == 0)
|
||
149 1 {
|
||
150 2 if (keyflag == 0)
|
||
151 2 {
|
||
152 3 switch (pog)
|
||
153 3 {
|
||
154 4 case 1:
|
||
155 4 pog = 2;
|
||
156 4 break;
|
||
157 4 case 2:
|
||
158 4 pog = 3;
|
||
159 4 break;
|
||
160 4 case 3:
|
||
161 4 pog = 4;
|
||
162 4 setconfig();
|
||
163 4 break;
|
||
164 4 case 4:
|
||
165 4 pog = 2;
|
||
166 4 break;
|
||
167 4 }
|
||
168 3 keyflag = 1;
|
||
169 3 }
|
||
170 2 }
|
||
171 1 if (k6 == 0)
|
||
172 1 {
|
||
173 2 switch (sunmode)
|
||
174 2 {
|
||
175 3 case 1:
|
||
176 3 key_add(&speedmode1, &subdivision1);
|
||
177 3 break;
|
||
C51 COMPILER V9.60.0.0 COMMON 03/23/2023 16:31:25 PAGE 4
|
||
|
||
178 3 case 2:
|
||
179 3 key_add(&speedmode2, &subdivision2);
|
||
180 3 break;
|
||
181 3 case 3:
|
||
182 3 key_add(&speedmode3, &subdivision3);
|
||
183 3 break;
|
||
184 3 case 4:
|
||
185 3 key_add(&speedmode4, &subdivision4);
|
||
186 3 break;
|
||
187 3 }
|
||
188 2 }
|
||
189 1 if (k7 == 0)
|
||
190 1 {
|
||
191 2 switch (sunmode)
|
||
192 2 {
|
||
193 3 case 1:
|
||
194 3 key_Redu(&speedmode1, &subdivision1);
|
||
195 3 break;
|
||
196 3 case 2:
|
||
197 3 key_Redu(&speedmode2, &subdivision2);
|
||
198 3 break;
|
||
199 3 case 3:
|
||
200 3 key_Redu(&speedmode3, &subdivision3);
|
||
201 3 break;
|
||
202 3 case 4:
|
||
203 3 key_Redu(&speedmode4, &subdivision4);
|
||
204 3 break;
|
||
205 3 }
|
||
206 2 }
|
||
207 1 if (k8 == 0)
|
||
208 1 {
|
||
209 2 if (keyflag == 0)
|
||
210 2 {
|
||
211 3 if (pog != 1)
|
||
212 3 pog = 1;
|
||
213 3 else
|
||
214 3 pog = 4;
|
||
215 3 setconfig();
|
||
216 3 keyflag = 1;
|
||
217 3 switch (sunmode)
|
||
218 3 {
|
||
219 4 case 1:
|
||
220 4 timex = 400 << subdivision1;
|
||
221 4 DIR = 1;
|
||
222 4 break;
|
||
223 4 case 2:
|
||
224 4 timex = 400 << subdivision2;
|
||
225 4 DIR = 0;
|
||
226 4 break;
|
||
227 4 case 3:
|
||
228 4 timex = 800 << subdivision3;
|
||
229 4 DIR = 1;
|
||
230 4 break;
|
||
231 4 case 4:
|
||
232 4 break;
|
||
233 4 }
|
||
234 3 }
|
||
235 2 }
|
||
236 1 if (k1 != 0 & k2 != 0 & k3 != 0 & k4 != 0 & k5 != 0 & k6 != 0 & k7 != 0 & k8 != 0)
|
||
237 1 {
|
||
238 2 keyflag = 0;
|
||
239 2 keyloog = 0;
|
||
C51 COMPILER V9.60.0.0 COMMON 03/23/2023 16:31:25 PAGE 5
|
||
|
||
240 2 }
|
||
241 1 }
|
||
242 static void dislittleplay(u8 speedmode, u16 subdivision)
|
||
243 {
|
||
244 1 switch (pog)
|
||
245 1 {
|
||
246 2 case 1:
|
||
247 2 TM1650_printpogrun(sunmode, displaydata);
|
||
248 2 break;
|
||
249 2 case 2:
|
||
250 2 TM1650_print_SMG1(speedmode);
|
||
251 2 break;
|
||
252 2 case 3:
|
||
253 2 TM1650_print_SMG2(subdivision);
|
||
254 2 break;
|
||
255 2 case 4:
|
||
256 2 TM1650_printpogstop(sunmode);
|
||
257 2 break;
|
||
258 2 }
|
||
259 1 }
|
||
260 void display()
|
||
261 {
|
||
262 1 switch (sunmode)
|
||
263 1 {
|
||
264 2 case 1:
|
||
265 2 dislittleplay(speedmode1, (u16)(1 << subdivision1));
|
||
266 2 break;
|
||
267 2 case 2:
|
||
268 2 dislittleplay(speedmode2, (u16)(1 << subdivision2));
|
||
269 2 break;
|
||
270 2 case 3:
|
||
271 2 dislittleplay(speedmode3, (u16)(1 << subdivision3));
|
||
272 2 break;
|
||
273 2 case 4:
|
||
274 2 dislittleplay(speedmode4, (u16)(1 << subdivision4));
|
||
275 2 break;
|
||
276 2 }
|
||
277 1 }
|
||
278 void shuju()
|
||
279 {
|
||
280 1
|
||
281 1 switch (sunmode)
|
||
282 1 {
|
||
283 2 case 1:
|
||
284 2 if (((u16)(speedmode1 * 20 * (1 << subdivision1) / 3)) < 400)
|
||
285 2 {
|
||
286 3 Timer0_12T();
|
||
287 3 T0_Load(65536UL - (MAIN_Fosc / ((u32)speedmode1 * 80 * (1 << subdivision1))));
|
||
288 3 }
|
||
289 2 else
|
||
290 2 {
|
||
291 3 Timer0_1T();
|
||
292 3 T0_Load(65536UL - (MAIN_Fosc / ((u32)speedmode1 * 20 * (1 << subdivision1) / 3)));
|
||
293 3 }
|
||
294 2 break;
|
||
295 2 case 2:
|
||
296 2 if ((u16)(speedmode2 * 20 * (1 << subdivision2) / 3) < 400)
|
||
297 2 {
|
||
298 3 Timer0_12T();
|
||
299 3 T0_Load(65536UL - (MAIN_Fosc / (u32)(speedmode2 * 80 * (1 << subdivision2))));
|
||
300 3 }
|
||
301 2 else
|
||
C51 COMPILER V9.60.0.0 COMMON 03/23/2023 16:31:25 PAGE 6
|
||
|
||
302 2 {
|
||
303 3 Timer0_1T();
|
||
304 3 T0_Load(65536UL - (MAIN_Fosc / (u32)(speedmode2 * 20 * (1 << subdivision2) / 3)));
|
||
305 3 }
|
||
306 2 break;
|
||
307 2 case 3:
|
||
308 2 if ((u16)(speedmode3 * 20 * (1 << subdivision3) / 3) < 400)
|
||
309 2 {
|
||
310 3 Timer0_12T();
|
||
311 3 T0_Load(65536UL - (MAIN_Fosc / (u32)(speedmode3 * 80 * (1 << subdivision3))));
|
||
312 3 }
|
||
313 2 else
|
||
314 2 {
|
||
315 3 Timer0_1T();
|
||
316 3 T0_Load(65536UL - (MAIN_Fosc / (u32)(speedmode3 * 20 * (1 << subdivision3) / 3)));
|
||
317 3 }
|
||
318 2 break;
|
||
319 2 case 4:
|
||
320 2 if ((u16)(speedmode4 * 20 * (1 << subdivision4) / 3) < 400)
|
||
321 2 {
|
||
322 3 Timer0_12T();
|
||
323 3 T0_Load(65536UL - (MAIN_Fosc / (u32)(speedmode4 * 80 * (1 << subdivision4))));
|
||
324 3 }
|
||
325 2 else
|
||
326 2 {
|
||
327 3 Timer0_1T();
|
||
328 3 T0_Load(65536UL - (MAIN_Fosc / (u32)(speedmode4 * 20 * (1 << subdivision4) / 3)));
|
||
329 3 }
|
||
330 2 break;
|
||
331 2 }
|
||
332 1 }
|
||
333 void run()
|
||
334 {
|
||
335 1 switch (pog)
|
||
336 1 {
|
||
337 2 case 1:
|
||
338 2 if (timex == 0)
|
||
339 2 pog = 4;
|
||
340 2 EN = 0;
|
||
341 2 break;
|
||
342 2 case 2:
|
||
343 2 EN = 1;
|
||
344 2 break;
|
||
345 2 case 3:
|
||
346 2 EN = 1;
|
||
347 2 break;
|
||
348 2 case 4:
|
||
349 2 EN = 1;
|
||
350 2 break;
|
||
351 2 }
|
||
352 1 }
|
||
353 void getconfig()
|
||
354 {
|
||
355 1 EEPROM_read_n(MYaddress, num, 9);
|
||
356 1 if (num[0] != 255)
|
||
357 1 {
|
||
358 2 speedmode1 = num[0];
|
||
359 2 speedmode2 = num[1];
|
||
360 2 speedmode3 = num[2];
|
||
361 2 speedmode4 = num[3];
|
||
362 2 subdivision1 = num[4];
|
||
363 2 subdivision2 = num[5];
|
||
C51 COMPILER V9.60.0.0 COMMON 03/23/2023 16:31:25 PAGE 7
|
||
|
||
364 2 subdivision3 = num[6];
|
||
365 2 subdivision4 = num[7];
|
||
366 2 sunmode = num[8];
|
||
367 2 }
|
||
368 1 }
|
||
369 void setconfig()
|
||
370 {
|
||
371 1 EEPROM_SectorErase(MYaddress);
|
||
372 1 num[0] = speedmode1;
|
||
373 1 num[1] = speedmode2;
|
||
374 1 num[2] = speedmode3;
|
||
375 1 num[3] = speedmode4;
|
||
376 1 num[4] = subdivision1;
|
||
377 1 num[5] = subdivision2;
|
||
378 1 num[6] = subdivision3;
|
||
379 1 num[7] = subdivision4;
|
||
380 1 num[8] = sunmode;
|
||
381 1 EEPROM_write_n(MYaddress, num, 9);
|
||
382 1 }
|
||
|
||
|
||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||
CODE SIZE = 2668 ----
|
||
CONSTANT SIZE = ---- ----
|
||
XDATA SIZE = ---- ----
|
||
PDATA SIZE = ---- ----
|
||
DATA SIZE = 23 15
|
||
IDATA SIZE = ---- ----
|
||
BIT SIZE = ---- ----
|
||
END OF MODULE INFORMATION.
|
||
|
||
|
||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|