工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->基础电路图->数字电路图->A/D转换(TLC0831)的应用

A/D转换(TLC0831)的应用

作者:Lamborghini时间:2009-09-23

  TLC0832是8位逐次逼近电压型A/D转换器,支持单信道输入串口输出,极性设置固定,不需寻址。其内部有一采样数据比较器将输入的摸拟信号微分比较后转换为数字信号。摸拟电压的差分输入方式有利于抑制共摸信号和减少或消除转换的偏移误差。而且,电压基准输入可调,使得小范围摸拟电压信号转化时的分辨率更高。由标准移位寄存器或微处理器将时间变化的数字信号分配到串口输出,当IN-接地时为单端工作,此时IN+为输入,也可将信号差分后输入到N+与N-之间,此时器件处于双端工作状态。其主要特点如下:

  (1) 8位分辨率;

  (2) 单信道差分输入;

  (3) 5V的电源提供0-5V可调基准电压;

  (4) 输入输出可与TTL和MOS兼容;

  (5) 总失调误差为1SB。

  TLC0831时序图如下:  

 

  典型的应用电路如下图:

  

 

  根据上图可以编写如下的C51应用程序:

  #include

  #include

  typedef unsigned int uuint;

  typedef unsigned char uchar;

  sbit adcdo=P1^0; //定义TLC0831的数据线D0

  sbit adccs=P1^2; //定义TLC0831的时能线CS

  sbit adcclk=P1^1; //定义TLC0831的时钟线CLK

  void delay(uchar x); //定义廷时函数

  uchar readadc(void); //定义读数据函数

  void adcck(void); //定义时钟函数

  void delay1(uchar x)

  {

  uchar i;

  for(i=0;i

  {};

  }

  void adcck(void) //时钟函数

  {

  adcclk=1;delay1(2);

  adcclk=0;delay1(2);

  }

  uchar readadc(void) //读出TLC0831转换数据函数

  {

  uchar i;

  uchar ch;

  adccs=0;adcck();ch=0;

  for(;adcdo==1;)adcck();

  for(i=0;i<8;i++)

  { adcck();

  ch=(ch<<1)|adcdo;

  }

  adccs=1;

  return(ch); //返回值,即转换后的数据

  }

  void main(void) //主函数

  {

  uchar a;

  a=readadc();

  ACC=a;

  }


关键词: 转换 TLC0831 应用

评论

EEPW网友 · 2009-10-24 11:15:02

程序编得非常好,可惜你的网站连到别的地方去了

技术专区