📄 main.lst
字号:
173 2 {
174 2 IsTxBusy = TRUE;
175 2 SBUF = *(BYTE *)(pTX_Buf + PacketIdx);
176 2 PacketIdx ++;
177 2 }
C51 COMPILER V7.10 MAIN 06/05/2006 11:06:47 PAGE 4
178 2 else
179 2 {
180 2 IsTxBusy = FALSE;
181 2 SBUF0 = 0x55;
182 2 }*/
183 2 }
184 1 }
185
186 void serial1_int(void) interrupt 20 using 2
187 {
188 1 if((SCON1&0x01)==1)
189 1 {
190 2 SCON1 &= 0xFE;
191 2 if(Com1SaveEn)
192 2 {
193 3 Com1RecBuf[Com1RecBufIdx++] = SBUF1;
194 3 if(Com1RecBufIdx==RecBufLen)
195 3 {
196 4 Com1SaveEn = 0;
197 4 Com1RecComplete = 1;
198 4 }
199 3 }
200 2 else
201 2 {
202 3 Com1RecBuf[0] = Com1RecBuf[1];
203 3 Com1RecBuf[1] = SBUF1;
204 3 if(Com1RecBuf[0]==0xEB&&Com1RecBuf[1]==0x90)
205 3 {
206 4 Com1SaveEn = 1;
207 4 Com1RecBufIdx = 2;
208 4 }
209 3 }
210 2 }
211 1 if((SCON1&0x02)==1)
212 1 {
213 2 SCON1 &= 0xFD;
214 2 /* if (PacketIdx < TxPacketLen) // Downlink Packet is unique to 32 Bytes.
215 2 {
216 2 IsTxBusy = TRUE;
217 2 SBUF = *(BYTE *)(pTX_Buf + PacketIdx);
218 2 PacketIdx ++;
219 2 }
220 2 else
221 2 {
222 2 IsTxBusy = FALSE;
223 2 SBUF1 = 0x55;
224 2 }*/
225 2 }
226 1 }
227
228 /*process data received from com0 or com1*/
229 void ComDataProcess(uchar *ComRecDataAdr, uchar *ComSendDataAdr)
230 {
231 1 uchar idata i,temp;
232 1 uchar idata *point;
233 1 uchar idata PlanNum, StageNum, TotalStage;
234 1
235 1 uint idata PageAdr;
236 1 uchar idata Colum, length;
237 1
238 1 point = ComRecDataAdr;
239 1 for(i=0;i<RecBufLen;i++)
C51 COMPILER V7.10 MAIN 06/05/2006 11:06:47 PAGE 5
240 1 {
241 2 ComProcessBuf[i] = *(point+i);
242 2 }
243 1
244 1 temp = ComProcessBuf[2];
245 1 for(i=3;i<RecBufLen-1;i++)
246 1 {
247 2 temp ^= ComProcessBuf[i];
248 2 }
249 1
250 1 if(temp==ComProcessBuf[RecBufLen-1]) /*valid data frame, process data received*/
251 1 {
252 2 switch (ComProcessBuf[2])
253 2 {
254 3 case WritePlans: /*write plans to Flash*/
255 3 RunMode = IsSetMode;
256 3 PlanNum = ComProcessBuf[3];
257 3 TotalStage = ComProcessBuf[4];
258 3 StageNum = ComProcessBuf[5];
259 3 PageAdr = PlanStartAddr + (uint)(PlanNum*10) + (uint)(StageNum/10);
260 3 Colum = (StageNum%10)*25;
261 3 length = 25;
262 3 FlashWE();
263 3 FlashPW(PageAdr, Colum, length, ComProcessBuf+6);
264 3 if(StageNum==0x00)
265 3 {
266 4 PageAdr = PlanStartAddr + (uint)(PlanNum*10);
267 4 Colum = 250;
268 4 length = 1;
269 4 *point = TotalStage;
270 4 FlashPW(PageAdr, Colum, length, point);
271 4 }
272 3 break;
273 3
274 3 case ReadPlans: /*read plans from Flash and send*/
275 3 PlanNum = ComProcessBuf[3];
276 3 StageNum = ComProcessBuf[5];
277 3 PageAdr = PlanStartAddr + (uint)(PlanNum*10) + (uint)(StageNum/10);
278 3 Colum = (StageNum%10)*25;
279 3 length = 25;
280 3 FlashWE();
281 3 FlashRDB(PageAdr, Colum, length, ComSendDataAdr+6);
282 3 for(i=0;i<6;i++)
283 3 {
284 4 *(ComSendDataAdr+i) = *(ComProcessBuf+i);
285 4 }
286 3 temp = *(ComSendDataAdr+2);
287 3 for(i=3;i<RecBufLen-1;i++)
288 3 {
289 4 temp ^= *(ComSendDataAdr+i);
290 4 }
291 3 *(ComSendDataAdr+RecBufLen-1) = temp;
292 3 if(Com0RecComplete)
293 3 {
294 4 TI0 = 1;
295 4 }
296 3 if(Com1RecComplete)
297 3 {
298 4 SCON1 |= 0x02;
299 4 }
300 3 break;
301 3 case WriteFaultTables:
C51 COMPILER V7.10 MAIN 06/05/2006 11:06:47 PAGE 6
302 3 break;
303 3 case ReadFaultTables:
304 3 break;
305 3 case WriteUserInfo:
306 3 break;
307 3 case ReadUserInfo:
308 3 break;
309 3 case WriteHardwareInfo:
310 3 break;
311 3 case ReadHardwareInfo:
312 3 break;
313 3 case WriteRunInfo:
314 3 break;
315 3 case ReadRunInfo:
316 3 break;
317 3 case WriteCalender:
318 3 break;
319 3 case ReadCalender:
320 3 break;
321 3 case DelLog:
322 3 break;
323 3 case ReadLog:
324 3 break;
325 3 case WriteDatetoPlan:
326 3 break;
327 3 case WritePhasetoVehicleDect:
328 3 break;
329 3 default:
330 3 break;
331 3 }
332 2 }
333 1 else /*invalid data frame*/
334 1 {
335 2 }
336 1 }
337
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1839 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 424 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 34
IDATA SIZE = ---- 21
BIT SIZE = 6 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -