📄 mmm.lst
字号:
540 3 {
541 4 SendReady = FALSE;
542 4 RecvReady = TRUE;
543 4 RecvState = RECV_STX;
544 4 En485 = RECV;
545 4
546 4 };
547 3 };
C51 COMPILER V7.05 MMM 03/01/2002 11:48:58 PAGE 10
548 2 }
549 1
550 1 TR0=1;
551 1 TH0=0X90;
552 1 TL0=0X95;
553 1 //TR0=1;
554 1 }
555 //**************************************************************
556 unsigned char Find(unsigned char addr)
557 {
558 1 unsigned char i=0;
559 1 TX_EN=1;
560 1 Delay1ms(4);
561 1 // Test_led=!Test_led;
562 1 PutChar1(0x55);
563 1 PutChar1(0xaa);
564 1 PutChar1(addr);
565 1 PutChar1(addr);
566 1 TX_EN=0;
567 1 Comm_On();
568 1 Delay1ms(13);
569 1
570 1 /*while(!rxok)
571 1 {
572 1 Delay1ms(1);
573 1 i++;
574 1 if(i>20)break;
575 1 }*/
576 1 Comm_Off();
577 1 TX_EN=1;
578 1 if(rxok)
579 1 {
580 2 rxok=0;
581 2 if(ring_flg==2)Waring=1;
582 2 return(ring_flg);
583 2 }
584 1 else
585 1 {
586 2 return 0;// return 0;
587 2 }
588 1
589 1 }
590
591 /****************************************************************************
592 * *
593 * Function: TransferRecord *
594 * *
595 * Input: - uchar 1 *
596 * Output: - 0 *
597 * *
598 * Description: *
599 ****************************************************************************/
600 TransferRecord(unsigned char Day , unsigned int i)
601 {
602 1 Day=0;
603 1 SerBuffer[3] = RemainRec[i][0];//.Flg ;
604 1
605 1 SerBuffer[4] = RemainRec[i][1];//ParkingRecord[i].CardID.chrX[3] ;
606 1 SerBuffer[5] =RemainRec[i][2];//ParkingRecord[i].CardID.chrX[2] ;
607 1 SerBuffer[6] =RemainRec[i][3];//ParkingRecord[i].CardID.chrX[1] ;
608 1 SerBuffer[7] =RemainRec[i][4];//ParkingRecord[i].CardID.chrX[0] ;
609 1
C51 COMPILER V7.05 MMM 03/01/2002 11:48:58 PAGE 11
610 1 SerBuffer[8] = RemainRec[i][5];// ParkingRecord[i].BeginTime.hour ;
611 1 SerBuffer[9] =RemainRec[i][6];// ParkingRecord[i].BeginTime.minute ;
612 1 SerBuffer[10]= RemainRec[i][7];// ParkingRecord[i].BeginTime.second ;
613 1
614 1 SerBuffer[11] =RemainRec[i][8]; // ParkingRecord[i].BeginTime.century ;
615 1 SerBuffer[12] =RemainRec[i][9];// ParkingRecord[i].BeginTime.year ;
616 1 SerBuffer[13] =RemainRec[i][10];// ParkingRecord[i].BeginTime.month ;
617 1 SerBuffer[14] =RemainRec[i][11];// ParkingRecord[i].BeginTime.day ;
618 1 SerBuffer[15] =RemainRec[i][12];
619 1 SerBuffer[16] =RemainRec[i][13];
620 1 SerBuffer[17] =RemainRec[i][14];
621 1 SerBuffer[18] =RemainRec[i][15];
622 1 //SerBuffer[14] =RemainRec[i][16];
623 1 }
624 //*************************************************************************
625 void SetPosNum(unsigned char xdata *dat)
626 {
627 1 //ByteWrite_Check (124,dat[0]);
628 1 ByteWrite_Check(20,dat[0]);
629 1 ADDR=dat[0];
630 1
631 1 }
632 /****************************************************************************
633 * cmd_execution(); *
634 * Function: *
635 * *
636 * Input: *
637 * Output: - *
638 * *
639 * Description: *
640 ****************************************************************************/
641 void cmd_execution(void)
642 { unsigned char len ; //Status ;//, adr ;
643 1 //unsigned int e;
644 1 //unsigned char idata size , tt[2];
645 1
646 1 //WatchDog();
647 1 len = SerBuffer[2] ;
648 1 SerBuffer[2] = 0 ;
649 1
650 1 switch ( SerBuffer[1] )
651 1 {
652 2 case 0x80: //Write time
653 2
654 2 SerBuffer[1] = 0;
655 2 SerBuffer[2] = 0;
656 2 break;
657 2 case 0x81: //green LED
658 2 if ( SerBuffer[3] == 1) {LED_GREEN = 1;}
659 2 else if( SerBuffer[3] == 0) { LED_GREEN = 0;};
660 2
661 2 SerBuffer[1] = 0;
662 2 SerBuffer[2] = 0;
663 2 break;
664 2
665 2 case 0x82: //red RED
666 2 if ( SerBuffer[3] == 1) {LED_RED = 1;}
667 2 else if( SerBuffer[3] == 0) { LED_RED = 0;};
668 2
669 2 SerBuffer[1] = 0;
670 2 SerBuffer[2] = 0;
671 2 break;
C51 COMPILER V7.05 MMM 03/01/2002 11:48:58 PAGE 12
672 2
673 2
674 2 case 0x83: //Transfer Record
675 2 // Status = TransferRecord(SerBuffer[3],SerBuffer[4]);
676 2 // SerBuffer[1] = Status;
677 2 recordint.chrX[1]=SerBuffer[4];
678 2 recordint.chrX[0]=SerBuffer[5];
679 2
680 2 TransferRecord(SerBuffer[3],recordint.intX);
681 2 SerBuffer[1] =0;
682 2 SerBuffer[2] =16;
683 2
684 2
685 2
686 2
687 2 break;
688 2
689 2 case 0x85: //Config FeeRate
690 2
691 2 SerBuffer[1] = 0;
692 2 SerBuffer[2] = 0;
693 2 break;
694 2
695 2 case 0x86: //return ocuppy or vacance
696 2
697 2 SerBuffer[2] = 0;
698 2 break;
699 2
700 2 case 0x87: //Set Meter Number
701 2 //MeterNum.chrX[3] = SerBuffer[3];
702 2 // MeterNum.chrX[2] = SerBuffer[4];
703 2 // MeterNum.chrX[1] = SerBuffer[5];
704 2 // MeterNum.chrX[0] = SerBuffer[6];
705 2 SetPosNum(&SerBuffer[3]); //add
706 2 SerBuffer[1] = 0;
707 2 SerBuffer[2] = 0;
708 2 break;
709 2 case 0x90:
710 2 SerBuffer[1] = 0;
711 2 SerBuffer[2] = 0;
712 2 break;
713 2 case 0x91:
714 2 SerBuffer[1] = 0;
715 2 SerBuffer[2] = 0;
716 2 break;
717 2 case 0x92:
718 2 SerBuffer[1] = 0;
719 2 SerBuffer[2] = 0;
720 2 break;
721 2 case 0x93:
722 2 SerBuffer[1] = 0;
723 2 SerBuffer[2] = 0;
724 2 break;
725 2
726 2
727 2 default:
728 2 SerBuffer[1] = 250; //command error
729 2 SerBuffer[2] = 0;
730 2 break;
731 2 };
732 1
733 1 }
C51 COMPILER V7.05 MMM 03/01/2002 11:48:58 PAGE 13
734 //**************************************************************************
735 void main(void)
736 {
737 1 unsigned int xx=0;
738 1
739 1 unsigned char idata i=0,j,ttt,uuu;
740 1 unsigned long idata yyy=0;
741 1
742 1 TX_EN=0;
743 1 Test_led=0;
744 1 Delay100ms(1);
745 1 Test_led=1;
746 1 TX_EN=1;
747 1 init_com();
748 1 InitREG();
749 1 UartInit();
750 1 Delay100ms(1);
751 1 Comm_Off();
752 1 PWR_UP=1;
753 1 Watch_dog();
754 1 EA=1;
755 1 Init_X25045(0x00);
756 1 ByteWrite_Check (22,0X34);
757 1 if( ByteRead_Check (22)==0x34)//测试25045
758 1 { Test_led=!Test_led;
759 2 Delay100ms(10);
760 2 Test_led=!Test_led;
761 2 }
762 1
763 1 if((ByteRead_Check(20)==0x00)||(ByteRead_Check(20)==0xff))ADDR=0XD2;
764 1 else
765 1 ADDR=ByteRead_Check(20);
766 1 // ADDR=0xd2;
767 1 if(ADDR%2)
768 1 {
769 2 CS=0;
770 2 }
771 1 else
772 1 {
773 2 CS=1;
774 2 }
775 1 for(i=0;i<4;i++)//clear
776 1 {
777 2 for(j=0;j<16;j++)
778 2 RemainRec[i][j]=0;
779 2 }
780 1 while(1)
781 1 {
782 2 Watch_dog();
783 2 if (Cmdok) //通讯
784 2 {
785 3 Cmdok = FALSE;
786 3 Waring=0; //报警清掉
787 3 RecvReady = FALSE;
788 3 SendReady = FALSE;
789 3 cmd_execution();
790 3 SendReady = TRUE ; //发起始字
791 3 TI = 1;
792 3
793 3 }
794 2 for(i=1;i<150;i++)
795 2 {
C51 COMPILER V7.05 MMM 03/01/2002 11:48:58 PAGE 14
796 3 Watch_dog();
797 3 if (Cmdok) //通讯
798 3 {
799 4 Cmdok = FALSE;
800 4 RecvReady = FALSE;
801 4 SendReady = FALSE;
802 4 cmd_execution();
803 4 SendReady = TRUE ; //发起始字
804 4 TI = 1;
805 4 Test_led=!Test_led;
806 4 Watch_dog();
807 4 }
808 3 Watch_dog();
809 3 ttt=Find(i);
810 3 Watch_dog();
811 3 if(ttt==0)
812 3 {
813 4 ttt=Find(i);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -