📄 main.lst
字号:
361 1 uchar GROUP_ST_ANAL,GROUP_ST_NEW;
362 1
363 1 GROUP_ST_NEW = P3>>4; //取P3.5的数据,放置到比较数据的第2位
364 1 GROUP_ST_NEW &=0X02;
C51 COMPILER V8.08 MAIN 08/05/2008 10:21:25 PAGE 7
365 1 GROUP_ST_NEW += P1&0x01; //取P1.0的数据,放置到比较数据的第1位
366 1 GROUP_ST_ANAL=GROUP_ST_NEW^Read_LowST;
367 1 Read_LowST = GROUP_ST_NEW;
368 1
369 1 for(i=3;i<5;i++) //i=3,表示P1.0, i=4,表示P3.5
370 1 { //数据的第4位 数据的第5位
371 2 if( GROUP_ST_ANAL & 0x01 )
372 2 {
373 3 CHECK_Reg[i] = EXT_SCAN_ON;
374 3 if( EXT_SCAN_PRI )
375 3 CHECK_Reg[i]++;
376 3 else
377 3 goto NO_PRI;
378 3 }
379 2 else
380 2 {
381 3 if( CHECK_Reg[i] >EXT_SCAN_ON)
382 3 {
383 4 if( CHECK_Reg[i] >EXT_SCAN_LEN )
384 4 {
385 5 NO_PRI: if( (GROUP_ST_NEW&0X01)==0)
386 5 SYSPINSTA |=1<<(i+1); //由移i位后构成新数据
387 5 CHECK_Reg[i] = EXT_SCAN_OFF;
388 5 }
389 4 else
390 4 {
391 5 CHECK_Reg[i]++;
392 5 }
393 4 }
394 3 else
395 3 {
396 4 CHECK_Reg[i] = EXT_SCAN_OFF;
397 4 }
398 3 }
399 2 GROUP_ST_ANAL = GROUP_ST_ANAL >>1;
400 2 GROUP_ST_NEW = GROUP_ST_NEW >>1;
401 2 }
402 1 }
403
404 /******************************************************************************
405 subroutine name: TimerCounterJudge
406 input variable: /
407 output variable: /
408 description: 系统的定时器函数
409 ******************************************************************************/
410 void TimerCounterJudge(void)
411 {
412 1 uchar pinNO;
413 1
414 1 for(pinNO=0;pinNO<8;pinNO++)
415 1 {
416 2 if(SYSpin[pinNO].delay==0)
417 2 {
418 3 if((SYSpin[pinNO].counter<250)&&(SYSpin[pinNO].counter>1))
419 3 {
420 4 SYSpin[pinNO].counter--;
421 4 }
422 3 else if(SYSpin[pinNO].counter==1)
423 3 {
424 4 SYSpin[pinNO].counter--;
425 4 SYSpin[pinNO].st =~SYSpin[pinNO].st;
426 4 SYSpin[pinNO].st &=0X01;
C51 COMPILER V8.08 MAIN 08/05/2008 10:21:25 PAGE 8
427 4 }
428 3 else if(SYSpin[pinNO].counter==0)
429 3 {
430 4 continue;
431 4 }
432 3 switch(pinNO)
433 3 {
434 4 case 1:
435 4 if(SYSpin[pinNO].st&0x01)
436 4 pinnop11 = 1;
437 4 else
438 4 pinnop11 = 0;
439 4 break;
440 4 case 2:
441 4 if(SYSpin[pinNO].st&0x01)
442 4 pinnop12 = 1;
443 4 else
444 4 pinnop12 = 0;
445 4 break;
446 4 case 3:
447 4 if(SYSpin[pinNO].st&0x01)
448 4 pinnop13 = 1;
449 4 else
450 4 pinnop13 = 0;
451 4 break;
452 4 case 4:
453 4 if(SYSpin[pinNO].st&0x01)
454 4 pinnop14 = 1;
455 4 else
456 4 pinnop14 = 0;
457 4 break;
458 4 case 5:
459 4 if(SYSpin[pinNO].st&0x01)
460 4 pinnop15 = 1;
461 4 else
462 4 pinnop15 = 0;
463 4 break;
464 4 case 6:
465 4 if(SYSpin[pinNO].st&0x01)
466 4 pinnop16 = 1;
467 4 else
468 4 pinnop16 = 0;
469 4 break;
470 4 case 7:
471 4 if(SYSpin[pinNO].st&0x01)
472 4 pinnop17 = 1;
473 4 else
474 4 pinnop17 = 0;
475 4 break;
476 4 case 0:
477 4 if(SYSpin[pinNO].st&0x01)
478 4 pinnop37 = 1;
479 4 else
480 4 pinnop37 = 0;
481 4 break;
482 4 default:
483 4 break;
484 4 }
485 3 }
486 2 else
487 2 {
488 3 SYSpin[pinNO].delay--;
C51 COMPILER V8.08 MAIN 08/05/2008 10:21:25 PAGE 9
489 3 }
490 2 }
491 1 }
492
493 /*****************************************************************************
494 subroutine name: PinCtr
495 input variable: /
496 output variable: /
497 description:将pinS脚置PinST持续时间为Seconds*10ms
498 ****************************************************************************/
499 void PinCtr(uchar pinS,uchar delays,uchar Seconds,uchar PinST)
500 {
501 1 SYSpin[pinS].delay = delays;
502 1 SYSpin[pinS].counter = Seconds;
503 1 SYSpin[pinS].st = PinST;
504 1 }
505
506 /****************************************************************************
507 subroutine name: Timer0Int
508 input variable: /
509 output variable: /
510 description:
511 ***************************************************************************/
512 void Timer0Int(void) interrupt 1
513 {
514 1
515 1 LOAD_TIMER0(TimerH_1ms, TimerL_1ms);
516 1 Counter1ms++;
517 1 if(Counter1ms <10)
518 1 return;
519 1 Counter1ms = 0;
520 1 Counter10ms++;
521 1 Flag_10ms = 1;
522 1 if(Counter10ms <10)
523 1 return;
524 1 Counter10ms = 0;
525 1 Flag_100ms = 1;
526 1 }
527
528
529
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1306 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 64 4
IDATA SIZE = ---- ----
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -