標(biāo)題: 氬弧焊機(jī)脈沖控制器制作 附單片機(jī)程序PCB [打印本頁(yè)]

作者: yunhai4321    時(shí)間: 2021-3-23 09:18
標(biāo)題: 氬弧焊機(jī)脈沖控制器制作 附單片機(jī)程序PCB
沒(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è)波形


試焊

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ù)制代碼

51hei圖片_20210323085252.jpg (1.15 MB, 下載次數(shù): 173)

PCB圖

PCB圖

51hei圖片_20210323085224.jpg (96.02 KB, 下載次數(shù): 159)

打印的菲林

打印的菲林

51hei圖片_20210323085217.jpg (133.55 KB, 下載次數(shù): 142)

PCB

PCB

51hei.png (3.33 KB, 下載次數(shù): 155)

51hei.png

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

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

PCB與程序


作者: cooleaf    時(shí)間: 2021-3-28 11:59
脈沖最后驅(qū)動(dòng)是個(gè)啥?是個(gè)升壓變壓器嗎?
作者: YTWO    時(shí)間: 2021-4-9 14:02
你太厲害了,真牛
作者: fj51hei    時(shí)間: 2021-4-9 19:32
樓主:焊機(jī)  ---  氬弧焊  ---  冷焊機(jī)   這三者的區(qū)別?
作者: lyong88    時(shí)間: 2021-7-27 10:45
樓主,這PCB的元器件可以給個(gè)清單嗎?
作者: rrqxx    時(shí)間: 2021-8-24 22:48
樓主,Proteus仿真不了。繑(shù)碼管顯示不正常,求解!
作者: 青春的心    時(shí)間: 2021-9-11 15:21
樓主動(dòng)手能力真厲害
作者: a185980800    時(shí)間: 2021-9-23 15:07
我早的時(shí)候也做過(guò),記得焊機(jī)起弧時(shí)有個(gè)10khz左右的高頻干擾,偶爾會(huì)影響單片機(jī)工作。后來(lái)考慮在焊把開(kāi)關(guān)輸入io口加共模電感。還一直沒(méi)試。請(qǐng)教樓主有碰到這情況沒(méi),是怎么解決的?
作者: a185980800    時(shí)間: 2021-9-23 16:40
補(bǔ)充一下,當(dāng)時(shí)是手動(dòng)單點(diǎn)的時(shí)候是可以正常工作的,我做了按著不放進(jìn)入連點(diǎn)模式,連續(xù)點(diǎn)焊時(shí)焊機(jī)連續(xù)引弧有時(shí)程序就亂跑了。
作者: long2018    時(shí)間: 2021-12-23 16:04

樓主動(dòng)手能力真厲害
作者: xlhlydd    時(shí)間: 2023-8-14 22:58
樓主這程序用keil4 編譯不成啊 我這軟件好長(zhǎng)時(shí)間沒(méi)用了 難道壞了 ,哪位大俠看看什么原因造成的。先謝了。問(wèn)題已經(jīng)解決了
作者: xlhlydd    時(shí)間: 2023-10-6 22:28
樓主的這板子已裝成調(diào)試好,就是還未到機(jī)器上試,
作者: 傲世飛魚(yú)    時(shí)間: 2023-10-8 15:17
xlhlydd 發(fā)表于 2023-10-6 22:28
樓主的這板子已裝成調(diào)試好,就是還未到機(jī)器上試,

測(cè)試一下試試
作者: 傲世飛魚(yú)    時(shí)間: 2023-10-8 15:18
求分享原理圖
作者: xlhlydd    時(shí)間: 2023-10-9 22:00
傲世飛魚(yú) 發(fā)表于 2023-10-8 15:17
測(cè)試一下試試

正在焊接高低壓電源板,還有一塊開(kāi)關(guān)功率調(diào)制板,都弄好了才能拼成整個(gè)的在整調(diào)。
作者: tyrl800    時(shí)間: 2023-11-14 13:01
請(qǐng)問(wèn)樓主 ,高頻起弧時(shí)對(duì)單片機(jī)工作有影響嗎?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1