标题: 数控直流稳压电源(恒压源)设计资料 含单片机源码+仿真+图纸 5110显示 [打印本页]

作者: 小辉_ing    时间: 2018-3-20 10:53
标题: 数控直流稳压电源(恒压源)设计资料 含单片机源码+仿真+图纸 5110显示
本文主要介绍数控直流稳压电源的设计,对其中涉及的D/A转换、单片机等也有详细介绍。将单片机数字控制技术, 有机地融入直流稳压电源的设计中, 就能设计出一款高性价比的多功能数字化通用直流稳压电源
      AD按键采集程序
/**************键值判断*******************************/
if (f>4.590&f<4.650)
  { printf("K1按下\n\n");}
else if (f>4.500&f<4.550)
  { printf("K2按下\n\n");}
else if (f>4.400&f<4.490)
  { printf("K3按下\n\n");}
else if (f>4.200&f<4.350)
  { printf("K4按下\n\n");}
else if (f>3.700&f<4.100)
  { printf("K5按下\n\n");}
else if (f>3.000&f<3.500)
  { printf("K6按下\n\n");}
else

   Delay1ms(1000);

电路原理图如下:


仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)



单片机源程序如下:
  1. #include"STC12C5A60S2.H"
  2. #include"12C5A60S2.H"
  3. #include "DA.h"
  4. #include "nokia_5110.h"
  5. #include "TLC24C02.H"
  6. void main()
  7. {  
  8.    unsigned int da,n;         
  9.    unsigned int ADV,V,ADA,A;
  10.    unsigned int a;
  11.     LCD_init();
  12.         LCD_clear();
  13.         x24c02_init();                           //初始化
  14.     LCD_write_chinese_string(0,0,12,2,2,0);          //  电压
  15.         LCD_write_chinese_string(0,2,12,2,0,0);  //          电流
  16.          da=x24c02_read(2);                   //读出保存的数据赋于XX

  17.   while(1)
  18.              {         
  19. /******************************************************************************/
  20.            da5615DA(da);    //改变电压
  21.                    DELAY_MS(30);   //按键延时
  22.                   
  23. /*******************************************************************************/
  24.          Read_init1(0);  //采集电压
  25.                   ADV=Read();
  26.                   ADV=ADV*1.96;
  27.                   V=((float)ADV*11.68);
  28. /**********************************************************************/
  29.                    if((V>220)&(V<560))                                //         2.2V~5.6V电压调整
  30.                  {
  31.                         V=V-80;                        //80=-0.8V
  32.                  LCD_printc(26,0,V/1000+48);
  33.          LCD_printc(34,0,V%1000/100+48);
  34.                  LCD_printc(42,0,'.');
  35.                  LCD_printc(50,0,V%100/10+48);
  36.                  LCD_printc(58,0,V%10+48);
  37.                  LCD_printc(67,0,'V');
  38.                  }        
  39. /*************************************************************/
  40.            if((V>570)&(V<800))                                  //         5.7V~8.0V电压调整
  41.                 {
  42.                         V=V-30;                  //30=-0.3V
  43.                  LCD_printc(26,0,V/1000+48);
  44.          LCD_printc(34,0,V%1000/100+48);
  45.                  LCD_printc(42,0,'.');
  46.                  LCD_printc(50,0,V%100/10+48);
  47.                  LCD_printc(58,0,V%10+48);
  48.                  LCD_printc(67,0,'V');
  49.                   }        
  50. /*************************************************************/
  51.                   if((V>850)&(V<1200))                                //         8.5V~12.00V电压调整
  52.                   {
  53.                    V=V-10;                   //10=-0.1V
  54.                   LCD_printc(26,0,V/1000+48);
  55.          LCD_printc(34,0,V%1000/100+48);
  56.                  LCD_printc(42,0,'.');
  57.                  LCD_printc(50,0,V%100/10+48);
  58.                  LCD_printc(58,0,V%10+48);
  59.                  LCD_printc(67,0,'V');
  60.                   }        
  61. /*****************************************************************/
  62.                  else                                                                   //         12V~15V电压调整
  63.                  {         V=V+30;           //30=+0.3V
  64.                   LCD_printc(26,0,V/1000+48);
  65.          LCD_printc(34,0,V%1000/100+48);
  66.                  LCD_printc(42,0,'.');
  67.                  LCD_printc(50,0,V%100/10+48);
  68.                  LCD_printc(58,0,V%10+48);
  69.                  LCD_printc(67,0,'V');
  70.                  
  71.                  }         

  72. /******************************************************************************/
  73.                   Read_init2(1);  //采集电流
  74.                   ADA=Read();
  75.                   ADA=ADA*1.96;
  76.                  A=((float)ADA*3.1);
  77.                   A=A-10;
  78.          LCD_printc(26,2,A/100+48);
  79.                  LCD_printc(34,2,A%100/10+48);
  80.                  LCD_printc(42,2,A%10+48);
  81.                  LCD_printc(50,2,'M');
  82.                  LCD_printc(58,2,'A');
  83.                  

  84. /******************************************************************************/

  85.                  Read_init(2);                  //        AD按键扫描 P1.2口
  86.                      a=Read();        
  87.                   n=a*1.96;
  88.                   DELAY_MS(10);
  89. /*****************************切换键*************************************/
  90.                  if((n>280)&(n<320))                        
  91.                   {         
  92.                              da=da+2;
  93.                            DELAY_MS(30);
  94.                            if(da>=260)
  95.                              da=30;
  96.                
  97.                   }        
  98. /******************************按键加**************************************/
  99. ……………………

  100. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码



所有资料51hei提供下载:
恒压源程序.rar (62.83 KB, 下载次数: 226)
恒压原电路图.rar (276.78 KB, 下载次数: 248)
恒压源资料 及仿真.rar (1022.28 KB, 下载次数: 288)




作者: GUOXUAN    时间: 2018-4-18 10:11
老师资料作品不错,可是电路总图是STM32F103,仿真是12C5A60S.我是不明白?
作者: DDbong    时间: 2018-5-5 17:00
很好的说 帮助很大
作者: 15274553709    时间: 2019-4-14 15:14
此贴的内容与我有意义。好评
作者: 135151    时间: 2019-9-4 10:16
新人来学习的,感谢大师们
作者: paomall    时间: 2019-11-27 13:05
真的牛奥
作者: pcvia    时间: 2020-1-1 15:35
新人来学习的,感谢楼主
作者: nlming    时间: 2020-2-12 17:28
新人来学习下,谢谢楼主
作者: 紫色的云    时间: 2021-5-27 11:14
学习了,最近在学习可调电源这一块,谢谢楼主的分享
作者: 点点点点1021    时间: 2021-12-12 10:54
关于电压源中步长的调整不太明白,能否详细讲解
作者: 860012525    时间: 2021-12-12 23:04
谢谢楼主的分享,电压源这一块真的很厉害,可是电路总图是STM32F103,仿真是12C5A60S,还是不太明白
作者: pzxpiao    时间: 2022-5-15 09:48
东西很好
作者: huaishang    时间: 2025-4-22 18:43
新人来学习的,感谢大师




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1