问:用STC12C单片机,自带的AD是用VCC作参考电压的,但是如果VCC是电池供电得到的结果就不准确.STC的手册说可以用其中一个通道接一个1.5V基准电压,然后根据这个基准电压计算出VCC的电压.请问如何计算呢?
答:这是一种聪明的解决办法,对于一些不提供基准输入引脚,只能以电源电压为基准的CPU。该方法消除了电源电压带来的误差。
具体是在多路AD的某一路连接一个高精度电压基准(例如1.25V)。测量时,先测量(用AD)该基准,得到该基准电压的对应测量值。例如0xc8,十进制是200。再去测量被测电压,比如得到0x190,十进制是400。则实际电压应该是1.25*400/200=2.5V。
没有参考基准的情况下,要确保AD精度,最重要的是确保VDD的精度!最好能给VDD进行稳压,然后进CPU。
计算公式:Vad = ADC_RES * VCC / 256;你的应该是VDD=VCC。
另外,注意以下几点:
1、启动A/D 转换后,在A/D 转换结束之前,不改变任何I/O 口的状态,有利于高精度A/D 转换!
2、启动A/D转换时,最好关闭板上其他高耗电、高频率设备,减少干扰。
3、Vdd进入CPU前,一定要经过滤波,并且距离芯片越近越好!