用ADC0831(串口)测电压,读回来一个8位的数据后(C程序),如何转换成实际电压值?

还有它测量基准电压值有没上限?用10V行不行?

电压=(最大输入电压/0831的位数)×读回后的值
最大输入电压是你的设计电压比如5V,那么分成256份后就是0.02V,将读回后的值×0.02V就得到实际电压值了。若10V太高可采用电阻分压后得到,并且可以设计不同的分压电阻来切换档位。若要求较高可采用运放来完成0.1-N倍放大后即可。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-27
void covert(uchar x)
{
uchar code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
disp[0]=dispcode[x/50];
disp[0]=disp[0]+0x80;//加小数点
x=(x%50)*2;//得到小数部分
disp[1]=dispcode[x/10];//第一位小数
disp[2]=dispcode[x%10];//第二位小数
}

x/250=y/5->y=(5/250)x=x/50也就是说转换的数字量除以50就是实际电压值。
第2个回答  2011-09-27

用ADC0831(串口)测电压,读回来一个8位的数据后(C程序),如何转换成实际...
最大输入电压是你的设计电压比如5V,那么分成256份后就是0.02V,将读回后的值×0.02V就得到实际电压值了。若10V太高可采用电阻分压后得到,并且可以设计不同的分压电阻来切换档位。若要求较高可采用运放来完成0.1-N倍放大后即可。

ADC0831(串口)的测量电压范围有多大?用来测10V的电压行不行?
可以把参考电压改为10V,这样检测到的是0-10V,void covert(uchar x){ uchar code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};disp[0]=dispcode[x\/25];disp[0]=disp[0]+0x80;\/\/加小数点 x=(x%25)*2;\/\/得到小数部分 disp[1]=dispcode[x\/10];\/\/第一...

2v电压输入ADC0831的转换结果约为多少
8bit A\/D ,数值范围 0 ~ 255 。255 对应 A\/D 入口模拟电压最大值 Vmax = 基准电压 Vref (5脚)。Vref = 5 V ,则:2 \/ 5 = X \/ 255 ,X = 102 。

相似回答