TLC5615驱动程序

电子常识

2637人已加入

描述

  TLC5615是德州仪器公司生产的一款10位D/A转换器,单路电压输出,输出电压最大可达到基准电压的两倍,可带最小2K欧姆的负载。这款芯片带有上电复位功能,采用三线制串行总线接口,兼容SPI通信,最大转换时间为12.5微秒(输入从0x000变为0x3ff或者从0x3ff变为0x000,输出稳定信号的时间),还能进行多片级联使用。TLC5615是一款性价比高、很常用的10位数模转换芯片。

  TLC5615驱动程序

  #include《reg52.h〉

  sbit din=P1^0;//串行数据输入

  sbit sclk=P1^1;//串行时钟

  sbit cs = P1^2;//片选

  sbit dout=P1^3;//串行数据输出

  //延时毫秒函数:

  void Delayms(unsigned int t)

  {

  unsigned int x,y;

  for(x=t;x〉0;x--)

  for(y=120;y〉0;y--);

  }

  //写TLC5615数据函数:

  void WriteTLC5615(unsigned int wdata)

  {

  unsigned char i; cs=0;//片选使能

  wdata《《=2;//将数据左移两位,补两位扩展位,组成12位数据写入

  for(i=0;i《12;i++)//写入12位数据

  {

  sclk=0;

  din=(wdata&0x0800)?1:0;//取出最高位(第11位)写入

  sclk=1;//上升沿送数据

  wdata《《=1;//下一位移到最高位

  }

  cs=1;//片选禁止

  }

  //主函数: int main(void) { unsigned int i; while(1)

  {

  //输入数据大于512时,输出电压已经无法再上升。

  for(i=0;i《512;i++)

  {

  WriteTLC5615(i);//输入数据从0-512每间隔200ms递增, Delayms(200);

  //用万用表测量输出引脚,会看到电压从0V-4V每间隔200ms以约10mv递增

  }

      if(i==512)

  {

  for(i=512;i》0;i--)

  {

  WriteTLC5615(i); Delayms(200);

  }

  }

  }

  return 0;

  }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分