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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 21509|回復: 37
收起左側

單片機點焊機控制完整程序+PCB電路圖

  [復制鏈接]
ID:601757 發表于 2019-8-24 23:38 | 顯示全部樓層 |閱讀模式
完整的點焊機控制完善論壇里不全的pcb工程程序一起附上

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png 0.png
0.png
單片機源程序如下:
  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. }
復制代碼
0.png
所有資料51hei提供下載:
點焊機程序.zip (717.83 KB, 下載次數: 257)
點焊控制.zip (1.33 MB, 下載次數: 253)


評分

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

查看全部評分

回復

使用道具 舉報

ID:387410 發表于 2019-9-7 07:02 來自觸屏版 | 顯示全部樓層
樓主優秀,好文章,支持
回復

使用道具 舉報

ID:601757 發表于 2019-9-11 16:41 來自觸屏版 | 顯示全部樓層
lls5201 發表于 2019-9-7 07:02
樓主優秀,好文章,支持

謝謝.有什么缺陷可以提出來我再做改進
回復

使用道具 舉報

ID:617981 發表于 2019-10-11 09:50 | 顯示全部樓層
7805電路的輸入輸出電容需要加上去,LDO進出都沒有電容電路穩定性不行。還有P0端口我記得是需要加上拉電阻吧。
回復

使用道具 舉報

ID:477512 發表于 2019-10-19 15:28 | 顯示全部樓層
我按照你提供電路圖焊了一塊萬用板子,發現顯示屏不顯示,是怎么回事?
回復

使用道具 舉報

ID:477512 發表于 2019-10-20 07:26 | 顯示全部樓層
我按樓上的提示給它接了5.1千歐的上拉電阻,結果有顯示。我記得別的同型號單片機例子,沒接上拉電阻也照樣顯示,這個單片機電路就不行!就是不知道接多大電阻合適?
回復

使用道具 舉報

ID:477512 發表于 2019-10-23 15:12 | 顯示全部樓層
看來大家不喜歡玩電子點焊機,沒人跟帖,也沒人發現該帖子的電路圖有問題,我一直在搞點焊機,沒有成功,我懷疑這個電路有問題!
回復

使用道具 舉報

ID:628841 發表于 2019-10-23 15:43 | 顯示全部樓層
終于有高手發表了,剛好用
回復

使用道具 舉報

ID:693678 發表于 2020-2-15 21:54 | 顯示全部樓層
怎樣改變 20毫秒一個單位,變成5毫秒一個單位?
回復

使用道具 舉報

ID:219115 發表于 2020-4-9 14:29 | 顯示全部樓層
拿走用了,待實驗成功以后在回來回復
回復

使用道具 舉報

ID:532603 發表于 2020-4-15 18:17 | 顯示全部樓層
不錯,下載學習下哈
回復

使用道具 舉報

ID:116662 發表于 2020-4-15 20:36 | 顯示全部樓層
好帖子,多謝樓主分享。學習了
回復

使用道具 舉報

ID:686387 發表于 2020-4-15 22:58 | 顯示全部樓層
好貼學習了,資料非常詳細。
回復

使用道具 舉報

ID:591489 發表于 2020-4-17 21:25 | 顯示全部樓層
我也打算自己diy一個點焊機,現在硬件完成了,開始著手程序的編制,希望能成功,要是成功了也來這分享。
回復

使用道具 舉報

ID:479579 發表于 2020-5-11 17:41 | 顯示全部樓層
樓主制作成功了嗎?
回復

使用道具 舉報

ID:729886 發表于 2020-5-11 22:53 | 顯示全部樓層
點焊機早就做好了,就等個好控制,完美后下載上機試
回復

使用道具 舉報

ID:243748 發表于 2020-5-11 23:40 來自觸屏版 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:865614 發表于 2020-12-28 19:12 來自觸屏版 | 顯示全部樓層
1ylh 發表于 2020-4-17 21:25
我也打算自己diy一個點焊機,現在硬件完成了,開始著手程序的編制,希望能成功,要是成功了也來這分享。

成功了嗎?
回復

使用道具 舉報

ID:800086 發表于 2020-12-28 23:15 來自觸屏版 | 顯示全部樓層
剛好需要一個,先收藏了
回復

使用道具 舉報

ID:854314 發表于 2021-1-4 09:15 | 顯示全部樓層
PDF原理圖和PCB圖不一樣,不利于咋小白學習呀,能弄個對應的或者說明最好。為了下載,專門來賺幣。
回復

使用道具 舉報

ID:854314 發表于 2021-1-4 09:18 | 顯示全部樓層
非常感謝,器件還在準備中,就是PDF原理圖和PCB的圖相差這么大,設計的機理還沒研究,小白不容易啊。
回復

使用道具 舉報

ID:854314 發表于 2021-1-10 00:57 | 顯示全部樓層
今晚上終于有時間來上臺測試一下,還蠻好的,焊接時間調整正常,間隔時間切換正常。程序運行沒啥問題。,下一步做板了再來。感謝樓主。

點焊機器件測試

點焊機器件測試

評分

參與人數 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:110323 發表于 2021-1-21 14:18 | 顯示全部樓層
看著不錯,試試,謝謝樓主
回復

使用道具 舉報

ID:884089 發表于 2021-2-13 22:30 來自觸屏版 | 顯示全部樓層
這個撥碼原理圖和pcb不一樣呀??
回復

使用道具 舉報

ID:689425 發表于 2021-2-16 13:11 | 顯示全部樓層
好物件,謝謝樓主
回復

使用道具 舉報

ID:884089 發表于 2021-2-17 10:50 來自觸屏版 | 顯示全部樓層
JP1是輸出JP2是電源么?
回復

使用道具 舉報

ID:802380 發表于 2021-11-14 22:02 來自觸屏版 | 顯示全部樓層
親測有用,不過作者用撥碼開關調節時間,邏輯不容易搞懂,得多熟悉熟悉,電路及程序沒問題,不過我用的微波爐變壓器改的,最大160毫秒點0.15的鎳片,好像大于200毫秒的時間沒啥用,150的焊點都黑了。
回復

使用道具 舉報

ID:802380 發表于 2021-11-14 22:03 來自觸屏版 | 顯示全部樓層
上帝的左手 發表于 2021-1-4 09:15
PDF原理圖和PCB圖不一樣,不利于咋小白學習呀,能弄個對應的或者說明最好。為了下載,專門來賺幣。

我親測好用,只是作者用撥碼開關調節時間,不容易適應
回復

使用道具 舉報

ID:624685 發表于 2021-11-15 17:21 | 顯示全部樓層
有成功的,謝謝。馬上下載,制作
回復

使用道具 舉報

ID:219185 發表于 2022-2-25 14:50 | 顯示全部樓層
自己有一塊加了密磨掉芯片型號的,現在壞了想修修無從下手,這篇很有參考價值,謝謝樓主。
回復

使用道具 舉報

ID:93164 發表于 2022-4-9 12:14 來自觸屏版 | 顯示全部樓層
有直流微點焊機嗎?謝謝樓主
回復

使用道具 舉報

ID:701376 發表于 2022-8-7 12:18 | 顯示全部樓層
改個編碼器的多好
回復

使用道具 舉報

ID:228452 發表于 2022-8-7 18:18 | 顯示全部樓層
Q1 transistor must be NPN
回復

使用道具 舉報

ID:228452 發表于 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
回復

使用道具 舉報

ID:1077206 發表于 2023-5-13 11:04 | 顯示全部樓層
好東西,非常感謝分享
回復

使用道具 舉報

ID:9486 發表于 2023-6-11 08:08 | 顯示全部樓層
王培旭 發表于 2019-9-11 16:41
謝謝.有什么缺陷可以提出來我再做改進

續流二極管D1接地端不應該用VCC
回復

使用道具 舉報

ID:375055 發表于 2023-9-12 14:55 | 顯示全部樓層
好帖子,多謝樓主分享。學習了
回復

使用道具 舉報

ID:1058675 發表于 2023-9-18 15:57 | 顯示全部樓層
感覺不錯的項目,就是繼電器能不能抗住這樣的開關頻率,
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 人人人干 | 国产精品国产三级国产aⅴ中文 | 免费一级欧美在线观看视频 | 男女网站免费 | 亚洲一区 中文字幕 | 国产一级成人 | 欧美一区二区在线 | 高清黄色网址 | 青娱乐一区二区 | 精品日韩一区 | 国产午夜精品久久久 | 欧美精品三区 | 亚洲国产精品第一区二区 | 亚洲在线一区二区 | 在线观看中文字幕一区二区 | 亚洲精品乱码久久久久v最新版 | av超碰 | 伊人二区 | 91一区二区三区在线观看 | 国产精品视频免费观看 | 伊人狠狠干 | 欧美色欧美亚洲另类七区 | 欧美一级在线免费 | 麻豆久久久久久久久久 | 久久综合久久久 | 在线视频一区二区三区 | 久久久久久久av麻豆果冻 | 9191在线播放| 羞羞视频免费在线 | 国产精品久久久久久久久久妞妞 | 午夜精品一区二区三区在线视频 | 国产精品久久久久久婷婷天堂 | www操操| 四虎影视免费在线 | 色播99 | 99精品99 | 亚洲高清在线 | 国产精品久久a | 久久久久久久97 | 中文在线播放 | 欧美在线日韩 |