找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STC8G1K08单片机的AD结果转换是16位还是10位

查看数: 1972 | 评论数: 12 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-6-18 20:26

正文摘要:

我测试,只有16位才是正确结果,也就是(寄存器的值/65535*VCC),但是官网写的是10位应该用1024???是我撞对了还是手册错了? #include <STC8.H> unsigned int ADCReadBt; unsigned char ADCReadBtH ...

回复

ID:69038 发表于 2024-6-23 21:54
STC的ADC是10位或12位。比如8H1K08、8H1K28系列为10位,而8H1K08T、8H3K、8H4K、8H8K系列为12位。
但你是要用16位(ADC_RES、ADC_RESL从高到低bit15:bit0)去读取。
你要是设成左对齐(ADCCFG^RESFMT=0),低6位(ADC_RESL的bit5:bit0)或低4位(ADC_RESL的bit3:bit0)全是0,
你要是设成右对齐(ADCCFG^RESFMT=1),则高6位(ADC_RES的bit15:bit10)或高4位(ADC_RES的bit15:bit12)全是0,
如果要求不高,也可以设为左对齐,只读取高8位即ADC_RES
强烈建议你认真读一下手册中的ADC相关章节。。
ID:624769 发表于 2024-6-22 20:21
你没发现你以为的16位 最低的 6 位 始终始终是 0 么?
要按你这样就算 16位 的话,你再 左移个16位,就成32位ADC了, STC能吹上天了。
ID:675287 发表于 2024-6-21 08:31
10位的,但是数据可以舍弃后两位变成8位,如果不需要那么高的精度的话,也可以16位,高六位为0
ID:123289 发表于 2024-6-20 20:20
为何不求助于手册呢?
ID:857072 发表于 2024-6-19 12:03
有效值是十位,但是寄存器是高八位和低八位 两个八位的寄存器合起来你读寄存器的时候它是16位的值
ID:401564 发表于 2024-6-19 11:53
那是你没有认真看数据手册,STC的8G系列目前都是10位,你要是用16位计算对了,那就是你代码错了
ID:1125957 发表于 2024-6-19 08:51
官网发布的一般都是正确的,你这个16位应该是撞对了 10位是对的
ID:344848 发表于 2024-6-19 02:28
coody_sz 发表于 2024-6-18 23:55
STC8H系列、STC32G系列的12位ADC非常精准的。

如你所言,本人认为可能某些环境精度达不到呀,从南京到北京买的没有卖的精,若比较完善达到12位为何说成10位,匪夷所思,
ID:1034262 发表于 2024-6-18 23:55
donglw 发表于 2024-6-18 22:27
请相信官网所说的AD结果是10位,不是12位,更不是16位;目前单片机欧洲的ST公司AD转换是12位,Ti公司AD转 ...

STC8H系列、STC32G系列的12位ADC非常精准的。
ID:1034262 发表于 2024-6-18 23:55
STC8G1K08是10位的ADC
ID:344848 发表于 2024-6-18 22:27

请相信官网所说的AD结果是10位,不是12位,更不是16位;目前单片机欧洲的ST公司AD转换是12位,Ti公司AD转换是16位。他们的价格都比国产单片机的价格贵。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表