📄 mmm.lst
字号:
722 2 break;
723 2
724 2 case 0x85: //Config FeeRate
725 2 for(i=0;i<8;i++)
726 2 Call_id[i]= SerBuffer[i+4];
727 2 SerBuffer[1] = 0;
728 2 SerBuffer[2] = 0;
729 2 break;
730 2
731 2 case 0x86: //return ocuppy or vacance
732 2
733 2 SerBuffer[2] = 0;
C51 COMPILER V7.05 MMM 01/30/2003 18:32:34 PAGE 13
734 2 break;
735 2
736 2 case 0x87: //Set Meter Number
737 2 //MeterNum.chrX[3] = SerBuffer[3];
738 2 // MeterNum.chrX[2] = SerBuffer[4];
739 2 // MeterNum.chrX[1] = SerBuffer[5];
740 2 // MeterNum.chrX[0] = SerBuffer[6];
741 2 SetPosNum(&SerBuffer[3]); //add
742 2 SerBuffer[1] = 0;
743 2 SerBuffer[2] = 0;
744 2 break;
745 2 case 0x90:
746 2 SerBuffer[1] = 0;
747 2 SerBuffer[2] = 0;
748 2 break;
749 2 case 0x91:
750 2 SerBuffer[1] = 0;
751 2 SerBuffer[2] = 0;
752 2 break;
753 2 case 0x92:
754 2 SerBuffer[1] = 0;
755 2 SerBuffer[2] = 0;
756 2 break;
757 2 case 0x93:
758 2 SerBuffer[1] = 0;
759 2 SerBuffer[2] = 0;
760 2 break;
761 2
762 2
763 2 default:
764 2 SerBuffer[1] = 250; //command error
765 2 SerBuffer[2] = 0;
766 2 break;
767 2 };
768 1
769 1 }
770 /********************************************************************8*/
771 void Check_call(void)
772 {
773 1 unsigned char idata i,tt;
774 1 for(i=0;i<8;i++)
775 1 {
776 2 if((Call_id[i]>0)&&(Call_id[i]<201))
777 2 {
778 3 tt=Find(Call_id[i],1);
779 3 if(!tt)Find(Call_id[i],1);
780 3 }
781 2 }
782 1 }
783 void voice(unsigned char x)
784 {
785 1 switch(x)
786 1 {
787 2 case 1:
788 2 SOND1=1;
789 2 SOND2=0;
790 2 SOND3=0;
791 2 break;
792 2 case 2:
793 2 SOND1=0;
794 2 SOND2=1;
795 2 SOND3=0;
C51 COMPILER V7.05 MMM 01/30/2003 18:32:34 PAGE 14
796 2 break;
797 2 case 3:
798 2 SOND1=0;
799 2 SOND2=0;
800 2 SOND3=1;
801 2 break;
802 2 default :
803 2 SOND1=0;
804 2 SOND2=0;
805 2 SOND3=0;
806 2 break;
807 2 }
808 1 Delay100ms(150);
809 1 SOND1=0;
810 1 SOND2=0;
811 1 SOND3=0;
812 1 }
813 //*****************************************************************************8
814 bit Ch4_test(void)
815 {
816 1 unsigned char idata i,ms[5];
817 1 unsigned int idata x;
818 1
819 1 switch(ch4state)
820 1 {
821 2 case 0:
822 2 CH4POW=1;
823 2 for(i=0;i<3;i++) //求平均值
824 2 { x=x+read1543(8);
825 3 }
826 2 x=x/3;
827 2 if(x>=Z_PORT)
828 2 { x=x-Z_PORT;
829 3
830 3 sprintf(ms," %03d",x);
831 3 SendStr_MAX7219(ms);
832 3 if(x>=MID_LIMT) ch4state=1;
833 3 } //is +
834 2 else
835 2 { x=Z_PORT-x;
836 3 sprintf(ms,"-%03d",x);
837 3 SendStr_MAX7219(ms);
838 3 }//-
839 2
840 2 break;
841 2 case 1:
842 2 CH4POW=1;
843 2 voice(1);
844 2 for(i=0;i<3;i++) //求平均值
845 2 {
846 3 x=x+read1543(8);
847 3 }
848 2 x=x/3;
849 2 if(x>=HIGH_LIMT){ch4state=2;CH4POW=0;CH4_DELAY=0;}
850 2 if(x<MID_LIMT)ch4state=0;
851 2 sprintf(ms," %03d",x);
852 2 SendStr_MAX7219(ms);
853 2 return 1;
854 2 break;
855 2 case 2:
856 2 CH4POW=0;
857 2 voice(2);
C51 COMPILER V7.05 MMM 01/30/2003 18:32:34 PAGE 15
858 2 if(CH4_DELAY>2) { CH4POW=1;ch4state=1;}
859 2 sprintf(ms,"hhhh");
860 2 SendStr_MAX7219(ms);
861 2
862 2 return 1;
863 2 break;
864 2 default :
865 2 ch4state=0;
866 2 break;
867 2
868 2 }
869 1 }
870 //**************************************************************************
871 void main(void)
872 {
873 1 unsigned int xx=0;
874 1
875 1 unsigned char data i=0,j,ttt,uuu;
876 1 unsigned long idata yyy=0;
877 1 P0=0;
878 1
879 1 TX_EN=0;
880 1 CH4POW=1;
881 1 rest_delay=0;
882 1 En485 = RECV;
883 1 //Delay100ms(1);
884 1 TX_EN=1;
885 1 init_com();
886 1 InitREG();
887 1 UartInit();
888 1 Test_led=!Test_led;
889 1 Delay100ms(1);
890 1 Comm_Off();
891 1 PWR_UP=1;
892 1 Test_led=!Test_led;
893 1 EA=1;
894 1 // Ch4_test();
895 1 Init_X25045(0x00);
896 1 /* ByteWrite_Check (22,0X34);
897 1 if( ByteRead_Check (22)==0x34)//测试25045
898 1 { Test_led=!Test_led;
899 1 Delay100ms(10);
900 1 Test_led=!Test_led;
901 1 }*/
902 1
903 1 if((ByteRead_Check(20)==0x00)||(ByteRead_Check(20)==0xff))ADDR=0XD2;
904 1 else
905 1 ADDR=ByteRead_Check(20);
906 1 // ADDR=0xd2;
907 1 if(ADDR%2)
908 1 {
909 2 CS=0;
910 2 }
911 1 else
912 1 {
913 2 CS=1;
914 2 }
915 1 for(i=0;i<4;i++)//clear
916 1 {
917 2 for(j=0;j<16;j++)
918 2 RemainRec[i][j]=0;
919 2 }
C51 COMPILER V7.05 MMM 01/30/2003 18:32:34 PAGE 16
920 1 Watch_dog();
921 1 for(i=0;i<8;i++)Call_id[i]=0;
922 1 Ch4_test();
923 1
924 1 while(1)
925 1 {
926 2
927 2 TX_EN=1;
928 2 Watch_dog();
929 2 if(rest_delay>750)while(1);
930 2
931 2 if (Cmdok) //通讯
932 2 { rest_delay=0;
933 3 Watch_dog();
934 3 Cmdok = FALSE;
935 3 Waring=0; //报警清掉
936 3 RecvReady = FALSE;
937 3 SendReady = FALSE;
938 3 cmd_execution();
939 3 SendReady = TRUE ; //发起始字
940 3 TI = 1;
941 3
942 3 }
943 2 CH4_DELAY++;
944 2 for(i=1;i<201;i++)
945 2 {
946 3 if(i%10==0){Check_call();Ch4_test();}
947 3 if(rest_delay>750)while(1);
948 3 Watch_dog();
949 3 if (Cmdok) //通讯
950 3 {rest_delay=0;
951 4 Cmdok = FALSE;
952 4 RecvReady = FALSE;
953 4 SendReady = FALSE;
954 4 cmd_execution();
955 4 SendReady = TRUE ; //发起始字
956 4 TI = 1;
957 4 Test_led=!Test_led;
958 4 }
959 3 Watch_dog();
960 3 //ttt=Find(i);
961 3 ttt=0;
962 3 if(ttt==0)
963 3 {
964 4
965 4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -