标题: 关于stc15单片机ADC测电压,ADC_DAT导致溢出了? [打印本页]

作者: 27835030    时间: 2021-7-27 15:56
标题: 关于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

作者: 效果也很好    时间: 2021-7-27 17:17
把这个数打印出来就知道了啊
作者: Y_G_G    时间: 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的结果不一定是准确的,
作者: 27835030    时间: 2021-7-27 21:32
Y_G_G 发表于 2021-7-27 20:13
1,读取ADC返回值是u8类型数据,返回的值却是u16类型
2,STC单片机什么时候可以仿真了呢?
3,如果没有必要,不 ...

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1