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

標題: 單片機點焊機控制完整程序+PCB電路圖 [打印本頁]

作者: 王培旭    時間: 2019-8-24 23:38
標題: 單片機點焊機控制完整程序+PCB電路圖
完整的點焊機控制完善論壇里不全的pcb工程程序一起附上

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


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

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

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

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


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


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



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

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

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


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

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

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

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

所有資料51hei提供下載:
點焊機程序.zip (717.83 KB, 下載次數: 257)
點焊控制.zip (1.33 MB, 下載次數: 253)



作者: lls5201    時間: 2019-9-7 07:02
樓主優秀,好文章,支持
作者: 王培旭    時間: 2019-9-11 16:41
lls5201 發表于 2019-9-7 07:02
樓主優秀,好文章,支持

謝謝.有什么缺陷可以提出來我再做改進
作者: 1302798532    時間: 2019-10-11 09:50
7805電路的輸入輸出電容需要加上去,LDO進出都沒有電容電路穩定性不行。還有P0端口我記得是需要加上拉電阻吧。
作者: wbwcf13e    時間: 2019-10-19 15:28
我按照你提供電路圖焊了一塊萬用板子,發現顯示屏不顯示,是怎么回事?
作者: wbwcf13e    時間: 2019-10-20 07:26
我按樓上的提示給它接了5.1千歐的上拉電阻,結果有顯示。我記得別的同型號單片機例子,沒接上拉電阻也照樣顯示,這個單片機電路就不行!就是不知道接多大電阻合適?
作者: wbwcf13e    時間: 2019-10-23 15:12
看來大家不喜歡玩電子點焊機,沒人跟帖,也沒人發現該帖子的電路圖有問題,我一直在搞點焊機,沒有成功,我懷疑這個電路有問題!
作者: zeng1228    時間: 2019-10-23 15:43
終于有高手發表了,剛好用
作者: nec123    時間: 2020-2-15 21:54
怎樣改變 20毫秒一個單位,變成5毫秒一個單位?
作者: 哇哈哈哈    時間: 2020-4-9 14:29
拿走用了,待實驗成功以后在回來回復
作者: ccl00757    時間: 2020-4-15 18:17
不錯,下載學習下哈
作者: 雙贏電子    時間: 2020-4-15 20:36
好帖子,多謝樓主分享。學習了
作者: tom1234516    時間: 2020-4-15 22:58
好貼學習了,資料非常詳細。
作者: 1ylh    時間: 2020-4-17 21:25
我也打算自己diy一個點焊機,現在硬件完成了,開始著手程序的編制,希望能成功,要是成功了也來這分享。
作者: hucode    時間: 2020-5-11 17:41
樓主制作成功了嗎?
作者: zv1185    時間: 2020-5-11 22:53
點焊機早就做好了,就等個好控制,完美后下載上機試
作者: wuxishun    時間: 2020-5-11 23:40
感謝分享
作者: 山鬼搖    時間: 2020-12-28 19:12
1ylh 發表于 2020-4-17 21:25
我也打算自己diy一個點焊機,現在硬件完成了,開始著手程序的編制,希望能成功,要是成功了也來這分享。

成功了嗎?
作者: 13503412974    時間: 2020-12-28 23:15
剛好需要一個,先收藏了
作者: 上帝的左手    時間: 2021-1-4 09:15
PDF原理圖和PCB圖不一樣,不利于咋小白學習呀,能弄個對應的或者說明最好。為了下載,專門來賺幣。
作者: 上帝的左手    時間: 2021-1-4 09:18
非常感謝,器件還在準備中,就是PDF原理圖和PCB的圖相差這么大,設計的機理還沒研究,小白不容易啊。
作者: 上帝的左手    時間: 2021-1-10 00:57
今晚上終于有時間來上臺測試一下,還蠻好的,焊接時間調整正常,間隔時間切換正常。程序運行沒啥問題。,下一步做板了再來。感謝樓主。

點焊機1.jpg (227.5 KB, 下載次數: 180)

點焊機器件測試

點焊機器件測試

作者: Leolbb    時間: 2021-1-21 14:18
看著不錯,試試,謝謝樓主
作者: 輕杯淺醉    時間: 2021-2-13 22:30
這個撥碼原理圖和pcb不一樣呀??
作者: nlming    時間: 2021-2-16 13:11
好物件,謝謝樓主
作者: 輕杯淺醉    時間: 2021-2-17 10:50
JP1是輸出JP2是電源么?
作者: sq456    時間: 2021-11-14 22:02
親測有用,不過作者用撥碼開關調節時間,邏輯不容易搞懂,得多熟悉熟悉,電路及程序沒問題,不過我用的微波爐變壓器改的,最大160毫秒點0.15的鎳片,好像大于200毫秒的時間沒啥用,150的焊點都黑了。
作者: sq456    時間: 2021-11-14 22:03
上帝的左手 發表于 2021-1-4 09:15
PDF原理圖和PCB圖不一樣,不利于咋小白學習呀,能弄個對應的或者說明最好。為了下載,專門來賺幣。

我親測好用,只是作者用撥碼開關調節時間,不容易適應
作者: pq1972    時間: 2021-11-15 17:21
有成功的,謝謝。馬上下載,制作
作者: xk1963    時間: 2022-2-25 14:50
自己有一塊加了密磨掉芯片型號的,現在壞了想修修無從下手,這篇很有參考價值,謝謝樓主。
作者: xujiequn    時間: 2022-4-9 12:14
有直流微點焊機嗎?謝謝樓主
作者: shenhaitao1986    時間: 2022-8-7 12:18
改個編碼器的多好

作者: mick32    時間: 2022-8-7 18:18
Q1 transistor must be NPN
作者: mick32    時間: 2022-8-7 18:25
It is better to use Triac , relay is slow for some applications
Then you can use time and phase control together
Also use switching power supply for CPU board

作者: hongjunhyy    時間: 2023-5-13 11:04
好東西,非常感謝分享
作者: fyc4480    時間: 2023-6-11 08:08
王培旭 發表于 2019-9-11 16:41
謝謝.有什么缺陷可以提出來我再做改進

續流二極管D1接地端不應該用VCC
作者: 68775899    時間: 2023-9-12 14:55
好帖子,多謝樓主分享。學習了
作者: Sunny_Boy    時間: 2023-9-18 15:57
感覺不錯的項目,就是繼電器能不能抗住這樣的開關頻率,




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美三级三级三级爽爽爽 | 婷色| 欧美日韩中文在线 | 国产精品久久久久久中文字 | 日韩三级一区 | 久久只有精品 | 日韩一区在线视频 | 黄色网址在线免费观看 | 六月丁香激情 | 免费看a级片 | 手机看片在线 | 99视频在线播放 | 国产黄a三级三级看三级 | 成人91看片 | 欧美一区二区三区视频 | 羞羞的视频网站 | 欧美一级片免费 | 亚洲黄色天堂 | 超碰com| 午夜拍拍 | 久久爱综合 | 久久精品毛片 | 久久精品三级 | 五月天久久 | 亚洲激情另类 | 亚洲综合五月 | 亚洲欧美一区二区三区四区 | 中国1级毛片 | 久久精品视频网 | 成人高潮片免费网站 | 亚洲影视一区 | 久久日av | 国产一区二区福利 | 91国产视频在线观看 | 欧美日韩国产在线播放 | 17c一起操| 亚洲欧美专区 | 91精品国产99久久久久久红楼 | 中文字幕在线免费观看视频 | 破处视频在线观看 | 午夜丁香 |