📄 gps.lst
字号:
197 4 GPSParaList[4]++;
198 4 putufig(13,16*6,GPSParaList[4],1,0,' ');
199 4 break;
200 4 case 7: //年
201 4 if(GPSParaList[5]==99)
202 4 GPSParaList[5]=0;
203 4 else
204 4 GPSParaList[5]++;
205 4 putufig(12,16*7,GPSParaList[5],2,0,'0');
206 4 break;
207 4 case 8: //月
208 4 if(GPSParaList[6]==12)
209 4 GPSParaList[6]=1;
210 4 else
211 4 GPSParaList[6]++;
212 4 putufig(12,16*8,GPSParaList[6],2,0,'0');
213 4 break;
214 4 case 9: //日
215 4 if(GPSParaList[7]==31)
216 4 GPSParaList[7]=1;
217 4 else
218 4 GPSParaList[7]++;
219 4 putufig(12,16*9,GPSParaList[7],2,0,'0');
220 4 break;
221 4 default:
222 4 break;
223 4 }
224 3 }
225 2
226 2 if(Key[7].pressed==1) //检测到确定键,向DACData中填充数据
227 2 {
228 3 ClearKey();
229 3 Clear(0,240);
230 3 uart_ini(GPSParaList[0]);
231 3 return;
232 3 }
233 2 }//while(1)
234 1 }
235
236 void GPS()
237 {
238 1 char Buf1[256]={"\0"};
239 1 char Buf2[256];
240 1 int N=0;
241 1 unsigned int hour,minute,second;
C51 COMPILER V7.01 GPS 06/30/2007 11:42:52 PAGE 5
242 1 char time[10];
243 1 char date[12];
244 1 char *SendBuf=Buf1;
245 1 char *SaveBuf;
246 1
247 1 GPSSetUp();
248 1 hour=GPSParaList[1];
249 1 minute=GPSParaList[2];
250 1 second=GPSParaList[3];
251 1
252 1 uart_port_ini();
253 1 dprintf(0,16*13,line);
254 1 dprintf(35,224,"退出");
255 1 sprintf(date,"%d%d,%d%d,20%d%d\0",(unsigned int)GPSParaList[7]/10,(unsigned int)GPSParaList[7]%10,\
256 1 (unsigned int)GPSParaList[6]/10,(unsigned int)GPSParaList[6]%10,(unsigned int)GPSParaList[5]/10,(unsigned
- int)GPSParaList[5]%10);
257 1 Myflag=1;
258 1 X=0;
259 1 Y=0;
260 1 F=0;
261 1
262 1 while(1)
263 1 {
264 2 if(CheckKeyF==1) //键盘检测
265 2 {
266 3 CheckKey();
267 3 CheckKeyF=0;
268 3 }
269 2
270 2 if(Myflag==1)
271 2 {
272 3 int i,length,length2;
273 3 unsigned char checksum;
274 3 char AorV;
275 3 Myflag=0;
276 3 Mycounter=counter+40;
277 3
278 3 if(N%2==0)
279 3 {
280 4 SendBuf=Buf1;
281 4 SaveBuf=Buf2;
282 4 }
283 3 else
284 3 {
285 4 SendBuf=Buf2;
286 4 SaveBuf=Buf1;
287 4 }
288 3
289 3 UartSend(SendBuf);
290 3 if(F==1)
291 3 {
292 4 Clear(0,16*13);
293 4 tprintf(0,0,SendBuf);
294 4 }
295 3 else
296 3 tprintf(X,Y,SendBuf);
297 3
298 3 //设置时间
299 3 second++;
300 3 if(second==60)
301 3 {
302 4 second=0;
C51 COMPILER V7.01 GPS 06/30/2007 11:42:52 PAGE 6
303 4 minute++;
304 4 if(minute==60)
305 4 {
306 5 minute=0;
307 5 hour++;
308 5 if(hour==24)
309 5 hour=0;
310 5 }
311 4 }
312 3 sprintf(time,"%d%d%d%d%d%d.%d\0",hour/10,hour%10,minute/10,minute%10,second/10,second%10,(unsigned int)
-GPSParaList[4]);
313 3 //change bank page to BANK2
314 3 PSBANK=0x21;
315 3 //GPGGA:
316 3 sprintf(SaveBuf,"$GPGGA,%s,395%c.%c%c%c%c,N,1161%c.%c%c%c%c,E,%c,%c,4.30,\0",\
317 3 time,CBYTE[latitude+N*5],CBYTE[latitude+N*5+1],CBYTE[latitude+N*5+2],CBYTE[latitude+N*5+3],CBYTE[latit
-ude+N*5+4],\
318 3 CBYTE[longitude+N*5],CBYTE[longitude+N*5+1],CBYTE[longitude+N*5+2],CBYTE[longitude+N*5+3],CBYTE[longit
-ude+N*5+4],\
319 3 CBYTE[flag+N],CBYTE[satllite+N]);
320 3 length=strlen(SaveBuf);
321 3 if(CBYTE[height+N*2]!='0' && CBYTE[height+N*2+1]!='0')
322 3 sprintf(SaveBuf+length,"000%c%c,M,,M,,*\0",CBYTE[height+N*2],CBYTE[height+N*2+1]);
323 3 else
324 3 sprintf(SaveBuf+length,",M,,M,,*\0");
325 3 length=strlen(SaveBuf);
326 3 checksum=SaveBuf[1];
327 3 for(i=1;i<length-2;i++)
328 3 {
329 4 checksum^=SaveBuf[i+1];
330 4 }
331 3 sprintf(SaveBuf+length,"%X%X\r\n\0",(unsigned int)checksum/16,(unsigned int)checksum%16);
332 3
333 3 //GPRMC:
334 3 length=strlen(SaveBuf);
335 3 if(CBYTE[flag+N]=='0')
336 3 AorV='V';
337 3 else
338 3 AorV='A';
339 3 sprintf(SaveBuf+length,"$GPRMC,%s,%c,395%c.%c%c%c%c,N,1161%c.%c%c%c%c,E,00%c%c.%c,%c%c%c,130905,,E*\0",
-\
340 3 time,AorV,CBYTE[latitude+N*5],CBYTE[latitude+N*5+1],CBYTE[latitude+N*5+2],CBYTE[latitude+N*5+3],CBYTE[
-latitude+N*5+4],\
341 3 CBYTE[longitude+N*5],CBYTE[longitude+N*5+1],CBYTE[longitude+N*5+2],CBYTE[longitude+N*5+3],CBYTE[longit
-ude+N*5+4],\
342 3 CBYTE[speed+N*3],CBYTE[speed+N*3+1],CBYTE[speed+N*3+2],CBYTE[angle+N*3],CBYTE[angle+N*3+1],CBYTE[angle
-+N*3+2]);
343 3 length2=strlen(SaveBuf);
344 3 checksum=SaveBuf[length+1];
345 3 for(i=1;i<length2-length-2;i++)
346 3 {
347 4 checksum^=SaveBuf[length+i+1];
348 4 }
349 3 sprintf(SaveBuf+length2,"%X%X\r\n\0",(unsigned int)checksum/16,(unsigned int)checksum%16);
350 3
351 3 //GPZDA:
352 3 length=strlen(SaveBuf);
353 3 sprintf(SaveBuf+length,"$GPZDA,%s,%s,,*\0",time,date);
354 3 length2=strlen(SaveBuf);
355 3 checksum=SaveBuf[length+1];
356 3 for(i=1;i<length2-length-2;i++)
357 3 {
C51 COMPILER V7.01 GPS 06/30/2007 11:42:52 PAGE 7
358 4 checksum^=SaveBuf[length+i+1];
359 4 }
360 3 sprintf(SaveBuf+length2,"%X%X\r\n\0",(unsigned int)checksum/16,(unsigned int)checksum%16);
361 3
362 3 //change back
363 3 PSBANK=0x11;
364 3
365 3 N++;
366 3 if(N==1294)
367 3 N=0;
368 3 }
369 2
370 2 if(Key[7].pressed==1) //退出串口模块
371 2 {
372 3 ClearKey(); //清按键
373 3 Clear(0,240); //清屏幕
374 3 return;
375 3 }
376 2
377 2 }
378 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 4404 ----
CONSTANT SIZE = 639 ----
XDATA SIZE = 8 560
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -