oqxeahdm 发表于 2025-5-25 22:07:14

8H系列ADC问题

使用的是STC8H108T芯片,在使用adc0和adc1读取电压时发现问题,0读取的值在0-4,adc1读取的值一直是4095.vref参考电压用的是5V,adc0读取的是3.94V的电池电压,预测值应该是3000多,这可能是因为什么原因,vref参考电压是需要额外在寄存器进行配置吗

晓飛飛 发表于 2025-5-25 22:53:06

使用ADC输入功能的IO必须配置成高阻输入才能正常使用,
另外,ADC时钟选择、通道选择的相关代码也很重要,可以把代码发出来看看。

ercircle 发表于 2025-5-25 23:00:57

电路图也一起发上来看看,用万用表实际测量值是多少V

vb2002 发表于 2025-5-26 00:06:27

前几天我也是很多这样的问题.
现在基本正常了.
转换出来的电压要换算
然后IO口必须高阻

梁工 发表于 2025-5-26 11:58:11

/*************        功能说明        **************
用户请先别修改程序, 直接下载"18-8H1K08T-13路12位ADC转换-串口1(P3.1)返回结果-C语言"里的"ADC.hex"测试.

下载时选择主频11.0592MHZ. 测试时, 电脑的串口助手设置115200,8,n,1.


本程序演示13路ADC和bandgap查询采样,通过串口1(P3.1)发送给上位机,波特率115200,8,n,1.
MCU本身是15路ADC输入的,但是本例程P3.0-RXD(ADC8)、P3.1-TXD(ADC9)被串口占用,所以只读取13路ADC结果。

0 1 2通道对应P1.0 P1.1 P5.4, 3~7通道对应P1.3~P1.7, 8~14通道对应P3.0~P3.6, 15通道为内部1.19V基准电压做输入的ADC值.

******************************************/





dmvision 发表于 2025-7-20 11:42:50

梁工 发表于 2025-5-26 11:58
/*************        功能说明        **************
用户请先别修改程序, 直接下载"18-8H1K08T-13路12位ADC转换-串口1 ...

但是本例程P3.0-RXD(ADC8)、P3.1-TXD(ADC9)被串口占用
请问可以把3.0和3.1通讯功能转移到3.6和3.7,然后3.0和3.1还当成ADC使用吗?

梁工 发表于 2025-7-20 12:19:59

dmvision 发表于 2025-7-20 11:42
但是本例程P3.0-RXD(ADC8)、P3.1-TXD(ADC9)被串口占用
请问可以把3.0和3.1通讯功能转移到3.6和3.7,然后3 ...

可以的。

dmvision 发表于 2025-7-20 12:46:15

梁工 发表于 2025-7-20 12:19
可以的。

但是手册上又说,如果3.0和3.1同时低电平。系统将进入下载状态,可是我的ADC初始状态就是一直在低电平状态。这不是冲突了吗?

神农鼎 发表于 2025-7-20 12:55:26

dmvision 发表于 2025-7-20 12:46
但是手册上又说,如果3.0和3.1同时低电平。系统将进入下载状态,可是我的ADC初始状态就是一直在低电平状 ...

用跳线解决

梁工 发表于 2025-7-20 13:32:49

dmvision 发表于 2025-7-20 12:46
但是手册上又说,如果3.0和3.1同时低电平。系统将进入下载状态,可是我的ADC初始状态就是一直在低电平状 ...

所以一般建议P3.0 P3.1保留为串口下载、通信之用。
如果你实在要用P3.0 P3.1做ADC输入,串口通信使用P3.6 P3.7,则建议如下:
1、由于ADC输入端通常要求对地接一个1nF~100nF电容,而这个电容接在P3.0 P3.1又会影响通信异常导致不能下载程序,所以建议先给IC下载程序后再焊接,如果要在线下载则要设置开关或跳线,下载程序时断开ADC输入电路。
2、下载程序时,确认不要勾选“下次下载时使能USB-ISP模式”。
页: [1] 2
查看完整版本: 8H系列ADC问题