📄 computer2.lst
字号:
245 3 if (Rs_buf[2] == 0xB8) //写日
246 3 {
247 4 MCU_LED = 0;
248 4 delay(10);
249 4 MCU_LED = 1;
250 4 Open_write_bit();
251 4 Write_ds1302(3,Rs_buf[1]);
252 4 Close_write_bit();
253 4 }
254 3 if (Rs_buf[2] == 0xB9) //写月
255 3 {
256 4 MCU_LED = 0;
257 4 delay(10);
258 4 MCU_LED = 1;
259 4 Open_write_bit();
260 4 Write_ds1302(4,Rs_buf[1]);
261 4 Close_write_bit();
262 4 }
263 3 if (Rs_buf[2] == 0xBA) //写年
264 3 {
265 4 MCU_LED = 0;
266 4 delay(10);
267 4 MCU_LED = 1;
268 4 Open_write_bit();
269 4 Write_ds1302(6,Rs_buf[1]);
270 4 Close_write_bit();
271 4 }
272 3 if (Rs_buf[2]== 0xBB) //开视频切换
273 3 {
274 4 Video = False;
275 4 MCU_LED = 0;
276 4 delay(10);
277 4 MCU_LED = 1;
278 4 }
279 3 if (Rs_buf[2]== 0xBC) //关视频切换
280 3 {
281 4 Video = True;
282 4 MCU_LED = 0;
283 4 delay(10);
284 4 MCU_LED = 1;
285 4 }
286 3 if (Rs_buf[2] == 0xBE)
287 3 {
288 4 MCU_LED = 0;
289 4 delay(10);
290 4 MCU_LED = 1;
291 4 TXD_pc(Rs_buf[0]);
292 4 TXD_pc(Rs_buf[1]);
293 4 TXD_pc(Rs_buf[2]);
294 4 TXD_pc(Rs_buf[3]);
295 4 TXD_pc(Rs_buf[4]);
296 4 TXD_pc(Rs_buf[5]);
297 4 Rs_buf[2] = 0;
298 4 }
299 3
300 3 }
301 2
302 2 }
C51 COMPILER V8.05a COMPUTER2 04/25/2008 17:59:14 PAGE 6
303 1 }
304
305
306
307 uchar count;
308 /******************/
309 /*产生输液量的定时*/
310 /******************/
311
312 void Time_0(void) interrupt 1
313 {
314 1
315 1
316 1 TR0 = 0;
317 1 EA = 0;
318 1 TH0 = TH0_T;
319 1 TL0 = TL0_T;
320 1
321 1 if (count>=25)
322 1 {
323 2 count = 0;
324 2 if (!Ack)
325 2 {
326 3 RS485 = True;
327 3 MCU_LED = True;
328 3 Work = False;
329 3 }
330 2 Ack = False;
331 2
332 2 }
333 1 else count++;
334 1 EA = 1;
335 1 TR0 = 1;
336 1 }
337 /*******************************/
338 /***********串口接收************/
339 /*******************************/
340 /*********接收不固定长度********/
341 /*void RS232(void) interrupt 4 using 1
342 {
343 unsigned char Rece_data = SBUF;
344 uchar i;
345 uchar verify = 0;
346
347 EA = False;
348 ES = False;
349 MCU_LED2 = False;
350 count = 0;
351 RI = 0;
352 if (Start_Rxd)
353 {
354 g_cReceNum ++;
355 Rs_buf[g_cReceNum] = Rece_data;
356 if (Rs_buf[1] == g_cReceNum+1)
357 {
358 for (i=0;i<Rs_buf[1]-1;i++)
359 {
360 verify^=Rs_buf[i];
361 }
362 if (verify == Rs_buf[g_cReceNum])
363 {
364 Rs232_Flag = True;
C51 COMPILER V8.05a COMPUTER2 04/25/2008 17:59:14 PAGE 7
365 g_cReceNum = 0;
366 }
367 else
368 {
369 Rs232_Rece_Error = True;
370 g_cReceNum = 0;
371 }
372 Start_Rxd = False;
373 }
374 else
375 {
376 if ((Rs_buf[1]>Rs232_Input_LEN)||(g_cReceNum>Rs232_Input_LEN-1))
377 {
378 g_cReceNum = 0;
379 Rs232_Rece_Error = True;
380 Start_Rxd = False;
381 }
382
383 }
384
385 }
386 else
387 {
388 if (Rece_data == Rx_start_data)
389 {
390 Start_Rxd = True;
391 g_cReceNum = 0;
392 Rs_buf[0] = Rece_data;
393 }
394
395 }
396 MCU_LED2 = True;
397 ES = True;
398 EA = True;
399
400 }
401 /*************接收固定长度****************/
402 /*void RS232(void) interrupt 4
403 {
404 unsigned char Rece_data = SBUF;
405 uchar i;
406 uchar verify = 0;
407
408 EA = False;
409 ES = False;
410 MCU_LED2 = False;
411 count = 0;
412 RI = 0;
413 if (Start_Rxd)
414 {
415 g_cReceNum ++;
416 if ((g_cReceNum<Rs232_Input_LEN) && (g_cReceNum>1)) {
417 Rs_buf[g_cReceNum-1] = Rece_data;
418
419 }
420 else
421 {
422 if (g_cReceNum == Rs232_Input_LEN)
423 {
424 Rs_buf[g_cReceNum-1]= Rece_data;
425 for (i=0;i<Rs232_Input_LEN-1;i++)
426 {
C51 COMPILER V8.05a COMPUTER2 04/25/2008 17:59:14 PAGE 8
427 verify^=Rs_buf[i];
428 }
429 if (verify == Rs_buf[g_cReceNum-1])
430 {
431 Rs232_Flag = True;
432 g_cReceNum = 0;
433 }
434 else
435 {
436 Rs232_Rece_Error = True;
437 g_cReceNum = 0;
438 }
439 }
440 else g_cReceNum = 0;
441 Start_Rxd = False;
442 }
443
444 }
445 else
446 {
447 if (Rece_data == Rx_start_data)
448 {
449 Start_Rxd = True;
450 g_cReceNum = 1;
451 Rs_buf[0] = Rece_data;
452 }
453
454 }
455
456
457
458
459
460 MCU_LED2 = True;
461 ES = True;
462 EA = True;
463
464 }
465 /********************************************/
466 /****接收以一定的数据为结束标志的不定接收****/
467 /********************************************/
468 void RS232(void) interrupt 4
469 {
470 1 unsigned char Rece_data = SBUF;
471 1
472 1 uchar verify = 0;
473 1
474 1 EA = False;
475 1 ES = False;
476 1 MCU_LED2 = False;
477 1 count = 0;
478 1 RI = 0;
479 1 if (Start_Rxd)
480 1 {
481 2 g_cReceNum ++;
482 2 if ((g_cReceNum < Rs232_Input_LEN) && (Rece_data == 0xff)) {
483 3 Rs_buf[g_cReceNum-1] = Rece_data;
484 3 Start_Rxd = False;
485 3 Rs232_Flag = True;
486 3 g_cReceNum = 0;
487 3 goto Rs232_end ;
488 3
C51 COMPILER V8.05a COMPUTER2 04/25/2008 17:59:14 PAGE 9
489 3 }
490 2 if (g_cReceNum<Rs232_Input_LEN) {
491 3 Rs_buf[g_cReceNum-1] = Rece_data;
492 3
493 3 }
494 2 else
495 2 {
496 3
497 3 g_cReceNum = 0;
498 3 Rs232_Rece_Error = True;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -