📄 main.lst
字号:
310 void Up_alarm()
311 {
312 1 uchar keynum=0xff,pos=0;
313 1 Wrcom(0x01); //清屏
314 1 Dis_string(1,3,alarm_menu); //闹钟提示菜单
315 1 Dis_time(disp_almtime);
316 1 Dis_string(2,12,onoff[on]);
317 1
318 1 Dis_cursor(2,3); //光标闪烁
319 1 keynum=Get_keynum(); //获取键值
320 1 while(keynum!=12)
321 1 {
322 2 if(keynum==11)
323 2 {
324 3 if(pos<9)
325 3 {
326 4 if(pos==1||pos==4||pos==7)
327 4 pos+=2;
328 4 else
329 4 pos++;
330 4 }
331 3 else
332 3 pos=0;
333 3 Dis_cursor(2,3+pos);
334 3
335 3 }
336 2 else if(keynum==10)
337 2 {
338 3
339 3 if(pos>0)
340 3 {
341 4 if(pos==9||pos==6||pos==3)
342 4 pos-=2;
343 4 else
344 4 pos--;
345 4 }
346 3 else
347 3 pos=0;
348 3 }
349 2 else if(keynum<=9)
350 2 {
351 3 switch(pos)
352 3 {
353 4 case 0:
354 4 {
355 5 if(keynum>2)
356 5 break;
357 5 disp_almtime.hour[0]=keynum+'0';
358 5 Disdata(keynum+'0');
359 5 pos++;
360 5 break;
361 5 }
362 4 case 1:
363 4 {
C51 COMPILER V7.20 MAIN 12/23/2007 20:36:00 PAGE 7
364 5 if(keynum>3&&disp_almtime.hour[0]==2+'0')
365 5 break;
366 5 disp_almtime.hour[1]=keynum+'0';
367 5 Disdata(keynum+'0');
368 5 pos+=2;
369 5 break;
370 5 }
371 4 case 3:
372 4 {
373 5 if(keynum>5)
374 5 break;
375 5 disp_almtime.minute[0]=keynum+'0';
376 5 Disdata(keynum+'0');
377 5 pos++;
378 5 break;
379 5 }
380 4 case 4:
381 4 {
382 5 disp_almtime.minute[1]=keynum+'0';
383 5 Disdata(keynum+'0');
384 5 pos+=2;
385 5 break;
386 5 }
387 4 case 6:
388 4 {
389 5 if(keynum>5)
390 5 break;
391 5 disp_almtime.second[0]=keynum+'0';
392 5 Disdata(keynum+'0');
393 5 pos++;
394 5 break;
395 5 }
396 4 case 7:
397 4 {
398 5 disp_almtime.second[1]=keynum+'0';
399 5 Disdata(keynum+'0');
400 5 pos+=2;
401 5 break;
402 5 }
403 4 case 9:
404 4 {
405 5 on=~on;
406 5 Dis_string(2,12,onoff[on]);
407 5 break;
408 5 }
409 4
410 4 }
411 3 }
412 2 else
413 2 Dis_cursor(2,3+pos);
414 2 keynum=Get_keynum(); //获取键值
415 2 }
416 1 Wrcom(0x01); //清屏
417 1 Wrcom(0x0c); //开显示,关光标及闪烁
418 1 To_almvalue();
419 1 }
420
421
422 /*********************修改变量和显示函数************************/
423 void Up_value()
424 {
425 1 uchar keynum=0xff,pos=0;
C51 COMPILER V7.20 MAIN 12/23/2007 20:36:00 PAGE 8
426 1
427 1 Wrcom(0x01); //清屏
428 1 Disp_all();
429 1 Dis_cursor(1,2); //光标闪烁
430 1 keynum=Get_keynum(); //获取键值
431 1 while(keynum!=12)
432 1 {
433 2 if(keynum==11)
434 2 {
435 3 if(pos<14)
436 3 {
437 4 if(pos==3||pos==6||pos==9)
438 4 pos+=2;
439 4 else if(pos==12||pos==13||pos==14)
440 4 pos=15;
441 4 else
442 4 pos++;
443 4 Dis_cursor(1,2+pos);
444 4 }
445 3 else if(pos<22)
446 3 {
447 4 if(pos==16||pos==19)
448 4 pos+=2;
449 4 else
450 4 pos++;
451 4 Dis_cursor(2,pos-12);
452 4 }
453 3 else
454 3 {
455 4 pos=0;
456 4 Dis_cursor(1,2);
457 4 }
458 3 }
459 2 else if(keynum==10)
460 2 {
461 3 if(pos<=0)
462 3 {
463 4 pos=0;
464 4 Dis_cursor(1,2);
465 4 }
466 3 else if(pos<16)
467 3 {
468 4 if(pos==12||pos==13||pos==14)
469 4 pos=9;
470 4 else if(pos==8||pos==5)
471 4 pos-=2;
472 4 else
473 4 pos--;
474 4 Dis_cursor(1,2+pos);
475 4 }
476 3 else
477 3 {
478 4 if(pos==21||pos==18)
479 4 pos-=2;
480 4 else
481 4 pos--;
482 4 Dis_cursor(2,pos-12);
483 4 }
484 3 }
485 2 else if(keynum<=9)
486 2 {
487 3 switch(pos)
C51 COMPILER V7.20 MAIN 12/23/2007 20:36:00 PAGE 9
488 3 {
489 4 case 0:
490 4 {
491 5 disp_date.year[0]=keynum+'0';
492 5 Disdata(keynum+'0');
493 5 pos++;
494 5 break;
495 5 }
496 4 case 1:
497 4 {
498 5 disp_date.year[1]=keynum+'0';
499 5 Disdata(keynum+'0');
500 5 pos++;
501 5 break;
502 5 }
503 4 case 2:
504 4 {
505 5 disp_date.year[2]=keynum+'0';
506 5 Disdata(keynum+'0');
507 5 pos++;
508 5 break;
509 5 }
510 4 case 3:
511 4 {
512 5 disp_date.year[3]=keynum+'0';
513 5 Disdata(keynum+'0');
514 5 pos+=2;
515 5 break;
516 5 }
517 4 case 5:
518 4 {
519 5 if(keynum>1)
520 5 break;
521 5 disp_date.month[0]=keynum+'0';
522 5 Disdata(keynum+'0');
523 5 pos++;
524 5 break;
525 5 }
526 4 case 6:
527 4 {
528 5 if(disp_date.month[0]==1+'0'&&keynum>2)
529 5 break;
530 5 disp_date.month[1]=keynum+'0';
531 5 Disdata(keynum+'0');
532 5 pos+=2;
533 5 break;
534 5 }
535 4
536 4 case 8:
537 4 {
538 5 if(keynum>3)
539 5 break;
540 5 disp_date.day[0]=keynum+'0';
541 5 Disdata(keynum+'0');
542 5 pos++;
543 5 break;
544 5 }
545 4 case 9:
546 4 {
547 5 if(disp_date.day[0]==3+'0'&&keynum>1)
548 5 break;
549 5 disp_date.day[1]=keynum+'0';
C51 COMPILER V7.20 MAIN 12/23/2007 20:36:00 PAGE 10
550 5 Disdata(keynum+'0');
551 5 pos+=3;
552 5 break;
553 5 }
554 4 case 12:case 13:case 14:
555 4 {
556 5 if(keynum>7||keynum==0)
557 5 break;
558 5 else
559 5 {
560 6 new_date.week=keynum;
561 6 Dis_string(1,14,dispweek[keynum-1]);
562 6 pos=15;
563 6 break;
564 6 }
565 5 }
566 4 case 15:
567 4 {
568 5 if(keynum>2)
569 5 break;
570 5 disp_time.hour[0]=keynum+'0';
571 5 Disdata(keynum+'0');
572 5 pos++;
573 5 break;
574 5 }
575 4 case 16:
576 4 {
577 5 if(keynum>3&&disp_time.hour[0]==2+'0')
578 5 break;
579 5 disp_time.hour[1]=keynum+'0';
580 5 Disdata(keynum+'0');
581 5 pos+=2;
582 5 break;
583 5 }
584 4 case 18:
585 4 {
586 5 if(keynum>5)
587 5 break;
588 5 disp_time.minute[0]=keynum+'0';
589 5 Disdata(keynum+'0');
590 5 pos++;
591 5 break;
592 5 }
593 4 case 19:
594 4 {
595 5 disp_time.minute[1]=keynum+'0';
596 5 Disdata(keynum+'0');
597 5 pos+=2;
598 5 break;
599 5 }
600 4 case 21:
601 4 {
602 5 if(keynum>5)
603 5 break;
604 5 disp_time.second[0]=keynum+'0';
605 5 Disdata(keynum+'0');
606 5 pos++;
607 5 break;
608 5 }
609 4 case 22:
610 4 {
611 5 disp_time.second[1]=keynum+'0';
C51 COMPILER V7.20 MAIN 12/23/2007 20:36:00 PAGE 11
612 5 Disdata(keynum+'0');
613 5 pos++;
614 5 break;
615 5 }
616 4 default:break;
617 4
618 4 }
619 3 }
620 2 else
621 2 {
622 3 if(pos<15)
623 3 Dis_cursor(1,2+pos);
624 3 else
625 3 Dis_cursor(2,pos-12);
626 3
627 3 }
628 2 keynum=Get_keynum(); //获取键值
629 2 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -