图4TLC2543和GMS90C32接口
在设计制作时要注意如下三个问题:
(1)电源去耦
当使用TLC2543这种12位A/D器件时,每个模拟IC的电源端必须用一个0.1μF的陶瓷电容连接到地,用作去耦电容。在噪声影响较大的环境中,建议每个电源和陶瓷电容端并一个10μF的钽电容,这样能够减小噪声的影响。
(2)接地
对模拟器件和数字器件,电源的地线回路必须分开,以防止数字部分的噪声电流通过模拟地回路引入,产生噪声电压,从而对模拟信号产生干扰。所有的地线回路都有一定的阻抗,因此地线要尽可能宽或用地线平面,以减小阻抗,连线应当尽可能短,如果使用开关电源,则开关电源要远离模拟器件。
(3)电路板布线
使用TLC2543时一定要注意电路板的布线,电路板的布线要确保数字信号和模拟信号隔开,模拟线和数字线特别是时钟信号线不能互相平行,也不能在TLC2543芯片下面布数字信号线。
5.2软件
包括主程序和两个子程序“SET1”、“SET2”。主程序定义口1的I/O引脚方向:P1.2设置为输入端,P1.0、P1.1和P1.3设置为输出端。设定P1.3使TLC2543片选端为高,“SET1”被调用,这个子程序模拟SPI操作,在TLC2543和微控制器间交换数据。检测最低位前导(LSBF)标志,即通道选择/方式数据字节的位1,以决定转换结果的哪个字节最先传送,子程序“SET2”用于映射相应于所选择的特定通道的MSBYTE和LSBYTE到偶数或奇数的RAM地址。
程序清单如下:
ORG2000H
BEGIN:MOVSP,#50H;设置堆栈指针
MOVP1,#04H;定义口1的输入和输出
CLRP1.0;清I/O时钟
SETBP1.3;设置片选
为高
MOVA,#0FFH
ACALLSET1;调SET1子程序
ACALLSET2;调SET2子程序
JMPBEGIN;转到BEGIN
SET1:MOVR4,P3;读方式/通道数据
MOVA,R4
CLRP1.3;设置片选为低
JBACC.1,LSB;如果A的位1为1,则先传送低字节
MSB:MOVR5,#08H;设置高4位计数器
LOP1:MOVC,P1.2;读转换结果
RLCA;A寄存器的内容左移
MOVP1.1,C;输出方式/通道字节
SETBP1.0;设置I/O时钟为高
CLRP1.0;设置I/O时钟为低
DJNZR5,LOP1;不为0则返回LOP1
MOVR2,A;把高字节放到R2
MOVA,R4;把方式/通道控制字放到R2
JBACC.1,RETURN
LSB:MOVR5,#08H;设置低字节计数器
LOP2:MOVC,P1.2;读转换数据到C
RLCA;A的内容到C
MOVP1.1,C;输出方式/通道字节
SETBP1.0;设置时钟为高
CLRP1.0;设置时钟为低
DJNZR5,LOP2;R5不为0,则返回LOP2
MOVR3,A;把低字节反放到R3
MOVA,R4;把方式/通道控制字放到R3
JBACC.1,MSB;如果R4的位1为1,则传送高字节
RETURN:RET
SET2:MOVA,R4;读方式/通道控制字
ANLA,#0F0H;保留通道控制字
SWAPA;A寄存器中的高4和低4位交换
MOVB,#02H
MULA,B;A和B相乘
ADDA,#030H;A的内容再加30H
MOVR1,A
MOVA,R2
MOV@R1,A;把高字节的内容放到对应地址中
INCR1
MOVA,R3
MOV@R1,A;把低字节的内容放到对应地址中
RET
END
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.

