📄 try.lst
字号:
107 //串口接收中断
108 void uart(void) interrupt 4
109 {
110 1 unsigned char tmp;
111 1 if(RI){
112 2 tmp=SBUF;
113 2 switch(tmp)
114 2 {
115 3 case '$':
116 3 cmd_number=0; //命令类型清空
117 3 mode=1; //接收命令模式
C51 COMPILER V8.02 TRY 07/17/2008 19:14:02 PAGE 3
118 3 byte_count=0; //接收位数清空
119 3 break;
120 3 case ',':
121 3 seg_count++; //逗号计数加1
122 3 byte_count=0;
123 3 break;
124 3 case '*':
125 3 mode=0;
126 3 buf_full=1;
127 3 break;
128 3 default:
129 3 if(mode==1){
130 4 //命令种类判断
131 4 cmd[byte_count]=tmp; //接收字符放入类型缓存
132 4 if(byte_count>=4){ //如果类型数据接收完毕,判断类型
133 5 if(cmd[0]=='G'){
134 6 if(cmd[1]=='P'){
135 7 if(cmd[2]=='R'){
136 8 if(cmd[3]=='M'){
137 9 if(cmd[4]=='C'){
138 10 cmd_number=1;
139 10 mode=2;
140 10 seg_count=0;
141 10 byte_count=0;
142 10 }
143 9 }
144 8
145 8
146 8 }
147 7 }
148 6 }
149 5 }
150 4 }
151 3 else if((mode==2)&cmd_number){
152 4 //接收数据处理 GPGGA,132920.487,,n,,w,0,00,,,M,0.0,M,,0000*56
153 4 //$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598, ,*10
154 4 //$GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M, , , ,0000*18
155 4 switch(seg_count){
156 5 case 1:
157 5 if(byte_count<6){ //时间处理
158 6 time[byte_count]=tmp;
159 6 }
160 5 break;
161 5 case 3: //纬
-度处理
162 5 if(byte_count<9){
163 6 WD[byte_count]=tmp;
164 6 }
165 5 break;
166 5 case 4: //纬
-度方向处理
167 5 if(byte_count<1){
168 6 WD_a=tmp;
169 6 }
170 5 break;
171 5 case 5: //经
-度处理
172 5 if(byte_count<10){
173 6 JD[byte_count]=tmp;
174 6 }
175 5 break;
176 5 case 6: //经
C51 COMPILER V8.02 TRY 07/17/2008 19:14:02 PAGE 4
-度方向处理
177 5 if(byte_count<1){
178 6 JD_a=tmp;
179 6 }
180 5 break;
181 5 case 7: //speed
182 5 if(byte_count<4){
183 6 speed[byte_count]=tmp;
184 6 }
185 5 break;
186 5 // case 9: //date
187 5 // if(byte_count<6){
188 5 // date[byte_count]=tmp;
189 5 // }
190 5 // break;
191 5 }
192 4
193 4 }
194 3
195 3 byte_count++; //接收数位加1
196 3 break;
197 3 }
198 2 }
199 1 RI=0;
200 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 858 ----
CONSTANT SIZE = 55 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 52 7
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 + -