This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

这是我DAC8760的程序和原理图,能否帮我检查下哪里有问题

Other Parts Discussed in Thread: DAC8760

#ifndef _DAC8760_H
#define _DAC8760_H


#define DACDataReg 0x01
#define DACReadReg 0x02
#define DACControlReg 0x55
#define DACResetReg 0x56
#define DACConfigurationReg 0x57
#define DACGainReg 0x58
#define DACZeroReg 0x59
#define DACWatchdogReg 0x95

#define ReaddataReg 0x0001
#define ReadstatusReg 0x0000
#define ReadcontrolReg 0x0002
#define ReadConfigurationReg 0x000B


#define CPU_F          ((double)1000000)
#define delay_us(x)     __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x)     __delay_cycles((long)(CPU_F*(double)x/1000.0))


#define uchar unsigned char
#define uint unsigned int


#define DAC8760_DIN_1_() P4OUT|=BIT1
#define DAC8760_DIN_0_() P4OUT&=~BIT1
#define DAC8760_SDO_() P4IN&BIT2
#define DAC8760_SCLK_1_() P4OUT|=BIT3
#define DAC8760_SCLK_0_() P4OUT&=~BIT3
#define CLk_set P3OUT|=BIT5
#define CLk_clear P3OUT&=~BIT5
#define DAC8760_LATCH_1_() P3OUT|=BIT6
#define DAC8760_LATCH_0_() P3OUT&=~BIT6


void DA_init();
void DAC8760_write_byte(unsigned char com, unsigned int dat);
#endif

#include<msp430.h>
#include<DAC8760.h>

/***********************************
函数功能:
写数据****
参数:com:前8位命令;
dat:数据

**
***********************************/
void DAC8760_write_byte(unsigned char com, unsigned int dat)
{
 unsigned char i=0;
 unsigned long data;
 data=(((unsigned long)com)<<24)|(dat<<8);

 DAC8760_LATCH_0_();
 DAC8760_SCLK_0_();

 for(i=0;i<24;i++)
 {
  DAC8760_SCLK_0_();
  if(data&0x80000000)
  {
   DAC8760_DIN_1_();
  }
  else
  {
   DAC8760_DIN_0_();
  }
  delay_us(1);
  DAC8760_SCLK_1_();
  data<<=1;
  delay_us(1);
 }
 DAC8760_SCLK_0_();

 delay_us(1);

 DAC8760_LATCH_1_();

 DAC8760_DIN_1_();

}

void DA_init()
{

  CLk_clear;
   DAC8760_write_byte(DACResetReg,0x0001);
   delay_us(1);

   DAC8760_write_byte(DACConfigurationReg,0x0088);
   delay_us(1);

   DAC8760_write_byte(DACControlReg,0x1006);
   delay_us(1);

   DAC8760_write_byte(DACDataReg,0xffff);
   delay_us(1);


}

 输出端一直为0,不知道是哪里有问题,检查了很久没结果,求各位大神帮帮忙