📄 ad-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 + -