用M8与LM2576制作可调数控开关电源【恢复】 (www.ourdev.cn)
你尚未登录 |登录 |快速注册 |退出 首页 酷贴 搜索 在线 本网站由阿莫电子邮购独家赞助
虚拟总论坛 -> 搜索主题:2576 -> 用M8与LM2576制作可调数控开关电源【恢复】 跳转至: 未登录
↓↓ 用M8与LM2576制作可调数控开关电源【恢复】 回复数:170,点击数:20130
抱歉本贴的回复数太多,为了减轻网络流量,只显示帖子正文的前后各10个回复。本贴的正文内容中间隐藏了150个回复。你需要 点击此处 才能查看全部内容。
对为你带来的访问不便表示歉意。不过我们仍会坚持即使没有登录,仍能共享我们网站的所有资料。你没有 登录后就能消除这个访问上的不便(可增加到显示60个回复)。
如果你是新用户请先 注册。注册是免费的,并且手续简单只需要填写用户名与口令。
↓↓↓↓↓↓↓↓↓↓↓↓
【楼主位】 jun427

积分:132
派别:
等级:------
来自:
电源的输出电压从0-30V,电流1.5A(设计3A)
输出电流保护0-3A连续调整
输出电流分两档0-300mA,0-3A
电源的输入电压从12-35V(电源输入电压决定电源的最高输出电压,这是一个降压开关电源。)

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

 (原文件名:效率.GIF) 

电源控制原理可参考我另一贴:实验用0-20V数控电源
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=996115&bbs_page_no=1&bbs_id=9999

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

这是原理图

 (原文件名:Schematic M8.gif) 



 (原文件名:Schematic Lm2576.gif) 


这是完成后的样子

 (原文件名:DSCF3691-1.jpg) 


可热转印的电路板

 (原文件名:DSCF3692-1.jpg) 


这是实验系统

 (原文件名:DSCF3695-1.jpg) 


 (原文件名:DSCF3696-1.jpg) 


这是源代码:


'///////////////////////////////////////////////////////////////////////////////
'/                                                                             /
'/ 用M8与LM2576制作可调数控开关电源                                            /
'/ 输出电压 0-30V                                                              /
'/ 最大输出电流 3.0A                                                           /
'/ 截止型过电流保护 0-3.0A 连续调节                                            /
'/ 程序设计:吕军省                                                            /
'/         junsheng427@126.com  20081003 天津大港                              /
'///////////////////////////////////////////////////////////////////////////////




$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
      A_dc1 = A_dc1 / 60
      V_dc1 = V_dc1 / 60

      V_dc = 3040 * V_dc                                    '标准3040
      V_dc = V_dc / 1023

      A_dc = 3120 * A_dc                                    '标准3040
      A_dc = A_dc / 1023

      A_dc1 = 3040 * A_dc1
      A_dc1 = A_dc1 / 1023

      V_dc1 = 4025 * V_dc1
      V_dc1 = V_dc1 / 1023

   If A_dc>= C Then                                        '截止型电流保护300mA档
      Waitms 500
         If A_dc>= C Then
            Portc.4 = 1
            Locate 1 , 14
            Lcd "OC "
            Gosub Mu
         End If
   End If

   If A_dc1>= C Then                                       '截止型电流保护3A档
      Waitms 500
         If A_dc1>= C Then
            Portc.4 = 1
            Locate 1 , 14
            Lcd "OC "
            Gosub Mu
         End If
   End If

   If V_dc1 <= 1200 Then                                    '输入电压范围低端保护
      Cls
      Lcd "Input U<12V"
      Portc.4 = 1
      Gosub Mu
   End If

   If V_dc1>= 3500 Then                                    '输入电压范围高端保护
      Cls
      Lcd "Input U>35V"
      Portc.4 = 1
      Gosub Mu
   End If

   Gosub Lp_lcd
   Gosub Lp_key

Loop
End

'显示处理///////////////////////////////////////////////////////////////////////

Lp_lcd:

   V1 = Str(v_dc)                                           '输出电压
   Va1 = Len(v1)                                            '读字符串
      If Va1 <= 3 Then
         V1 = Format(v1 , "0.00")                           '定位小数点
         Else
         V1 = Format(v1 , " 0.00")
      End If

   V2 = Str(a_dc)                                           '电流300mA档
   Va1 = Len(v2)
      If Va1 <= 2 Then
         V2 = Format(v2 , "0.0")
         Else
         V2 = Format(v2 , " 0.0")
      End If

   V3 = Str(a_dc1)                                          '电流3A档
   V3 = Format(v3 , "0.000")

   V4 = Str(v_dc1)                                          '输入电压
   V4 = Format(v4 , " 0")

   C1 = Str(c)                                              '设定电流
   C1 = Format(c1 , "   0")


   Locate 1 , 8
   Lcd " "

   Locate 1 , 1
   Lcd "U:" ; V1 ; "V"

   Locate 2 , 1
   Lcd "I:"
      If A_dc> A_dc1 Then
         Locate 2 , 8
         Lcd "  "
         Locate 2 , 1
         Lcd "I:" ; V2 ; "mA"
      End If

      If A_dc < A_dc1 Then
         Locate 2 , 1
         Lcd "I:" ; V3 ; "A"
      End If

      If A_dc = A_dc1 Then
         Locate 2 , 3
         Lcd "0.0    "
      End If

   'Locate 1 , 9
   'Lcd V4

   Locate 2 , 10
   Lcd "<" ; C1 ; "mA"

Return

'按键处理//////////////////////////////////////////////////////////////////////

Lp_key:

   If Pind.3 = 0 Then                                       '启动
      Waitms 20
        If Pind.3 = 0 And Portc.4 = 1 Then
           Portc.4 = 0                                      'Portc.4控制LM2576开/关
           Locate 1 , 14
           Lcd "ON "
           Waitms 250
     End If
   End If

   If Pind.3 = 0 Then                                       '停止
      Waitms 20
        If Pind.3 = 0 And Portc.4 = 0 Then
           Portc.4 = 1                                      '控制LM2576开/关
           Locate 1 , 14
           Lcd "OFF"
        End If
   End If



   If Pind.4 = 1 Then B2 = 0                                '电压+

   If Pind.4 = 0 And Portc.4 = 0 Then
      Waitms 20
        If Pind.4 = 0 Then
          If A < 1023 Then
             A = A + 1
             B2 = B2 + 1
              If B2> 20 And A < 1013 Then
              A = A + 10
              End If
          End If
        End If
   End If

   If Pind.5 = 1 Then B3 = 0                                '电压-

   If Pind.5 = 0 And Portc.4 = 0 Then
      Waitms 20
        If Pind.5 = 0 Then
          If A> 1 Then
            A = A - 1
            B3 = B3 + 1
             If B3> 20 And A> 10 Then
             A = A - 10
             End If
          End If
        End If
   End If

   If Pind.6 = 1 Then B4 = 0                                '电流+

   If Pind.6 = 0 Then
      Waitms 20
        If Pind.6 = 0 Then
          If C < 3000 Then
            C = C + 1
            B4 = B4 + 1
             If B4> 20 And C < 2980 Then
             C = C + 20
             End If
          End If
        End If
   End If

   If Pind.7 = 1 Then B5 = 0                                '电流-

   If Pind.7 = 0 Then
      Waitms 20
         If Pind.7 = 0 Then
           If C> 1 Then
             C = C - 1
             B5 = B5 + 1
             If B5> 20 And C> 20 Then
                C = C - 20
             End If
           End If
         End If
   End If

Return

'报警声音///////////////////////////////////////////////////////////////////////

Mu:

   Sound Portc.5 , 100 , 1000
      Waitms 20
   Sound Portc.5 , 100 , 1000
      Waitms 20
   Sound Portc.5 , 100 , 1000

Return

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

HEX文件  ourdev_478900.rar(文件大小:4K) (原文件名:KG01.rar) 

装配图   ourdev_478901.pdf(文件大小:30K) (原文件名:装配图.pdf) 

PCB+热转印   ourdev_478902.rar(文件大小:32K) (原文件名:PCB+热转印.rar) 
  


本贴被 jun427 编辑过,最后修改时间:2008-11-02,09:20:28.
 
2008-11-01,14:17:25
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【1楼】 atommann
积分:1431
派别:
等级:------
来自:
太漂亮了。
 
2008-11-01,14:18:54
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【2楼】 kdtcf 春风

积分:1251
派别:
等级:------
来自:中国
酷,加油
 
2008-11-01,15:07:02
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【3楼】 logics

积分:263
派别:
等级:------
来自:http://shop35748174.taobao.com/
cool!
 
2008-11-01,15:18:13
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【4楼】 ZealotNH 发仔
积分:639
派别:
等级:------
来自:广东佛山南海
弓虽
还未看到LZ是用什么方法测电流。
 
2008-11-01,15:30:22
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【5楼】 fsclub 绿林好汉

积分:5234
派别:
等级:------
来自:孩子还小,我就全国到处跑。
楼主用了3个0.15欧的电阻并在一起测电流.

不知道楼主的机下次开机的电压电流是多少?像老外那个用EEP保存最好.下次开机就是上次断电时的电流和电压.
__________________________
东戳一下,西顶一下。
予独爱莲之出淤泥而不染,濯清涟而不妖,中通外直,不蔓不枝,香远益清,亭亭净植,可远观而不可亵玩焉!

<a href=..>A..</a>  <font color="red">A..</font> <font size=5>A..</font>
2008-11-01,15:38:29
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【6楼】 wpp_2124 无风起浪

积分:232
派别:
等级:------
来自:中国-广东
好~~~~~~~~~
 
2008-11-01,15:40:10
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【7楼】 zc3909
积分:1269
派别:
等级:------
来自:长春
做的不错
__________________________
ATmega64+gsm/gprs模块实现彩信,短信,email,远程文件下载,数据传输,图像远程传输开发板
http://shop33759355.taobao.com/ 
2008-11-01,16:35:33
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【8楼】 srygg
积分:342
派别:
等级:------
来自:
做得太漂亮了.楼主看来是个做事完美的人!学习一下,有空也仿一个.
 
2008-11-01,18:15:41
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【9楼】 cgbabc
积分:1044
派别:
等级:------
来自:
有过这个想法,没想到高手先做出来了,先顶一个
 
2008-11-01,20:20:14
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【10楼】 ninjia
积分:270
派别:
等级:------
来自:北京
持续关注中。。。。。。
 
2008-11-01,21:42:29
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
↑↑↑↑↑↑↑↑↑↑↑↑
抱歉本贴的回复数太多,为了减轻网络流量,只显示帖子正文的前后各10个回复。本贴的正文内容中间隐藏了150个回复。你需要 点击此处 才能查看全部内容。
对为你带来的访问不便表示歉意。不过我们仍会坚持即使没有登录,仍能共享我们网站的所有资料。你没有 登录后就能消除这个访问上的不便(可增加到显示60个回复)。
如果你是新用户请先 注册。注册是免费的,并且手续简单只需要填写用户名与口令。
↓↓↓↓↓↓↓↓↓↓↓↓
【161楼】 bbssr
积分:561
派别:
等级:------
来自:深圳
回复【35楼】HSP8031 
-----------------------------------------------------------------------

加三极管转换电平应该就可以
 
2010-06-29,17:57:58
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【162楼】 feixuehanyi

积分:98
派别:
等级:------
来自:

 
2010-06-29,18:23:02
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【163楼】 cuikai12345
积分:559
派别:
等级:------
来自:家在石家庄,人在北京
mark
__________________________
http://blog.ednchina.com/aini80225/            个人博客
2010-06-29,18:31:03
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【164楼】 dengyaoan
积分:33
派别:
等级:------
来自:
good6
 
2010-07-06,17:53:49
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【165楼】 weijiapingshu
积分:4
派别:
等级:------
来自:
问一下楼主。。你的正五伏从哪提供呢?上次我也是那么做的,但是直接从电路稳压,电路流增大后,会拉低M8的电压,使它驱动能力下降
 
2010-07-14,10:03:57
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【166楼】 zbjzxc

积分:370
派别:
等级:------
来自:中国(CHINA)
记号~~
 
2010-07-14,11:13:47
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【167楼】 twlkzxy 笨笨的二休
积分:88
派别:
等级:------
来自:火山
好的
 
2010-07-20,02:26:45
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【168楼】 zjzpost
积分:12
派别:
等级:------
来自:
 
2010-07-23,20:24:45
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【169楼】 sswz
积分:5
派别:
等级:------
来自:
很好 学习了
 
2010-08-04,18:22:23
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【170楼】 taiwentaotwt
积分:114
派别:
等级:------
来自:
学习中……
 
2010-08-06,14:25:51
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【171楼】 lghtjpu 艳阳高照
积分:169
派别:
等级:------
来自:深圳
学习了
 
2010-08-11,11:28:08
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
【172楼】 XUEPENGBIN 薛鹏斌

积分:630
派别:
等级:------
来自:河南省三门陕
谢谢楼主,收藏乐、
 
2010-08-11,12:19:23
资料 邮件 回复 引用回复   ↑↑   ↓↓ 编辑 删除
↑↑↑↑↑↑↑↑↑↑↑↑
抱歉本贴的回复数太多,为了减轻网络流量,只显示帖子正文的前后各10个回复。本贴的正文内容中间隐藏了150个回复。你需要 点击此处 才能查看全部内容。
对为你带来的访问不便表示歉意。不过我们仍会坚持即使没有登录,仍能共享我们网站的所有资料。你没有 登录后就能消除这个访问上的不便(可增加到显示60个回复)。
如果你是新用户请先 注册。注册是免费的,并且手续简单只需要填写用户名与口令。
↑↑  快速回复帖子主题:用M8与LM2576制作可调数控开关电源【恢复】
你尚未登录,不能回复以上帖子。
虚拟总论坛 -> 搜索主题:2576 -> 用M8与LM2576制作可调数控开关电源【恢复】 跳转至: 未登录
任何建议或投诉,欢迎随时与我们联系。 ourDEV.cn 我们的电子开发网,友好交流气氛,乐于开源共享,“这里远比混乱的现实世界美好”。
网站负责人:  阿莫(armok),手机:13433056000,电邮:armok ourdev.cn(请将空格改成@)
地址与电话:  东莞市东城八一路同沙工业园内,0769-22298000,传真请按4
 阿莫邮购门市与雕刻机展示厅:东莞市莞城区莞太路和生文具礼品批发市场A2018,A2035 杨小姐 13711915767
 雕刻机的技术咨询、订单查询、生产进度,可查询:13600266008吴先生(雕刻机设计人员kaif_w)
声明:  本网站由东莞科士通(Infostone)科技有限公司属下的阿莫电子邮购部提供独家赞助。
 有正式的工商注册与网站备案。详情可到东莞工商局查询。
 本网站(ourDEV.cn)原名称为ourAVR.com(我们的AVR),自2007-09-01起从专业的AVR网转成综合电子网站。
 本网站系统由armok Using Oracle + Java/JSP + WebLogic + Linux 2001/12/20 -- 2007/09/13
 本BBS所有代码均为原创,版权归 armok 所有。本网站自:2004-10-03,16:31:17 起开始运行。
法律顾问:  本网站尊重知识产权,自2007年08月15日起,魏龙律师担任ourDEV.cn(原ourAVR.com)常年法律顾问。

本网站已经通过了东莞市公安局安全认证许可,请大家遵守国家法律法规。粤ICP备09047143号