|
发表于 2025-6-17 14:38:00
|
显示全部楼层
使用STCG1K08A单片机读取BG电压的原理及代码示例
1. 单片机基本配置
型号:STCG1K08A
内部参数:
带隙基准电压(BG):119V
ADC位数:15位(16位二进制数)
满量程值(VCC):5V
内部特性:
BG电压通过存储器存储并校准,校准值通过 flash存储
ADC读数基于VCC电压
2. 原理分析
1. 读取BG电压
ADC读数基于VCC电压进行比较,代码中直接读取BG电压对应的码数。
BG电压为119V,通过十六位二进制数表示:49650(高八位4965,低八位650)。
2. 读取VCC电压
ADC满量程为1024(对应5V)。
VCC电压读取为1024 × 毫伏每码。
3. 示例代码修改说明
以下为修正后的示例代码,用于验证ADC功能:
```cpp
include "STC8GH"
include "intrinsh"
void ADCREAD(void) {
unsigned int VCC = ADC.Read(0x00, 0x7F); // ADC读取5V值,对应1024
unsigned int BG = ADC.Read(0x80, 0x7F); // ADC读取119V值,对应512(5V=1024/2)
// 转换BG电压为毫伏
VCC >>= 8; // 除以2,得到1024/2 = 512
VCC >>= 8; // 除以2,得到1024/4 = 256
VCC >>= 8; // 除以2,得到1024/8 = 128
VCC >>= 8; // 除以2,得到1024/16 = 64
VCC >>= 8; // 除以2,得到1024/32 = 32
VCC >>= 8; // 除以2,得到1024/64 = 16
VCC >>= 8; // 除以2,得到1024/128 = 8
VCC >>= 8; // 除以2,得到1024/256 = 4
VCC >>= 8; // 除以2,得到1024/512 = 2
VCC >>= 8; // 除以2,得到1024/1024 = 1
// 转换为毫伏
VCC
[本文内容由国芯人工智能辅助生成,仅供参考] |
|