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
关于模拟技术就介绍完了,您有什么想法可以联系小编。