📄 main.lst
字号:
894 7 STORE_DATAy1[YX1_LEN].xianhao=XIANHAO;
895 7 STORE_DATAy1[YX1_LEN++].direct=DIRECTOR;
896 7 }
897 6 if(YUE_XIAN==1)
898 6 {
899 7 if(YUE_XIAN_rank2==0)
900 7 { FMQ_CNT=4;FMQ_CNTcai=3;BUZZEN=1;BUZZEN=1;}
901 7 PRINT_DATA.AH=accH;
902 7 PRINT_DATA.AV=accV;
903 7 PRINT_DATA.SPEED=GPS_DATA.speed;
904 7 PRINT_DATA.mileageH=mileageH;
905 7 PRINT_DATA.mileageL=mileageL/10;
906 7 PRINT_DATA.XIANHAO=XIANHAO;
907 7 PRINT_DATA.RPCOUNT=0;
908 7 if(STORE_DATAb[NOW_BCODE].gap>0xfff0)
909 7 PRINT_DATA.RPCOUNT=(unsigned char)(STORE_DATAb[NOW_BCODE].gap&0x000f);
910 7 PRINT_DATA.year=GPS_DATA.year;
911 7 PRINT_DATA.month=GPS_DATA.month;
912 7 PRINT_DATA.date=GPS_DATA.date;;
913 7 PRINT_DATA.hour=GPS_DATA.hour;
914 7 PRINT_DATA.min=GPS_DATA.min;
C51 COMPILER V6.20c MAIN 10/09/2005 11:31:22 PAGE 16
915 7 PRINT_DATA.direct=DIRECTOR;
916 7 if(YUE_XIAN_rank2)
917 7 PRINT_DATA.rank=2;
918 7 else
919 7 PRINT_DATA.rank=3;
920 7 YUE_XIAN_rank2=0;
921 7 if(rank2_ENABLE==1||PRINT_DATA.rank==3)
922 7 PRINT_DATASEND=1;
923 7 if(YUE_XIAN_rank2==0)
924 7 {
925 8 STORE_DATAy3[YX3_LEN].mileage=mileageH*1000+mileageL/10;
926 8 STORE_DATAy3[YX3_LEN].speed=GPS_DATA.speed;
927 8 STORE_DATAy3[YX3_LEN].accelerath=accH;
928 8 STORE_DATAy3[YX3_LEN].acceleratv=accV;
929 8 STORE_DATAy3[YX3_LEN].date=GPS_DATA.date;
930 8 STORE_DATAy3[YX3_LEN].month=GPS_DATA.month;
931 8 STORE_DATAy3[YX3_LEN].year=GPS_DATA.year;
932 8 STORE_DATAy3[YX3_LEN].hour=GPS_DATA.hour;
933 8 STORE_DATAy3[YX3_LEN].min=GPS_DATA.min;
934 8 STORE_DATAy3[YX3_LEN].xianhao=XIANHAO;
935 8 STORE_DATAy3[YX3_LEN++].direct=DIRECTOR;
936 8 }
937 7 else
938 7 {
939 8 STORE_DATAy2[YX2_LEN].mileage=mileageH*1000+mileageL/10;
940 8 STORE_DATAy2[YX2_LEN].speed=GPS_DATA.speed;
941 8 STORE_DATAy2[YX2_LEN].accelerath=accH;
942 8 STORE_DATAy2[YX2_LEN].acceleratv=accV;
943 8 STORE_DATAy2[YX2_LEN].date=GPS_DATA.date;
944 8 STORE_DATAy2[YX2_LEN].month=GPS_DATA.month;
945 8 STORE_DATAy2[YX2_LEN].year=GPS_DATA.year;
946 8 STORE_DATAy2[YX2_LEN].hour=GPS_DATA.hour;
947 8 STORE_DATAy2[YX2_LEN].min=GPS_DATA.min;
948 8 STORE_DATAy2[YX2_LEN].xianhao=XIANHAO;
949 8 STORE_DATAy2[YX2_LEN++].direct=DIRECTOR;
950 8 }
951 7 Lastmile=mileageL/10;
952 7 if(YX3_LEN>99)
953 7 YX3_DATA=1;
954 7 if(YX2_LEN>99)
955 7 YX2_DATA=1;
956 7 if(YX1_LEN>99)
957 7 YX1_DATA=1;
958 7 SEND_LCD=1;
959 7 }
960 6 }
961 5 }
962 4 }
963 3 if(ADC[1]==0x03)
964 3 {
965 4 LCD_DATA.voltage=ADC[2]+ADC[3]*256;;
966 4 AD_MCU=1;
967 4 if(START_RUN==0)
968 4 SEND_LCD=1;
969 4 }
970 3 }
971 2 }
972 1 intT2_exit:
973 1 TH2=0xff;
974 1 TL2=0xff;
975 1 TF2=0;
976 1 EA=1;
C51 COMPILER V6.20c MAIN 10/09/2005 11:31:22 PAGE 17
977 1 }
978 void int1_dealing( ) interrupt 2
979 {
980 1 unsigned char i=0;
981 1 unsigned int m=0;
982 1 unsigned char checksum=0;
983 1 unsigned char *mp;
984 1 DDBUF[0]=RGPS_ADDR;
985 1 EA=0;
986 1 if(DDBUF[0]==0xa5)
987 1 {
988 2 for(i=1;i<24;i++)
989 2 {
990 3 while((!IE1)&&(m++<5000))
991 3 Watch_Dog=~Watch_Dog;
992 3 DDBUF[i]=RGPS_ADDR;
993 3 IE1=0;
994 3 if(m>=5000)
995 3 goto int1_exit;
996 3 }
997 2
998 2 //---------------------------- calculate checksum
999 2 i=0;
1000 2 mp=(unsigned char *)&GPS_DATA;
1001 2 for(i=0;i<24;i++)
1002 2 *mp++=DDBUF[i];
1003 2 mp=(unsigned char *)&GPS_DATA;
1004 2 mp++;
1005 2 for(i=1;i<24;i++)
1006 2 checksum=checksum+(*mp++);
1007 2 if(checksum==0)
1008 2 {
1009 3
1010 3 GPS_MCU=1;
1011 3
1012 3 if((GPS_DATA.state&0xf0)==0xa0)
1013 3 {
1014 4
1015 4 ALTERNATE=1;
1016 4 LCD_DATA.gps=0x22;
1017 4 if(GPS_DATA.flag==0xaa)
1018 4 BIG_LON=1;
1019 4 else
1020 4 BIG_LON=0;
1021 4 }
1022 3 else
1023 3 {
1024 4 LCD_DATA.gps=0x0;
1025 4 GPS_DATA.speed=OLD_speed;
1026 4 GPS_DATA.dtmiles=OLD_dtmiles;
1027 4 SEND_LCD=1;
1028 4 }
1029 3 }
1030 2 else
1031 2 {
1032 3 GPS_DATA.state=(GPS_DATA.state&0x0f);
1033 3 LCD_DATA.gps=0x0;
1034 3 GPS_DATA.speed=OLD_speed;
1035 3 GPS_DATA.dtmiles=OLD_dtmiles;
1036 3
1037 3 }
1038 2 //----------------------------over
C51 COMPILER V6.20c MAIN 10/09/2005 11:31:22 PAGE 18
1039 2 }
1040 1 int1_exit:
1041 1 EA=1;
1042 1 }
1043
1044 void main(void)
1045 { unsigned char xdata Wtest[16]={0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee
-,0xff,0x00};
1046 1 unsigned char xdata Rtest[16]={0x00};
1047 1 unsigned int i=0;
1048 1 unsigned char m=0;
1049 1 unsigned char n=0;
1050 1 unsigned char *mp;
1051 1 BUZZEN=0;
1052 1 EA=0;
1053 1
1054 1
1055 1
1056 1 //-------------------------------------------------
1057 1 IT1=1;//外部中断1触发方式控制位,=1为下降沿触发;
1058 1 EX1=0;
1059 1 IE1=0;
1060 1 IT0=0;//外部中断0触发方式控制位,=1为下降沿触发;
1061 1 EX0=1;
1062 1 IE0=0;
1063 1 //-----------------------------------------------------
1064 1 //---------------------------------------------------
1065 1 TMOD|=0x05; //GATE=0;C/T=1;M1M0=01;
1066 1 TCON|=0x10;//TF1=0;TR1=0;TF0=0;TR0=1;IE1=0;IT1=0;IE0=0;IT0=0;
1067 1 TH0=0xff;
1068 1 TL0=0xff; // set T2 value
1069 1 ET0=1; //int permit bit
1070 1 PT0=0;
1071 1
1072 1 //--------------------------------------------------
1073 1 // confingure T2 =counter;
1074 1 //--------------------------------------------------
1075 1 T2MOD|=0x01; //0bit:counter/timer confinguration bit,=1 is counter//
1076 1 T2CON|=0x0e;//TF2=0;EXF2=0;RCLK=0;TCLK=0;EXEN2=0;TR2=1;C/T2=1;CP/RL2=0
1077 1 TH2=0xff;
1078 1 TL2=0xff; // set T2 value
1079 1 ET2=0; //int permit bit
1080 1 TF2=0;
1081 1 EA=1;
1082 1 Init_COMM( );
1083 1 //---------------------------------------------------
1084 1 // T2 confingure over
1085 1 //----------------------------------------------------
1086 1
1087 1 Watch_Dog=~Watch_Dog;
1088 1 DelayMs(254);
1089 1 bXXGFlags.bits.SLAVE_IS_ATTACHED=0;
1090 1 bXXGFlags.bits.bUartInDone=0;
1091 1 SL811BufWrite(0x40,Wtest,16);
1092 1 SL811BufRead(0x40,Rtest,16);
1093 1
1094 1 for(i=0;i<64;i++)
1095 1
1096 1 DBUF[i]=0;
1097 1 Watch_Dog=~Watch_Dog;
1098 1 SL811_CS=0;
1099 1 SL811_Init();
C51 COMPILER V6.20c MAIN 10/09/2005 11:31:22 PAGE 19
1100 1 MCU_LED2=1;
1101 1 //ENABLE_INTERRUPTS;//
1102 1 Watch_Dog=~Watch_Dog;
1103 1 bXXGFlags.bits.bTimer=1;
1104 1 TEST_HARD=1;
1105 1 //rank2_ENABLE=1;
1106 1 bXXGFlags.bits.SLAVE_FOUND=0;
1107 1 EA=1;
1108 1 while(TRUE)
1109 1 {
1110 2
1111 2 Watch_Dog=~Watch_Dog;
1112 2 if (bXXGFlags.bits.bTimer){
1113 3 DISABLE_INTERRUPTS;
1114 3 bXXGFlags.bits.bTimer = 0;
1115 3 ENABLE_INTERRUPTS;
1116 3 Watch_Dog=~Watch_Dog;
1117 3 check_key_LED();
1118 3 Watch_Dog=~Watch_Dog;
1119 3 }
1120 2
1121 2 if(bXXGFlags.bits.SLAVE_FOUND){
1122 3 DISABLE_INTERRUPTS;
1123 3 EX1=0;
1124 3 ET2=0;
1125 3 bXXGFlags.bits.SLAVE_FOUND=FALSE;
1126 3 Watch_Dog=~Watch_Dog;
1127 3 DelayMs(250);
1128 3 Watch_Dog=~Watch_Dog;
1129 3 if(EnumUsbDev(1)) // enumerate USB device, assign USB address = #1
1130 3 {
1131 4 bXXGFlags.bits.SLAVE_ENUMERATED = TRUE;
1132 4 Watch_Dog=~Watch_Dog; // Set slave USB device enumerated flag
1133 4 //MCU_LED0=0;
1134 4 }
1135 3 ENABLE_INTERRUPTS;
1136 3 }
1137 2 if(bXXGFlags.bits.SLAVE_REMOVED){
1138 3 MCU_LED2=1;//GUAN ZHISHIDENG
1139 3 DISABLE_INTERRUPTS;
1140 3 bXXGFlags.bits.SLAVE_REMOVED=FALSE;
1141 3 bXXGFlags.bits.SLAVE_ENUMERATED = FALSE;
1142 3 bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;
1143 3 ENABLE_INTERRUPTS;
1144 3 }
1145 2 if(bXXGFlags.bits.bMassDevice){
1146 3 DISABLE_INTERRUPTS;
1147 3 bXXGFlags.bits.bMassDevice=FALSE;
1148 3 Watch_Dog=~Watch_Dog;
1149 3 if(EnumMassDev())
1150 3 {
1151 4 bXXGFlags.bits.SLAVE_IS_ATTACHED = TRUE;
1152 4 EX1=1;
1153 4 ET2=1;
1154 4 Watch_Dog=~Watch_Dog;
1155 4 }
1156 3 else
1157 3 {
1158 4 bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;
1159 4 }
1160 3 ENABLE_INTERRUPTS;
1161 3 }
C51 COMPILER V6.20c MAIN 10/09/2005 11:31:22 PAGE 20
1162 2
1163 2 //-----------------------------------------------------custom program
1164 2 //U盘中文件的组织格式:
1165 2 //一条线路形成一个文件
1166 2 //采标文件Dbiao从第0簇开始存放,存储空间为(22886*10+512)/1024=224K=0x38000;第7簇
1167 2 //开始的512个字节为索引表,每个索引文件的格式为:线号、起始里程、上下行、起始地址、记录组数、保留
1168 2 // 1 4 1 2 2 22 =32
1169 2 //32~512:每快的记录数00为未采标
1170 2 //越限文件Dxian3从第8簇开始存放,存储空间为(22886*10+256)/1024=98K=0x186A0;
1171 2 //开始的256个字节为索引表,每个索引文件的格式为:线号、起始里程、上下行、起始地址、记录组数、保留
1172 2 // 1 3 1 2 2 6 =16
1173 2 //------------------------------------------------------------------------------------------
1174 2
1175 2 if(bXXGFlags.bits.SLAVE_IS_ATTACHED)
1176 2 //-------------------------------------------------
1177 2 {
1178 3
1179 3 Watch_Dog=~Watch_Dog;
1180 3 UDSK_MCU=1;
1181 3 //TIAN_START=0;
1182 3 //MCU_LED2=0;// KAI ZHISHIDENG
1183 3 //CONFIG=1;
1184 3 // CREATE_FILE=1;
1185 3 //OPEN_FILE=1;
1186 3 //FileNumber=24;
1187 3 //XIANCHANGE=1;
1188 3 // NOW_BCODE=8;
1189 3 //BGROUP=1;
1190 3 //DIRECTOR=1;
1191 3 if(GET_MXI)
1192 3 {
1193 4 Watch_Dog=~Watch_Dog;
1194 4 EA=0;
1195 4 MCU_LED2=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -