📄 f020.lst
字号:
713 8 //AIN11_ADDR[2]=0x00;
714 8 break;
715 8 default:break;
716 8 }
717 7
718 7 if(AIN11_ADDR[1]>255)
719 7 {
720 8 AIN11_ADDR[1]=0x00;
721 8 //AIN11_ADDR[2]=0x00;
722 8 AIN11_ADDR[0]++;
723 8 if( AIN11_ADDR[0]>=0X14)//存储区域0x120000~0x13FFFF共128K 注意
724 8 {
725 9 FLASH_SE(0x12,0x00,0x00);
726 9 FLASH_SE(0x13,0x00,0x00);
727 9
728 9 first_flag11=0;
729 9 Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x12,0x00,0x00,0x11
-);//通道AIN1。1
730 9 AIN11_ADDR[0]=0x12;
731 9 AIN11_ADDR[1]=0x00;
732 9 //AIN11_ADDR[2]=0x08;//AIN1.1 存储区域0x060000~0x07FFFF共128K
733 9 }
734 8
735 8 }
736 7 ET0=1;
737 7 TR0=1;
738 7 }//end if n1>0x11FF
739 6 /*****************AIN01************************************/
740 6 /***信号516-1*******/
741 6 /***击发按钮***/
742 6 /***电压范围0~15V*****/
743 6 /*****阀值1.5V*****/
744 6 /*******还原算法Xn*9.4922*11********/
745 6 /**AIN0.1 存储区域0x020000~0x03FFFF共128K*/
746 6 last_xn=x[0x2100];//AIN0.1上次值缓存
747 6 AMX0SL = 0x01;//AIN0.1 //AIN00-AIN07->0X00-0X07
748 6 AD0INT = 0; // 清除ADC转换完成标志
749 6 AD0BUSY = 1;
750 6 Delay_us(5);
751 6 while (!AD0INT);
752 6 current_xn= ADC0H;
753 6 Temp_AD=abs(current_xn-last_xn);
754 6 x[0x2100]= current_xn;
755 6 if(Temp_AD>=A)//阀值设定
756 6 {
757 7 if(timepoint>253)
758 7 {
759 8 x[m1-2]=current_xn;
760 8 //m1++;
761 8 x[m1-1]=0XFE;
762 8 //m1++;
763 8 }
764 7 else
765 7 {
766 8 x[m1]=current_xn;
767 8 m1++;
768 8 x[m1]=timepoint;
769 8 m1++;
770 8 }
771 7 if(m1>0X01FF)
772 7 {
C51 COMPILER V7.50 F020 09/08/2007 13:14:11 PAGE 14
773 8 TR0=0;
774 8 ET0=0;
775 8 m1=0x0100;//AIN0.1缓存区首地址
776 8
777 8 switch (first_flag01)//注意
778 8 {
779 9 case 0x00: Read_Data_T0_Flash (AIN01_ADDR[0],AIN01_ADDR[1],0x08,m1+8,248);
780 9 AIN01_ADDR[1]++;
781 9 //AIN01_ADDR[2]=0x00;
782 9 first_flag01=1;//注意
783 9 break;
784 9 case 0x01: Read_Data_T0_Flash (AIN01_ADDR[0],AIN01_ADDR[1],0x00,m1,256);
785 9 AIN01_ADDR[1]++;
786 9 //AIN01_ADDR[2]=0x00;
787 9 break;
788 9 default:break;
789 9 }
790 8 if(AIN01_ADDR[1]>255)
791 8 {
792 9 AIN01_ADDR[1]=0x00;
793 9 //AIN01_ADDR[2]=0x00;
794 9 AIN01_ADDR[0]++;
795 9 if( AIN01_ADDR[0]>=0X04)////存储区域0x020000~0x03FFFF共128K 注意
796 9 {
797 10 FLASH_SE(0x02,0x00,0x00);//注意
798 10 FLASH_SE(0x03,0x00,0x00);//注意
799 10
800 10 first_flag01=0;//注意
801 10 Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x02,0x00,0x00,0x01
-);//通道AIN0。1
802 10 AIN01_ADDR[0]=0x02;//注意
803 10 AIN01_ADDR[1]=0x00;
804 10 //AIN01_ADDR[2]=0x08;//AIN0.1 存储区域0x020000~0x03FFFF共128K
805 10 }
806 9
807 9 }
808 8 ET0=1;
809 8 TR0=1;
810 8 }//end if m1>0x01FF
811 7 }//end if Temp_AD>A
812 6 /*****************AIN11************************************/
813 6 /***信号518-1*******/
814 6 /***传感器信号电压***/
815 6 /***电压范围0~15V*****/
816 6 /*****阀值1.5V*****/
817 6 /*******还原算法Xn*9.4922*11********/
818 6 /**AIN1.1 存储区域0x120000~0x13FFFF共128K*/
819 6 last_xn=x[0x3100];//AIN1.1上次值缓存
820 6 AMX1SL=0x01;//AIN1.1
821 6 ADC1CN &= 0xDF;// 清除ADC转换完成标志 AD1INT = 0;
822 6 ADC1CN |= 0x10;// AD1BUSY = 1;
823 6 Delay_us(5);
824 6 while (!ADC1CN&0x20); //等待AD1INT=1;
825 6 current_xn=ADC1;
826 6 Temp_AD=abs(current_xn-last_xn);
827 6 x[0x3100]= current_xn;
828 6 if(Temp_AD>=A)//阀值设定
829 6 {
830 7 if(timepoint>253)
831 7 {
832 8 x[n1-2]=current_xn;
833 8 //n1++;
C51 COMPILER V7.50 F020 09/08/2007 13:14:11 PAGE 15
834 8 x[n1-1]=0XFE;
835 8 //n1++;
836 8 }
837 7 else
838 7 {
839 8 x[n1]=current_xn;
840 8 n1++;
841 8 x[n1]=timepoint;
842 8 n1++;
843 8 }
844 7 if(n1>0X11FF)//注意之处
845 7 {
846 8 TR0=0;
847 8 ET0=0;
848 8 n1=0x1100;//AIN1.1缓存区首地址
849 8
850 8 switch (first_flag11)//注意
851 8 {
852 9 case 0X00: Read_Data_T0_Flash (AIN11_ADDR[0],AIN11_ADDR[1],0x08,n1+8,248);
853 9 AIN11_ADDR[1]++;
854 9 //AIN11_ADDR[2]=0x00;
855 9 first_flag11=1;//注意
856 9 break;
857 9 case 0X01: Read_Data_T0_Flash (AIN11_ADDR[0],AIN11_ADDR[1],0x00,n1,256);
858 9 AIN11_ADDR[1]++;
859 9 //AIN11_ADDR[2]=0x00;
860 9 break;
861 9 default:break;
862 9 }
863 8
864 8 if(AIN11_ADDR[1]>255)
865 8 {
866 9 AIN11_ADDR[1]=0x00;
867 9 //AIN11_ADDR[2]=0x00;
868 9 AIN11_ADDR[0]++;
869 9 if( AIN11_ADDR[0]>=0X14)//存储区域0x120000~0x13FFFF共128K 注意
870 9 {
871 10 FLASH_SE(0x12,0x00,0x00);
872 10 FLASH_SE(0x13,0x00,0x00);
873 10
874 10 first_flag11=0;
875 10 Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x12,0x00,0x00,0x11
-);//通道AIN1。0 注意
876 10 AIN11_ADDR[0]=0x12;
877 10 AIN11_ADDR[1]=0x00;
878 10 //AIN11_ADDR[2]=0x08;//AIN1.1 存储区域0x120000~0x13FFFF共128K
879 10 }
880 9
881 9 }
882 8 ET0=1;
883 8 TR0=1;
884 8 }//end if n1>0x11FF
885 7 }//end if Temp_AD>A*/
886 6
887 6 }//end if AIN==0X02*/
888 5 /**********************************END AIN=0X02**********************************/
889 5
890 5 /***********************************START AIN=0X03*********************************************/
891 5 if(AIN==0X03)
892 5 {
893 6 AIN_Flag=0;
894 6 /***************************AD LONG TIME NO CHANGE****************************/
C51 COMPILER V7.50 F020 09/08/2007 13:14:11 PAGE 16
895 6 if(timepoint>253)
896 6 {
897 7 TR0=0;
898 7 ET0=0;
899 7 //timepoint=0X00;
900 7 AMX0SL = 0x02;//AIN0.2 //AIN00-AIN07->0X00-0X07
901 7 AD0INT = 0; // 清除ADC转换完成标志
902 7 AD0BUSY = 1;
903 7 Delay_us(5);
904 7 while (!AD0INT);
905 7 current_xn = ADC0H;
906 7 x[m2]=current_xn;
907 7 m2++;
908 7 x[m2]=0xFE;
909 7 m2++;
910 7
911 7
912 7 AMX1SL=0x02;//AIN1.2
913 7 ADC1CN &= 0xDF;// 清除ADC转换完成标志 AD1INT = 0;
914 7 ADC1CN |= 0x10;// AD1BUSY = 1;
915 7 Delay_us(5);
916 7 while (!ADC1CN&0x20); //等待AD1INT=1;
917 7 current_xn=ADC1;
918 7 x[n2]=current_xn;
919 7 n2++;
920 7 x[n2]=0xFE;
921 7 n2++;
922 7 ET0=1;
923 7 TR0=1;
924 7
925 7 }
926 6 if(m2>0X02FF)
927 6 {
928 7 TR0=0;
929 7 ET0=0;
930 7 m2=0x0200;//AIN0.2缓存区首地址
931 7 switch (first_flag02)
932 7 {
933 8 case 0X00: Read_Data_T0_Flash (AIN02_ADDR[0],AIN02_ADDR[1],0x08,m2+8,248);
934 8 AIN02_ADDR[1]++;
935 8 //AIN02_ADDR[2]=0x00;
936 8 first_flag02=1;
937 8 break;
938 8 case 0X01: Read_Data_T0_Flash (AIN02_ADDR[0],AIN02_ADDR[1],0x00,m2,256);
939 8 AIN02_ADDR[1]++;
940 8 //AIN02_ADDR[2]=0x00;
941 8 break;
942 8 default:break;
943 8 }
944 7 if(AIN02_ADDR[1]>255)
945 7 {
946 8 AIN02_ADDR[1]=0x00;
947 8 //AIN02_ADDR[2]=0x00;
948 8 AIN02_ADDR[0]++;
949 8 if( AIN02_ADDR[0]>=0X06)
950 8 {
951 9 FLASH_SE(0x04,0x00,0x00);
952 9 FLASH_SE(0x05,0x00,0x00);
953 9
954 9 first_flag02=0;
955 9 Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x04,0x
-00,0x00,0x02);//通道AIN0。2
C51 COMPILER V7.50 F020 09/08/2007 13:14:11 PAGE 17
956 9 AIN02_ADDR[0]=0x04;
957 9 AIN02_ADDR[1]=0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -