新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 无运放的权电阻网络在单片机控制系统中的应用(下)

无运放的权电阻网络在单片机控制系统中的应用(下)

作者:罗国发时间:2015-04-28来源:电子产品世界收藏

  接上篇

本文引用地址:http://www.eepw.com.cn/article/273258.htm

  编程思路

  对于类数据,常用的数表有数表、

  1. 数表,优点是直观,方便后期查验,与电源电压无关;缺点和AD值之间需要额外的计算,占用系统时间。

  2. ,优点是只需做比较而无需乘除,与电源电压无关;缺点是不直观,需要保存好原始的计算表格以备查验。

  这里使用第二种,我们推导一下AD值与地址设置值之间的关系:

  因为并联电路和串联电路都是线性电路,电源的波动会直接导致输出电压波动,所以直接把和Vref连接能更好地去除电源波动对电压采集的影响,即令=Vref,化简得:Ad=(2n-1)*K

  之前的Excel表格已经算出了系数K,在I4写入=H4*(2^$I$2-1),复制粘贴即可得到AD数表,再把它定义成数组即可。

  主要程序

  #define uint unsigned int
  #define uchar unsigned char
  #define parallel
  #ifndef parallel
  #define series
  #endif
  #ifdef parallel
  //并联电路AD数表
  const uint code ad_table[]=
  {
  0 , 59 ,113 ,160 ,204 ,242 ,278 ,310 , //0~7
  341 ,368 ,393 ,416 ,438 ,458 ,477 ,494 , //8~15
  512 ,527 ,541 ,555 ,568 ,580 ,592 ,603 , //16~23
  614 ,624 ,633 ,642 ,651 ,659 ,667 ,674 , //24~31
  };
  //并联电路AD数表为
  uint address_cal(uint value)
  {
  uchar i=0;
  uint address=0;
  uint buff=value;
  for(i=0;i<31;i++)
  {
  if((buff>=ad_table[i]) && (buff<ad_table[i+1]))
  {
  address=i;
  break;
  }
  }

电阻相关文章:电阻的作用居然有这么多,你造吗


光敏电阻相关文章:光敏电阻工作原理



上一页 1 2 下一页

关键词: MCU PCB 电阻 AD数表 VCC

评论


相关推荐

技术专区

关闭