主程序为
void main()
{
uint adNum[5];
uint dat0 = 0;
long buf, temp;
uint k, count;
EA = 1;
TMOD = 0x00;
ET0 = 1;
TR0 = 0;
LcdInit();
while(1)
{
count++;
if(count>1)
{
count=0;
k++;
}
if(k >= 96)
k = 0;
dat0 = Read_ADC();
if(dat0 == 0)
LcdInit();
temp = buf = (50 * (dat0 - 32768) / 32767 ) * 1000;
if(buf < 0) buf = -buf;
adNum[4] = buf%10;
adNum[3] = (buf/10)%10;
adNum[1] = (buf/1000)%10;
adNum[2] = (buf/100)%10;
adNum[0] = (buf/10000)%10;
LcdWriteCom(0x80);
LcdWriteData('V');
LcdWriteData('O');
LcdWriteData('L');
LcdWriteData('T');
LcdWriteData('S');
LcdWriteData(':');
if(temp < 0) LcdWriteData('-');
if(adNum[0]) LcdWriteData('0'+adNum[0]);
LcdWriteData('0'+adNum[1]);
LcdWriteData('.');
LcdWriteData('0'+adNum[2]);
LcdWriteData('0'+adNum[3]);
LcdWriteData('0'+adNum[4]);
LcdWriteData('V');
LcdWriteData(0x20);
}
}
计算的数值通过LCD1602只显示整数,小数被舍去。应该怎么办?