采用模拟SPI的方式,代码如下
void DAC8560_Write_byte(unsigned char com , unsigned char dat)
{
unsigned char i = 0;
DAC8560_FSYNC_LOW;
DELAY_US(5);
DAC8560_SCLK_HIGH;
DELAY_US(5);
for(i=0;i<8;i++)
{
DAC8560_SCLK_HIGH;
// DELAY_US(5);
if(com&0x80)
{
DAC8560_DAT_HIGH;
}
else
{
DAC8560_DAT_LOW;
}
DELAY_US(10);
DAC8560_SCLK_LOW;
DELAY_US(10);
com<<=1;
}
for(i=0;i<16;i++)
{
DAC8560_SCLK_HIGH;
// DELAY_US(5);
if(dat&0x8000)
{
DAC8560_DAT_HIGH;
}
else
{
DAC8560_DAT_LOW;
}
DELAY_US(10);
DAC8560_SCLK_LOW;
DELAY_US(10);
dat<<=1;
}
/* //两个额外的下降沿
DAC8560_SCLK_LOW;
DELAY_US(10);
DAC8560_SCLK_HIGH;
DELAY_US(10);
DAC8560_SCLK_LOW;
DELAY_US(10);
DAC8560_SCLK_HIGH;
DELAY_US(10);
DAC8560_SCLK_LOW;
DELAY_US(10);*/
DAC8560_FSYNC_HIGH;
DELAY_US(10);
}
|