TLV5616(12位D/A转换芯片)单片机驱动

芯片封装和引脚如图:

TLV5616(12位D/A转换芯片)单片机驱动_第1张图片

代码如下:

#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int 


void tlv5616_da(uint da);

sbit tlv5616_clk=P1^1;
sbit tlv5616_data=P1^0;
sbit tlv5616_cs=P1^3;
sbit tlv5616_fs=P1^2;

void tlv5616_da(uint da){
    uchar i;
    tlv5616_cs=0;
    tlv5616_clk=1;
    tlv5616_fs=0;
    for(i=0;i<16;i++){
      _nop_(); _nop_();
      tlv5616_data=(bit)(da&0x8000);
      tlv5616_clk=0;
      _nop_();_nop_();
      da<<=1;
      tlv5616_clk=1;
      _nop_(); _nop_();
    }
    
    tlv5616_cs=1;
    tlv5616_fs=1;
    tlv5616_clk=0;
    for(i=0;i<16;i++);
}

void main(void){
    while(1){
	   tlv5616_da(1000);
       _nop_();_nop_();_nop_();_nop_();
	   tlv5616_da(2000);
       _nop_();_nop_();_nop_();_nop_();
	   tlv5616_da(3000);
       _nop_();_nop_();_nop_();_nop_();
       tlv5616_da(4000);
       _nop_();_nop_();_nop_();_nop_();
	   tlv5616_da(3000);
       _nop_();_nop_();_nop_();_nop_();
	   tlv5616_da(2000);
       _nop_();_nop_();_nop_();_nop_();
	   tlv5616_da(1000);
       _nop_();_nop_();_nop_();_nop_();
       tlv5616_da(0);
    }
}


经D/A芯片转换后产生的波形如下所示:

TLV5616(12位D/A转换芯片)单片机驱动_第2张图片

(------------完-------------)


你可能感兴趣的:(单片机,芯片,DA转换,TLV5616)