51单片机3路直流稳压电源仿真设计,TLC5615芯片实现,附仿真和C代码

获取全套资源,请见后文说明…

设计要求

  1. 5V单电源工作;
  2. 电压输出范围为基准输入电压2倍,本设计调节范围为:0V~3.9V;
  3. 电压调整精度达0.02%;
  4. 两种调压方式:自动模式和手动模式;
  5. 3路电压输出通道,且可分别单独控制;
  6. 当电压超出设定范围时,自动报警;

TLC5615简介
TLC5615是带有缓冲基准输入(高阻抗)的10位电压输出数字-模拟转换器(DAC),DAC具有基准电压两倍的输出电压范围,且DAC是单调变化的。器件使用简单,用单5V电源工作。

基准电压VREFIN = VCC * [ R8/(R7+R8) ].jpg

系统概述
多路可调TLC5615数控直流电源由51单片机最小系统,3路TLC5615电压数模转换电路、数码管显示模块、4*4矩阵键盘和报警模块组成。

系统框图.jpg

自动模式
单片机控制3路直流电压输出,数码管实时显示当前路数以及该路输出的电压值,按键控制路数的切换和电压大小的设定,报警模块则监测输出电压是否超出最高设定值(3.9V)。

数字量通过矩阵键盘输入后,经TLC5615数模芯片转换,输出模拟量直流电压,电压调整范围为0.1V。

当设定值大于3.9V时,报警模块LED灯点亮,同时数码管显示0.0,提示重新修改输入值。

手动模式
将某一路开关SW打至左边,则该路电压的输出由滑动变阻器控制。

手动模式下,电压输出不再受51单片机、数模转换芯片和矩阵键盘的控制。整个电压输出电路由滑动变阻器、运算放大器和PNP三极管组成。

系统仿真电路图

仿真电路图.jpg

操作说明.jpg

仿真结果分析

  1. 通过矩阵键盘,设置第2路通道的输出电压为2.8V,结果如下。


    2路通道电压显示.jpg

    2路通道电压表输出.jpg
  2. 当键盘设定电压输出值为4.2V(大于3.9V)时,按下确认键后,数码管显示0.0,LED报警灯点亮,电压实际输出为0.02V≈0V。


    设定电压为4.2V.jpg
超出范围,数码管显示0.0.jpg

2路电压输出几乎为0.jpg
  1. 点击SW2,将开关打至左边,此时电压的输出由滑动变阻器控制,不再由单片机控制,本例中输出电压为1.95V。


    手动模式电压输出.jpg

部分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)程序设计流程图;

全套资源如下

资源1.jpg

资源2.jpg

资源3.jpg
资源4.jpg

获取多路可调TLC5615数控直流稳压电源系统设计,Proteus仿真、C程序、Visio流程图、TLC5615等参考资料,请搜索关注我的公众号:交院小智

你可能感兴趣的:(51单片机3路直流稳压电源仿真设计,TLC5615芯片实现,附仿真和C代码)