大家好,最近在忙一个数模转换的东东,用到了一片dac7612,双通道输出,12bit ,我用单片机进行的控制,控制信号如下图所示,示波器中显示良好,图显示的是输出128.也就是0.128mv,dac7612没有加负载什么的,然后测试输出口,电压值不知为什么不稳定,请大家帮忙看看,帮我找一下原因,
示波器显示的数据
(原文件名:p_large_dWtm_4e610000000d5c41.jpg)
(原文件名:p_large_NAcX_34b2000000205c3f.jpg)
(原文件名:时序.png)
(原文件名:时序一.png)
附c程序代码
void AnalogOutput(bit lbch ,unsigned int da_data){
unsigned char lucBitNum;
EA = 0;
da_data = da_data<<2;
if(!lbch){
// ch A
da_data |= 0x8000; // A1 = 1;
da_data &= 0xBFFF; // A0 = 0;
}else{
// ch B
da_data |= 0xC000;
}// A1 = A0 = 1;
LOADDA = 1;
delay_us(15);
da_cs=0;
delay_us(15);
for(lucBitNum=0;lucBitNum<14;lucBitNum++)
{
DA_CLK=1;
DA_SDI = da_data & 0x8000;
delay_us(15);
DA_CLK = 0;
delay_us(15);
da_data= da_data<<1;
}
da_cs=1;
delay_us(15);
LOADDA=0;
delay_us(15);
LOADDA=1;
delay_us(15);
EA=1;
}
void main()
{
while(1)
{
AnalogOutput(0,128);
while(1) ;
}
}
这个有问题吧,看一眼for循环的条件0.0、、、
一周热门 更多>