DAC7811不能正常驱动

2019-07-15 18:38发布

有哪位大神用过ti公司的dac7811  12位da,我用的avr的单片机写驱动程序,开始用spi通信,不能成功,后来自己写了驱动程序,还是不行。
电路上电后不接和单片机通信的三条线,输出大约200mv的直流。接上之后,不管怎么调输入的电压数据,一直都是2.56v的直流(参考电压是5v),电路应该没有问题,求大神看看程序。

#include <mega16.h>
#include <delay.h>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

#define SCLK_UP    PORTB|=(1<<0x01)
#define SCLK_DOWN  PORTB&=~(1<<0x01)
#define SYNC_UP    PORTB|=(1<<0x02)
#define SYNC_DOWN  PORTB&=~(1<<0x02)
#define SDIN_UP    PORTB|=(1<<0x03)
#define SDIN_DOWN  PORTB&=~(1<<0x03)

char DA_ON[4]={0,0,0,1};
char DA_OFF[4]={0,0,0,0};
char DA_baochi[4]={0,0,1,1};

void write_da7811(long da)
{
  char i;
  SCLK_UP;
  SYNC_UP;
  delay_us(100);
  SYNC_DOWN;
  for(i=0;i<4;i++)
  {
    SCLK_UP;
    if(DA_ON[i])
      SDIN_UP;
    else
      SDIN_DOWN;
      delay_us(100);
    SCLK_DOWN;
  }
  for (i=0;i<12;i++)
  {
    SCLK_UP;
    if(da&0x800)
       SDIN_UP;
    else
       SDIN_DOWN;
       delay_us(100);
    SCLK_DOWN;
    da<<=1;
  }
  SYNC_UP;
  SCLK_DOWN;
  
}

void main( void )
{
  DDRB=0xff;
// write_da7811(0x000f);     //送数字量
  delay_ms(1);
  write_da7811(0x07ff);
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。