找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7598|回复: 15
打印 上一主题 下一主题
收起左侧

氩弧焊机脉冲控制器制作 附单片机程序PCB

  [复制链接]
跳转到指定楼层
楼主
没事看网上有氩弧焊机脉冲控制器自己做了一个,用单面PCB加跳线,感光法做的PCB板,双面板业余条件过孔太难搞了,用了2个4位共阳极数码管,一个显示高电平时间ms,一个显示低电平时间ms,没有搞储存几组数据,为了操作简单只储存上一次的设置,5个按键,一个储存键,另外4个调整脉冲高电平时间,与低电平时间,STC89C51控制

制作出来的实物图如下:

描述


测波形


试焊

Altium Designer画的PCB图在最后:(51hei附件中可下载工程文件)

单片机源程序如下:
  1. /*********************************************************************************
  2. * 【编写时间】: 2021年3月12日
  3. * 【作    者】: 程云海
  4. * 【版    本】: 1.0
  5. * 【外部晶振】: 12mhz        
  6. * 【主控芯片】: STC89C52RC
  7. * 【编译环境】: Keil μVisio4        
  8. * 【程序功能】: 脉冲输出控制                                                                                          
  9. * 【使用说明】: 1.使用数码管显示控制氩弧焊机脉冲输出
  10. /*------------------------------------------------
  11.                     主函数
  12. ------------------------------------------------*/
  13. void main (void)
  14. {  a=byte_read(0x2000)*100+byte_read(0x2001);//程序开始时读取EEPROM中数据
  15.    b=byte_read(0x2002)*100+byte_read(0x2003);//程序开始时读取EEPROM中数据  
  16.          //SectorErase(0x2000);//擦除扇区
  17.      //byte_write(0x2000,a);//重新写入数据

  18.    t0_init();  //定时1ms一个中断
  19.    
  20. while (1)             //主循环
  21. {        smgxshi( a, b);           //数码管显示函数
  22.          anjian();                   //按键调整函数
  23.          chucun();                   //储存函数
  24.         shuchmch();        //输出脉冲函数
  25.         
  26. }




  27. }



  28. void smgxshi(uint a,uint b)//数码管显示函数
  29. { uint c1; uchar c2;
  30.    a1=a/1000;
  31.    c1=a%1000;
  32.    a2=c1/100;
  33.    c2=c1%100;
  34.    a3=c2/10;
  35.    a4=c2%10;
  36.    b1=b/1000;
  37.    c1=b%1000;
  38.    b2=c1/100;
  39.    c2=c1%100;
  40.    b3=c2/10;
  41.    b4=c2%10;

  42.    
  43.    D=d[a1];
  44.    W=0x7f;
  45.    DelayMs(1);
  46.    D=0xff;
  47.    DelayMs(1);

  48.    D=d[a2];
  49.    W=0xbf;
  50.    DelayMs(1);
  51.    D=0xff;
  52.    DelayMs(1);

  53.    D=d[a3];
  54.    W=0xdf;
  55.    DelayMs(1);
  56.    D=0xff;
  57.    DelayMs(1);

  58.    D=d[a4];
  59.    W=0xef;
  60.    DelayMs(1);
  61.    D=0xff;
  62.    DelayMs(1);

  63.    D=d[b1];
  64.    W=0xf7;
  65.    DelayMs(1);
  66.    D=0xff;
  67.    DelayMs(1);

  68.    D=d[b2];
  69.    W=0xfb;
  70.    DelayMs(1);
  71.    D=0xff;
  72.    DelayMs(1);

  73.    D=d[b3];
  74.    W=0xfd;
  75.    DelayMs(1);
  76.    D=0xff;
  77.    DelayMs(1);

  78.    D=d[b4];
  79.    W=0xfe;
  80.    DelayMs(1);
  81.    D=0xff;
  82.    DelayMs(1);   }        


  83.   void anjian(void)                //按键调整函数
  84. {  if(an1==0)                                         //        按键1是否按下
  85.   {smgxshi(a,b);       //数码管显示函数延时
  86.    if(an1==0)                                         //        按键1是否按下
  87.    smgxshi(a, b);       //数码管显示函数延时
  88.    while(!an1)                                         //按键有没有松开
  89.    {smgxshi( a, b);       //数码管显示函数延时
  90.    a++;           
  91.    if(a==1001)
  92.    a=0;
  93.    smgxshi( a, b);       //数码管显示函数延时
  94.    } }
  95.                            
  96.   if(an2==0)                                         //        按键1是否按下
  97.   {smgxshi(a,b);       //数码管显示函数延时
  98.    if(an2==0)                                         //        按键1是否按下
  99.    smgxshi(a, b);       //数码管显示函数延时
  100.    while(!an2)                                         //按键有没有松开
  101.    {smgxshi( a, b);       //数码管显示函数延时
  102.    a--;           
  103.    if(a==-1)
  104.    a=1000;
  105.    smgxshi( a, b);       //数码管显示函数延时
  106.    } }                           
  107.                            
  108.   if(an3==0)                                         //        按键1是否按下
  109.   {smgxshi(a,b);       //数码管显示函数延时
  110.    if(an3==0)                                         //        按键1是否按下
  111.    smgxshi(a, b);       //数码管显示函数延时
  112.    while(!an3)                                         //按键有没有松开
  113.    {smgxshi( a, b);       //数码管显示函数延时
  114.    b++;           
  115.    if(b==5001)
  116.    b=0;
  117.    smgxshi( a, b);       //数码管显示函数延时
  118.    } }                                                      
  119.                            
  120.    if(an4==0)                                         //        按键1是否按下
  121.   {smgxshi(a,b);       //数码管显示函数延时
  122.    if(an4==0)                                         //        按键1是否按下
  123.    smgxshi(a, b);       //数码管显示函数延时
  124.    while(!an4)                                         //按键有没有松开
  125.    {smgxshi( a, b);       //数码管显示函数延时
  126.    b--;           
  127.    if(b==-1)
  128.    b=5000;
  129.    smgxshi( a, b);       //数码管显示函数延时
  130.    } }                                                                                 
  131.                             }

  132. void shuchmch(void)  //输出脉冲函数
  133. { if(ru==0)                                         //        按键1是否按下
  134.   {smgxshi(a,b);       //数码管显示函数延时
  135.    if(ru==0)                                         //        按键1是否按下
  136.    smgxshi(a, b);       //数码管显示函数延时
  137.    TR0=1;      //启动定时器0
  138.    while(!ru)                                         //按键有没有松开
  139.    smgxshi( a, b);       //数码管显示函数延时
  140.            chu=1;
  141.         aa=0;
  142.         TR0=0;      //关闭定时器0
  143.         smgxshi( a, b);       //数码管显示函数延时
  144.     }                                                                                 
  145. }

  146. void chucun(void)  //储存函数
  147. {  if(an5==0)                                         //        按键1是否按下
  148.   {smgxshi( a, b);       //数码管显示函数延时
  149.    if(an5==0)                                         //        按键1是否按下
  150. ……………………

  151. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

51hei图片_20210323085252.jpg (1.15 MB, 下载次数: 136)

PCB图

PCB图

51hei图片_20210323085224.jpg (96.02 KB, 下载次数: 122)

打印的菲林

打印的菲林

51hei图片_20210323085217.jpg (133.55 KB, 下载次数: 107)

PCB

PCB

51hei.png (3.33 KB, 下载次数: 121)

51hei.png

氩弧焊机控制板.rar

13.91 KB, 下载次数: 99, 下载积分: 黑币 -5

PCB与程序

评分

参与人数 2黑币 +105 收起 理由
新乡家电维修 + 5 很给力!
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏10 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:430492 发表于 2021-3-28 11:59 | 只看该作者
脉冲最后驱动是个啥?是个升压变压器吗?
回复

使用道具 举报

板凳
ID:331078 发表于 2021-4-9 14:02 | 只看该作者
你太厉害了,真牛
回复

使用道具 举报

地板
ID:712493 发表于 2021-4-9 19:32 | 只看该作者
楼主:焊机  ---  氩弧焊  ---  冷焊机   这三者的区别?
回复

使用道具 举报

5#
ID:362097 发表于 2021-7-27 10:45 | 只看该作者
楼主,这PCB的元器件可以给个清单吗?
回复

使用道具 举报

6#
ID:32289 发表于 2021-8-24 22:48 | 只看该作者
楼主,Proteus仿真不了啊?数码管显示不正常,求解!
回复

使用道具 举报

7#
ID:964273 发表于 2021-9-11 15:21 | 只看该作者
楼主动手能力真厉害
回复

使用道具 举报

8#
ID:857072 发表于 2021-9-23 15:07 来自手机 | 只看该作者
我早的时候也做过,记得焊机起弧时有个10khz左右的高频干扰,偶尔会影响单片机工作。后来考虑在焊把开关输入io口加共模电感。还一直没试。请教楼主有碰到这情况没,是怎么解决的?
回复

使用道具 举报

9#
ID:857072 发表于 2021-9-23 16:40 来自手机 | 只看该作者
补充一下,当时是手动单点的时候是可以正常工作的,我做了按着不放进入连点模式,连续点焊时焊机连续引弧有时程序就乱跑了。
回复

使用道具 举报

10#
ID:292518 发表于 2021-12-23 16:04 | 只看该作者

楼主动手能力真厉害
回复

使用道具 举报

11#
ID:870445 发表于 2023-8-14 22:58 | 只看该作者
楼主这程序用keil4 编译不成啊 我这软件好长时间没用了 难道坏了 ,哪位大侠看看什么原因造成的。先谢了。问题已经解决了
回复

使用道具 举报

12#
ID:870445 发表于 2023-10-6 22:28 | 只看该作者
楼主的这板子已装成调试好,就是还未到机器上试,
回复

使用道具 举报

13#
ID:963310 发表于 2023-10-8 15:17 | 只看该作者
xlhlydd 发表于 2023-10-6 22:28
楼主的这板子已装成调试好,就是还未到机器上试,

测试一下试试
回复

使用道具 举报

14#
ID:963310 发表于 2023-10-8 15:18 | 只看该作者
求分享原理图
回复

使用道具 举报

15#
ID:870445 发表于 2023-10-9 22:00 | 只看该作者

正在焊接高低压电源板,还有一块开关功率调制板,都弄好了才能拼成整个的在整调。
回复

使用道具 举报

16#
ID:275826 发表于 2023-11-14 13:01 | 只看该作者
请问楼主 ,高频起弧时对单片机工作有影响吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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