找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

为什么STC12C5A60S2单片机的AD值不能转换成电压值?

查看数: 3454 | 评论数: 14 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-11-5 22:44

正文摘要:

弄了好久都解决不了,AD值都正常,但是转换成电压值就不正常了,会不会是软件的原因(使用KEIL3)? #include<reg52.h> #include<intrins.h> #define uint unsigned int   #define ...

回复

ID:93341 发表于 2021-7-15 16:16
标定不对。
ID:852655 发表于 2020-12-10 13:55
分立元件 发表于 2020-11-10 15:53
问题已解决,是数据类型设置不对造成的!

应该怎么设置呢?
ID:382699 发表于 2020-11-10 15:53
问题已解决,是数据类型设置不对造成的!
ID:382699 发表于 2020-11-7 22:20
FJ2018 发表于 2020-11-6 16:46
gjkl你定义为浮点型,计算电压公式   g=l*5.00/1024*1000; 然后看看

改成unsigned long
改成 g=l*50/1023*100;
输出0——50,只有2位,不知道什么原因,正常应该有四位吧?
ID:382699 发表于 2020-11-7 22:18
梁廷明 发表于 2020-11-6 15:34
转换成浮点型看看,除的数没有小数点的

改成 g=l*50/1023*100;
输出0——50,只有2位,不知道什么原因?
ID:394367 发表于 2020-11-6 16:46
gjkl你定义为浮点型,计算电压公式   g=l*5.00/1024*1000; 然后看看
ID:235954 发表于 2020-11-6 15:34
转换成浮点型看看,除的数没有小数点的
ID:213173 发表于 2020-11-6 11:17

+5/10是为了4舍5入
ID:382699 发表于 2020-11-6 10:09
wulin 发表于 2020-11-6 07:44
是楼主计算方法不当

#define VCC_V  5//宏定义电源电压5V

为什么要加5呢?
ID:382699 发表于 2020-11-6 10:07
TTQ001 发表于 2020-11-6 09:22
模数转换的参考电压为VREF,在任何电压V下,ADC结果为n,满量程ADC结果为1023,则V = VREF x(n / 1023), ...

这个方法不行的,出现错误
ID:382699 发表于 2020-11-6 10:06
aking991 发表于 2020-11-6 09:27
首先要根据你的分压电阻比例关系,其次是要知道你单片机工作电源电压,即为基准源,这两个参数很关键,接下 ...

就是按照这个方法,计算出结果不正常!
ID:65956 发表于 2020-11-6 09:27
首先要根据你的分压电阻比例关系,其次是要知道你单片机工作电源电压,即为基准源,这两个参数很关键,接下来就是:基准源乘以采集到的ADC值,再除以10位AD即1024,这样计算结果就是你的ADC实际电压值了
ID:420836 发表于 2020-11-6 09:22
模数转换的参考电压为VREF,在任何电压V下,ADC结果为n,满量程ADC结果为1023,则V = VREF x(n / 1023),将V转换为mV:VmV = V
ID:213173 发表于 2020-11-6 07:44
是楼主计算方法不当

#define VCC_V  5//宏定义电源电压5V
unsigned int ADC_RESX;//10位ADC转换结果
unsigned int ADC_V;        //ADC mV
//强制转换数据类型(32位)运算,得到(4舍5入)mV
ADC_V=(VCC_V*(long)ADC_RESX*10000/1024+5)/10;

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

Powered by 单片机教程网

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