首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

芯片封装和引脚如图:


代码如下:
[cpp] view plaincopy

  • #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芯片转换后产生的波形如下所示:
(------------完-------------)
继承事业,薪火相传
返回列表