一.概述
TLC5615是德州仪器公司出产的一款10位D/A转化器,单路电压输出,输出电压最大可到达基准电压的两倍,可带最小2K欧姆的负载。这款芯片带有上电复位功用,选用三线制串行总线接口,兼容SPI通讯,最大转化时刻为12.5微秒(输入从0x000变为0x3ff或许从0x3ff变为0x000,输出安稳信号的时刻),还能进行多片级联运用。TLC5615是一款性价比高、很常用的10位数模转化芯片。
二.电路设计
在WSF-51DB开发板上,TLC5615的输出端不接任何负载,仅仅扩展了一个接口,作为丈量仪器的接口。芯片的基准电压取自电源电压DC5V。
三.软件设计 /************************************************************************** *程序称号:TLC5615驱动 *程序功用:向TLC5615写入数字信号,丈量调查输出模拟信号 *开发工具:WSF-51DB开发板 * MCU类型:AT89S52-24PU *时钟频率:12MHZ *程序作者:吴师傅 *版权阐明:吴师傅版权所有。转载请注明来历和作者。 **************************************************************************/ #i nclude sbit sclk=P3^3;//串行时钟 sbit din=P3^2;//串行数据输入 sbit cs=P3^4;//片选 sbit dout=P0^7;//串行数据输出 //延时毫秒函数: 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) { //因参阅电压取自电源电压5V,输入数据到达512时,转化输出电压就已到达参阅电压 //输入数据大于512时,输出电压现已无法再上升。 for(i=0;i<512;i++) { WriteTLC5615(i);//输入数据从0-512每距离200ms递加, Delayms(200); //用万用表丈量输出引脚,会看到电压从0V-4V每距离200ms以约10mv递加 } } return 0; } |