找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9199|回复: 11
收起左侧

数控直流稳压电源(恒压源)设计资料 含单片机源码+仿真+图纸 5110显示

  [复制链接]
ID:294093 发表于 2018-3-20 10:53 | 显示全部楼层 |阅读模式
本文主要介绍数控直流稳压电源的设计,对其中涉及的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);

电路原理图如下:
0.jpg

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

单片机源程序如下:
  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黑下载附件…………
复制代码
0.png
0.png

所有资料51hei提供下载:
恒压源程序.rar (62.83 KB, 下载次数: 212)

评分

参与人数 3黑币 +64 收起 理由
DDbong + 5 赞一个!
GUOXUAN + 9 绝世好帖!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:249545 发表于 2018-4-18 10:11 | 显示全部楼层
老师资料作品不错,可是电路总图是STM32F103,仿真是12C5A60S.我是不明白?
回复

使用道具 举报

ID:295949 发表于 2018-5-5 17:00 | 显示全部楼层
很好的说 帮助很大
回复

使用道具 举报

ID:511900 发表于 2019-4-14 15:14 | 显示全部楼层
此贴的内容与我有意义。好评
回复

使用道具 举报

ID:605388 发表于 2019-9-4 10:16 | 显示全部楼层
新人来学习的,感谢大师们
回复

使用道具 举报

ID:161929 发表于 2019-11-27 13:05 | 显示全部楼层
真的牛奥
回复

使用道具 举报

ID:671776 发表于 2020-1-1 15:35 | 显示全部楼层
新人来学习的,感谢楼主
回复

使用道具 举报

ID:689425 发表于 2020-2-12 17:28 | 显示全部楼层
新人来学习下,谢谢楼主
回复

使用道具 举报

ID:156220 发表于 2021-5-27 11:14 | 显示全部楼层
学习了,最近在学习可调电源这一块,谢谢楼主的分享
回复

使用道具 举报

ID:989685 发表于 2021-12-12 10:54 | 显示全部楼层
关于电压源中步长的调整不太明白,能否详细讲解
回复

使用道具 举报

ID:895034 发表于 2021-12-12 23:04 | 显示全部楼层
谢谢楼主的分享,电压源这一块真的很厉害,可是电路总图是STM32F103,仿真是12C5A60S,还是不太明白
回复

使用道具 举报

ID:824621 发表于 2022-5-15 09:48 | 显示全部楼层
东西很好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表