51单片机A/D转换器程序问题

//连续读5次,输入通道后多读几次,取最后一次值,以便读出稳定值for(i=0;i<5;i++)num=ReadADC(0);//x10表示把实际值扩大10,如4.5变成... //连续读5次,输入通道后多读几次,取最后一次值,以便读出稳定值 for(i=0;i<5;i++) num=ReadADC(0);// x10表示把实际值扩大10,如4.5 变成 45 方便做下一步处理 x5 表示基准电压5V num=num*5*10/256; TempData[0]=DuanMa[num/10]|0x80; TempData[1]=DuanMa[num%10];这个程序的num=num*5*10/256; 怎么回事啊 看不懂 求大神指点迷津 展开
 我来答
wannenggong9559f
生活家

推荐于2017-07-16 · 关注于个人成长
知道大有可为答主
回答量:3691
采纳率:82%
帮助的人:654万
展开全部
先说下简单的常识:对于8位ADC,单极性输入0-5V时,数字量为0-255,能够分辨的最小电压为20mV,分辨率为2的8次方即256位;接下来看下STC片内8位ADC的转换公式:DATA=256*Vin/Vcc;这个公式可以理解为:转换结果/分辨率=输入电压/基准电压 ;即:DATA/256=Vin/5;变化这个公式后就会得到:Vin=DATA*5/256;当语句num=ReadADC(0);运行后,num=DATA它是二进制数据;待到语句num=num*5*10/256;运行结束后就变成了num=Vin了这时已经转换成十进制数据了,而那个放大10备你是知道的了。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
百度网友283d78e
2013-08-11 · 知道合伙人IT服务行家
百度网友283d78e
知道合伙人IT服务行家
采纳数:1491 获赞数:2981

向TA提问 私信TA
展开全部
num=num*5*10/256;

如果是num*5/256就是真实电压值,如果是num=num*5*10/256;就是将电压扩大十倍,因为如果你没有将变量定义成浮点的话,那么算出的结果就只有个位,小数点后面的都给忽略了
追问
他为啥转化为电压值啊?  直接用num不可以吗 我把num=num*5*10/256;去掉,数码管就显示不正常。为啥单通道时候
num=ReadADC(0);
TempData[6]=DuanMa[(num%100)/10];
TempData[7]=DuanMa[(num%100)%10];
没有啊???
追答
那不转换怎么显示在数码管上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
崔寄风FE
2013-08-11 · TA获得超过663个赞
知道小有建树答主
回答量:1344
采纳率:0%
帮助的人:570万
展开全部
这说明你是8位AD,基准5V的话,每个码字代表5/256V,另外的10是你要求的乘系数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式