3、 硬件连接电路

MAX5631与单片机AT89C51的硬件连接如图5所示。片选CS可控制MAX5631是否被选中。CS为低后,所有的转换开始有效。DIN为串行数据输入,SCLK为外部时钟输入。IMMED为模式选择,该脚为高或者控制字C1为高表示选择立即更新模式;当IMMED和C1同时为低表示猝发模式。在所给出的硬件连接图中,这两种模式可通过P1.4的控制加以选择。如果已经固定选择了某一模式,也可以将该脚直接接地或电源。CLKSEL为时钟选择端,当C0或者该脚为高电平时,系统选择外部时钟模式,此时内部时钟模式将被关闭。所给的硬件连接图为外部时钟模式。ECLK为外部时钟模式控制引脚,可用于控制外部时钟。RST为输入复位端。

4、 软件程序设计

下面是针对图5硬件连接电路给出的相应C评议程序。其中单片机晶振频率为11.0592Hz。设计时,首先送入24个输入字,其中前16位是要转换的16位数(用第一个循环实现输入数据),后8位是通过地址选择的输出数据通道号。

Max5631(unsigned int Data,unsigned char Chan)

{

unsigned char BitCounterData=16,BitCounter Chan=8;//位数控制

unsigned char TempChan;//中间临时通道号

unsigned int TempData;//中间临时变量

TempData=Data;

TempChan=Chan;

TempChan《《=3;

TempChan&=0xfffe;

SCL=0;//时钟线为低电平

SCS=0;//片选为低电平

do{

SCL=0;

-nop-();

if((TempData&0x8000)==0x8000)//如果最高位是1

SDA=1;

Else

SDA=0;//数据线为低电平

SCL=1;

TempData=TempData《《1;左移

BitCounterData--;

}while(BitCounterData);

do{

SCL=0;

-nop-();

if((TempChan & 0x0080)==0x0080)//如果最高位是1

SDA=1;

else

SDA=0;

SDA=0;

SCL=1;

TempChan=TempChan《《1;//左移

BitCounterChan--;

}while(BitCounterChan);

SCL=0;

SCS=1;

}

5、 结束语

MAX5631是MAXIM公司推出的多通道D/A转换器。该器件接口简单,特别适用于控制多路模拟信号,可广泛应用于自动监测、工业控制程序及光电控制电路等场合。

责任编辑:gt

关于模拟技术就介绍完了,您有什么想法可以联系小编。