This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

【原创】TCL2543的使用

Other Parts Discussed in Thread: TLC2543

TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。

TCL2543的内部结构图如下

TCL2543与89C51的连接如下图

程序如下

#include 
#define uint unsigned int
#define uchar unsigned char
//**************************修改硬件时要修改的部分********************************
sbit clock   = P0^0;   //输入、输出时钟端
sbit input   = P0^1;     //数据输入端
sbit output = P0^2;     //数据输出端
sbit CS      = P0^3;   //片选端,负电平有效
uint read2543(uchar CON_WORD) //CON_WORD为选择的通道,为0--10
{
   uint ad=0;
uchar i;
CON_WORD<<=4; 
clock=0;
CS=0;
for(i=0;i<12;i++)
{
    if(output==1)   //读取DATAOUT
        ad=ad|0x01;
    if(CON_WORD&0x80) //读取控制字到INPUT
        input=1;
    else
        input=0;
    clock=1;
    delay(10);
       clock=0;
    delay(10);
    CON_WORD<<=1;
    ad<<=1;
}
CS=1;
ad>>=1;
return(ad);
}
  • 12路输入 很方便 楼主如果把时序图也贴出来

    对找你的程序就更方便了

  • 您好,我现在做的TLC2543AD转换,当转换一路时转换结果是正常的,但是当转换2路以上时出现的结果就不正确了,有的偏小(比如输入模拟量为5v,结果转换只有4.5v),有的偏大(比如输入为0,结果转换后有0.3v),但是这些通道单独工作时转换是没有问题的,请问这是怎么回事呢?改如何改善?