📄 closetest.lst
字号:
529 5 *TIMES=0;
530 5 *(TIMES+1)=0;
531 5 y=*DAY_SUM;
532 5 y--;
533 5 *DAY_SUM=y;
534 5 }
535 4 }
536 3 else{
537 4 x=*PRESS_SUM;y=*DAY_SUM;
538 4 if(2*x+2*y<=108){
539 5 for(n=0;n<2*x+2*y;n++){
540 6 *(TIMES+2*x+2*y+1-n)=*(TIMES+2*x+2*y-1-n);
541 6 }
542 5 *TIMES=0;
543 5 *(TIMES+1)=0;
544 5 l=*DAY_SUM;
545 5 if(l<54)l++;
546 5 *DAY_SUM=l;
547 5 }
548 4 }
549 3 start_initstat();
550 3 }
C51 COMPILER V7.05 CLOSETEST 11/25/2003 23:29:19 PAGE 10
551 2 read_initstat();
552 2 *CUR_DAY=DAY;
553 2 daycheck_flag=0;
554 2 }
555 1 }
556
557
558 void change_time(){//修改时间主界面
559 1 byte i;
560 1 read_initstat();
561 1 for(i=0;i<=15;i++){//第二行全写入空白
562 2 datadr=0x40+i;
563 2 write_dr();
564 2 lcddata=0x20;
565 2 write_data();
566 2 }
567 1 datadr=(0x40+move_num);//写入光标
568 1 write_dr();
569 1 //if(flash_flag)
570 1 lcddata=0xb0;
571 1 //else lcddata=0x20;
572 1 write_data();
573 1 }
574 void check_time(){//检查继电器闭合时间及次数子程序
575 1 byte i;
576 1 read_initstat();
577 1 for(i=0;i<=15;i++){//第二行全写入空白
578 2 datadr=0x40+i;
579 2 write_dr();
580 2 lcddata=0x20;
581 2 write_data();
582 2 }
583 1 if(tiancha==0){
584 2 datadr=0x40;//T
585 2 write_dr();
586 2 lcddata=0x54;
587 2 write_data();
588 2 datadr=0x41;//O
589 2 write_dr();
590 2 lcddata=0x4f;
591 2 write_data();
592 2 datadr=0x42;//D
593 2 write_dr();
594 2 lcddata=0x44;
595 2 write_data();
596 2 datadr=0x43;//A
597 2 write_dr();
598 2 lcddata=0x41;
599 2 write_data();
600 2 datadr=0x44;//Y
601 2 write_dr();
602 2 lcddata=0x59;
603 2 write_data();
604 2
605 2 datadr=0x48;//次第
606 2 write_dr();
607 2 lcddata=0x30+check_num/10;
608 2 write_data();
609 2
610 2 datadr=0x49;
611 2 write_dr();
612 2 lcddata=0x30+check_num%10;
C51 COMPILER V7.05 CLOSETEST 11/25/2003 23:29:19 PAGE 11
613 2 write_data();
614 2
615 2 datadr=0x4a;//冒号
616 2 write_dr();
617 2 lcddata=0x3a;
618 2 write_data();
619 2
620 2 datadr=0x4b;//小时
621 2 write_dr();
622 2 lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-2))>>4);
623 2 write_data();
624 2
625 2 datadr=0x4c;
626 2 write_dr();
627 2 lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-2))&0x0f);
628 2 write_data();
629 2
630 2 datadr=0x4d;//冒号
631 2 write_dr();
632 2 lcddata=0x3a;
633 2 write_data();
634 2
635 2 datadr=0x4e;//分钟
636 2 write_dr();
637 2 lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-1))>>4);
638 2 write_data();
639 2
640 2 datadr=0x4f;
641 2 write_dr();
642 2 lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-1))&0x0f);
643 2 write_data();
644 2 }
645 1 else{
646 2 datadr=0x40;//距今天天数
647 2 write_dr();
648 2 lcddata=0x30+tiancha/10;
649 2 write_data();
650 2 datadr=0x41;
651 2 write_dr();
652 2 lcddata=0x30+tiancha%10;
653 2 write_data();
654 2 datadr=0x42;//D
655 2 write_dr();
656 2 lcddata=0x44;
657 2 write_data();
658 2 datadr=0x43;//A
659 2 write_dr();
660 2 lcddata=0x41;
661 2 write_data();
662 2 datadr=0x44;//Y
663 2 write_dr();
664 2 lcddata=0x59;
665 2 write_data();
666 2 datadr=0x45;//S
667 2 write_dr();
668 2 lcddata=0x53;
669 2 write_data();
670 2 datadr=0x46;//B
671 2 write_dr();
672 2 lcddata=0x42;
673 2 write_data();
674 2
C51 COMPILER V7.05 CLOSETEST 11/25/2003 23:29:19 PAGE 12
675 2 datadr=0x48;//次第
676 2 write_dr();
677 2 lcddata=0x30+check_num/10;
678 2 write_data();
679 2 datadr=0x49;
680 2 write_dr();
681 2 lcddata=0x30+check_num%10;
682 2 write_data();
683 2 datadr=0x4a;//冒号
684 2 write_dr();
685 2 lcddata=0x3a;
686 2 write_data();
687 2 datadr=0x4b;//小时
688 2 write_dr();
689 2 lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-2))>>4);
690 2 write_data();
691 2 datadr=0x4c;
692 2 write_dr();
693 2 lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-2))&0x0f);
694 2 write_data();
695 2 datadr=0x4d;//冒号
696 2 write_dr();
697 2 lcddata=0x3a;
698 2 write_data();
699 2 datadr=0x4e;//分钟
700 2 write_dr();
701 2 lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-1))>>4);
702 2 write_data();
703 2 datadr=0x4f;
704 2 write_dr();
705 2 lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-1))&0x0f);
706 2 write_data();
707 2 }
708 1 }
709 void key_stop(){ /*延时等待按键取消*/
710 1 byte h;
711 1 do h=P2&0x0f;
712 1 while(h!=0x0f);
713 1 }
714
715 void key_scan(){ /*按键检测子程序*/
716 1 byte i,colcode;
717 1 colcode=P2&0x0f;
718 1 if(colcode!=0x0f){ /*判断是否有键按下*/
719 2 for(i=200;i>0;i--);
720 2 colcode=P2&0x0f;
721 2 if(colcode!=0x0f){//若有键按下,求其值
722 3 if(colcode==0x0e){//
723 4 key_num=0;
724 4 key_flag=1;
725 4 }
726 3 else if (colcode==0x0d){
727 4 key_num=1;
728 4 key_flag=1;
729 4 }
730 3 else if (colcode==0x0b){
731 4 key_num=2;
732 4 key_flag=1;
733 4 }
734 3 else if (colcode==0x07){
735 4 key_num=3;
736 4 key_flag=1;
C51 COMPILER V7.05 CLOSETEST 11/25/2003 23:29:19 PAGE 13
737 4 }
738 3 else key_flag=0;
739 3 }
740 2 }
741 1 }
742 void key_dispose1(){//按键处理子程序
743 1 byte j,y;
744 1 bit alarm_flag=0;
745 1 read_initstat();
746 1 switch(key_num){
747 2 case 0x00: if((checktime_flag)||(changetime_flag)){//在修改时间或检查继电器闭合时
-间界面下,快捷退出
748 3 clr_lcd();
749 3 main_face();
750 3 checktime_flag=0;
751 3 changetime_flag=0;
752 3 move_num=0;
753 3 del_flag=0;
754 3 press_num=0;
755 3 last_num=0;
756 3 //check_flag=0;
757 3 }
758 2 else if((!checktime_flag)&&(!changetime_flag)){//进入修改时间界面,
759 3 change_time();
760 3 changetime_flag=1;
761 3 move_num=0x00;
762 3 checktime_flag=0;
763 3 del_flag=0;
764 3 }
765 2 key_flag=0;
766 2 key_stop();
767 2 break;
768 2 case 0x01: if((changetime_flag)&&(!checktime_flag)){//修改时间界面下,移动光标
769 3 datadr=(0x40+move_num);//T
770 3 write_dr();
771 3 lcddata=0x20;
772 3 write_data();
773 3 switch(move_num){
774 4 case 0: move_num=15;break;
775 4 case 1: move_num=0;break;
776 4 case 3: move_num=1;break;
777 4 case 4: move_num=3;break;
778 4 case 6: move_num=4;break;
779 4 case 7: move_num=6;break;
780 4 case 9: move_num=7;break;
781 4 case 10: move_num=9;break;
782 4 case 12: move_num=10;break;
783 4 case 13: move_num=12;break;
784 4 case 15: move_num=13;break;
785 4 default: move_num=0;break;
-
-
786 4 }
787 3 datadr=(0x40+move_num);//T
788 3 write_dr();
789 3 lcddata=0xb0;
790 3 write_data();
791 3 }
792 2 else if(((!changetime_flag)&&(checktime_flag))&&(!del_flag)){//查看继
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -