您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

32通道16位D/A转换器MAX5631的原理及应用

时间:2007-1-20栏目:电子通信论文

7通道正在更新的时候,20通道正在装载数据。此时,如果CS变为低电平,则原顺序操作被中断,而当CS变为高电平后,通道20将立即更新,然后是通道7的更新以后的操作依据原序列进行。
  
  猝发模式是一种高速装入多地址SRAM的方法,但此时数据不被立即更新,而只有在数据猝发装入完成并将控制返回到时序控制器后才进行更新。用户通过将IMMED和C1同时保持低电平可选择猝发模式。当CS变低时,顺序操作被中断,可以给相应的SRAM中装入数据。而当CS变高时,顺序操作从中断的地方重新开始。各通道按顺序依次更新数据。猝发操作后,一般需要一个时序循环才能再次读取串口数据以保证所有通道的被猝发数据更新。图4(b)所示是在通道7被更新时,片选CS变成低电平开始装入所有数据的例子,此时没有任何一个通道的数据能被更新。当片选CS变成高电平时,系统将从通道7重新开始顺序更新操作。
  
  3硬件连接电路
  
  MAX5631与单片机AT89C51的硬件连接如图5所示。片选CS可控制MAX5631是否被选中。CS为低后,所有的转换开始有效。DIN为串行数据输入,SCLK为外部时钟输入。IMMED为模式选择,该脚为高或者控制字C1为高表示选择立即更新模式;当IMMED和C1同时为低表示猝发模式。在所给出的硬件连接图中,这两种模式可通过P1.4的控制加以选择。如果已经固定选择了某一模式,也可以将该脚直接接地或电源。CLKSEL为时钟选择端,当C0或者该脚为高电平时,系统选择外部时钟模式,此时内部时钟模式将被关闭。所给的硬件连接图为外部时钟模式。ECLK为外部时钟模式控制引脚,可用于控制外部时钟。RST为输入复位端。
  
  图4
  
  4软件程序设计
  
  下面是针对图5硬件连接电路给出的相应C评议程序。其中单片机晶振频率为11.0592Hz。设计时,首先送入24个输入字,其中前16位是要转换的16位数(用第一个循环实现输入数据),后8位是通过地址选择的输出数据通道号。
  
  Max5631(unsignedintData,unsignedcharChan)
  
  {
  
  unsignedcharBitCounterData=16,BitCounterChan=8;//位数控制
  
  unsignedcharTempChan;//中间临时通道号
  
  unsignedintTempData;//中间临时变量
  
  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(BitC

上一页  [1] [2] [3] 下一页

下页更精彩:1 2 3 4 下一页