📄 gpsdata.lst
字号:
C51 COMPILER V7.06 GPSDATA 05/31/2007 16:03:21 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE GPSDATA
OBJECT MODULE PLACED IN GPSData.OBJ
COMPILER INVOKED BY: C:\Program Files\keilc\C51\BIN\C51.EXE GPSData.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>
2 #include "GPSData.h"
3 //#include<Acm1602*lcd.c>
4 /* 延时t毫秒 */
5 void delay(uint t)
6 {
7 1 uint i;
8 1 while(t--)
9 1 {
10 2 /* 对于12MHz时钟,约延时1ms */
11 2 for (i=0;i<125;i++)
12 2 {}
13 2 }
14 1 }
15
16 /* 串口接收中断 */
17 serial() interrupt 4 using 1
18 {
19 1 RI = 0; // 清除中断标志位
20 1 /* 判断是否收到GPRMC格式语句的第一个字符"$",其数值为0x24,
21 1 收到后开始记录数据,并设置记录标志RecFlag。 */
22 1 if (SBUF == 0x24)
23 1 {
24 2 RecFlag = 1;
25 2 i = 0;
26 2 IGpsLgd = 0; // 经度数据计数变量置0
27 2 NumComa = 0; // 逗号计数变量置0
28 2 }
29 1
30 1 /* 开始处理GPRMC中的数据信息 */
31 1 if (RecFlag == 1)
32 1 {
33 2 if(SBUF == 0x2c)
34 2 NumComa++;
35 2
36 2 /* 第5个逗号之后的字符属于经度数据 */
37 2 if (NumComa == 3)
38 2 {
39 3 StrGpsLgd[IGpsLgd] = SBUF; // 存入字符串StrGps
40 3 P2=SBUF;
41 3 IGpsLgd++;
42 3 }
43 2
44 2 /* 判断是否收到GPRMC格式语句的字符"*",
45 2 其数值为0x2a,收到则结束记录 */
46 2 if (SBUF == 0x2a)
47 2 {
48 3 StrGpsLgd[IGpsLgd] = '\0'; // 字符串的结束符
49 3 RecFlag = 0;
50 3 IGpsLgd = 0; // 经度数据计数变量置0
51 3 NumComa = 0; // 逗号计数变量置0
52 3
53 3 /* 延时半秒钟后重新接收新的GPS定位信息中的经度信息 */
54 3 REN = 0;
55 3 delay(100); // 延时500ms
C51 COMPILER V7.06 GPSDATA 05/31/2007 16:03:21 PAGE 2
56 3 REN = 1;
57 3 }
58 2 }
59 1 }
60
61
62 void main()
63 {
64 1 int i;
65 1 /* 初始化串口 */
66 1 TMOD = 0x20;
67 1 TL1= 0xfd;
68 1 TH1 = 0xfd;
69 1 SCON = 0x40; // 方式1:10位异步收发,波特率由定时器控制。REN=0。
70 1 PCON = 0x00; // SMOD = 0
71 1 IE = 0x90; // EA = 1,ES = 1
72 1 TR1 = 1; // 定时器1启动
73 1 DisableAllOut();
74 1 EnableGPRMC();
75 1 // init();
76 1 StrGpsLgd[9]='z';
77 1 delay(100); // 延时1s
78 1 REN = 1; // REN = 1,开始接收数据
79 1 while(1);
80 1 // { wrtc(0x80);
81 1 // for(i=0;i<10;i++)wrtd(StrGpsLgd[i]);
82 1 // disp("czk",1,0);;
83 1 // }
84 1 }
*** WARNING C280 IN LINE 64 OF GPSDATA.C: 'i': unreferenced local variable
85
86 /* 配置GPS模块禁用所有输出语句 */
87 void DisableAllOut()
88 {
89 1 /* 发送语句:$PGRMO,,2 */
90 1 printf("$PGRMO,,2");
91 1 }
92 /* 配置GPS模块使能$GPRMC输出语句 */
93 void EnableGPRMC()
94 {
95 1 /* 发送语句:$PGRMO,GPRMC,1 */
96 1 printf("$PGRMO,GPRMC,1");
97 1 }
98
99
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 219 ----
CONSTANT SIZE = 25 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 28 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -