STC12LE5204AD(3.3V单片机)——AD的参考电压是多少,是3.3V吗?

核心提示STC12C5204AD 与 STC12LE5204AD 只是电源电源 不同,基本功能是一样的用 AD 功能 其测量基准都为电源电压,测量最大值也是 电源电压。如果 同时检测 3 V 电压 得到的数值 5V单片机 为 135.6 ,3V

STC12C5204AD 与 STC12LE5204AD 只是电源电源 不同,基本功能是一样的

用 AD 功能 其测量基准都为电源电压,测量最大值也是 电源电压。

如果 同时检测 3 V 电压 得到的数值 5V单片机 为 135.6 ,3V单片机 为 256

如果 电源 3.3V 则为 232.7,其结果应该是 (256/VCC)*被检测电压

256 是 8位AD, 如果10位AD 为1024, 12位AD 为4096

AD转换结果,除了与输入电压有关,还与所选用的AD的位数有关,与所选用的基准电压也有关系。

已知输入电压是2.5V,假设,选用的AD是10位的,基准电压是5V。理论上,2的10次方是1024,2.5V是5V的一半,所以,得到的结果是512左右。反之,如果知道基准电压是5V,10位AD的结果是512,可以推出输入电压是 5V * ( 512 / 1024 ) =2.5V。

这里还有几个问题要说明一下

当输入电压达到基准电压时,AD的输出结果应该是1023,不可能出现1024,因为1024用二进制表示是11位数字。但计算的时候,用1024计算比较方便。

有些AD为了兼容性的考虑,对转换结果进行了一些处理,比如左对齐到16位处理,这样在使用的时候可以让10位AD与12位、16位AD的结果一致,可以使用同样的程序。

还有的AD,可以输入的电压范围不是从0V开始的,比如输入范围是-5V到+5V,这个时候尤其需要搞明白输出的格式。通常,可以使用补码表示转换结果,用负数表示负电压,用正数表示正电压。但还有的使用移码,用0表示负电压,用中值表示0电压。

回到问题,AD输入的电压,与输出的数字之间必然有一个转换规律,通常可以用这种形式表示:

输出数字=(量程最大值-量程最小值)* [ (输入电压-电压最小值)/ (电压最大值-电压最小值)]

如果最小值是0,电压最大值是基准电压,式子可以简化:

输出数字=量程最大值 *? (输入电压 / 基准电压)

其中,量程最大值通常由AD位数决定,假设有AD位数为N,最大值就是(2的N次方减1),但一般可以使用2的N次方进行计算时,程序效率会高一些。

 
友情链接
鄂ICP备19019357号-22