⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad0.c

📁 ad转换的程序
💻 C
字号:
/*=========================================================================================
                     AD RUTINE
===========================================================================================
AHTH: GZG
DATE:
COMMENT: 
===========================================================================================*/
/*-------------------------------------------INCLUDE---------------------------------------*/
#include <c8051f020.h>
/*-------------------------------------------GLOBLE DEFINE OR DECLARING--------------------*/
extern long int transfer_ad;
extern unsigned int xdata canmodify_package[];
extern int cycle_times;
/*-------------------------------------------FUCTIN DECLARING-----------------------------*/
extern void delay(int t);
/*-------------------------------------------16BIT SFR DEFINE------------------------------*/
sfr16 ADC0=0xbe;
sfr16 DAC0=0Xd2;

/*-----------------------------------------------------------------------------------------
AD ROOUTINE
------------------------------------------------------------------------------------------*/

void ad0(void)
	{
	 static unsigned xdata dec=256;
     static long xdata total=0L;
 	 static long  xdata jiyi[10];
	 xdata long transfer;
	 long  xdata transfer1;
	 long  xdata transfer2;
	
    
   if(canmodify_package[6]==1)
      { 
         AMX0SL=0X00;
	     ADC0CN=0x90;
      	while(!AD0INT);
        total+=ADC0;
	    dec--;
       if(dec==0)
      	{
	      jiyi[0]=jiyi[1];
	      jiyi[1]=jiyi[2];
	      jiyi[2]=jiyi[3];
	      jiyi[3]=jiyi[4];
	      jiyi[4]=jiyi[5];
	      jiyi[5]=jiyi[6];
	      jiyi[6]=jiyi[7];
	      jiyi[7]=jiyi[8];
	      jiyi[8]=jiyi[9]; 
          transfer=((total/256));
	      if(transfer<0)transfer=jiyi[8];
	      jiyi[9]=transfer;
	
	     transfer1=(jiyi[0]+jiyi[1]+jiyi[2]+jiyi[3]+jiyi[4]+jiyi[5]+jiyi[6]+jiyi[7]+jiyi[8]+jiyi[9])/10;
   
	    if(transfer1>=(canmodify_package[0]+818))
	      {

            cycle_times=1;
            transfer_ad=((transfer1-818-canmodify_package[0])*(canmodify_package[3]*1000))/3243;
	        transfer2=((transfer1-818-canmodify_package[0])*4095)/3243;
	 
	       if (transfer2>=4095)DAC0=4095;
	    else
		{DAC0=transfer2;} 
       //if(transfer1>=4072)DAC0=4095;
	   
       //if(transfer_ad>=10000)DAC0=4095;
	 }
	 else 
	 {
	   cycle_times=-8;
	   transfer_ad=((canmodify_package[0]+818-transfer1)*(canmodify_package[3]*1000))/3243;
	   DAC0=0;
	 }
	 // transfer_ad=transfer1;
	 dec=256;
	 total=0L;	
   }
  
}



  if(canmodify_package[6]==3)//use the channel 3 and it is risister
   {

    AMX0SL=0X01;
	ADC0CN=0x90;
	//delay(1000);
	while(!AD0INT);

	// transfer_ad=ADC0;
   total+=ADC0;
	dec--;
	if(dec==0)
	{
	 jiyi[0]=jiyi[1];
	 jiyi[1]=jiyi[2];
	 jiyi[2]=jiyi[3];
	 jiyi[3]=jiyi[4];
	 jiyi[4]=jiyi[5];
	 jiyi[5]=jiyi[6];
	 jiyi[6]=jiyi[7];
	 jiyi[7]=jiyi[8];
	 jiyi[8]=jiyi[9]; 
     transfer=((total/256));
	 if(transfer<0)transfer=jiyi[8];
	 jiyi[9]=transfer;
	 
	 transfer1=(jiyi[0]+jiyi[1]+jiyi[2]+jiyi[3]+jiyi[4]+jiyi[5]+jiyi[6]+jiyi[7]+jiyi[8]+jiyi[9])/10;


    if(transfer1>=canmodify_package[6]+11)
	 {
	  cycle_times=1;
	  transfer_ad=(transfer1-11-canmodify_package[0])*(canmodify_package[3]*1000)/4071;
	  DAC0=(transfer1-11-canmodify_package[0])*4095/4071;
	  if(transfer1>=4071)DAC0=4095;
	 }
	 else
	 {
	  cycle_times=-8;
	  transfer_ad=(canmodify_package[0]+11-transfer1)*(canmodify_package[3]*1000)/4071;
	  DAC0=0;

	 } 
	// transfer_ad=transfer1;
	 dec=256;
	 total=0L;	
	       
   }   

     }

	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -