基本参数: 数控电源:单片机用STC89C52 输出电压0.4V - 35V 步进0.1V 输出电流0.04MA - 5A 电子负载: 输入电压 < 35V 输出恒流 0.04MA - 5A 功能: 电子负载输入电压检测,精度0.1V步进 定时输出功能(数控电源和电子负载) 1分钟自动锁键盘 ------------------------------------------------------------------------- 以下为图片: 数控电源显示界面 ![]() 电子负载显示界面 ![]() 定时输出时间设定显示界面 ![]() 电子负载功能扫描输入电压成功显示界面 ![]() 恒流放电达到设定值显示界面 ![]() 键盘锁定显示界面 ![]() ----------------------------------------------------------------------- 制作图片 PCB正面 ![]() 转印丝印层 ![]() 丝印层 ![]() 四阶低通滤波 ![]() PCB底部 ![]() 主板和主控板 ![]() 主板和主控板安装在一起 ![]() ![]() ![]() PCB_Layout和执行文件下载 ![]() 原理图供参考: ![]() 稳压 ![]() 上电测试 ![]() 恒流状态指示灯 ![]() 对18650电池进行恒流限压充电 ![]()
[ 此帖被sayno_86在2015-08-11 08:15重新编辑 ] /****************************************************************** 单片机制作数控电源、电子负载,带输出时间显示,定时输出功能 单片机型号:STC89C52 单片机晶体频率:12M ****************** * Design:Sayno * * 2014 - 12 - 17 * ****************** 程序更新时间:2015-08-10 数控电源参数 输出电压:0.1V - 50V 步进0.1V 输出电流:10MA - 5A 步进10MA 电子负载参数 放电电压:0.1V - 50V 步进0.1V 放电电流:10MA - 5A 步进10MA 定时输出参数 定时时间:0 - 99 时 EEPROM数据储存:输出打开时1分钟写入一次数据,在有按键操作时到没有按键操作3秒后写入数据一次 ******************************************************************************************/ #ifndef _CONFIG_H_ #define _CONFIG_H_ #define TIME_NUMBER 53036 //12MS定时器主频装入值 高8位 低8位 80HZ #define STEP 25 //1步间隔数值 分辨率500步 #define VOLTAGE_COMPENSATION +0 //补偿电压值 #define CURRENT_COMPENSATION +0 //补偿电流值 #define VOLTAGE 32 //设置开机电压 U = uiset_voltage * 0.02 #define CURRENT 30 //设置开机电压 A = uiset_current * 0.02 #define POWER 1 //0 = 上电打开输出 1 = 上电关闭输出 #define TH_0 0xCF //主频定时器T0 装入 TIME_NUMBER 高8位 #define TL_0 0x2C //主频定时器T0 装入 TIME_NUMBER 低8位 //-------------------------------------------------- //**输出电压电流阀值******************************** //-------------------------------------------------- #define VOLTAGE_MIN 4 //调节电压最小为0.4V #define VOLTAGE_MAX 350 //调节电压最大为35V #define CURRENT_MIN 4 //调节电流最小值40MA #define CURRENT_MAX 498 //调节电流最大值4.98A //-------------------------------------------------- //**输入:控制声明** //-------------------------------------------------- sbit out_key_input = P0^2; //电压输出/关闭按键 sbit volt_key_input = P0^3; //固定电压选择按键 sbit transition_key_input = P0^4; //切换调节电压或电流(旋转编码器按下引脚) sbit keyA_input = P0^6; //旋转编码器A端IO口 sbit keyB_input = P0^5; //旋转编码器B端IO口 sbit LoadInput = P1^3; //电子负载输入电压与设定截止电压输入端口 0为停止放电 //-------------------------------------------------- //**输出:控制声明** //-------------------------------------------------- sbit output = P1^4; //电压关闭或输出 OUTPUT sbit O_Relay3 = P1^2; //数控电源或电子负载转换输出控制 K3 sbit O_Relay1 = P1^1; //输入电压跟随切换继电器1 K1 sbit O_Relay2 = P1^0; //输入电压跟随切换继电器2 K2 //-------------------------------------------------- //***************PWM输出引脚定义******************** //-------------------------------------------------- sbit voltage_output = P2^5; //电压控制PWM sbit current_output = P2^6; //电流控制PWM //-------------------------------------------------- //***************LCD1602引脚定义******************** //-------------------------------------------------- (责任编辑:admin) |