A/D 转换数据处理程序

来源:互联网 发布:淘宝店新手如何推广 编辑:程序博客网 时间:2024/05/01 05:23

有一段程序看不懂:

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的运算步骤,只需复习一下小学的知识,且看下面插图中的竖式:

                      A/D转换的程序问题 - 非著名博主 - 电子信息角落

计算步骤:

  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
;------------------------------------------------------

0 0
原创粉丝点击