?? try.lst
字號:
C51 COMPILER V8.02 TRY 07/16/2008 13:32:05 PAGE 3
118 1 TMOD = 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
119 1 TH1=TL1=0xfa; /* TH1: reload value for 4800 baud @ 11.059MHz */
120 1 TR1 = 1; /* TR1: timer 1 run */
121 1 Init_Lcd12864(); //初始化LCD
122 1 ResetCursor(0,1);
123 1 printf("GPS Monitor V1.2");
124 1 ClearAS();
125 1 IE=0x90; //開總中斷、串口中斷
126 1 }
127
128 //串口接收中斷
129 void uart(void) interrupt 4
130 {
131 1 unsigned char tmp;
132 1 if(RI){
133 2 tmp=SBUF;
134 2 switch(tmp)
135 2 {
136 3 case '$':
137 3 cmd_number=0; //命令類型清空
138 3 mode=1; //接收命令模式
139 3 byte_count=0; //接收位數清空
140 3 break;
141 3 case ',':
142 3 seg_count++; //逗號計數加1
143 3 byte_count=0;
144 3 break;
145 3 case '*':
146 3 mode=0;
147 3 buf_full=1;
148 3 break;
149 3 default:
150 3 if(mode==1){
151 4 //命令種類判斷
152 4 cmd[byte_count]=tmp; //接收字符放入類型緩存
153 4 if(byte_count>=4){ //如果類型數據接收完畢,判斷類型
154 5 if(cmd[0]=='G'){
155 6 if(cmd[1]=='P'){
156 7 if(cmd[2]=='R'){
157 8 if(cmd[3]=='M'){
158 9 if(cmd[4]=='C'){
159 10 cmd_number=1;
160 10 mode=2;
161 10 seg_count=0;
162 10 byte_count=0;
163 10 }
164 9 }
165 8
166 8
167 8 }
168 7 }
169 6 }
170 5 }
171 4 }
172 3 else if((mode==2)&cmd_number){
173 4 //接收數據處理 GPGGA,132920.487,,n,,w,0,00,,,M,0.0,M,,0000*56
174 4 //$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598, ,*10
175 4 //$GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M, , , ,0000*18
176 4 switch(seg_count){
177 5 case 1:
178 5 if(byte_count<6){ //時間處理
179 6 time[byte_count]=tmp;
C51 COMPILER V8.02 TRY 07/16/2008 13:32:05 PAGE 4
180 6 }
181 5 break;
182 5 case 3: //緯
-度處理
183 5 if(byte_count<9){
184 6 WD[byte_count]=tmp;
185 6 }
186 5 break;
187 5 case 4: //緯
-度方向處理
188 5 if(byte_count<1){
189 6 WD_a=tmp;
190 6 }
191 5 break;
192 5 case 5: //經
-度處理
193 5 if(byte_count<10){
194 6 JD[byte_count]=tmp;
195 6 }
196 5 break;
197 5 case 6: //經
-度方向處理
198 5 if(byte_count<1){
199 6 JD_a=tmp;
200 6 }
201 5 break;
202 5 case 7: //speed
203 5 if(byte_count<4){
204 6 speed[byte_count]=tmp;
205 6 }
206 5 break;
207 5 case 9: //date
208 5 if(byte_count<6){
209 6 date[byte_count]=tmp;
210 6 }
211 5 break;
212 5 }
213 4
214 4 }
215 3
216 3 byte_count++; //接收數位加1
217 3 break;
218 3 }
219 2 }
220 1 RI=0;
221 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 865 ----
CONSTANT SIZE = 51 ----
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 + -