📄 main_v2.lst
字号:
226 2 put_char(4,0,'-');
227 2 put_char(7,0,'-');
228 2 put_char(10,1,':');
229 2 put_char(13,1,':');
230 2 }
231 1 else if(sys_mode==2)
232 1 {
233 2 put_char(8,1,stop_hour/10+48);
234 2 put_char(9,1,stop_hour%10+48);
235 2
236 2 put_char(11,1,stop_min/10+48);
237 2 put_char(12,1,stop_min%10+48);
238 2
239 2 put_char(14,1,stop_sec/10+48);
240 2 put_char(15,1,stop_sec%10+48);
C51 COMPILER V7.06 MAIN_V2 10/26/2008 02:07:00 PAGE 5
241 2
242 2 put_char(14,1,stop_ms/10+48);
243 2 put_char(15,1,stop_ms%10+48);
244 2 put_char(10,1,':');
245 2 put_char(13,1,':');
246 2 switch(stop_mode)
247 2 {
248 3 case 0:
249 3 put_str("STOP ",1);
250 3 break;
251 3 case 1:
252 3 case 2:
253 3 put_str("START",1);
254 3 break;
255 3 case 3:
256 3 put_str("PAUSE",1);
257 3 break;
258 3
259 3 }
260 2 }
261 1 disp_flag=0;
262 1 }
263
264 void delay(u16 timeinms)
265 {
266 1 u16 i,j;
267 1 for (i=timeinms;i>0;i--)
268 1 for(j=0;j<1000;j++)
269 1 _nop_();
270 1 }
271
272 void key_scan()
273 {
274 1 P1=0xFF;
275 1 if(P1!=0xFF)
276 1 {
277 2 key_temp=P1;
278 2 delay(2);
279 2 if(key_temp==P1&&key_coun<65535)
280 2 key_coun+=1;
281 2 }
282 1 else
283 1 key_coun=0;
284 1 }
285
286 void key_proc()
287 {
288 1 //按键变速处理
289 1 if(key_coun>200)
290 1 max_speed=2;
291 1 else if(key_coun>100)
292 1 max_speed=15;
293 1 else
294 1 max_speed=30;
295 1
296 1 //长按键处理
297 1 if(key_coun>50)
298 1 {
299 2 if(key_temp==KEY1)
300 2 {
301 3 if(sys_mode==1)
302 3 sys_mode=0;
C51 COMPILER V7.06 MAIN_V2 10/26/2008 02:07:00 PAGE 6
303 3 sys_config();
304 3 }
305 2
306 2
307 2 if(key_temp==KEY2)
308 2 {
309 3 if(key_speed>max_speed)
310 3 {
311 4 if(wink_mode==1)
312 4 {year-=1;no_op_time=0;display();}
313 4 else if(wink_mode==2)
314 4 value_adj(&month,1,12,SUB);
315 4 else if(wink_mode==3)
316 4 value_adj(&day,1,non_leap_table[month-1+(calc_day(year)?12:0)],SUB);
317 4 else if(wink_mode==4)
318 4 value_adj(&hour,0,23,SUB);
319 4 else if(wink_mode==5)
320 4 value_adj(&min,0,59,SUB);
321 4 else if(wink_mode==6)
322 4 sec=0;
323 4 else;
324 4
325 4 key_speed=0;
326 4 }
327 3 key_speed+=1;
328 3
329 3 }
330 2
331 2 if(key_temp==KEY3)
332 2 {
333 3 if(key_speed>max_speed)
334 3 {
335 4 if(wink_mode==1)
336 4 {year+=1;no_op_time=0;display();}
337 4 else if(wink_mode==2)
338 4 value_adj(&month,1,12,ADD);
339 4 else if(wink_mode==3)
340 4 value_adj(&day,1,non_leap_table[month-1+(calc_day(year)?12:0)],ADD);
341 4 else if(wink_mode==4)
342 4 value_adj(&hour,0,23,ADD);
343 4 else if(wink_mode==5)
344 4 value_adj(&min,0,59,ADD);
345 4 else if(wink_mode==6)
346 4 sec=0;
347 4 else;
348 4 //value_adj(&min,0,59,SUB);
349 4 key_speed=0;
350 4 }
351 3 key_speed+=1;
352 3 }
353 2
354 2
355 2 return;
356 2 }
357 1 if(key_coun>3&&(P1!=key_temp))
358 1 {
359 2 switch(key_temp) {
360 3 case KEY1:
361 3 {
362 4 if(wink_mode)
363 4 {
364 5 if(wink_mode<6)
C51 COMPILER V7.06 MAIN_V2 10/26/2008 02:07:00 PAGE 7
365 5 wink_mode+=1;
366 5 else
367 5 wink_mode=1;
368 5 no_op_time=0;
369 5 }
370 4 else if(sys_mode<3)
371 4 sys_mode+=1;
372 4 else
373 4 sys_mode=1;
374 4 sys_config();
375 4 break;
376 4 }
377 3 case KEY2:
378 3 {
379 4 if(wink_mode==1)
380 4 {year-=1;no_op_time=0;display();}
381 4 else if(wink_mode==2)
382 4 value_adj(&month,1,12,SUB);
383 4 else if(wink_mode==3)
384 4 value_adj(&day,1,non_leap_table[month-1+(calc_day(year)?12:0)],SUB);
385 4 else if(wink_mode==4)
386 4 value_adj(&hour,0,23,SUB);
387 4 else if(wink_mode==5)
388 4 value_adj(&min,0,59,SUB);
389 4 else if(wink_mode==6)
390 4 sec=0;
391 4 else if(sys_mode==2)
392 4 {
393 5 if(stop_mode==1)
394 5 stop_mode=2;
395 5 else if(stop_mode==2)
396 5 stop_mode=1;
397 5 else if(stop_mode==3)
398 5 stop_mode=0;
399 5
400 5 }
401 4 else;
402 4 break;
403 4 }
404 3 case KEY3:
405 3 {
406 4 if(wink_mode==1)
407 4 {year+=1;no_op_time=0;display();}
408 4 else if(wink_mode==2)
409 4 value_adj(&month,1,12,ADD);
410 4 else if(wink_mode==3)
411 4 value_adj(&day,1,non_leap_table[month-1+(calc_day(year)?12:0)],ADD);
412 4 else if(wink_mode==4)
413 4 value_adj(&hour,0,23,ADD);
414 4 else if(wink_mode==5)
415 4 value_adj(&min,0,59,ADD);
416 4 else if(wink_mode==6)
417 4 sec=0;
418 4 else if(sys_mode==2)
419 4 {
420 5 if(stop_mode==0)
421 5 stop_mode=1;
422 5 else if(stop_mode==1)
423 5 stop_mode=3;
424 5 else if(stop_mode==3)
425 5 stop_mode=1;
426 5 }
C51 COMPILER V7.06 MAIN_V2 10/26/2008 02:07:00 PAGE 8
427 4 else;
428 4 break;
429 4 }
430 3 case KEY4:
431 3 {
432 4 if(sys_mode==0)
433 4 sys_mode=1;
434 4 sys_config();
435 4 break;
436 4 }
437 3 default: break;
438 3 }
439 2 }
440 1 }
441 void value_adj(u8 *value,u8 min,u8 max,u8 cmd)
442 {
443 1 wink_ena=0;
444 1 no_op_time=0;
445 1 if(cmd==ADD)
446 1 {
447 2 if(*value<max)
448 2 *value+=1;
449 2 else
450 2 *value=min;
451 2 display();
452 2 }
453 1 else if(cmd==SUB)
454 1 {
455 2 if(*value>min)
456 2 *value-=1;
457 2 else
458 2 *value=max;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -