📄 control.c
字号:
#include<math.h>
#include "adc0809.c"
#include "shuma.c"
#define SW P1
sbit sw1=P1^0;
sbit sw2=P1^1;
sbit sw3=P1^2;
sbit sw4=P1^3;
sbit sw5=P1^4;
sbit sw6=P1^5;
sbit sw7=P1^6;
sbit sw8=P1^7;
static float change;
static uint vavi;
static float va_old;
void over()
{
float va;
uint vi;
ad_do();
va=(ad_do()/255.0)*Vref;
vi=(uint)((sqrt(va)*100));
if((vi>va1_max)||(vi<va8_min))
{
SW=0xff;
delay30s(U);
}
}
uchar control_va()
{
float va;
uint vi;
ad_do();
va=(ad_do()/255.0)*Vref;
vi=(uint)((sqrt(va)*100));
vavi=vi;
if((vi>=va1_min)&&(vi<=va1_max))
{
if(SW==0xFE)
{ change=0.238;
return 0;
}
else{
SW=0xff;
return 1;
}
}
else if((vi>=va2_min)&&(vi<=va2_max))
{
if(SW==0xFD)
{
change=0.253;
return 0;
}
else{
SW=0xff;
return 2;
}
}
else if((vi>=va3_min)&&(vi<=va3_max))
{
if(SW==0xFB)
{
change=0.269;
return 0;
}
else{
SW=0xff;
return 3;
}
}
else if((vi>=va4_min)&&(vi<=va4_max))
{
if(SW==0xF7)
{
change=0.286;
return 0;
}
else{
SW=0xff;
return 4;
}
}
else if((vi>=va5_min)&&(vi<=va5_max))
{
if(SW==0xEF)
{ change=0.305;
return 0;
}
else{
SW=0xff;
return 5;
}
}
else if((vi>=va6_min)&&(vi<=va6_max))
{
if(SW==0xDF)
{
change=0.324;
return 0;
}
else{
SW=0xff;
return 6;
}
}
else if((vi>=va7_min)&&(vi<=va7_max))
{
if(SW==0xBF)
{change=0.343;
return 0;
}
else{
SW=0xff;
return 7;
}
}
else if((vi>=va8_min)&&(vi<=va8_max))
{
if(SW==0x7F)
{
change=0.364;
return 0;
}
else{
SW=0xff;
return 8;
}
}
else
return 0;
}
void CT()
{
switch(control_va())
{
case 0: break;
case 1: sw1=0;break;
case 2: sw2=0;break;
case 3: sw3=0;break;
case 4: sw4=0;break;
case 5: sw5=0;break;
case 6: sw6=0;break;
case 7: sw7=0;break;
case 8: sw8=0;break;
default: break;
}
}
void nums()
{
float temp;
uint va_temp,va;
va=vavi;
temp=(vavi/100.0);
temp*=temp;
if(va>va_1)
va_temp=(uint)(temp*(252.0/va1));
else if(va>va_2)
va_temp=(uint)(temp*(237.0/va2));
else if(va>va_3)
va_temp=(uint)(temp*(223.0/va3));
else if(va>va_4)
va_temp=(uint)(temp*(210.0/va4));
else if(va>va_5)
va_temp=(uint)(temp*(197.0/va5));
else if(va>va_6)
va_temp=(uint)(temp*(185.0/va6));
else if(va>va_7)
va_temp=(uint)(temp*(175.0/va7));
else if(va>va_8)
va_temp=(uint)(temp*(165.0/va8));
else
;
temp=va_temp*change;
if(temp<58)
temp=temp+1.5;
else if(temp>62)
temp=temp-1.8;
va_value[0]=(uchar)(temp/10);
va_value[1]=((uchar)(temp))%10;
va_value[2]=((uchar)(temp*10))%10;
va_value[3]=U;
/*
va_value[2]=va%10;
va_value[1]=va/10%10;
va_value[0]=va/100%10;
va_value[3]=U;
*/
}
void control_vb()
{
float vb;
ad_dovb();
vb=(ad_dovb()/255.0)*Vref;
if(vb>=2.5 )
{ SW=0xff;
delay30s(A);
}
}
void nums_b()
{
float temp,t;
ad_dovb();
temp=(ad_dovb()/255.0)*Vref;
t=(temp*temp)*AA+BB*temp+CC;
temp=t;
vb_value[0]=(uchar)(temp);
t=(temp-vb_value[0])*10;
vb_value[1]=(uchar)(t);
t=(t-vb_value[1])*10;
vb_value[2]=(uchar)(t);
vb_value[3]=A;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -