51单片机AD转换后的值

2019-07-15 09:40发布

用TL549 AD芯片来处理。它是8位的芯片。
uint ad_549()                    //TLC549处理
{
  uchar i;
  uint data_ad = 0;
  cs = 1;                                //初始化,启动
  sclk = 0;
  cs = 0;
  _nop_();                    
  for(i = 0;i < 8;i++)        //读取采集数据,读取的是上一次采集数据
    {
          sclk = 1;
         
          if(data_temp)data_ad |= 0x01;
          sclk = 0;  
          data_ad = data_ad << 1;  
        }        
  cs = 1;
  data_ad = data_ad  * (500/ 256);   
  return(data_ad);
}


为什么转换后的值要 * (500/ 256),这部分该怎么理解?  谁能说下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
langzitianya
1楼-- · 2019-07-15 20:58
 精彩回答 2  元偷偷看……
liujinyi016
2楼-- · 2019-07-16 00:03
由于看不到电路,也不知道是用于测量什么的,一般是ADC值与物理值的一个比例关系。
将测量 值与计算结果对比一下就明白了。
人中狼
3楼-- · 2019-07-16 03:45
这里应该是为了方便显示,可以理解为转换后的电压=AD值*(5/256)*100,5/256是满值5伏电压进行转换的AD值的每一个二进制位的电压值,最后乘以100是因为程序里用了整形变量存储电压值,这样就存不了小数,所以乘以100,就可以有2位小数了 。
就是从这里掉出来的
4楼-- · 2019-07-16 05:03
按照电压基准和分辨率位数进行换算
尼米兹V5
5楼-- · 2019-07-16 10:58
..................................................
music_mc
6楼-- · 2019-07-16 13:08
 精彩回答 2  元偷偷看……

一周热门 更多>