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

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

QQ登錄

只需一步,快速開始

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

單片機(jī)點(diǎn)焊機(jī)控制完整程序+PCB電路圖

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

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png 0.png
0.png
單片機(jī)源程序如下:
  1. /*******************************************************************************
  2. *                                                                                                                                            *
  3. *                                        點(diǎn)焊機(jī)控制器                                                                           *
  4. --------------------------------------------------------------------------------
  5. * 結(jié)構(gòu)說明:    51單片機(jī)計(jì)時(shí)控制                                                                                                   *
  6. *              在檢測(cè)到點(diǎn)焊手柄發(fā)出的工作信號(hào)時(shí),                                                           *
  7. *              立即接通點(diǎn)焊機(jī)的電源,點(diǎn)焊機(jī)開始工作,設(shè)定的時(shí)間結(jié)束后切斷電源,*
  8. *              在設(shè)定的間隔時(shí)間內(nèi),不接收點(diǎn)焊手柄發(fā)出的工作信號(hào)。              *                                                                                             *
  9. *******************************************************************************/
  10. /*
  11. * 單片機(jī)P0^0~P0^4口分配給LCD5110使用:RET、CE、D/C、DIN、CLK(在LCD_5110.h中定義
  12. *       P0^5     設(shè)備等待(可以工作)信號(hào)燈
  13. *            P0^6     設(shè)備工作間隙(不接收點(diǎn)焊信號(hào))信號(hào)燈
  14. *
  15. *            P1^0~P1^6   開關(guān)設(shè)置點(diǎn)焊時(shí)間(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顯示驅(qū)動(dòng)文件

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

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


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


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



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

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

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


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

  131.         x = 8;                                   //顯示的起始位置
  132.         y = 0;
  133.         for (i = 0; i < 5; i++)//顯示“電子點(diǎn)焊機(jī)”
  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();              //讀取設(shè)定定時(shí)時(shí)間并顯示
  157.         LCD_write_val(61,4,2,time_wait);//顯示剩余間隔時(shí)間
  158.         LED_read = 0;           //顯示準(zhǔn)備好信號(hào)燈

  159.         TMOD = 0x01;            //設(shè)置T0為模式1
  160. //        TH0 = 0xF8;             //為T0賦初值0xF8CD,定時(shí)2ms
  161. //        TL0 = 0xCD;
  162.     TH0 = 0xFC;             //為T0賦初值0xFC67,定時(shí)1ms
  163.     TL0 = 0x66;
  164. //        TH0 = 0xFC;
  165. //        TL0 = 0xC3;                    //為T0賦初值0xFA02,定時(shí)1ms
  166.         ET0 = 1;                //開T0中斷
  167.         TR0 = 1;                //啟動(dòng)定時(shí)器0
  168.         EA = 1;                 //開總中斷
  169.        
  170.         while(1)
  171.         {
  172.                 if (time_1s == 1)   //每秒處理
  173.                 {
  174.                     time_1s = 0;    //重置秒標(biāo)志
  175.                        
  176.                         if (time_wait > 0)
  177.                         {
  178.                             time_wait--;
  179.                         if (time_wait == 0)
  180.                             {
  181.                                 LED_read = 0;//顯示就緒信號(hào)
  182.                             }
  183.                                 LCD_write_val(61,4,2,time_wait);//顯示剩余間隔時(shí)間
  184.                    }
  185.                         else
  186.                         {
  187.                             if (LED_work == 1)
  188.                                 {
  189.                                     LED_read = ~LED_read;//等待時(shí)每秒閃一次
  190.                                 }
  191.                     }
  192.                 }       
  193.                        
  194.                 if (time_20ms == 1)
  195.                 {
  196.                         time_20ms = 0;          //重置20毫秒標(biāo)志
  197.                         if (time_wait == 0)
  198.                         {
  199.                             TimeHand();   //調(diào)用20毫秒處理程序
  200.                         }
  201.                 }
  202.         }
  203. }
復(fù)制代碼
0.png
所有資料51hei提供下載:
點(diǎn)焊機(jī)程序.zip (717.83 KB, 下載次數(shù): 257)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:387410 發(fā)表于 2019-9-7 07:02 來自手機(jī) | 顯示全部樓層
樓主優(yōu)秀,好文章,支持
回復(fù)

使用道具 舉報(bào)

ID:601757 發(fā)表于 2019-9-11 16:41 來自手機(jī) | 顯示全部樓層
lls5201 發(fā)表于 2019-9-7 07:02
樓主優(yōu)秀,好文章,支持

謝謝.有什么缺陷可以提出來我再做改進(jìn)
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:219115 發(fā)表于 2020-4-9 14:29 | 顯示全部樓層
拿走用了,待實(shí)驗(yàn)成功以后在回來回復(fù)
回復(fù)

使用道具 舉報(bào)

ID:532603 發(fā)表于 2020-4-15 18:17 | 顯示全部樓層
不錯(cuò),下載學(xué)習(xí)下哈
回復(fù)

使用道具 舉報(bào)

ID:116662 發(fā)表于 2020-4-15 20:36 | 顯示全部樓層
好帖子,多謝樓主分享。學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

ID:686387 發(fā)表于 2020-4-15 22:58 | 顯示全部樓層
好貼學(xué)習(xí)了,資料非常詳細(xì)。
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:729886 發(fā)表于 2020-5-11 22:53 | 顯示全部樓層
點(diǎn)焊機(jī)早就做好了,就等個(gè)好控制,完美后下載上機(jī)試
回復(fù)

使用道具 舉報(bào)

ID:243748 發(fā)表于 2020-5-11 23:40 來自手機(jī) | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

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

成功了嗎?
回復(fù)

使用道具 舉報(bào)

ID:800086 發(fā)表于 2020-12-28 23:15 來自手機(jī) | 顯示全部樓層
剛好需要一個(gè),先收藏了
回復(fù)

使用道具 舉報(bào)

ID:854314 發(fā)表于 2021-1-4 09:15 | 顯示全部樓層
PDF原理圖和PCB圖不一樣,不利于咋小白學(xué)習(xí)呀,能弄個(gè)對(duì)應(yīng)的或者說明最好。為了下載,專門來賺幣。
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:854314 發(fā)表于 2021-1-10 00:57 | 顯示全部樓層
今晚上終于有時(shí)間來上臺(tái)測(cè)試一下,還蠻好的,焊接時(shí)間調(diào)整正常,間隔時(shí)間切換正常。程序運(yùn)行沒啥問題。,下一步做板了再來。感謝樓主。

點(diǎn)焊機(jī)器件測(cè)試

點(diǎn)焊機(jī)器件測(cè)試

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:884089 發(fā)表于 2021-2-13 22:30 來自手機(jī) | 顯示全部樓層
這個(gè)撥碼原理圖和pcb不一樣呀??
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:884089 發(fā)表于 2021-2-17 10:50 來自手機(jī) | 顯示全部樓層
JP1是輸出JP2是電源么?
回復(fù)

使用道具 舉報(bào)

ID:802380 發(fā)表于 2021-11-14 22:02 來自手機(jī) | 顯示全部樓層
親測(cè)有用,不過作者用撥碼開關(guān)調(diào)節(jié)時(shí)間,邏輯不容易搞懂,得多熟悉熟悉,電路及程序沒問題,不過我用的微波爐變壓器改的,最大160毫秒點(diǎn)0.15的鎳片,好像大于200毫秒的時(shí)間沒啥用,150的焊點(diǎn)都黑了。
回復(fù)

使用道具 舉報(bào)

ID:802380 發(fā)表于 2021-11-14 22:03 來自手機(jī) | 顯示全部樓層
上帝的左手 發(fā)表于 2021-1-4 09:15
PDF原理圖和PCB圖不一樣,不利于咋小白學(xué)習(xí)呀,能弄個(gè)對(duì)應(yīng)的或者說明最好。為了下載,專門來賺幣。

我親測(cè)好用,只是作者用撥碼開關(guān)調(diào)節(jié)時(shí)間,不容易適應(yīng)
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:93164 發(fā)表于 2022-4-9 12:14 來自手機(jī) | 顯示全部樓層
有直流微點(diǎn)焊機(jī)嗎?謝謝樓主
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:228452 發(fā)表于 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
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

續(xù)流二極管D1接地端不應(yīng)該用VCC
回復(fù)

使用道具 舉報(bào)

ID:375055 發(fā)表于 2023-9-12 14:55 | 顯示全部樓層
好帖子,多謝樓主分享。學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

ID:1058675 發(fā)表于 2023-9-18 15:57 | 顯示全部樓層
感覺不錯(cuò)的項(xiàng)目,就是繼電器能不能抗住這樣的開關(guān)頻率,
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 韩日精品一区 | 欧美精品久久久久久久久久 | 国产精品高清在线 | 国产精品爱久久久久久久 | 精品久久久久久18免费网站 | 免费国产一区二区 | 国产中文字幕av | 国产精品欧美精品日韩精品 | 日韩高清中文字幕 | 日韩欧美一区二区三区 | 欧美一区二区三区在线观看视频 | 男人的天堂中文字幕 | 日韩日韩日韩日韩日韩日韩日韩 | 国产精品久久久久久久久久久久 | 精品久久香蕉国产线看观看亚洲 | 91啪亚洲精品 | 免费在线观看毛片 | 伊人国产精品 | 精品国产乱码久久久久久中文 | 91久久精品国产 | 国产精品美女一区二区 | 国产精品一区一区 | 精品成人 | 国产a区 | 国产不卡在线观看 | 日韩视频一区在线观看 | 亚洲精品久久久久久久久久久 | 欧美激情久久久久久 | 日本一区二区三区免费观看 | 在线小视频| 精品国产一区二区三区成人影院 | 日韩一区二区三区在线观看视频 | 狠狠干网站 | 欧美精品久久久久久久久老牛影院 | 日韩不卡一区二区 | 国产精品波多野结衣 | 国产精品视频在线观看 | 国产精品视频久久久 | 国产亚洲精品久久久久久牛牛 | 亚洲a一区| 日韩在线视频观看 |