图3 MAX1032与DS87C520的连接
4.3 软件设计
按照图3连接的系统,完整的A/D转换子程序如下:
// 采用P1口作控制
sbit DOUT = P1^2 ; // 数据输出
sbit CS = P1^0 ; // MAX1032片选
#define uint unsigned int
#define uchar unsigned char
//MAX1032 14位A/D操作程序
uint max1032(void)
{ uchar i;
uchar hbyte,lbyte;
cs=0; //低电平有效,开始转换
for(i=0;i<8;i++) //延时,等待转换结束
{
_nop_();
}
SCLK=1;
SCLK=0;
//开始读数据
hbyte=0;
for(i=0;i<6;i++) //高6位
{
DOUT=1;
SCLK=1;
if (DOUT)
{ hbyte=Ox01; }
SCLK=0;
if (i!=5)
{ hbyte<<=1; }
}
lbyte=0;
for(i=0;i<8;i++) //低8位
{
DOUT=1;
SCLK=1;
if (DOUT)
{ lbyte=Ox01; }
SCLK=0;
if (i!=7)
{ lbyte<<=1;}
}
}
5 结论
Maxim公司的高性能A/D系列的产品已在多种场合得到了广泛的应用,如高精度数据采集系统、工业过程控制、便携式数字仪表、医疗仪器等。本文介绍了Maxim最新推出的14位多通道串行ADC MAX1032的性能和特点,给出了典型的应用实例及程序,读者可将其灵活运用于自己的系统设计中。
本文作者创新点:作者在介绍最新模数转换器件的基础上,依据长期的科研和教学实践经验,提出了模数转换器件与CPU连接时的抗干扰设计。由于串行输出的模数转换器引脚少,与CPU的连接简单,因此这种设计方法具有普遍的指导意义。