51单片机中如何确定ad芯片输出数据的小数点的位置

51单片机中如何确定ad芯片输出数据的小数点的位置 怎么确定其AD输出的大小到底是 X.XXX 还是 XX.XX 呢?在写程序时怎么做?
我用的是12位的AD7886芯片 我是用液晶显示的~~~

首先,小数点是给人看的,与显示什么以及单位有关,与程序中的计算无关,更和AD输出无关。
然后,AD输出通常认为是整数,但也完全可以“看成”是小数,而且小数点位置任意(与显示什么以及单位有关)。例如,12位AD的输入范围是0--4.095V,那么当输入电压0.256V时,AD会输出000100000000(十进制256),你把小数点点在2的左边,显示出来就是0.256V;你把小数点点在6的右边,显示出来就是0256mV;你把小数点点在6的左边,显示出来就是025.6(单位是10mV)等等。
当然,通常没这么简单,要显示的数与AD值需要经过一定的换算,但道理是一样的,你换算完之后把小数点放到合适的位置就行了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-06
你可以在显示函数中加一个小数点的显示,看你数码管共阴还是共阳,对应的小数点的十六进制值是多少,如果是0X08,就直接在位码要显晃的段码加0X08就可以了
第2个回答  2009-06-06
ad输出的数据 是整数吧? 你要通过换算 得到实际小数值,
然后把浮点型 转成char【】,显示出去就是了

51单片机中如何确定ad芯片输出数据的小数点的位置
然后,AD输出通常认为是整数,但也完全可以“看成”是小数,而且小数点位置任意(与显示什么以及单位有关)。例如,12位AD的输入范围是0--4.095V,那么当输入电压0.256V时,AD会输出000100000000(十进制256),你把小数点点在2的左边,显示出来就是0.256V;你把小数点点在6的右边,显示出来就是0...

单片机AD数据处理怎么精确到小数点后几位?
比如说5V参考电压,10位AD,读AD转换值为m,则所测电压为X=5m\/1024V,处理时可以这样:X=m*(5000\/1024)=m*(625\/128)(mV),如果以V为单位显示,那显示的时候再加一个小数点就行了。如果不需要显示,在以后的运算中根据精度需要做适当的变换就可以了 ...

51单片机AD采集
程序可以直接相除,但只保留整数部分,所以如果你要得到小数两位,就先乘以100再除,显示的时候知道最低两位实际是小数点后两位就行了。

单片机AD数据处理怎么精确到小数点后几位?
ADC采集回来的数值都是整型,用每一位的分辨率乘以AD数值就是对应的模拟电压 分辨率因电路和参考电压不同而有所区别。

51单片机采集的AD值的转换程序问题?
= 0~11111...1111(24位二进制);那么1V就是:6710886(十进制)。用24位值AD_data除以6710886,得到的整数部分就是0~5,即为电压的整数部分。再把刚才除得的余数,再除以10,取整数将得到0~9,即为电压的第一位小数;余数,再除以10,取整数将得到0~9,即为电压的第二位小数;……想要取...

51单片机扩展片外ram或者adc芯片。地址范围,没用到的io口应该置0还是置...
这P0工作在总线状态的时候不用设置1或0 不过你的问题里面说P0.3--P0.7不是没用的,写操作的时候用P0.0--P0.2选择地址。读操作的时候是用整个P0口读取AD转换结果

单片机C语言显示小数
如果你的参考电压是5V,用的是12位AD,现在转换的结果为0x00ff,那么当前的电压就是0xo0ff*5000\/4096 (mv)=311mv=0.311V, 至于怎么显示,那要看你的数码管位数以及要显示的数据范围。 可以用定小数点显示,也可以用动态小数点显示。思路都是把当前小数换成需要的整数,保留固定的有效数字。然后...

怎样把51单片机读回来的AD值转换成电压值?
通常是0-5V,对应于0-11111...1111(24位二进制)那么1V就是:3355443(十进制)。用读回来的值AD_data除以3355443,得到的整数部分就是0~5,即为电压的整数部分。把AD_data除以3355443的余数,再除以0.1V所对应的数值(请自己算一下),取整数将得到0~9,即为电压的第一位小数。……取多少位...

51单片机AD转换时数据读取为什么赋值给P1口?
如果你用的是并行8位AD芯片转换的话 那么就需要8根数据线 而51单片机的IO作为GPIO口来使用的话 Px(P0弱上拉)都差不多,Px也是8位的而且支持字节操作,这样51单片机可以直接从Px寄存器中直接读到AD的值。并不一定非要是P1口。占用整个端口就是为了操作方便。

51单片机AD转换不稳定
1.是不是电平有跳动的不稳定,比如输入电平抖动(干扰导致),你只是肉眼没看出来而已,所以认为它是稳定的。这个解决方法如果输入是稳定电压(直流),那就在电压之间加上个电容就完事了。2.是不是输入电压的范围超了?如果是范围超了,加个分压电路,然后在单片机程序里面再按比例的增加就行了。

相似回答