普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 7980|回复: 1

[已解决] 请大佬帮助

[复制链接]

2

主题

2

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2020-3-28 12:56:06 | 显示全部楼层 |阅读模式
1金钱
请问AD转换时,读取的12位的2进制值,为什么在数码管上以十进制的形式显示?查了好多资料还是不懂,望大佬解答!
万分感谢

最佳答案

其实没什么难的。 第一种:仅仅把12位值变为十进制显示 12位二进制,最大十进制4095,所以:           DisplayData[3]=DIG_CODE[temp%10000/1000];         ...

回复

使用道具 举报

20

主题

1344

帖子

8372

积分

论坛元老

Rank: 8Rank: 8

积分
8372
发表于 2020-3-29 09:28:38 | 显示全部楼层
其实没什么难的。
第一种:仅仅把12位值变为十进制显示
12位二进制,最大十进制4095,所以:
          DisplayData[3]=DIG_CODE[temp%10000/1000];
          DisplayData[2]=DIG_CODE[temp%1000/100];
          DisplayData[1]=DIG_CODE[temp%100/10];
          DisplayData[0]=DIG_CODE[temp%10/1];
显示就是十进制了
第二种:转换为电压值,再十进制显示
以单片机5V电压为参考值举例,那么你读取的一位值就是5/4096=0.24mV
那么,把你读的值乘以0.24,结果就是以mV为单位的值,再用第一种方法,显示出十进制。
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-19 20:21 , Processed in 0.084683 second(s), 31 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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