📄 venus.lst
字号:
569 1 P1=0xEF; //扫描第一行
570 1 x=key(0);
571 1 if (x==0xFF)
572 1 {
573 2 P1=0xDF; //扫描第二行
574 2 x=key(4);
575 2 if (x==0xFF)
576 2 {
577 3 P1=0xBF; //扫描第三行
578 3 x=key(8);
579 3 if (x==0xFF)
580 3 {
581 4 P1=0x7F;//扫描第四行
582 4 x=key(12);
583 4 if (x==0xFF) {goto NOKEY;}
584 4 }
585 3 }
586 2 }
587 1 y=x; //暂存按键扫描码
588 1 P1=0xF;
589 1 x=0x0;
590 1 while (x!=0xF) //等待键释放
591 1 {
592 2 x=P1;
593 2 x=x&0xF;
594 2 }
595 1 x=keyname[y]; //转换为键值
596 1 GETKEY:
597 1 return(x);
598 1 }
599 move_data(unsigned char xdata *m,unsigned char xdata *n,unsigned int k)
600 //当前RAM页内数据搬移 m->n
601 {
602 1 while (k>0)
603 1 {
604 2 *n=*m;
605 2 n++;
606 2 m++;
607 2 k--;
608 2 }
C51 COMPILER V7.02b VENUS 01/18/2005 21:43:57 PAGE 11
609 1 }
610 bhsy() //保护试验
611 {
612 1 unsigned char code TABLE02[6]={24,14,25,26,27,0xFF};//VENUS
613 1 unsigned char code TABLE03[5]={29,30,31,32,0xFF};//保护试验
614 1 unsigned char code TABLE04[5]={28,12,33,34,0xFF};//PC主控
615 1 unsigned char code TABLE05[5]={35,36,37,38,0xFF};//结果处理
616 1 unsigned char code TABLE06[5]={17,18,39,40,0xFF};//系统设置
617 1 unsigned int code MENU_ADD[4]={TABLE03,TABLE04,TABLE05,TABLE06};//菜单代码地址数组
618 1 unsigned int code MENU_DIS[4]={0x1e0,0x3c0,0x5a0,0x780};//菜单显示位置数组
619 1 unsigned char i,counter_old,counter_new;
620 1 bit off=1;
621 1 counter_new=0x0;
622 1 counter_old=0x0;
623 1 lcd_cls(lcd_page1);
624 1 lcd_cls(lcd_page2);
625 1 load_data(0,&TABLE02,0,&lcd_buf,6);
626 1 print_c16(0x8);
627 1 //
628 1 load_data(0,&TABLE03,0,&lcd_buf,5);
629 1 print_c16(MENU_DIS[0]);
630 1 load_data(0,&TABLE04,0,&lcd_buf,5);
631 1 print_c16(MENU_DIS[1]);
632 1 load_data(0,&TABLE05,0,&lcd_buf,5);
633 1 print_c16(MENU_DIS[2]);
634 1 load_data(0,&TABLE06,0,&lcd_buf,5);
635 1 print_c16(MENU_DIS[3]);
636 1 while (off)
637 1 {
638 2 load_data(0,MENU_ADD[counter_new],0,&lcd_buf,20);
*** WARNING C214 IN LINE 638 OF VENUS.C: 'Argument': conversion: non-pointer to pointer
639 2 fprint_c16(MENU_DIS[counter_new]);
640 2 counter_old=counter_new;
641 2 i=getchar();
642 2 switch (i)
643 2 {
644 3 case UP:{
645 4 if (counter_new==0) {counter_new=0x3;}
646 4 else {counter_new--;}
647 4 }break;
648 3 case DOWN:{
649 4 if (counter_new<0x3) {counter_new++;}
650 4 else {counter_new=0x0;}
651 4 }break;
652 3 case ESC:{off=0;}break;
653 3 case ENTER:{
654 4 switch (counter_new)
655 4 {
656 5 case 0:{;}break;
657 5 case 1:{;}break;
658 5 case 2:{;}break;
659 5 case 3:{;}break;
660 5 }
661 4 }break;
662 3 }
663 2 load_data(0,MENU_ADD[counter_old],0,&lcd_buf,20);
*** WARNING C214 IN LINE 663 OF VENUS.C: 'Argument': conversion: non-pointer to pointer
664 2 print_c16(MENU_DIS[counter_old]);
665 2 }
666 1 }
667 xtcssd() //系统参数设定
668 {
C51 COMPILER V7.02b VENUS 01/18/2005 21:43:57 PAGE 12
669 1 unsigned char code TABLE01[7]={24,14,22,25,26,27,0xFF};//系统参数设定
670 1 unsigned char code TABLE02[5]={29,30,31,32,0xFF};//系统电压
671 1 unsigned char code TABLE03[5]={28,12,33,34,0xFF};//负荷电流
672 1 unsigned char code TABLE04[5]={35,36,37,38,0xFF};//系统频率
673 1 unsigned int code MENU_DIS[3]={0x87,0xc3,0xff};//菜单显示位置数组
674 1 unsigned char xdata xtcs_x[3][9]; //设置数据存放数组
675 1 unsigned int xdata menu_add[3]; //激活块地址数组 menu_add=(MENU_DIS/30)*240+(MENU_DIS%30)
676 1 unsigned char i,counter_old,counter_new;
677 1 bit off=1;
678 1 long y;
679 1 load_data(0,&xtcs_c,0,&xtcs_x,27); //装初始设置数据
*** WARNING C182 IN LINE 679 OF VENUS.C: pointer to different objects
680 1 menu_add[0]=(MENU_DIS[0]/30)*240+(MENU_DIS[0]%30);
681 1 menu_add[1]=(MENU_DIS[1]/30)*240+(MENU_DIS[1]%30);
682 1 menu_add[2]=(MENU_DIS[2]/30)*240+(MENU_DIS[2]%30);
683 1 counter_new=0x0;
684 1 counter_old=0x0;
685 1 lcd_cls(lcd_page1);
686 1 lcd_cls(lcd_page2);
687 1 load_data(0,&TABLE01,0,&lcd_buf,7);
688 1 print_c16(0x8);
689 1 load_data(0,&TABLE02,0,&lcd_buf,5);
690 1 print_c16(0x1e0);
691 1 load_data(0,&TABLE03,0,&lcd_buf,5);
692 1 print_c16(0x3c0);
693 1 load_data(0,&TABLE04,0,&lcd_buf,5);
694 1 print_c16(0x5a0);
695 1 move_data(&xtcs_x[0][0],&lcd_buf,9);
696 1 print_e(MENU_DIS[0]);
697 1 move_data(&xtcs_x[1][0],&lcd_buf,9);
698 1 print_e(MENU_DIS[1]);
699 1 move_data(&xtcs_x[2][0],&lcd_buf,9);
700 1 print_e(MENU_DIS[2]);
701 1 y=d_to_hex(&xtcs_x[0][0]);
702 1 while (off)
703 1 {
704 2 move_data(&xtcs_x[counter_new][0],&lcd_buf,9);
705 2 print_fill(menu_add[counter_new],0xff,0x8,0x9);
706 2 counter_old=counter_new;
707 2 i=getchar();
708 2 switch (i)
709 2 {
710 3 case LEFT:{
711 4 if (counter_new==0) {counter_new=0x2;}
712 4 else {counter_new--;}
713 4 }break;
714 3 case ENTER:
715 3 case RIGHT:{
716 4 if (counter_new<0x2) {counter_new++;}
717 4 else {counter_new=0x0;}
718 4 }break;
719 3 case UP:{
720 4 if (counter_new==0) {counter_new=0x2;}
721 4 else {counter_new--;}
722 4 }break;
723 3 case DOWN:{
724 4 if (counter_new<0x2) {counter_new++;}
725 4 else {counter_new=0x0;}
726 4 }break;
727 3 case ESC:{off=0;}break;
728 3 case START:{
729 4 switch (counter_new)
C51 COMPILER V7.02b VENUS 01/18/2005 21:43:57 PAGE 13
730 4 {
731 5 case 0:{;}break;
732 5 case 1:{;}break;
733 5 case 2:{;}break;
734 5 }
735 4 }break;
736 3 case 0:
737 3 case 1:
738 3 case 2:
739 3 case 3:
740 3 case 4:
741 3 case 5:
742 3 case 6:
743 3 case 7:
744 3 case 8:
745 3 case 9:{
746 4 move_data(&lcd_buf[1],&lcd_buf[0],7); //YIWEI
747 4 lcd_buf[7]=i|0x10;
748 4 move_data(&lcd_buf,&xtcs_x[counter_new][0],8); //SAVE
749 4 print_e(MENU_DIS[counter_new]);
750 4 }break;
751 3 }
752 2 print_fill(menu_add[counter_old],0x00,0x8,0x9);
753 2 }
754 1 }
755 gzsd() //故障设定
756 {
757 1 unsigned char code TABLE01[5]={24,25,26,27,0xFF};//故障设定
758 1 unsigned char code TABLE02[15]={29,30,0xfe,0xfe,0xfe,29,30,0xfe,0xfe,0xfe,0xfe,31,32,0xFF};//系统
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -