有哪位大神用过
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);
}
一周热门 更多>