久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15938|回復: 25
打印 上一主題 下一主題
收起左側

使用51單片機的點焊機控制裝置設計(程序+原理圖)

  [復制鏈接]
跳轉到指定樓層
樓主
    最近做了一個用單片機的點焊機控制裝置,使用的是89C51單片機、LCD5110顯示屏和微型繼電器,通過檢測按鈕信號,精確控制點焊機變壓器的導通時間和兩次焊接的間隔時間。變壓器導通時間從40毫秒到2600毫秒之間,按20毫秒為一檔連續可調,兩次焊接的間隔時間則為5秒和10秒兩檔,這兩個參數均通過7+1位撥碼開關由用戶根據需要動態設置,設置結果即時顯示在屏幕上。參見下圖:

003電子點焊機.jpg(44 KB, 下載次數: 0)
下載附件
前天 13:17 上傳





    屏幕中間顯示的是設置的點焊時間,以毫秒為單位,通過左起的7位撥碼開關設置。下部左邊顯示的的是設置的間隔時間,為5秒和10秒兩檔, 通過最右邊的撥碼開關設置。屏幕右下角顯示的是間隔時間倒計時,只有倒計時為零時,單片機才接收點焊按鈕的信號。下圖是點焊機的正面:

115控制板制作_通電測試.jpg(140.45 KB, 下載次數: 0)
下載附件
前天 13:16 上傳





    機箱面板上有3個LED指示燈,最上面紅色的是電源指示燈,面板上開關打開接通控制電源后常亮。中間橙色的是工作指示燈,點焊機變壓器接通后點亮,關閉后即滅。下面綠色的是準備好信號燈,當倒計時為零時此燈閃爍,只有綠色信號燈閃爍時點焊按鈕才有效,這個信號燈在焊把上也同時存在。
    下面是控制線路的原理圖:




    整個控制線路用了兩塊萬用板搭焊,一塊安裝了3個LED信號燈、LCD5110顯示屏和8位撥碼開關,另一塊則是單片機及外圍電路、微型繼電器以及7805穩壓塊等。

單片機源程序如下:
  1. /*******************************************************************************
  2. *                                                                                                                                            *
  3. *                                        點焊機控制器                                                                           *
  4. --------------------------------------------------------------------------------
  5. * 結構說明:    51單片機計時控制                                                                                                   *
  6. *              在檢測到點焊手柄發出的工作信號時,                                                           *
  7. *              立即接通點焊機的電源,點焊機開始工作,設定的時間結束后切斷電源,*
  8. *              在設定的間隔時間內,不接收點焊手柄發出的工作信號。              *
  9. * 版本說明:    胡家峻@2018年8月                                                                                              *
  10. *******************************************************************************/
  11. /*
  12. * 單片機P0^0~P0^4口分配給LCD5110使用:RET、CE、D/C、DIN、CLK(在LCD_5110.h中定義
  13. *       P0^5     設備等待(可以工作)信號燈
  14. *            P0^6     設備工作間隙(不接收點焊信號)信號燈
  15. *
  16. *            P1^0~P1^6   開關設置點焊時間(20毫秒為1單位,0~127單位)
  17. *            P1^7        工作間隙:0=5秒,1=10秒
  18. *******************************************************************************/

  19. #include<reg51.h>
  20. //#include<intrins.h>
  21. #include"LCD_5110.h"      //包含LCD顯示驅動文件

  22. #define u8 unsigned char  //單字節
  23. #define u16 unsigned int  //雙字節
  24. #define        u64 unsigned long //四字節

  25. #define        SZP1 P1           //P1口為初始設置的數據,低七位為定時數值(0-127)*20ms,                                                                                                  
  26.                           //第八位為間隙時間,0=5秒,1=10秒
  27. sbit LED_work = P0^5;     //設備工作信號(低電平點焊機接通)
  28. sbit LED_read = P0^6;     //設備就緒信號(低電平可以工作)
  29. sbit work     = P0^7;          //點焊按鈕信號(低電平按下)
  30.                                                                                                                         
  31. //--定義全局變量--//
  32. u8  sdsj = 0;             //設定的點焊單位
  33. u64 shsj = 0;             //設定的點焊時間(雙字節,以毫秒為單位)
  34. u8 wait = 5;                          //設置的間隔時間(5秒或10秒,根據P1.7確定)
  35.                                                            
  36. u8 time_work = 0;         //焊接時間計時(20毫秒/單位)
  37. u8 time_wait = 0;                  //等待時間計時(單位秒)
  38. bit time_1s = 0;              //秒信號
  39. bit time_20ms = 0;                  //20毫秒信號
  40. bit flag = 0;             //定時工作標志(0=待機或間隔,1=正在工作


  41. /*******************************************************************************
  42. * 函 數 名         : ReadSet
  43. * 函數功能                   : 讀設置并顯示
  44. * 輸    入         : 無                                                                                                                                                
  45. * 輸    出         : 無
  46. *******************************************************************************/
  47. void ReadSet(void)
  48. {
  49.         sdsj = SZP1;               //從P1口讀入一個字節的數據
  50.         if (sdsj>127) wait = 10;   //最高位1,間隔時間=10秒
  51.         else wait = 5;
  52.         LCD_write_val(27,4,2,wait);//顯示設定的間隔時間
  53.          
  54.         sdsj = (sdsj & 0x7f) + 3;  //取低7位定時值再加3(60毫秒)
  55.         shsj = sdsj * 20;                   //20毫秒基本單位
  56.         LCD_write_val(27,2,4,shsj);//顯示設定的點焊時間
  57. }


  58. /*******************************************************************************
  59. * 函 數 名         : timehand
  60. * 函數功能                   : 20毫秒處理函數,即每隔20毫秒處理一次
  61. * 輸    入         : 無
  62. * 輸    出         : 無
  63. *******************************************************************************/
  64. void TimeHand(void)
  65. {
  66.     if (flag == 0)        //待機狀態
  67.         {
  68.             if (work == 0)    //收到點焊按鈕信號
  69.                 {
  70.                         flag = 1;     //設置工作標志
  71.                         time_work = sdsj;//取設定時間
  72.                         LED_work = 0; //開通工作電源
  73.                         LED_read = 1; //關閉等待信號燈
  74.                 }
  75.                 else                          //無點焊按鈕信號
  76.                 {
  77.                         ReadSet();          //檢查更新設置
  78.                 }                                                                        
  79.         }
  80.         else                          //工作狀態
  81.         {
  82.                 time_work--;
  83.                 if (time_work == 0)//定時時間到
  84.                 {
  85.                         LED_work = 1;  //關閉點焊機電源
  86.                         LED_read = 1;  //取消準備好信號燈
  87.                         flag = 0;            //撤銷工作標志
  88.                         time_wait = wait;//恢復間隔時間
  89.                         LCD_write_val(61,4,2,time_wait);//顯示剩余間隔時間
  90.                 }
  91.         }
  92. }



  93. /*******************************************************************************
  94. * 函 數 名         :
  95. * 函數功能                   : T0中斷服務函數
  96. * 輸    入         : 無
  97. * 輸    出         : 無
  98. *******************************************************************************/
  99. void InterruptTimer0() interrupt 1
  100. {
  101.         static u8 i = 0;           //毫秒
  102.         static u8 j = 0;           //20毫秒

  103.         TH0 = 0xFC;            //重新加載初值,定時1ms
  104.         TL0 = 0x66;

  105.         i++;
  106.         if (i > 19)                   //20毫秒計時到
  107.         {
  108.             i = 0;
  109.                 time_20ms = 1;           //置20毫秒標志
  110.             j++;
  111.             if (j > 49)        //1秒
  112.                 {
  113.                     j = 0;
  114.                         time_1s = 1;   //置1秒標志
  115.             }
  116.         }
  117. }


  118. /*******************************************************************************
  119. * 函 數 名         : main
  120. * 函數功能                   : 主函數
  121. * 輸    入         : 無
  122. * 輸    出         : 無
  123. *******************************************************************************/
  124. void main(void)
  125. {
  126. //設置初始屏幕顯示
  127.     u8 i, x ,y;
  128.         
  129.         LED_work = 1; //測試
  130.         LED_read = 1;
  131.         LCD_init();                   //初始化5110屏幕

  132.         x = 8;                                   //顯示的起始位置
  133.         y = 0;
  134.         for (i = 0; i < 5; i++)//顯示“電子點焊機”
  135.         {
  136.                 LCD_write_char(x,y,i);//
  137.                 x = x +        14;        //下一字的顯示位置
  138.         }
  139.         x = 0;
  140.         y = 2;
  141.         LCD_write_char(x,y,3); //顯示“焊”
  142.         x = 14;
  143.         LCD_write_char(x,y,5); //顯示“接”
  144.         x = 59;
  145.         LCD_write_char(x,y,8); //顯示“毫”
  146.     x = 72;
  147.         LCD_write_char(x,y,9); //顯示“秒”
  148.         x = 0;
  149.         y = 4;
  150.         LCD_write_char(x,y,6); //顯示“間”
  151.         x = 14;
  152.         LCD_write_char(x,y,7); //顯示“隔”
  153.         x = 44;
  154.         LCD_write_char(x,y,9); //顯示“秒”
  155.         x = 76;
  156.         LCD_write_ASCII(x,y,12);//顯示“s”

  157.         ReadSet();              //讀取設定定時時間并顯示
  158.         LCD_write_val(61,4,2,time_wait);//顯示剩余間隔時間
  159.         LED_read = 0;           //顯示準備好信號燈

  160.         TMOD = 0x01;            //設置T0為模式1
  161. //        TH0 = 0xF8;             //為T0賦初值0xF8CD,定時2ms
  162. //        TL0 = 0xCD;
  163.     TH0 = 0xFC;             //為T0賦初值0xFC67,定時1ms
  164.     TL0 = 0x66;
  165. //        TH0 = 0xFC;
  166. //        TL0 = 0xC3;                    //為T0賦初值0xFA02,定時1ms
  167.         ET0 = 1;                //開T0中斷
  168.         TR0 = 1;                //啟動定時器0
  169.         EA = 1;                 //開總中斷
  170.         
  171.         while(1)
  172.         {
  173.                 if (time_1s == 1)   //每秒處理
  174.                 {
  175.                     time_1s = 0;    //重置秒標志
  176.                         
  177.                         if (time_wait > 0)
  178.                         {
  179.                             time_wait--;
  180.                         if (time_wait == 0)
  181.                             {
  182.                                 LED_read = 0;//顯示就緒信號
  183.                             }
  184.                                 LCD_write_val(61,4,2,time_wait);//顯示剩余間隔時間
  185.                    }
  186.                         else
  187.                         {
  188.                             if (LED_work == 1)
  189.                                 {
  190.                                     LED_read = ~LED_read;//等待時每秒閃一次
  191.                                 }
  192.                     }
  193.                 }        
  194.                         
  195.                 if (time_20ms == 1)
  196.                 {
  197.                         time_20ms = 0;          //重置20毫秒標志
  198.                         if (time_wait == 0)
  199.                         {
  200.                             TimeHand();   //調用20毫秒處理程序
  201.                         }
  202.                 }
  203.         }
  204. }
復制代碼

所有資料51hei提供下載:
點焊機.rar (708.39 KB, 下載次數: 252)
Keil項目文件包

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏13 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:49574 發表于 2018-12-29 12:09 | 只看該作者
樓主有沒有電路板的焊接圖啊!pcb工程打不開報錯

----------
補充:進History目錄可以打開原理圖文件了,作者沒有畫PCB圖
回復

使用道具 舉報

板凳
ID:104477 發表于 2019-1-2 00:19 來自手機 | 只看該作者
字模用什么軟件
回復

使用道具 舉報

地板
ID:462163 發表于 2019-1-5 17:15 | 只看該作者
你這個能不能改一下,按鍵調整放電時間,保存數據到內部EEP.
回復

使用道具 舉報

5#
ID:104477 發表于 2019-1-6 03:13 來自手機 | 只看該作者
已改成按鍵調放電時間和間隔時間
回復

使用道具 舉報

6#
ID:349565 發表于 2019-1-9 10:44 來自手機 | 只看該作者
謝謝你呀.找了好久了
回復

使用道具 舉報

7#
ID:349565 發表于 2019-1-9 10:44 來自手機 | 只看該作者
readghost 發表于 2018-12-29 12:09
樓主有沒有電路板的焊接圖啊!pcb工程打不開報錯

我下載試試看
回復

使用道具 舉報

8#
ID:346161 發表于 2019-1-13 00:37 來自手機 | 只看該作者
這么高端,我看有一個純硬件的
回復

使用道具 舉報

9#
ID:428674 發表于 2019-2-6 22:45 | 只看該作者
感謝樓主無私奉獻,靜待樓主推出改進版本
回復

使用道具 舉報

10#
ID:104477 發表于 2019-2-7 04:39 來自手機 | 只看該作者
表示已經改進,用旋轉編碼器,從最小20任意到5100ms
回復

使用道具 舉報

11#
ID:428674 發表于 2019-2-7 19:29 | 只看該作者
hs88 發表于 2019-2-7 04:39
表示已經改進,用旋轉編碼器,從最小20任意到5100ms

我看樓主發布的是撥碼開關的呀
不是旋轉編碼器的
回復

使用道具 舉報

12#
ID:134271 發表于 2019-2-19 09:16 | 只看該作者
N秒的間隔時間是不是太長了,焊接效率低哦。一般是毫秒級就夠了。
回復

使用道具 舉報

13#
ID:104477 發表于 2019-2-20 03:39 來自手機 | 只看該作者
xyf_71 發表于 2019-2-7 19:29
我看樓主發布的是撥碼開關的呀
不是旋轉編碼器的

樓主發布的沒有改,自己改成旋轉編碼器的
回復

使用道具 舉報

14#
ID:106211 發表于 2019-3-23 12:14 | 只看該作者
hs88 發表于 2019-2-20 03:39
樓主發布的沒有改,自己改成旋轉編碼器的

你改好的能來一份嗎?我也想弄一個玩玩
回復

使用道具 舉報

15#
ID:479579 發表于 2019-5-11 10:29 | 只看該作者
功能豐富,但不建議實用繼電器,容易拉弧燒壞繼電器。
回復

使用道具 舉報

16#
ID:535538 發表于 2019-5-12 07:55 來自手機 | 只看該作者
謝謝 下載看看
回復

使用道具 舉報

17#
ID:535538 發表于 2019-5-12 07:56 來自手機 | 只看該作者
我也下載試試
回復

使用道具 舉報

18#
ID:601757 發表于 2019-8-24 21:51 | 只看該作者
pcb我做回頭上傳到論壇
回復

使用道具 舉報

19#
ID:601757 發表于 2019-8-25 08:37 來自手機 | 只看該作者
已上傳
回復

使用道具 舉報

20#
ID:477512 發表于 2019-10-19 15:51 | 只看該作者
這個點焊機是用微波爐中的變壓器改的嗎?微波爐變壓器初級線圈直流電阻是2歐,接到交流電上電流很大,會引起火災的,點焊時間很短,只能是幾毫秒才行。
回復

使用道具 舉報

21#
ID:624444 發表于 2019-11-7 14:35 | 只看該作者
郝小白 發表于 2019-1-13 00:37
這么高端,我看有一個純硬件的

能分享不
回復

使用道具 舉報

22#
ID:375055 發表于 2019-11-17 22:24 | 只看該作者
我也下載試試
回復

使用道具 舉報

23#
ID:164939 發表于 2020-3-24 16:46 | 只看該作者

謝謝你呀.DOWN下來學習一下!
回復

使用道具 舉報

24#
ID:626287 發表于 2020-5-29 18:19 | 只看該作者
能驅動MOS板或者晶閘管??
回復

使用道具 舉報

25#
ID:748246 發表于 2021-2-17 14:23 | 只看該作者
pcb工程打不開報錯
回復

使用道具 舉報

26#
ID:140733 發表于 2023-11-15 11:21 | 只看該作者
感謝樓主,這是電容?變壓器?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲福利在线观看 | 成人高潮片免费视频欧美 | 在线观看av网站永久 | 免费观看av网站 | 香蕉视频在线播放 | 99视频免费 | 日韩视频一区二区 | 午夜激情在线视频 | 521av网站 | 午夜影院在线播放 | 国产乱一区二区三区视频 | 91精品观看 | 国产美女福利在线观看 | 亚洲乱码一区二区三区在线观看 | 国产精品www | a看片| 国产福利91精品 | 欧美日韩在线精品 | 国产综合一区二区 | 日韩精品二区 | av片在线观看网站 | 欧美综合国产精品久久丁香 | 国产精品一区二区福利视频 | 毛片一级片| 欧美成人h版在线观看 | 中文字幕国产精品视频 | 欧美网址在线观看 | 妖精视频一区二区三区 | 黄色在线免费观看视频网站 | 在线观看中文字幕亚洲 | 国产一区二区在线播放 | 一区二区三区福利视频 | 久久精品高清视频 | 国产精品日韩在线观看 | 久久精品亚洲精品 | 色就干| 激情五月婷婷综合 | 亚洲男人网| 热99在线 | 国产欧美视频一区二区三区 | 自拍视频在线观看 |