赞
踩
设计要求
TLC5615简介
TLC5615是带有缓冲基准输入(高阻抗)的10位电压输出数字-模拟转换器(DAC),DAC具有基准电压两倍的输出电压范围,且DAC是单调变化的。器件使用简单,用单5V电源工作。
基准电压VREFIN = VCC * [ R8/(R7+R8) ]
系统概述
多路可调TLC5615数控直流电源由51单片机最小系统,3路TLC5615电压数模转换电路、数码管显示模块、4*4矩阵键盘和报警模块组成。
自动模式
单片机控制3路直流电压输出,数码管实时显示当前路数以及该路输出的电压值,按键控制路数的切换和电压大小的设定,报警模块则监测输出电压是否超出最高设定值(3.9V)。
数字量通过矩阵键盘输入后,经TLC5615数模芯片转换,输出模拟量直流电压,电压调整范围为0.1V。
当设定值大于3.9V时,报警模块LED灯点亮,同时数码管显示0.0,提示重新修改输入值。
手动模式
将某一路开关SW打至左边,则该路电压的输出由滑动变阻器控制。
手动模式下,电压输出不再受51单片机、数模转换芯片和矩阵键盘的控制。整个电压输出电路由滑动变阻器、运算放大器和PNP三极管组成。
系统仿真电路图
仿真结果分析
void main(void) //主程序 { // timer0_init(); //初始化定时器0 while(1) { key_scan(); //调用键盘扫描函数 TLC5615_DA_1(val_1); //处理键盘发送过来的值 TLC5615_DA_2(val_2); TLC5615_DA_3(val_3); switch(choice_flag) { case 1 : display(Vol_1+num_1-1); break; case 2 : display(Vol_2+num_2-1); break; case 3 : display(Vol_3+num_3-1); break; } } } void timer0_isr(void) interrupt 1 // timer0中断服务函数 { //数码管的位选变量 TR0 = 0; //停止计数 TL0 = (65536-5000)%256; //重新载入计数器初值 TH0 = (65536-5000)/256; //位循环变量加1 if(cp >= 4) cp = 0; switch(choice_flag) { case 1: deal(val_1);break; case 2 : deal(val_2);break; case 3: deal(val_3);break; } // deal(5698); //循环显示1次,j清零 TR0 = 1; // deal(val_1); // delay(100); P0=0xff; //与j对应,P2输出数码管的位选信号 switch(cp) { case 0: P0 = 0xc1;break; case 1: P0 = LED[shi];break; case 2: P0 = LED[bai]&0x7f;break; // case 3: P0 = 0xbf;break; case 3: P0 = LED[choice_flag];break; } P2 = Bit_sel[cp]; cp++; }
分享的资源有
(1)C程序 ;
(2)Proteus仿真文件 ;
(3)TLC5615芯片手册 ;
(4)程序设计流程图;
全套资源如下
获取多路可调TLC5615数控直流稳压电源系统设计,Proteus仿真、C程序、Visio流程图、TLC5615等参考资料。
请微信搜索关注我的公众号:交院小智
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。