找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 9550|回復(fù): 15
收起左側(cè)

氬弧焊機(jī)脈沖控制器制作 附單片機(jī)程序PCB

  [復(fù)制鏈接]
ID:852609 發(fā)表于 2021-3-23 09:18 | 顯示全部樓層 |閱讀模式
沒(méi)事看網(wǎng)上有氬弧焊機(jī)脈沖控制器自己做了一個(gè),用單面PCB加跳線,感光法做的PCB板,雙面板業(yè)余條件過(guò)孔太難搞了,用了2個(gè)4位共陽(yáng)極數(shù)碼管,一個(gè)顯示高電平時(shí)間ms,一個(gè)顯示低電平時(shí)間ms,沒(méi)有搞儲(chǔ)存幾組數(shù)據(jù),為了操作簡(jiǎn)單只儲(chǔ)存上一次的設(shè)置,5個(gè)按鍵,一個(gè)儲(chǔ)存鍵,另外4個(gè)調(diào)整脈沖高電平時(shí)間,與低電平時(shí)間,STC89C51控制

制作出來(lái)的實(shí)物圖如下:

描述

描述

描述

測(cè)波形

測(cè)波形

測(cè)波形

試焊

試焊

試焊

Altium Designer畫(huà)的PCB圖在最后:(51hei附件中可下載工程文件)

單片機(jī)源程序如下:
  1. /*********************************************************************************
  2. * 【編寫(xiě)時(shí)間】: 2021年3月12日
  3. * 【作    者】: 程云海
  4. * 【版    本】: 1.0
  5. * 【外部晶振】: 12mhz        
  6. * 【主控芯片】: STC89C52RC
  7. * 【編譯環(huán)境】: Keil μVisio4        
  8. * 【程序功能】: 脈沖輸出控制                                                                                          
  9. * 【使用說(shuō)明】: 1.使用數(shù)碼管顯示控制氬弧焊機(jī)脈沖輸出
  10. /*------------------------------------------------
  11.                     主函數(shù)
  12. ------------------------------------------------*/
  13. void main (void)
  14. {  a=byte_read(0x2000)*100+byte_read(0x2001);//程序開(kāi)始時(shí)讀取EEPROM中數(shù)據(jù)
  15.    b=byte_read(0x2002)*100+byte_read(0x2003);//程序開(kāi)始時(shí)讀取EEPROM中數(shù)據(jù)  
  16.          //SectorErase(0x2000);//擦除扇區(qū)
  17.      //byte_write(0x2000,a);//重新寫(xiě)入數(shù)據(jù)

  18.    t0_init();  //定時(shí)1ms一個(gè)中斷
  19.    
  20. while (1)             //主循環(huán)
  21. {        smgxshi( a, b);           //數(shù)碼管顯示函數(shù)
  22.          anjian();                   //按鍵調(diào)整函數(shù)
  23.          chucun();                   //儲(chǔ)存函數(shù)
  24.         shuchmch();        //輸出脈沖函數(shù)
  25.         
  26. }




  27. }



  28. void smgxshi(uint a,uint b)//數(shù)碼管顯示函數(shù)
  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)                //按鍵調(diào)整函數(shù)
  84. {  if(an1==0)                                         //        按鍵1是否按下
  85.   {smgxshi(a,b);       //數(shù)碼管顯示函數(shù)延時(shí)
  86.    if(an1==0)                                         //        按鍵1是否按下
  87.    smgxshi(a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  88.    while(!an1)                                         //按鍵有沒(méi)有松開(kāi)
  89.    {smgxshi( a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  90.    a++;           
  91.    if(a==1001)
  92.    a=0;
  93.    smgxshi( a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  94.    } }
  95.                            
  96.   if(an2==0)                                         //        按鍵1是否按下
  97.   {smgxshi(a,b);       //數(shù)碼管顯示函數(shù)延時(shí)
  98.    if(an2==0)                                         //        按鍵1是否按下
  99.    smgxshi(a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  100.    while(!an2)                                         //按鍵有沒(méi)有松開(kāi)
  101.    {smgxshi( a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  102.    a--;           
  103.    if(a==-1)
  104.    a=1000;
  105.    smgxshi( a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  106.    } }                           
  107.                            
  108.   if(an3==0)                                         //        按鍵1是否按下
  109.   {smgxshi(a,b);       //數(shù)碼管顯示函數(shù)延時(shí)
  110.    if(an3==0)                                         //        按鍵1是否按下
  111.    smgxshi(a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  112.    while(!an3)                                         //按鍵有沒(méi)有松開(kāi)
  113.    {smgxshi( a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  114.    b++;           
  115.    if(b==5001)
  116.    b=0;
  117.    smgxshi( a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  118.    } }                                                      
  119.                            
  120.    if(an4==0)                                         //        按鍵1是否按下
  121.   {smgxshi(a,b);       //數(shù)碼管顯示函數(shù)延時(shí)
  122.    if(an4==0)                                         //        按鍵1是否按下
  123.    smgxshi(a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  124.    while(!an4)                                         //按鍵有沒(méi)有松開(kāi)
  125.    {smgxshi( a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  126.    b--;           
  127.    if(b==-1)
  128.    b=5000;
  129.    smgxshi( a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  130.    } }                                                                                 
  131.                             }

  132. void shuchmch(void)  //輸出脈沖函數(shù)
  133. { if(ru==0)                                         //        按鍵1是否按下
  134.   {smgxshi(a,b);       //數(shù)碼管顯示函數(shù)延時(shí)
  135.    if(ru==0)                                         //        按鍵1是否按下
  136.    smgxshi(a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  137.    TR0=1;      //啟動(dòng)定時(shí)器0
  138.    while(!ru)                                         //按鍵有沒(méi)有松開(kāi)
  139.    smgxshi( a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  140.            chu=1;
  141.         aa=0;
  142.         TR0=0;      //關(guān)閉定時(shí)器0
  143.         smgxshi( a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  144.     }                                                                                 
  145. }

  146. void chucun(void)  //儲(chǔ)存函數(shù)
  147. {  if(an5==0)                                         //        按鍵1是否按下
  148.   {smgxshi( a, b);       //數(shù)碼管顯示函數(shù)延時(shí)
  149.    if(an5==0)                                         //        按鍵1是否按下
  150. ……………………

  151. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

PCB圖

PCB圖

打印的菲林

打印的菲林

PCB

PCB
51hei.png

氬弧焊機(jī)控制板.rar

13.91 KB, 下載次數(shù): 104, 下載積分: 黑幣 -5

PCB與程序

評(píng)分

參與人數(shù) 2黑幣 +105 收起 理由
新鄉(xiāng)家電維修 + 5 很給力!
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:430492 發(fā)表于 2021-3-28 11:59 | 顯示全部樓層
脈沖最后驅(qū)動(dòng)是個(gè)啥?是個(gè)升壓變壓器嗎?
回復(fù)

使用道具 舉報(bào)

ID:331078 發(fā)表于 2021-4-9 14:02 | 顯示全部樓層
你太厲害了,真牛
回復(fù)

使用道具 舉報(bào)

ID:712493 發(fā)表于 2021-4-9 19:32 | 顯示全部樓層
樓主:焊機(jī)  ---  氬弧焊  ---  冷焊機(jī)   這三者的區(qū)別?
回復(fù)

使用道具 舉報(bào)

ID:362097 發(fā)表于 2021-7-27 10:45 | 顯示全部樓層
樓主,這PCB的元器件可以給個(gè)清單嗎?
回復(fù)

使用道具 舉報(bào)

ID:32289 發(fā)表于 2021-8-24 22:48 | 顯示全部樓層
樓主,Proteus仿真不了啊?數(shù)碼管顯示不正常,求解!
回復(fù)

使用道具 舉報(bào)

ID:964273 發(fā)表于 2021-9-11 15:21 | 顯示全部樓層
樓主動(dòng)手能力真厲害
回復(fù)

使用道具 舉報(bào)

ID:857072 發(fā)表于 2021-9-23 15:07 來(lái)自手機(jī) | 顯示全部樓層
我早的時(shí)候也做過(guò),記得焊機(jī)起弧時(shí)有個(gè)10khz左右的高頻干擾,偶爾會(huì)影響單片機(jī)工作。后來(lái)考慮在焊把開(kāi)關(guān)輸入io口加共模電感。還一直沒(méi)試。請(qǐng)教樓主有碰到這情況沒(méi),是怎么解決的?
回復(fù)

使用道具 舉報(bào)

ID:857072 發(fā)表于 2021-9-23 16:40 來(lái)自手機(jī) | 顯示全部樓層
補(bǔ)充一下,當(dāng)時(shí)是手動(dòng)單點(diǎn)的時(shí)候是可以正常工作的,我做了按著不放進(jìn)入連點(diǎn)模式,連續(xù)點(diǎn)焊時(shí)焊機(jī)連續(xù)引弧有時(shí)程序就亂跑了。
回復(fù)

使用道具 舉報(bào)

ID:292518 發(fā)表于 2021-12-23 16:04 | 顯示全部樓層

樓主動(dòng)手能力真厲害
回復(fù)

使用道具 舉報(bào)

ID:870445 發(fā)表于 2023-8-14 22:58 | 顯示全部樓層
樓主這程序用keil4 編譯不成啊 我這軟件好長(zhǎng)時(shí)間沒(méi)用了 難道壞了 ,哪位大俠看看什么原因造成的。先謝了。問(wèn)題已經(jīng)解決了
回復(fù)

使用道具 舉報(bào)

ID:870445 發(fā)表于 2023-10-6 22:28 | 顯示全部樓層
樓主的這板子已裝成調(diào)試好,就是還未到機(jī)器上試,
回復(fù)

使用道具 舉報(bào)

ID:963310 發(fā)表于 2023-10-8 15:17 | 顯示全部樓層
xlhlydd 發(fā)表于 2023-10-6 22:28
樓主的這板子已裝成調(diào)試好,就是還未到機(jī)器上試,

測(cè)試一下試試
回復(fù)

使用道具 舉報(bào)

ID:963310 發(fā)表于 2023-10-8 15:18 | 顯示全部樓層
求分享原理圖
回復(fù)

使用道具 舉報(bào)

ID:870445 發(fā)表于 2023-10-9 22:00 | 顯示全部樓層

正在焊接高低壓電源板,還有一塊開(kāi)關(guān)功率調(diào)制板,都弄好了才能拼成整個(gè)的在整調(diào)。
回復(fù)

使用道具 舉報(bào)

ID:275826 發(fā)表于 2023-11-14 13:01 | 顯示全部樓層
請(qǐng)問(wèn)樓主 ,高頻起弧時(shí)對(duì)單片機(jī)工作有影響嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表