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