📄 gy33485.lst
字号:
842 1 Ip_fault_flag = 0;
843 1 UX_fault_flag = 0;
844 1 }
845 void clear(void)
846 {
847 1 uint i,j;
848 1 uchar dis_play[6];
849 1 fbase = 0;
850 1 prefbase = 0;
851 1
852 1 /* UaStartEeprom = 72;
853 1 UbStartEeprom = 96;
854 1 UcStartEeprom = 120;
855 1 IaStartEeprom = 144;
856 1 IcStartEeprom = 168;
857 1 IpStartEeprom = 192;
858 1 */
859 1 UaStartEeprom = 80;
860 1 UbStartEeprom = 200;
861 1 UcStartEeprom = 320;
C51 COMPILER V6.00i GY33485 08/16/2007 20:55:35 PAGE 15
862 1 IaStartEeprom = 440;
863 1 IcStartEeprom = 560;
864 1 IpStartEeprom = 680;
865 1
866 1 for(i=0;i<9;i++)
867 1 disnum[i] = 0;
868 1 wr_s_eeprom(disnum, Num_EEPROM, sizeof(disnum[0]));
869 1
870 1 wr_s_eeprom(disnum+1, 66, sizeof(disnum[1]));
871 1 wr_s_eeprom(disnum+2, 67, sizeof(disnum[2]));
872 1 wr_s_eeprom(disnum+3, 68, sizeof(disnum[3]));
873 1 wr_s_eeprom(disnum+4, 69, sizeof(disnum[4]));
874 1 wr_s_eeprom(disnum+6, 70, sizeof(disnum[6]));
875 1 wr_s_eeprom(disnum+7, 70, sizeof(disnum[7]));
876 1
877 1 for(i=0;i<sizeof(Ua_fault);i++) dis_play[i]=0x0;
878 1 wr_s_eeprom(dis_play, Ua_EEPROM, sizeof(Ua_fault));
879 1
880 1 for(i=0;i<sizeof(Ub_fault);i++) dis_play[i]=0x0;
881 1 wr_s_eeprom(dis_play, Ub_EEPROM, sizeof(Ub_fault));
882 1
883 1 for(i=0;i<sizeof(Uc_fault);i++) dis_play[i]=0x0;
884 1 wr_s_eeprom(dis_play, Uc_EEPROM, sizeof(Uc_fault));
885 1
886 1 for(i=0;i<sizeof(Ia_fault);i++) dis_play[i]=0x0;
887 1 wr_s_eeprom(dis_play, Ia_EEPROM, sizeof(Ia_fault));
888 1
889 1 for(i=0;i<sizeof(Ib_fault);i++) dis_play[i]=0x0;
890 1 wr_s_eeprom(dis_play, Ib_EEPROM, sizeof(Ib_fault));
891 1
892 1 for(i=0;i<sizeof(Ic_fault);i++) dis_play[i]=0x0;
893 1 wr_s_eeprom(dis_play, Ic_EEPROM, sizeof(Ic_fault));
894 1
895 1 for(i=0;i<sizeof(Ip_fault);i++) dis_play[i]=0x0;
896 1 wr_s_eeprom(dis_play, Ip_EEPROM, sizeof(Ip_fault));
897 1
898 1 for(i=0;i<sizeof(UX_fault);i++) dis_play[i]=0x0;
899 1 wr_s_eeprom(dis_play, UX_EEPROM, sizeof(UX_fault));
900 1
901 1
902 1 for(j=0;j<20;j++)
903 1 {
904 2 for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
905 2 wr_s_eeprom(dis_play, UaStartEeprom, sizeof(FaultTime));
906 2 UaStartEeprom +=6;
907 2 }
908 1 UaStartEeprom = 80;
909 1 for(j=0;j<20;j++)
910 1 {
911 2 for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
912 2 wr_s_eeprom(dis_play, UbStartEeprom, sizeof(FaultTime));
913 2 UbStartEeprom +=6;
914 2 }
915 1 UbStartEeprom = 200;
916 1 for(j=0;j<20;j++)
917 1 {
918 2 for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
919 2 wr_s_eeprom(dis_play, UcStartEeprom, sizeof(FaultTime));
920 2 UcStartEeprom +=6;
921 2 }
922 1 UcStartEeprom = 320;
923 1 for(j=0;j<20;j++)
C51 COMPILER V6.00i GY33485 08/16/2007 20:55:35 PAGE 16
924 1 {
925 2 for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
926 2 wr_s_eeprom(dis_play, IaStartEeprom, sizeof(FaultTime));
927 2 IaStartEeprom +=6;
928 2 }
929 1 IaStartEeprom = 440;
930 1 for(j=0;j<20;j++)
931 1 {
932 2 for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
933 2 wr_s_eeprom(dis_play, IcStartEeprom, sizeof(FaultTime));
934 2 IcStartEeprom +=6;
935 2 }
936 1 IcStartEeprom = 560;
937 1 for(j=0;j<20;j++)
938 1 {
939 2 for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
940 2 wr_s_eeprom(dis_play, IpStartEeprom, sizeof(FaultTime));
941 2 IpStartEeprom +=6;
942 2 }
943 1 IpStartEeprom = 680;
944 1 ///////////////////////////////////////////////////////
945 1 Ua_fault.sec = 0;
946 1 Ua_fault.min = 0;
947 1 Ua_fault.hour= 0;
948 1 Ub_fault.sec = 0;
949 1 Ub_fault.min = 0;
950 1 Ub_fault.hour= 0;
951 1 Uc_fault.sec = 0;
952 1 Uc_fault.min = 0;
953 1 Uc_fault.hour= 0;
954 1 Ia_fault.sec = 0;
955 1 Ia_fault.min = 0;
956 1 Ia_fault.hour= 0;
957 1 Ib_fault.sec = 0;
958 1 Ib_fault.min = 0;
959 1 Ib_fault.hour= 0;
960 1 Ic_fault.sec = 0;
961 1 Ic_fault.min = 0;
962 1 Ic_fault.hour= 0;
963 1 Ip_fault.sec = 0;
964 1 Ip_fault.min = 0;
965 1 Ip_fault.hour= 0;
966 1 UX_fault.sec = 0;
967 1 UX_fault.min = 0;
968 1 UX_fault.hour= 0;
969 1
970 1
971 1 Ua_interval_min = 0;
972 1 Ub_interval_min = 0;
973 1 Uc_interval_min = 0;
974 1 Ia_interval_min = 0;
975 1 Ic_interval_min = 0;
976 1 Ip_interval_min = 0;
977 1
978 1
979 1 Init_IC1();
980 1 LCD_WD2(26,0x0F);
981 1 a_stop = 0;
982 1 a_start = 0;
983 1 //TR0 = 0;
984 1 TR2=0;
985 1
C51 COMPILER V6.00i GY33485 08/16/2007 20:55:35 PAGE 17
986 1 IdNum = 0;
987 1
988 1 disnum_flag = 0;
989 1 }
990
991 //*************************eeprom*********************************//
992 void txst(void) //这是发送时钟IC的开始条件
993 {
994 1 SCL = 1;
995 1 SDA = 1;
996 1 delay(DEL10);
997 1 SDA = 0;
998 1 delay(DEL10);
999 1 SCL = 0;
1000 1 }
1001 void txstop(void) //这是发送时钟IC的结束条件
1002 {
1003 1 SDA = 0; // stop writing
1004 1 delay(DEL10);
1005 1 SCL = 1;
1006 1 delay(DEL10);
1007 1 SDA = 1;
1008 1 }
1009 void wrbit(bit b)
1010 {
1011 1 SDA = b;
1012 1 delay(DEL10);
1013 1 SCL = 1;
1014 1 delay(DEL10);
1015 1 SCL = 0;
1016 1 delay(DEL10);
1017 1 }
1018 void wrbyte(uchar c)
1019 {
1020 1 B = c;
1021 1 wrbit(b7);
1022 1 wrbit(b6);
1023 1 wrbit(b5);
1024 1 wrbit(b4);
1025 1 wrbit(b3);
1026 1 wrbit(b2);
1027 1 wrbit(b1);
1028 1 wrbit(b0);
1029 1 }
1030 void wr_s_eeprom(uchar *buf, uint start_address, uchar len)
1031 {
1032 1 uint i,j;
1033 1 EEPROM_Enable = 0;
1034 1 for(i=start_address,j=0;i<start_address+len;i++,j++)
1035 1 {
1036 2 // EA = 0;
1037 2 WriteOneByte(i,buf[j]);
1038 2 // EA = 1;
1039 2 }
1040 1 EEPROM_Enable = 1;
1041 1 KickDog();
1042 1 }
1043 bit rdbit(void)
1044 {
1045 1 SDA = 1; // ready for reading
1046 1 delay(DEL10);
1047 1 SCL = 1;
C51 COMPILER V6.00i GY33485 08/16/2007 20:55:35 PAGE 18
1048 1 delay(DEL10);
1049 1 b0 = SDA;
1050 1 delay(DEL10);
1051 1 SCL = 0;
1052 1 delay(DEL10);
1053 1 return(b0);
1054 1 }
1055 uchar rdbyte(void)
1056 {
1057 1 b7 = rdbit();
1058 1 b6 = rdbit();
1059 1 b5 = rdbit();
1060 1 b4 = rdbit();
1061 1 b3 = rdbit();
1062 1 b2 = rdbit();
1063 1 b1 = rdbit();
1064 1 b0 = rdbit();
1065 1 SDA = 1;
1066 1 delay(DEL10);
1067 1 SCL = 1;
1068 1 delay(DEL10);
1069 1 SCL = 0;
1070 1 delay(DEL10);
1071 1 SDA = 0;
1072 1 delay(DEL10);
1073 1 return(B);
1074 1 }
1075 void rd_s_eeprom(uchar *buf, uint start_address, uchar len)
1076 {
1077 1 uint i, j;
1078 1 EEPROM_Enable = 0;
1079 1 for(i=start_address,j=0;i<start_address+len;i++, j++)
1080 1 {
1081 2 //EA = 0;
1082 2 buf[j]=ReadOneByte(i);
1083 2 //EA = 1;
1084 2 }
1085 1 EEPROM_Enable = 1;
1086 1 }
1087 //////////////////////////////////////?????????????????????????need test
1088 void WriteOneByte(uint address,uchar ch)
1089 {
1090 1 uchar AddrH,AddrL;
1091 1 AddrH = ((address&0x7FF)>>7)&0x0E; //page
1092 1 AddrL = address&0x0FF; //address
1093 1 txst(); // start I2C
1094 1 wrbyte(0xa0|AddrH);
1095 1 while(rdbit()==1); // waiting for the response bit
1096 1 wrbyte(AddrL);
1097 1 while(rdbit()==1);
1098 1 wrbyte(ch);
1099 1 while(rdbit()==1);
1100 1 txstop();
1101 1 delay(DELL10);
1102 1 }
1103 ///////////////////////////////////////
1104 uchar ReadOneByte(uint address)
1105 {
1106 1 uchar uch;
1107 1 uchar AddrH,AddrL;
1108 1 AddrH = ((address&0x7FF)>>7)&0x0E; //page
1109 1 AddrL = address&0x0FF; //address
C51 COMPILER V6.00i GY33485 08/16/2007 20:55:35 PAGE 19
1110 1 txst();
1111 1 wrbyte(0xa0|AddrH); // R/W = 0 for address writing
1112 1 while(rdbit()==1); // waiting for the response bit
1113 1 wrbyte(AddrL);
1114 1 while(rdbit()==1); // waiting for the response bit
1115 1 SDA = 1;
1116 1 SCL = 1;
1117 1 txst();
1118 1 wrbyte(0xa1|AddrH); // R/W = 1 for reading
1119 1 while(rdbit()==1); // waiting for the response bit
1120 1 uch = rdbyte();
1121 1 txstop();
1122 1 return(uch);
1123 1 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -