#include<reg52.h>
#define uchar unsigned char
extern uchar disp_value[5];
extern uchar key_number;
extern uchar code DC_disp3[];
uchar code AC_disp[]="AC VOL Measure ";
uchar code AC_disp2[]="value= ";
void AC_VOL_measure(void) //交流電壓測量函數
{
uchar ADTemp,num;
float ValueTemp;
WriteCom(0x01); //清屏
WriteCom(0x80); //顯示
for(num=0;AC_disp[num]!='\0';num++)
{
WriteData(AC_disp[num]);
Delay(10);
}
WriteCom(0x80+0x40); //顯示
for(num=0;AC_disp2[num]!='\0';num++)
{
WriteData(AC_disp2[num]);
Delay(10);
}
do{
s1=0; //選擇200v最高檔
s2=0;
s3=1;
Delay(50);
ADTemp=ADSample(AC_VOL_adder);
if(ADTemp>253) //當超過量程時,顯示為1
{ WriteCom(0x80+0x46); //顯示
for(num=0;DC_disp3[num]!='\0';num++)
{
WriteData(DC_disp3[num]);
Delay(10);
}
}
else
{
ValueTemp=ValueConver(ADTemp); //測量的電壓值轉換
ValueTemp=ValueTemp*100; //電壓值乘以檔位
FloatToChar(ValueTemp); //電壓值轉換為字符串
WriteCom(0x80+0x46); //第二行顯示電壓值
for(num=0;num<6;num++)
{
WriteData(disp_value[num]);
Delay(10);
}
WriteData('V');
WriteData(' ');
}
} while((ADTemp>20)&&(key_number==2));
do
{
s1=0; //選擇20v檔
s2=1;
s3=0;
Delay(50);
ADTemp=ADSample(AC_VOL_adder); //起動AD進行采樣
ValueTemp=ValueConver(ADTemp); //AD進行轉換
ValueTemp=ValueTemp*10; //電壓乘以檔位
FloatToChar(ValueTemp); //電壓轉換為字符串
WriteCom(0x80+0x46); //第二行顯示所測電壓值
for(num=0;num<5;num++)
{
WriteData(disp_value[num]);
Delay(10);
}
WriteData('V');
WriteData(' ');
} while((ADTemp>24)&&(ADTemp<253)&&(key_number==2));
do
{
s1=1; //選擇2V檔
s2=0;
s3=0;
Delay(50);
ADTemp=ADSample(AC_VOL_adder); //起動AD進行采樣
ValueTemp=ValueConver(ADTemp); //電壓值轉換為字符串
FloatToChar(ValueTemp);
WriteCom(0x80+0x46);
for(num=0;num<5;num++)
{
WriteData(disp_value[num]);
Delay(15);
}
WriteData('V');
WriteData(' ');
} while((ADTemp<253)&&(key_number==2));
}
001.C(12): warning C206: 'WriteCom': missing function-prototype
001.C(12): error C267: 'WriteCom': requires ANSI-style prototype
這是怎麼回事,求改進
|