📄 main.lst
字号:
770 2 EA = 1;
771 2 getstr8255();
772 2 myprintf(SAD1,TA_LEFT,72,162,"%s",do8255a);
773 2 myprintf(SAD1,TA_LEFT,72,182,"%s",do8255b);
774 2 myprintf(SAD1,TA_LEFT,72,202,"%s",do8255c);
775 2 break;
776 2 default:
777 2 break;
778 2 }
779 1 }
780 void showselect(unsigned char select,unsigned char fill)
781 {
782 1 if(fill == 0)
783 1 rectangle(SAD2,6+(select/11)*160,2+(select%11)*20,150+(select/11)*160,19+(select%11)*20,0);
784 1 else
785 1 rectangle(SAD2,6+(select/11)*160,2+(select%11)*20,150+(select/11)*160,19+(select%11)*20,1);
786 1 }
787
788 void doinput() reentrant
789 {
790 1 unsigned char h,l;
791 1 switch(buttonselect)
792 1 {
793 2 case 17://RS485out
794 2 if(getstr(216,122,8))
795 2 {
796 3 h = 0;
797 3 while(disstr[h] != 0)
C51 COMPILER V8.08 MAIN 03/18/2008 13:49:06 PAGE 14
798 3 {
799 4 rs485out = disstr[h];
800 4 bout485 = 1;
801 4 RS485 = 0;
802 4 TI = 1;
803 4 OSTimeDly(2);
804 4 h++;
805 4 }
806 3 }
807 2 break;
808 2 case 18://AD667
809 2 if(getstrnumber(216,142,4))
810 2 {
811 3 da667 = (unsigned int)atoi(disstr);
812 3 if(da667>4095)
813 3 da667 = 4095;
814 3 l=da667%16;
815 3 l=l*16;
816 3 h=(unsigned char)(da667/16);
817 3 LDA667=l;
818 3 HDA667=h;
819 3 vda667 = da667;
820 3 vda667 /=409.5;
821 3 }
822 2 break;
823 2 case 19:
824 2 if(getstr(240,162,8))
825 2 {
826 3 tem8255a = 0;
827 3 for(h=0;h<8;h++)
828 3 {
829 4 tem8255a *= 2;
830 4 if(disstr[7-h] == '1')
831 4 tem8255a |= 0x01;
832 4 }
833 3 EA = 0;
834 3 COM8255=0x80;
835 3 A8255 = tem8255a;
836 3 B8255 = tem8255b;
837 3 C8255 = tem8255c;
838 3 EA = 1;
839 3 }
840 2 break;
841 2 case 20:
842 2 if(getstr(240,182,8))
843 2 {
844 3 tem8255b = 0;
845 3 for(h=0;h<8;h++)
846 3 {
847 4 tem8255b *= 2;
848 4 if(disstr[7-h] == '1')
849 4 tem8255b |= 0x01;
850 4 }
851 3 EA = 0;
852 3 COM8255=0x80;
853 3 A8255 = tem8255a;
854 3 B8255 = tem8255b;
855 3 C8255 = tem8255c;
856 3 EA = 1;
857 3 }
858 2 break;
859 2 case 21:
C51 COMPILER V8.08 MAIN 03/18/2008 13:49:06 PAGE 15
860 2 if(getstr(240,202,8))
861 2 {
862 3 tem8255c = 0;
863 3 for(h=0;h<8;h++)
864 3 {
865 4 tem8255c *= 2;
866 4 if(disstr[7-h] == '1')
867 4 tem8255c |= 0x01;
868 4 }
869 3 EA = 0;
870 3 COM8255=0x80;
871 3 A8255 = tem8255a;
872 3 B8255 = tem8255b;
873 3 C8255 = tem8255c;
874 3 EA = 1;
875 3 }
876 2 break;
877 2 default:
878 2 setsysini();
879 2 showmain1();
880 2 break;
881 2 }
882 1 }
883
884 //电磁接触器检测
885 void main1test(void *lcnpdata) reentrant
886 {
887 1 unsigned char curstaut = 0;
888 1
889 1 buttonselect=0;
890 1 lcnpdata = lcnpdata;
891 1 showmain1();
892 1 showselect(buttonselect,1);
893 1 while(1)
894 1 {
895 2 OSSemPend(KeySem,10,&lcnerr);
896 2 if(lcnerr==OS_NO_ERR)
897 2 {
898 3 switch(key)
899 3 {
900 4 case INPUT://系统参数
901 4 doinput();
902 4 showselect(buttonselect,1);
903 4 break;
904 4 case DOWN:
905 4 showselect(buttonselect,0);
906 4 if(buttonselect < 21)
907 4 {
908 5 buttonselect++;
909 5 }
910 4 else
911 4 {
912 5 buttonselect=0;
913 5 }
914 4 showselect(buttonselect,1);
915 4 break;
916 4 case UP:
917 4 showselect(buttonselect,0);
918 4 if(buttonselect > 0)
919 4 buttonselect--;
920 4 else
921 4 buttonselect=21;
C51 COMPILER V8.08 MAIN 03/18/2008 13:49:06 PAGE 16
922 4 showselect(buttonselect,1);
923 4 break;
924 4 case LEFT:
925 4 case RIGHT:
926 4 showselect(buttonselect,0);
927 4 if(buttonselect > 10)
928 4 buttonselect-=11;
929 4 else
930 4 buttonselect+=11;
931 4 showselect(buttonselect,1);
932 4 break;
933 4 default:
934 4 break;
935 4 }
936 3 }
937 2 getcurvault();
938 2 showvaultall();
939 2 if(bSecond)
940 2 {
941 3 bSecond=0;
942 3 myprintf(SAD1,TA_LEFT,216,2, "%5u",count8253[0][0]);
943 3 myprintf(SAD1,TA_LEFT,216,22, "%5u",count8253[1][0]);
944 3 myprintf(SAD1,TA_LEFT,216,42, "%5u",count8253[2][0]);
945 3 myprintf(SAD1,TA_LEFT,216,62, "%5u",count8253[3][0]);
946 3 #if OS_TASK_STAT_EN
myprintf(SAD1,TA_LEFT,295,2,"%3u",(unsigned int)OSCPUUsage);
#endif
949 3 readtimer(disstr,0);
950 3 myprintf(SAD1,TA_LEFT,254,223,disstr);
951 3 }
952 2 }
953 1 }
954
955 void getcurvault() reentrant
956 {
957 1 if(buttonselect>7)
958 1 return;
959 1 getad();
960 1 adtemp[adtemp1] = advaut;
961 1 switch(buttonselect)
962 1 {
963 2 case 1:
964 2 ADNUMBER1=0;
965 2 ADNUMBER2=1;
966 2 ADNUMBER3=1;
967 2 adtemp1=1;
968 2 break;
969 2 case 2:
970 2 ADNUMBER1=1;
971 2 ADNUMBER2=0;
972 2 ADNUMBER3=1;
973 2 adtemp1=2;
974 2 break;
975 2 case 3:
976 2 ADNUMBER1=0;
977 2 ADNUMBER2=0;
978 2 ADNUMBER3=1;
979 2 adtemp1=3;
980 2 break;
981 2 case 4:
982 2 ADNUMBER1=1;
983 2 ADNUMBER2=1;
C51 COMPILER V8.08 MAIN 03/18/2008 13:49:06 PAGE 17
984 2 ADNUMBER3=0;
985 2 adtemp1=4;
986 2 break;
987 2 case 5:
988 2 ADNUMBER1=0;
989 2 ADNUMBER2=1;
990 2 ADNUMBER3=0;
991 2 adtemp1=5;
992 2 break;
993 2 case 6:
994 2 ADNUMBER1=1;
995 2 ADNUMBER2=0;
996 2 ADNUMBER3=0;
997 2 adtemp1=6;
998 2 break;
999 2 case 7:
1000 2 ADNUMBER1=0;
1001 2 ADNUMBER2=0;
1002 2 ADNUMBER3=0;
1003 2 adtemp1=7;
1004 2 break;
1005 2 case 0:
1006 2 ADNUMBER1=1;
1007 2 ADNUMBER2=1;
1008 2 ADNUMBER3=1;
1009 2 adtemp1=0;
1010 2 break;
1011 2 default:
1012 2 break;
1013 2 }
1014 1 result[adtemp1] = adtemp[adtemp1];
1015 1 result[adtemp1] /= 409.5; //10V
1016 1 }
1017
1018 void main (void)
1019 {
1020 1 OSInit();
1021 1 InitTimer2();
1022 1 OSTaskCreate(sys_init, (void *)0, &sys_init_Stk[0],1);
1023 1 OSStart();
1024 1 }
C51 COMPILATION COMPLETE. 1 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -