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

📄 ad-16.c

📁 16路电压测试
💻 C
字号:
#include		 <pic1687x.h>
#include		<pic.h>
#include        <math.h>


unsigned char  n,k;
int r;
float u;
union res
    {
       int s;
       unsigned char ad[2];  //
     } re;
void  delay(int count)
{
   int i;
	long int j;
   for(i=0;i<count;i++)
	for(j=0;j<9000;j++)
   continue;
 
}

void  delay05()
{

	long int j;
	for(j=0;j<9000;j++)
   continue;
 
}



void delay90ms()
{
long unsigned  int d=2000;
	while(--d)
	{
	;
	}
}
void	initial()
{
	TRISA=0X01;
	TRISC=0X00;
	TRISB=0XF0;
	TRISD=0X00;
	TRISE=0X00;
	PORTB=0X00;
	PORTD=0X00;
	PORTA=0X00;
	PORTC=0X00;
	PORTE=0X00;
	
	k=0;
    n=0;
	u=0;
	PEIE=1;
	ADCON0=0x41;			
	ADCON1=0X8E;



}


void adpc()
{
     r=0;
     for(n=0;n<10;n++)
       {
         ADGO=1;
         while(1)
           {
             if(ADIF==1)
                break;
            }
            
            re.ad[0]=ADRESL;
            re.ad[1]=ADRESH;
            ADIF=0;
            r=r+re.s;
        }   
      u=u*5/1023;  		
}
main()
{
	initial();
	ei();
	while(1)
		{
		delay(2);
		RB1=1;
		delay(5);
		RB3=1;
		RE0=0;
		
		RD7=1;              //10.5V
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<9||u>12)
             
              k=1;
        if(k==1)
               RC0=1;
	               
            
        RD7=0;
		delay90ms();

		RD7=1;                      //2.4V
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<2||u>6)
             { 
               k=1;
               RC1=1;
              }
        RD7=0;
		delay90ms();

		RD7=1;                              //2.5V
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<2||u>4)
             { 
               k=1;
               RC2=1;
              }
        RD7=0;
		delay90ms();


		RD7=1;                        //3.3V
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<2.5||u>5)
             { 
               k=1;
               RC3=1;
              }
        RD7=0;
		delay90ms();

		RD7=1;                        //5V
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<4||u>6)
             { 
               k=1;
               RD0=1;
              }
        RD7=0;
		delay90ms();

		RD7=1;                    //12V
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<10||u>14)
             { 
               k=1;
               RD1=1;
              }
        RD7=0;
		delay90ms();

        RD7=1;                      //5v
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<4||u>6)
             { 
               k=1;
               RD2=1;
              }
        RD7=0;
		delay90ms();

        RD7=1;                      //5v
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<4||u>6)
             { 
               k=1;
               RD3=1;
              }
        RD7=0;
		delay90ms();

        RD7=1;                     //5v
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<4||u>6)
             { 
               k=1;
               RC4=1;
              }
        RD7=0;
		delay90ms();

        RD7=1;                //44v
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<28||u>40)
             { 
               k=1;
               RC5=1;
              }
        RD7=0;
		delay90ms();
 
        RD7=1;                 //12.2v
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<10||u>14)
             { 
               k=1;
               RC6=1;
              }
        RD7=0;
		delay90ms();

        RD7=1;                 //20.5v
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
        if(RB4==0)
        {
		delay(3);
		adpc();
		if(u<15||u>21)
             { 
               k=1;
               RC7=1;
              }
         }
        RD7=0;
		delay90ms();

        

		RB3=0;
		delay90ms();
		delay90ms();
		RB2=1;				//+-
		delay90ms();



		RD7=1;                   //-30V
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<18||u>28)
             { 
               k=1;
               RD4=1;
              }
        RD7=0;
		delay90ms();



		RD7=1;                    //F1
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<16||u>22)
             { 
               k=1;
               RD6=1;
              }
        RD7=0;
		delay90ms();

		RD7=1;                    //F2
        if(RB6==1)
               while(1)
                  {
                  if(RB5==0)
                       break;
                  }
		delay(3);
		adpc();
		if(u<14||u>18)
             { 
               k=1;
               RB0=1;
              }
        RD7=0;
		delay90ms();




		RB1=0;
			

		RB2=0;
        if(k==1)
            RE0=1;
		delay(4);
		

		

	
		if(k==0)				
			RB0=1;
                
				
		
			
			while(1)
			{
			;
			}

		}


}

⌨️ 快捷键说明

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