📄 send_recv.lst
字号:
C51 COMPILER V7.06 SEND_RECV 07/07/2008 21:47:22 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SEND_RECV
OBJECT MODULE PLACED IN send_recv.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE send_recv.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /***********************************************/
2
3 #include<reg51.h>
4
5 void port_init(void);
6 extern unsigned char data local_lat[11];//="2446.5211N";
7 extern unsigned char data local_lon[12];//="12100.1536E";
8
9 /*
10 unsigned char data data_buf; //由于中断函数不接收参数,故只能用全局变量
11 unsigned char data check_data[2];
12 unsigned char data check_flag; //检验开始标志
13 unsigned char data check_right; //校验位是否正确标志,1表示正确
14 bit int_flag=0;//中断执行标志
15 */
16
17 void recv_data(void)
18 {
19 1 unsigned char dflag = 0;//记录逗号的次数
20 1 unsigned char data i = 0,j = 0,data_buf;
21 1
22 1 port_init();
23 1 RI = 0;
24 1
25 1 while(1)
26 1 {
27 2 while(!RI)
28 2 {}
29 2 if(SBUF == 'A')
30 2 break;
31 2 RI = 0;
32 2 }
33 1 RI = 0;
34 1
35 1 while(1)
36 1 {
37 2 while(!RI)
38 2 {}
39 2 data_buf = SBUF;
40 2 if(data_buf == '$')
41 2 break;
42 2 RI = 0;
43 2 }
44 1
45 1 /*接收数据 $GPRMC,062321,V,3537.8333,N,13944.6667,E,000.0,000.0,030222,,*0C */
46 1 RI=0;
47 1 do
48 1 {
49 2 while(!RI)
50 2 {}
51 2 data_buf = SBUF;
52 2 if(data_buf == ',') dflag++;
53 2 if(dflag == 3 && data_buf != ',')
54 2 {
55 3 local_lat[i] = data_buf;
C51 COMPILER V7.06 SEND_RECV 07/07/2008 21:47:22 PAGE 2
56 3 i++;
57 3 }
58 2
59 2 if(dflag == 4 && data_buf != ',')
60 2 {
61 3 local_lat[i] = data_buf;
62 3 local_lat[i+1] = '\0'; //以字符串的方式结束
63 3 }
64 2
65 2 if(dflag == 5 && data_buf != ',')
66 2 {
67 3 local_lon[j] = data_buf;
68 3 j++;
69 3 }
70 2
71 2 if(dflag == 6 && data_buf != ',')
72 2 {
73 3 local_lon[j] = data_buf;
74 3 local_lon[j+1] = '\0'; //以字符串的方式结束
75 3 }
76 2 RI = 0;
77 2 }while(data_buf != 'E');
78 1 TR1 = 0;
79 1 }
80
81
82 void port_init(void)
83 {
84 1 TMOD = 0x20;
85 1 PCON = 0; //SMOD=0
86 1 SCON = 0x50; // MODE 1 REN = 1
87 1 TH1 = 0xCC; //600baut 12MHz oscillator frequence,SMOD=0
88 1 TL1 = 0xCC;
89 1 TR1 = 1; //Start timer 1
90 1 }
91
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 177 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -