stc8h1k08 ssop20的内部1.19V电压问题:
1.19是稳定不变的,即使外部输入的参考电压(接VCC,即电源电压)改变,读取ADC15的值或许会变,但它所代表的电压永远是1.19V。如上,是不是可以这么认为?
就是 内部有个 1117-1.19V, 但水平比较高,
===制造误差只有 千分之5,温漂只有 1%
本帖最后由 名字不是重点 于 2024-1-1 18:42 编辑
神农鼎 发表于 2024-1-1 18:21
有点挠头~~
这么说,1.19存在Rom中的数值才是不变的,读ADC15是会变的,是不是?
实例是这样的,我用ADC14采样电压,Verf接Vcc(3V3),当VCC下降到3.3V以下时,ADC14采样值计算后就不变了,3.3和3V时是一样的,想用1.19来校正,不知如何操作。。
麻烦指点一下 //ADC获取batt电压并显示
void handel_adc(bit flag)
{
u16adc_val;
u16u16_volt;
float volt ;
Get_Adc(15); //获取ADC
adc_val= ADC_RES<<8|ADC_RESL ; //高低字节合并
LCD_ShowChar(100+24,0,"0123456789ABCDEF",RED,BLACK,16,0,0);
LCD_ShowChar(100+16,0,"0123456789ABCDEF",RED,BLACK,16,0,0);
LCD_ShowChar(100+8,0,"0123456789ABCDEF",RED,BLACK,16,0,0);
LCD_ShowChar(100,0,"0123456789ABCDEF",RED,BLACK,16,0,0);
Get_Adc(14); //获取ADC
adc_val= ADC_RES<<8|ADC_RESL ; //高低字节合并
LCD_ShowChar(100+24,1,"0123456789ABCDEF",RED,BLACK,16,0,0);
LCD_ShowChar(100+16,1,"0123456789ABCDEF",RED,BLACK,16,0,0);
LCD_ShowChar(100+8,1,"0123456789ABCDEF",RED,BLACK,16,0,0);
LCD_ShowChar(100,1,"0123456789ABCDEF",RED,BLACK,16,0,0);
}
以上运行后发现两处显示是一样的值,都 是016c
是的,1.19V是能隙电压源(就是常说的基准电压),工作电压在2.5~5.5V内变化很小。
1.19V对应的10位ADC值 = 1024*1.19/AVREF
1.19V对应的12位ADC值 = 4096*1.19/AVREF
页:
[1]