📄 mmm.lst
字号:
689 2 SerBuffer[2] = 0;
690 2 break;
691 2
692 2 case 0x82: //red RED
693 2 if ( SerBuffer[3] == 1) {LED_RED = 1;}
694 2 else if( SerBuffer[3] == 0) { LED_RED = 0;};
695 2
696 2 SerBuffer[1] = 0;
697 2 SerBuffer[2] = 0;
698 2 break;
699 2
700 2
701 2 case 0x83: //Transfer Record
702 2 // Status = TransferRecord(SerBuffer[3],SerBuffer[4]);
703 2 // SerBuffer[1] = Status;
704 2 recordint.chrX[1]=SerBuffer[4];
705 2 recordint.chrX[0]=SerBuffer[5];
706 2
707 2 TransferRecord(SerBuffer[3],recordint.intX);
708 2 SerBuffer[1] =0;
709 2 SerBuffer[2] =16;
710 2
711 2
712 2
713 2
714 2 break;
715 2
716 2 case 0x85: //Config FeeRate
717 2 for(i=0;i<8;i++)
718 2 Call_id[i]= SerBuffer[i+4];
719 2 SerBuffer[1] = 0;
720 2 SerBuffer[2] = 0;
721 2 break;
722 2
723 2 case 0x86: //return ocuppy or vacance
724 2
725 2 SerBuffer[2] = 0;
726 2 break;
727 2
728 2 case 0x87: //Set Meter Number
729 2 //MeterNum.chrX[3] = SerBuffer[3];
730 2 // MeterNum.chrX[2] = SerBuffer[4];
731 2 // MeterNum.chrX[1] = SerBuffer[5];
732 2 // MeterNum.chrX[0] = SerBuffer[6];
733 2 SetPosNum(&SerBuffer[3]); //add
C51 COMPILER V7.05 MMM 04/11/2005 02:18:28 PAGE 13
734 2 SerBuffer[1] = 0;
735 2 SerBuffer[2] = 0;
736 2 break;
737 2 case 0x90:
738 2 SerBuffer[1] = 0;
739 2 SerBuffer[2] = 0;
740 2 break;
741 2 case 0x91:
742 2 SerBuffer[1] = 0;
743 2 SerBuffer[2] = 0;
744 2 break;
745 2 case 0x92:
746 2 SerBuffer[1] = 0;
747 2 SerBuffer[2] = 0;
748 2
749 2 break;
750 2 case 0x93:
751 2 SerBuffer[1] = 0;
752 2 SerBuffer[2] = 0;
753 2 break;
754 2
755 2
756 2 default:
757 2 SerBuffer[1] = 250; //command error
758 2 SerBuffer[2] = 0;
759 2 break;
760 2 };
761 1
762 1 }
763 /********************************************************************8*/
764 void Check_call(void)
765 {
766 1 unsigned char idata i,tt;
767 1 for(i=0;i<8;i++)
768 1 {
769 2 if((Call_id[i]>0)&&(Call_id[i]<201))
770 2 {
771 3 tt=Find(Call_id[i],1);
772 3 if(!tt)Find(Call_id[i],1);
773 3 }
774 2 }
775 1 }
776 //**************************************************************************
777 void main(void)
778 {
779 1 unsigned int xx=0;//,bcc;
780 1
781 1 unsigned char idata i=0,j,ttt,uuu;
782 1 unsigned long idata yyy=0;
783 1
784 1 TX_EN=0;
785 1 /* SerBuffer[0]=0x01;
786 1 SerBuffer[1]=0x92;
787 1 SerBuffer[2]=0x0;
788 1 bcc=cal_crc3964(SerBuffer, 3);*/
789 1
790 1
791 1 rest_delay=0;
792 1 En485 = RECV;
793 1 //Delay100ms(1);
794 1 TX_EN=1;
795 1 init_com();
C51 COMPILER V7.05 MMM 04/11/2005 02:18:28 PAGE 14
796 1 InitREG();
797 1 UartInit();
798 1 Test_led=!Test_led;
799 1 Delay100ms(1);
800 1 Comm_Off();
801 1 PWR_UP=1;
802 1 Test_led=!Test_led;
803 1 EA=1;
804 1 Init_X25045(0x00);
805 1 /* ByteWrite_Check (22,0X34);
806 1 if( ByteRead_Check (22)==0x34)//测试25045
807 1 { Test_led=!Test_led;
808 1 Delay100ms(10);
809 1 Test_led=!Test_led;
810 1 }*/
811 1
812 1 if((ByteRead_Check(20)==0x00)||(ByteRead_Check(20)==0xff))ADDR=0XD2;
813 1 else
814 1 ADDR=ByteRead_Check(20);
815 1 // ADDR=0xd2;
816 1 if(ADDR%2)
817 1 {
818 2 CS=0;
819 2 }
820 1 else
821 1 {
822 2 CS=1;
823 2 }
824 1 CS=1;
825 1 for(i=0;i<4;i++)//clear
826 1 {
827 2 for(j=0;j<16;j++)
828 2 RemainRec[i][j]=0;
829 2 }
830 1 Watch_dog();
831 1 for(i=0;i<8;i++)Call_id[i]=0;
832 1
833 1 while(1)
834 1 {
835 2 /*init_com();
836 2 InitREG();
837 2 UartInit(); */
838 2 TX_EN=1;
839 2 Watch_dog();
840 2 if(rest_delay>750)while(1);
841 2
842 2 if (Cmdok) //通讯
843 2 {
844 3
845 3 rest_delay=0;
846 3 Watch_dog();
847 3 Cmdok = FALSE;
848 3 Waring=0; //报警清掉
849 3 RecvReady = FALSE;
850 3 SendReady = FALSE;
851 3 cmd_execution();
852 3 SendReady = TRUE ; //发起始字
853 3 TI = 1;
854 3
855 3 }
856 2
857 2 for(i=1;i<201;i++)
C51 COMPILER V7.05 MMM 04/11/2005 02:18:28 PAGE 15
858 2 {
859 3 if((i==1)||(i==150)||(i==50)||(i==100))Check_call();
860 3 if(rest_delay>750)while(1);
861 3 Watch_dog();
862 3 if (Cmdok) //通讯
863 3 {
864 4
865 4
866 4 rest_delay=0;
867 4 Cmdok = FALSE;
868 4 RecvReady = FALSE;
869 4 SendReady = FALSE;
870 4 cmd_execution();
871 4 SendReady = TRUE ; //发起始字
872 4 TI = 1;
873 4 Test_led=!Test_led;
874 4 }
875 3 Watch_dog();
876 3 //ttt=Find(i);
877 3 ttt=0;
878 3 if(ttt==0)
879 3 {
880 4
881 4
882 4 ttt=Find(i,0);
883 4
884 4 if(ttt)
885 4 {
886 5 Card_id[i]=4;//循环监测的次数
887 5 if((i%4)==0)
888 5 {
889 6 if(ttt==0x01)
890 6 {
891 7 uuu=RemainRec[i/64][(i%64)/4];
892 7 uuu=uuu|0x01;
893 7 uuu=uuu&0xfd;
894 7 RemainRec[i/64][(i%64)/4]=uuu;
895 7 }
896 6 if(ttt==0x02)
897 6 {
898 7 uuu=RemainRec[i/64][(i%64)/4];
899 7 uuu=uuu|0x02;
900 7 uuu=uuu&0xfe;
901 7 RemainRec[i/64][(i%64)/4]=uuu;
902 7 }
903 6 }
904 5 if((i%4)==1)
905 5 {
906 6 if(ttt==0x01)
907 6 {
908 7 uuu=RemainRec[i/64][(i%64)/4];
909 7 uuu=uuu|0x04;
910 7 uuu=uuu&0xf7;
911 7 RemainRec[i/64][(i%64)/4]=uuu;
912 7 }
913 6 if(ttt==0x02)
914 6 {
915 7 uuu=RemainRec[i/64][(i%64)/4];
916 7 uuu=uuu|0x08;
917 7 uuu=uuu&0xfb;
918 7 RemainRec[i/64][(i%64)/4]=uuu;
919 7 }
C51 COMPILER V7.05 MMM 04/11/2005 02:18:28 PAGE 16
920 6 }
921 5 if((i%4)==2)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -