TCL2543的使用
时间:10-02
整理:3721RD
点击:
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),但是这些通道单独工作时转换是没有问题的,请问这是怎么回事呢?改如何改善?
