📄 showlcd.c
字号:
#include <regx52.h>
#include "sys.h"
#include "ShowLcd.h"
data UCHAR show[6] = {0,0,0,0,0,0};//显示缓冲区
float code GAINU[20]={0.0648,0.1041,0.0878,0.0654,0.0795,0.0939,0.0862,0.0776,1,1,1,1,1,1,1,1,1,1,1,1} ;//板上电压部分增益
float code GAINUb[20]={-2.0573,-2.6596,-5.4535,10.8055,-2.7239,-8.7887,-2.5181,-2.55,1,1,1,1,1,1,1,1,1,1,1,1} ;
float code GAINI[20]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} ;//板上电流部分增益
extern UCHAR UIData[8];
float Ufloat(float tmp)
{
if(tmp<0)
{
return (-tmp);
}
else
{
return tmp;
}
}
void showFloat(UCHAR PP)
{
float result;
//UINT showtmp=0;
/*
result = ( (int)((UIData[0]<<8)|UIData[1]) )/(UIData[2]&0xFF)*GAINI[PP
]; //UIData[2]&0xFF保持放大器增益不变,为-1,-2,-10
if(UIData==10)
{
result = -result;
}
if(result <=0)
{
show[0]='-';
}
else
{
show[0]='+';
}
result = Ufloat(result);
// showtmp =(UINT)result;
if(result<1) //0.???
{
show[1] = '0';
show[2] = '.';
result *= 10;
show[3] = '0'+((UCHAR)result % 10);
result *= 10;
show[4] = '0'+((UCHAR)result % 10);
result *= 10;
show[5] = '0'+((UCHAR)result % 10);
} //if <1
else if(result < 10) // ?.???
{
show[1] = '0'+((UCHAR)result % 10);
show[2] = '.';
result *= 10;
show[3] = '0'+((UCHAR)result % 10);
result *= 10;
show[4] = '0'+((UCHAR)result % 10);
result *= 10;
show[5] = '0'+((UCHAR)result % 10);
} // if 1<= <10
else if(result < 100) // ??.??
{
show[2] = '0'+((UCHAR)result % 10);
result *= 0.1; //?.???
show[1] = '0'+((UCHAR)result % 10);
show[3] = '.';
result *= 100; //???.?
show[4] = '0'+((UCHAR)result % 10);
result *= 10; //????.
show[5] = '0'+((UCHAR)result % 10);
} //if 10<= <100
else if(result < 1000) //???.?
{
show[3] = '0'+((UCHAR)result % 10);
show[4] = '.';
result *= 0.1; //??.??
show[2] = '0'+((UCHAR)result % 10);
result *= 0.1; //?.???
show[1] = '0'+((UCHAR)result % 10);
result *= 1000;
show[5] = '0'+((UCHAR)result % 10);
} // if 100<= <1000
else if(result < 10000) //????.
{
show[5] = '.';
show[4] = '0'+((UCHAR)result % 10);
result *= 0.1; //???.?
show[3] = '0'+((UCHAR)result % 10);
result *= 0.1; //??.??
show[2] = '0'+((UCHAR)result % 10);
result *= 0.1; //?.???
show[1] = '0'+((UCHAR)result % 10);
}
LCDString(19, show, 6); //show I
LCDChar(18, 'I');
*/
result = ( (int)((UIData[3]<<8)|UIData[4]) )/(UIData[5]&0xFF)*GAINU[PP]-GAINU[PP]; //(UIData[5]&0x0F)无必要,保险起见
if(UIData==10)
{
result = -result;
}
if(result <=0)
{
show[0]='-';
}
else
{
show[0]='+';
}
result = Ufloat(result);
if((result)<1) //0.???
{
show[1] = '0';
show[2] = '.';
result *= 10;
show[3] = '0'+((UCHAR)result % 10);
result *= 10;
show[4] = '0'+((UCHAR)result % 10);
result *= 10;
show[5] = '0'+((UCHAR)result % 10);
} //if <1
else if(result < 10) // ?.???
{
show[1] = '0'+((UCHAR)result % 10);
show[2] = '.';
result *= 10;
show[3] = '0'+((UCHAR)result % 10);
result *= 10;
show[4] = '0'+((UCHAR)result % 10);
result *= 10;
show[5] = '0'+((UCHAR)result % 10);
} // if 1<= <10
else if(result < 100) // ??.??
{
show[2] = '0'+((UCHAR)result % 10);
result *= 0.1; //?.???
show[1] = '0'+((UCHAR)result % 10);
show[3] = '.';
result *= 100; //???.?
show[4] = '0'+((UCHAR)result % 10);
result *= 10; //????.
show[5] = '0'+((UCHAR)result % 10);
} //if 10<= <100
else if(result < 1000) //???.?
{
show[3] = '0'+((UCHAR)result % 10);
show[4] = '.';
result *= 0.1; //??.??
show[2] = '0'+((UCHAR)result % 10);
result *= 0.1; //?.???
show[1] = '0'+((UCHAR)result % 10);
result *= 1000;
show[5] = '0'+((UCHAR)result % 10);
} // if 100<= <1000
else if(result < 10000) //????.
{
show[5] = '.';
show[4] = '0'+((UCHAR)result % 10);
result *= 0.1; //???.?
show[3] = '0'+((UCHAR)result % 10);
result *= 0.1; //??.??
show[2] = '0'+((UCHAR)result % 10);
result *= 0.1; //?.???
show[1] = '0'+((UCHAR)result % 10);
}
LCDString(21, show, 6); //show U
LCDChar(18, 'E');
LCDChar(19, ':');
LCDChar(20, ' ');
LCDChar(27, ' ');
LCDChar(28, 'k');
LCDChar(29, 'V');
LCDChar(30, '/');
LCDChar(31, 'm');
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -