51单片机AD采集

2024-12-16 21:46:14
推荐回答(3个)
回答1:

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

回答2:

stc12c5a60s2的话,是精度最大可达10位的ADC,10位可以保证很高的精度。数据应该分为高2位存入一个8位字节,低8位存入一个8位字节,然后8位8位的取并移位等操作,最后合并到int等稍大数据类型中,具体参考对应单片机数据手册。采集时要保证给单片机供电电压相当的稳,具体电压以单片机的VCC为准;采集输入电压、输出电压时,若电压过大要进行分压(<=VCC),请选用高精度电阻,不然计算回去很不准;不能直接采集电流,要将其转换成电压,可以使用采样电阻等方法;计算过程直接在程序里处理,此外取值对应一个数据采样10次在平均,可以减小误差,采样速率可以略高。我当时采集电压的时候有10LSB左右的误差,到最后都没发现是什么原因,可能是分压电阻原因,也可能是VCC不稳。对应一般采集足够

回答3:

为了得到较高精度,你将除数乘以100,再除被除数。所以最好定义为int型。内存中肯定以十六进制形式(二进制)存储的。