找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2636|回复: 3
打印 上一主题 下一主题
收起左侧

关于stc15单片机ADC测电压,ADC_DAT导致溢出了?

[复制链接]
跳转到指定楼层
楼主
如下图,ADC_DAT的值后面成10结果测得电压还是比较准确的,但值后面成100,电压值就不正确了,感觉像ADC_DAT不够大,导致溢出了,但是值并不是很大,应该不会溢出吧,请大佬能解答一下,谢谢(上面的小数点是我自己加的,可以不用管)

3.png (23.53 KB, 下载次数: 105)

3.png

4.png (37.64 KB, 下载次数: 110)

4.png

1.png (28.38 KB, 下载次数: 104)

1.png

2.png (35.94 KB, 下载次数: 92)

2.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:956553 发表于 2021-7-27 17:17 | 只看该作者
把这个数打印出来就知道了啊
回复

使用道具 举报

板凳
ID:401564 发表于 2021-7-27 20:13 | 只看该作者
1,读取ADC返回值是u8类型数据,返回的值却是u16类型
2,STC单片机什么时候可以仿真了呢?
3,如果没有必要,不要用浮点型数据,读取ADC整个计算过程用unsigned char
高位和低位合并后的数据用unsigned long int
先得到完整的ADC数字量,先保证数字量是正常范围值,最后计算直接用整型数据就可以了,单片机没有浮点数据,C环境下的浮点是C自己的,不是8051的
比如:10位ADC的量1024个数字量,实际测量值是209,参考电压5.00V,计算方法就是:209/1024*5000mV=1020mV±(4.88mV),这4.88mV是误差,你把这1020mV想办法输出就行了
而如果是用20/1024*5.00的结果不一定是准确的,

评分

参与人数 1黑币 +5 收起 理由
ax6808 + 5

查看全部评分

回复

使用道具 举报

地板
ID:897180 发表于 2021-7-27 21:32 | 只看该作者
Y_G_G 发表于 2021-7-27 20:13
1,读取ADC返回值是u8类型数据,返回的值却是u16类型
2,STC单片机什么时候可以仿真了呢?
3,如果没有必要,不 ...

谢谢,没注意到到返回值是u16的,用Proteus8.9版本的就可以仿真stc单片机
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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