用M8与LM2576制作可调数控开关电源

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用M8与LM2576制作可调数控开关电源

(本文转自我爱方案网论坛)

电源的输出电压从0-30V,电流1.5A(设计3A)

输出电流保护0-3A连续调整

输出电流分两档0-300mA,0-3A

电源的输入电压从12-35V(电源输入电压决定电源的最高输出电压,这是一个降压开关电

源。)

这是不同输入输出电压电流下电源效率

文件名:效率

这个制作存的一个问题:当电源的输出电压大于9V时,电源关闭后(LM2576第五脚TTL电平)不能重新启动,它与负载大小没有关系,不知什么原因,只要不关闭全程调压正常。我把这个不完善的制作发表,希望与网友们共同研究。

源程序我整理好后会放上来

这是原理图

文件名: Schematic M8

文件名: Schematic Lm2576

下面回复说是原理图不清楚,现在补发一下原理图:

这是完成后的样子

文件名: DSCF3691-1 可热转印的电路板

文件名: DSCF3692-1 这是实验系统

文件名: DSCF3695-1

文件名: DSCF3696-1

这是源代码:

'//////////////////////////////////////////////////////////////////////////////

/

'/

/

'/ 用M8与LM2576制作可调数控开关电源 /

'/ 输出电压

0-30V /

'/ 最大输出电流 3.0A / '/ 截止型过电流保护 0-3.0A 连续调节 /

'//////////////////////////////////////////////////////////////////////////////

/

$regfile = "m8def.dat"

$crystal = 8000000

Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 ,

E = Portb.0 , Rs = Portd.2

Config Lcd = 16 * 2

'定义LED是16字符,2行

Config Adc = Single , Prescaler = Auto , Reference = Internal

'定义ADC为单次运行模式,转换时钟-自动,内部参考电压

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Prescale = 1

'PWM1A配置,用于数模转换,

Ddrb.1 = 1 'PWM1A输出端子

'定义所需要变量

////////////////////////////////////////////////////////////////

Dim V_dc As Long , V_dc1 As Long , A_dc As Long , A_dc1 As Long

Dim V1_dc As Word , V2_dc As Word

Dim A1_dc As Word , A2_dc As Word , A As Word , C As Word , A1 As Word

Dim V1 As String * 5

Dim V2 As String * 5

Dim V3 As String * 5

Dim V4 As String * 5

Dim C1 As String * 4

Dim Va1 As Byte

Dim N As Byte , B2 As Byte , B3 As Byte , B4 As Byte , B5 As Byte

'初始化设置

/////////////////////////////////////////////////////////////////////

Ddrd.3 = 0 '定义PD.3~PD.7为输

入,上拉电阻有效 .按键初始化

Ddrd.4 = 0

Ddrd.5 = 0

Ddrd.6 = 0

Ddrd.7 = 0

Portd.3 = 1

Portd.4 = 1

Portd.5 = 1

Portd.6 = 1

Portd.7 = 1

Start Timer1

Start Adc

Cls

Cursor Off

Locate 1 , 14

Lcd "ON-"

A = 0

C = 3000

Ddrc.4 = 1 '初始化电源开关

Portc.4 = 0

'主程序

/////////////////////////////////////////////////////////////////////////

Do

Pwm1a = A

N = 1

V1_dc = 0

V_dc = 0

V2_dc = 0

V_dc1 = 0

A1_dc = 0

A_dc = 0

A2_dc = 0

A_dc1 = 0

For N = 1 To 60 'ADC采样60次

V1_dc = Getadc(0) '电源输出电压 V_dc = V_dc + V1_dc 'ADC的原始值累加

A1_dc = Getadc(1) '电流300mA档

A_dc = A_dc + A1_dc

A2_dc = Getadc(2) '电流3A档

A_dc1 = A_dc1 + A2_dc

V2_dc = Getadc(3) '电源输入电压

V_dc1 = V_dc1 + V2_dc

Next

V_dc = V_dc / 60 '还原各测量值

A_dc = A_dc / 60

相关文档
最新文档