加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

A/D 转换数据处理程序

发布时间:2020-12-14 02:06:00 所属栏目:大数据 来源:网络整理
导读:有一段程序看不懂: for(n = 0; n 8; n++) { ?? dis[2] = ad_data[n] / 51?? //测得值转换为3位BCD码,最大为5.00V ?? dis[4] = ad_data[n] % 51;? //余数暂存 ?? dis[4] = dis[4] * 10;????? //计算小数第一位 ?? dis[1] = dis[4] / 51; ?? dis[4] = dis[4]

有一段程序看不懂:

for(n = 0; n < 8; n++) {
?? dis[2] = ad_data[n] / 51?? //测得值转换为3位BCD码,最大为5.00V
?? dis[4] = ad_data[n] % 51;? //余数暂存
?? dis[4] = dis[4] * 10;????? //计算小数第一位
?? dis[1] = dis[4] / 51;
?? dis[4] = dis[4] % 51;
?? dis[4] = dis[4] * 10;????? //计算小数第二位
?? dis[0] = dis[4] / 51;
??? .....
ad_data[n] 是A/D后的数据,dis[]是要送去显示的数。

那些注释都是书上写的。还是看不明白!!请问那程序是怎么处理数据。尤其那51是什么意思。

悬赏分:0 - 解决时间:2010-1-15 20:42
;------------------------------------------------------
最佳答案:

AD转换,一般是将外接的0~5V的电压,变换成为8位二进制数,即:0~255。
如果想要用这些二进制数字,显示出来0.00~5.00V,除以51,则是很正常的。
-
AD转换,对初学者是个比较费解的问题,泛泛的讲,不如说一个具体的例子。
假设,当外接的电压是3.29V,经过AD转换后,送到单片机的数据将是168。
由这个数字变换成329的运算步骤,只需复习一下小学的知识,且看下面插图中的竖式:

?????????????????????

计算步骤:

  1.168除以51,整数部分是3,余数部分是15;
  2.15后面添上0,即余数部分乘以10;
  3.150除以51,整数部分是2,余数部分是48;
  4.48后面添上0,即余数部分乘以10;
  5.480除以51,整数部分是9,余数部分是21;
-
此时,就得到 329 了,如果要求精度较高,可以继续除下去。
写到这一步,相信大家都可以看懂楼主给出的程序了。
;------------------------------------------------------
回答者:? 做而论道 - 十二级?? 2009-12-31 18:11
提问者对于答案的评价:XX
原文网址:http://zhidao.baidu.com/question/131473045.html;------------------------------------------------------

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读