标题: 基于STC15单片机的数控开关电源源程序原理图PCB文件 [打印本页]

作者: 梁廷明    时间: 2020-6-15 19:40
标题: 基于STC15单片机的数控开关电源源程序原理图PCB文件
pads画的数控开关电源原理图和PCB图如下:(51hei附件中可下载工程文件)


制作出来的实物图如下:


电压调节是小数点后两位。

/分255级控制
//3个按键:1.加键 长按连加 2.减键 长按连减 3.读出预存键 长按保存当前电压

单片机源程序如下:
#include "stc15w204s.h"
#include "flash.h"
#define MAIN_Fosc                12000000        //定义主时钟

typedef unsigned long u32;  //32位无符号整型数
typedef unsigned int u16;  //16位无符号整型数
typedef unsigned char u8;  //8位无符号整型数

/*************        本地常量声明        **************/

#define        Pin0                0x01        //IO引脚 Px.0
#define        Pin1                0x02        //IO引脚 Px.1
#define        Pin2                0x04        //IO引脚 Px.2
#define        Pin3                0x08        //IO引脚 Px.3
#define        Pin4                0x10        //IO引脚 Px.4
#define        Pin5                0x20        //IO引脚 Px.5
#define        Pin6                0x40        //IO引脚 Px.6
#define        Pin7                0x80        //IO引脚 Px.7
#define        PinAll                0xFF        //IO所有引脚
/*************        本地变量声明        **************/
sbit        r7        = P3^0;
sbit        r6        = P3^1;        
sbit        r5        = P3^2;        
sbit        r4        = P3^3;        
sbit        r3        = P3^6;        
sbit        r2        = P3^7;        
sbit        r1        = P1^0;        
sbit        r0        = P1^1;        

sbit        Kai        = P1^2;        
sbit        K1        = P1^4;        
sbit        K2        = P1^5;        
sbit        K3        = P5^4;        
        
u8 KeySta[2] =  {1, 1};     //矩阵按键的当前状态
u16 KeyDownTime[2]= {0, 0};        //矩阵按键按下时间
u8 Zi=0xff;                                //


/*************        本地函数声明        **************/
void ConfigTimer2(u8 ms);
void  KeyDriver();        //按键状态处理
void  KeyAction(u8 i);
void  ShuChu();                          //数值输出到管脚

void main(void)
{
        
//IO口初始化
         P1M1 |= (Pin0+Pin1);   
        P1M0 |= (Pin0+Pin1);                       //P1.0-P1.1脚定义为开漏模式
        P3M1 |= (Pin0+Pin1+Pin2+Pin3+Pin6+Pin7);   
        P3M0 |= (Pin0+Pin1+Pin2+Pin3+Pin6+Pin7);   //P3.0-P3.7脚定义为开漏模式

        ConfigTimer2(5);          //初始化定时器ms
        EA = 1;                                  //允许全局中断
        
        Zi=eeprom_read(0) ;       // 读保存在Flash中的电压值
        ShuChu();                                  //数值输出到管脚
        _nop_ ();                                 
        _nop_ ();
        _nop_ ();                                  //等待3个指令周期
        Kai=0;                                          //开启LM2576控制端
        while (1)
        {
                 KeyDriver();                  //按键处理
        }
}

2.png (32.11 KB, 下载次数: 132)

2.png

5.png (979.19 KB, 下载次数: 122)

5.png

0L2T6(~OVW@E8RV_OU9H%@2.png (16.96 KB, 下载次数: 138)

0L2T6(~OVW@E8RV_OU9H%@2.png

数控开关电源.zip

2.58 MB, 下载次数: 163, 下载积分: 黑币 -5


作者: tian_000    时间: 2020-6-16 09:52
感谢分享,学习了。能接显示屏的话感觉就完美了
作者: rsbook    时间: 2020-7-7 10:33
感谢分享,学习了,扩展思路
作者: 梁廷明    时间: 2020-7-8 20:56
大佬们,给我评一下分呗
作者: rayin    时间: 2020-11-15 17:32
不错,值得学习。51hei有你更精彩!!
作者: wgrren    时间: 2021-2-18 23:24
漂亮10086个赞
作者: lsh04    时间: 2021-2-21 00:04
感谢分享,学习了,扩展思路
作者: dongfang08    时间: 2021-2-27 21:55
不错,值得学习,谢谢奉献
作者: gxx2824    时间: 2021-5-30 23:35
我下载了你的压缩包,可以看一下你焊的后面吗

作者: gxx2824    时间: 2021-5-30 23:48
可以提供一下元器件的参数吗

作者: qq603599910    时间: 2021-6-10 20:47
这是阶段式电压选择? 用255个阶段细分FB的电压吗?没有下载楼主的附件,看状态是这样,这确实又是一个新颖的思路就是有点费IO,IO不够可以考虑用LS164做扩展,那设置的时候需要先屏蔽跳动.




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