当前位置:网站首页>基于TLC5615的多路可调数控直流稳压电源,51单片机,含Proteus仿真和C代码等
基于TLC5615的多路可调数控直流稳压电源,51单片机,含Proteus仿真和C代码等
2022-04-23 14:13:00 【蒋宇智】
设计要求
- 5V单电源工作;
- 电压输出范围为基准输入电压2倍,本设计调节范围为:0V~3.9V;
- 电压调整精度达0.02%;
- 两种调压方式:自动模式和手动模式;
- 3路电压输出通道,且可分别单独控制;
- 当电压超出设定范围时,自动报警;
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三极管组成。
系统仿真电路图
仿真结果分析
- 通过矩阵键盘,设置第2路通道的输出电压为2.8V,结果如下。
- 当键盘设定电压输出值为4.2V(大于3.9V)时,按下确认键后,数码管显示0.0,LED报警灯点亮,电压实际输出为0.02V≈0V。
- 点击SW2,将开关打至左边,此时电压的输出由滑动变阻器控制,不再由单片机控制,本例中输出电压为1.95V。
部分C代码
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等参考资料。
请微信搜索关注我的公众号:交院小智
版权声明
本文为[蒋宇智]所创,转载请带上原文链接,感谢
https://blog.csdn.net/JiaoDaBoy/article/details/106493137
边栏推荐
- setcontext getcontext makecontext swapcontext
- API gateway / API gateway (IV) - use of Kong - Integrated JWT and fuse plug-in
- 基础正则表达式
- Redis cluster 原理
- JS parabola motion packaging method
- On the problem of cliff growth of loss function in the process of training
- About the configuration and use of json5 in nodejs
- A table splitting implementation scheme of MySQL and InnoDB, MyISAM and MRG_ Introduction to MyISAM and other engine application scenarios
- 浅谈skiplist在LevelDB的应用
- Thread group ThreadGroup uses introduction + custom thread factory class to implement threadfactory interface
猜你喜欢
Qt实战:云曦聊天室篇
Notes on Visio drawing topology
API Gateway/API 网关(四) - Kong的使用 - 集成Jwt和熔断插件
流程控制之分支语句
字节面试编程题:最小的K个数
c语言在结构体传参时参数压栈问题
Use the executors class to quickly create a thread pool
Thread group ThreadGroup uses introduction + custom thread factory class to implement threadfactory interface
TUN 设备原理
sar命令详解
随机推荐
js 格式化时间
Five ways of using synchronized to remove clouds and fog are introduced
setcontext getcontext makecontext swapcontext
Arrays类的使用案例
mysql查询库大小
循环队列的基本操作,你学会了吗?
SSH 通过跳板机连接远程主机
void*是怎样的存在?
贷款市场报价利率(LPR)与贷款基准利率介绍
Use cases of the arrays class
线程间控制之CountDownLatch和CyclicBarrier使用介绍
编译Openssl
dp-能量项链
ssh限制登录的四种手段
MySQL-InnoDB-事务
Processing MKDIR: unable to create directory 'AAA': read only file system
JS key value judgment
矩阵交换行列
C语言p2选择分支语句详解
kprobe 的 3 种使用