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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 19698|回復: 42
收起左側

利用15w401單片機制作雙脈沖點焊機 附源程序

  [復制鏈接]
ID:663734 發表于 2019-12-22 18:31 | 顯示全部樓層 |閱讀模式
    本人是單片機小白,來學習的新人,還望大家多多照顧噢
  前段時間去大姐夫家玩,發現大姐夫有很多lsuc這種超級電容,非常適合做儲能式點焊機,而且現在點焊18650等電池也越來越多,于是便親自操刀做一個玩玩!
   設計三層電路板,模塊化設計,最底層是固定超級電容的均衡電路板,中間層是mos管矩陣電路板,最上邊是單片機控制電路板
下圖是用TL431做的均衡充電板,LSUC超級電容耐壓2.8v容量3000F,均衡起控電壓2.78v 均衡電流800mA webwxgetmsgimg (12).jpg 熱轉印pc為了降低內阻特意買了銅排進行關鍵部位連均衡和mos矩陣板放在一起試一下 webwxgetmsgimg (7).jpg 打孔加工 webwxgetmsgimg (4).jpg 安裝上一個,感覺很漂亮啊 webwxgetmsgimg (3).jpg 裝好的mos管矩陣電路板 webwxgetmsgimg (6).jpg 組裝在一起看下效果,感覺還是很漂亮的 webwxgetmsgimg.jpg webwxgetmsgimg (1).jpg 接下來進入正題,進行時間控制板的程序設計和pcb設計

單片機源程序如下:
#include "reg51.h"       //此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u16;//對數據類型進行聲明定義
typedef unsigned char u8;//對數據類型進行聲明定義
sbit P30=P1^0;                        //數碼管第1位
sbit P31=P1^1;                        //數碼管第2位
sbit k1=P1^6;        //將單片機的P3.2端口定義為時間加
sbit k2=P1^5;        //將單片機的P3.3端口定義為時間減
sbit k3=P1^7;        //將單片機的P3.4端口定義為檢測點焊筆


sbit out=P1^4;       //驅動脈沖輸出
//數碼管真值表//
u8 code LED_CODE[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}; //顯示0~F的段碼


u16 Cntms1=0,Cntms2=0,num1,num2;ke;


u8 num;                //定時變量=毫秒


void Delay(unsigned long int t)
{
        while(--t);
         
}


/*===加按鍵檢測===*/
/*當此函數檢測到有效按鍵時返回1,沒有檢測到有效值時返回0*/
bit skey0(void)
{
        static unsigned char a = 0;
        if(k1 == 0)                                        //如果檢測到按鍵引腳有低電平,記數變量開始累加.
        {
                if(a < 50)                                //控制延時計數返0,因為當按鍵不松開時,j一直在累加
                        a++;                                //CPU每檢測到一次按鍵引腳為低電平0,j就累加1次.
        }
        else                                                //如果按鍵沒有按下或者按下后有高電平(抖動)j清0
                a = 0;
        
        if(a == 49)                                //如果變量j的值累加到49,說明按鍵已跨過抖動區.
                return 1;                                //返回1,說明已檢測到按鍵有效值.
        else
                return 0;                                //返回0,說明沒有檢測到有效值.
}
/*===減按鍵檢測===*/
/*當此函數檢測到有效按鍵時返回1,沒有檢測到有效值時返回0*/
bit skey1(void)
{
        static unsigned char i = 0;        //定義靜態變量,用來記錄延時用.
        if(k2 == 0)                                        //如果檢測到按鍵引腳有低電平,記數變量開始累加.
        {
                if(i < 50)                                //控制延時計數返0,因為當按鍵不松開時,i一直在累加.
                        i++;                                //CPU每檢測到一次按鍵引腳為低電平0,i就累加1次.
        }
        else                                                //如果按鍵沒有按下或者按下后有高電平(抖動)i清0
                i = 0;
        
        if(i == 49)                                //如果變量i的值累加到49,說明按鍵已跨過抖動區
                return 1;                                //返回1,說明已檢測到按鍵有效值.
        else
                return 0;                                //返回0,說明沒有檢測到有效值.
}


bit skey2(void)
{
        static unsigned  int l = 0;        //定義靜態變量,用來記錄延時用.                   unsigned long int
        if(k3 == 0)                                //如果檢測到按鍵引腳有低電平,記數變量開始累加.
        {
                if(l <5000)                                //控制延時計數返0,因為當按鍵不松開時,i一直在累加
                        l++;                                //CPU每檢測到一次按鍵引腳為低電平0,i就累加1次.
        }
        else                                                //如果按鍵沒有按下或者按下后有高電平(抖動)i清0
                l = 0;
        
        if(l == 4999)                                //如果變量i的值累加到4999,說明點焊筆已經做好準備,可以焊接了.
                return 1;                                //返回1,說明已檢測到按鍵有效值.
        else
                return 0;                                //返回0,說明沒有檢測到有效值.
}




/********************************
                數碼管動態顯示程序
********************************/
void display()
{
        static u8 i=0;
      
                  
         
        if(i==0)
        {
                P30=1;
                P31=0;
                P3=LED_CODE[num/10];
                                for(ke = 0;ke <100;ke++);        //延時一段時間
                            P31=1;
                                P3=0Xff;
                                
                i=1;
                                
        }
        else
        {
                P31=1;
                P30=0;
                P3=LED_CODE[num%10];
                                for(ke = 0;ke <100;ke++);        //延時一段時間
                                P30=1;
                                P3=0Xff;                 //消隱
                                
                i=0;
                        
        }
}





//主函數//
void main()
{      
                  bit m = 0,m1 = 0,m2=0;                        //聲明一個位變量.用來存儲按鍵狀態.
         unsigned char i;
        out=1; //初始化輸出端口
        num=40;//定時變量賦初值
        
            
                k1 = 1;                                                //加按鍵輸入端口電平置高
                k2 = 1;                                                //減按鍵輸入端口電平置高
                k3 = 1;               
                                       
                        while(1)                                        //主循環
                        {
                           
                                m  = skey0();                        //采集加按鍵
                                m1 = skey1();                        //采集減按鍵
                            m2 = skey2();                        //采集按鍵
                                if(m == 1)                                //如果采集到加按鍵值.
                                {
                                 if(num < 99)
                                        num++;                                //計數自增        
                                }
                                if(m1 == 1)                                //如果采集到減按鍵值.
                                {
                                 if(num >1)        
                                        num--;                                //計數自減
                                  }
                                 if(m2 == 1)
                                         { for(i=0;i<2;i++)        //加入 for循環,表明for循環大括號中的程序循環執行2次
                                          {
                                                out=0;                        //將P1.0口賦值 0,對外輸出低電平
                                                Delay(num*50);        //調用延時程序;更改延時數字可以更改延時長度;用于改變輸出脈沖時間
                                                out=1;                        //將P1.0口賦值 1,對外輸出高電平
                                                Delay(3000);
                                           }
                                         }                        
                        display();//數碼管動態顯示        
                    }
}


      



   程序及引腳定義完,接下來設計pcb IMG_20190430_085126.jpg IMG_20190430_111510.jpg 第一次使用綠油技術 IMG_20190430_152334.jpg 接下來下載程序,調試一下 IMG_20190501_140156.jpg 至此大功告成 IMG_20190506_083651.jpg IMG_20190506_083715.jpg 測試一下點焊效果 IMG_20190506_083633.jpg 用力 IMG_20190506_083831.jpg 焊的還是很牢固 IMG_20190506_083847.jpg
  感謝大家觀看!

評分

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

查看全部評分

回復

使用道具 舉報

ID:237354 發表于 2019-12-23 00:20 | 顯示全部樓層
牛啊!有原理圖嗎
回復

使用道具 舉報

ID:56665 發表于 2019-12-23 08:19 | 顯示全部樓層
把原理圖放上來,手畫一個也行
回復

使用道具 舉報

ID:206748 發表于 2019-12-24 17:56 | 顯示全部樓層
還用升壓嗎?怎么充電呢?
回復

使用道具 舉報

ID:353831 發表于 2019-12-26 17:51 來自手機 | 顯示全部樓層
樓主發一個原理圖
回復

使用道具 舉報

ID:663734 發表于 2019-12-28 18:03 | 顯示全部樓層
a838899 發表于 2019-12-24 17:56
還用升壓嗎?怎么充電呢?

不用升壓,用直流穩壓電源充電
回復

使用道具 舉報

ID:663734 發表于 2019-12-28 18:04 | 顯示全部樓層
wl020807 發表于 2019-12-26 17:51
樓主發一個原理圖

原理圖放在單位了,過幾天上班的再發
回復

使用道具 舉報

ID:194946 發表于 2019-12-31 23:06 | 顯示全部樓層
yfxzhl 發表于 2019-12-28 18:04
原理圖放在單位了,過幾天上班的再發

樓主不是發一個原理圖嗎
回復

使用道具 舉報

ID:194946 發表于 2019-12-31 23:08 | 顯示全部樓層
樓主不是發一個原理圖嗎?
回復

使用道具 舉報

ID:194946 發表于 2019-12-31 23:09 | 顯示全部樓層
樓主不是發一個原理圖嗎
回復

使用道具 舉報

ID:474921 發表于 2020-1-16 21:06 | 顯示全部樓層
樓主電路圖弄丟了?
回復

使用道具 舉報

ID:375228 發表于 2020-1-29 22:20 | 顯示全部樓層
有空做一個試試
回復

使用道具 舉報

ID:294296 發表于 2020-1-30 02:10 | 顯示全部樓層
絕世好帖!樓主可以用一個100W左右的環形變壓器拿粗電線在磁環繞兩匝有1伏多左右接個大功率二極管給電容供電,比可調電源猛多了,另外考慮到其它地方市電電壓可能會高變壓器輸出會高,可以用ADC采集電壓,控制可控硅給變壓器調壓,嘻嘻。
回復

使用道具 舉報

ID:208271 發表于 2020-1-30 09:07 | 顯示全部樓層
樓主,這種PCB板的制作過程是怎樣的?
回復

使用道具 舉報

ID:699371 發表于 2020-3-31 14:45 來自手機 | 顯示全部樓層
樓主能不能把原理圖分享一下
回復

使用道具 舉報

ID:194946 發表于 2020-5-23 01:06 | 顯示全部樓層
095156fukwwf00rwe44dwy.jpg 我在別的地方找到了電路圖
回復

使用道具 舉報

ID:626287 發表于 2020-5-31 09:11 | 顯示全部樓層
gpckwbg 發表于 2020-5-23 01:06
我在別的地方找到了電路圖

保護板的電路圖有嗎??
回復

使用道具 舉報

ID:191376 發表于 2020-5-31 10:51 | 顯示全部樓層
技術人牛
回復

使用道具 舉報

ID:137055 發表于 2020-6-2 09:07 | 顯示全部樓層
有原理圖嗎
回復

使用道具 舉報

ID:194946 發表于 2020-6-8 00:28 | 顯示全部樓層
zgchen 發表于 2020-5-31 09:11
保護板的電路圖有嗎??

點焊機均衡板電路圖.png
回復

使用道具 舉報

ID:194946 發表于 2020-6-8 00:36 | 顯示全部樓層
zgchen 發表于 2020-5-31 09:11
保護板的電路圖有嗎??

原理圖2.png
回復

使用道具 舉報

ID:774678 發表于 2020-7-2 16:32 | 顯示全部樓層
厲害,pcb可以分享一下兒嗎?
回復

使用道具 舉報

ID:750209 發表于 2020-7-2 20:35 | 顯示全部樓層
pcb可以分享一下兒嗎?
回復

使用道具 舉報

ID:353831 發表于 2020-8-11 19:26 | 顯示全部樓層
樓主,焊筆檢測光耦二極管側接那里?
回復

使用道具 舉報

ID:353831 發表于 2020-8-11 19:39 | 顯示全部樓層
樓主:單片機時鐘設置多兆的?
回復

使用道具 舉報

ID:813514 發表于 2020-8-12 16:08 | 顯示全部樓層
樓主的阻焊綠油怎么涂的,我得老涂不好,怎么涂的那么均勻啊
回復

使用道具 舉報

ID:353831 發表于 2020-10-27 20:35 來自手機 | 顯示全部樓層
樓主你好,STC15W401AS單片機下載程序晶振設置多少兆?
回復

使用道具 舉報

ID:353831 發表于 2020-10-28 13:47 | 顯示全部樓層
yfxzhl 發表于 2019-12-28 18:04
原理圖放在單位了,過幾天上班的再發

樓主 照你的程序和電路仿制不成功,數碼管只顯示兩個橫杠,按鍵沒有反應
回復

使用道具 舉報

ID:194946 發表于 2020-11-2 02:28 | 顯示全部樓層
wl020807 發表于 2020-10-28 13:47
樓主 照你的程序和電路仿制不成功,數碼管只顯示兩個橫杠,按鍵沒有反應

15W401AS點焊機

15W401AS點焊機.zip

924.96 KB, 下載次數: 156, 下載積分: 黑幣 -5

回復

使用道具 舉報

ID:353831 發表于 2020-11-9 20:15 | 顯示全部樓層

樓主你好:STC15W401下載程序晶振設置多少 MHZ ?
回復

使用道具 舉報

ID:353831 發表于 2020-11-9 20:22 | 顯示全部樓層

樓主 控制電路圖中的8腳芯片是什么芯片?
回復

使用道具 舉報

ID:491340 發表于 2020-11-10 10:50 | 顯示全部樓層
厲害了 不錯在電池側面外皮上直接點焊太瘋狂了
回復

使用道具 舉報

ID:194946 發表于 2020-11-14 02:12 | 顯示全部樓層
wl020807 發表于 2020-11-9 20:15
樓主你好:STC15W401下載程序晶振設置多少 MHZ ?

12MHZ
回復

使用道具 舉報

ID:194946 發表于 2020-11-14 02:12 | 顯示全部樓層
wl020807 發表于 2020-11-9 20:22
樓主 控制電路圖中的8腳芯片是什么芯片?

TLP250
回復

使用道具 舉報

ID:194946 發表于 2020-11-14 02:24 | 顯示全部樓層
wl020807 發表于 2020-11-9 20:15
樓主你好:STC15W401下載程序晶振設置多少 MHZ ?

12MHZ. 也可以p1.4接三極管驅動用在微波爐變壓器上,這個時候就要用開關觸發p1.7按住幾秒。
回復

使用道具 舉報

ID:721185 發表于 2020-12-14 20:40 | 顯示全部樓層
樓主你好我想問一下你這個開機默認的40是是輸出脈沖多少時間。
回復

使用道具 舉報

ID:689120 發表于 2021-10-22 15:50 | 顯示全部樓層
很好,論壇有你更精彩,謝謝樓主分享!
回復

使用道具 舉報

ID:974131 發表于 2021-10-22 19:33 | 顯示全部樓層
論壇有你更精彩,謝謝樓主分享!
回復

使用道具 舉報

ID:430492 發表于 2022-3-21 08:42 | 顯示全部樓層
在電池側面外皮上直接點焊太瘋狂了
回復

使用道具 舉報

ID:430492 發表于 2022-3-24 13:04 | 顯示全部樓層
看樓主程序,不是有3個數碼管嗎?咋只驅動兩個管子呢?其實可以將第一位用起來,用于提示當前設置項,比如:脈沖寬度設置,和脈沖間隔時間等信息。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文字幕久久 | 国产精品久久久久久久久久久久 | 亚洲最色视频 | 久久久久久国产精品免费免费狐狸 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 一级高清 | 亚洲一区中文字幕在线观看 | 欧美亚洲一区二区三区 | 国产精品永久在线观看 | 久久精品国产亚洲 | 国产亚洲精品美女久久久久久久久久 | av国产精品毛片一区二区小说 | 欧美日韩一 | 九九九国产| 九九热精品在线视频 | 国产精品免费看 | 久久久久久av| 久久久久久久电影 | 久久99国产精品久久99果冻传媒 | 亚洲欧美一区二区三区在线 | 亚洲小视频| 成人亚洲综合 | 国产在线视频三区 | 久久国产香蕉 | 成人av观看 | 久久亚洲一区二区三区四区 | 国产在线观看网站 | 午夜视频免费在线观看 | 亚洲久草视频 | 国产精品久久久久久久久久尿 | 日韩精品一区二区三区在线观看 | 国产日韩一区二区三区 | 亚洲精品自在在线观看 | 国产在线a | 亚洲69p| 九九热最新地址 | 天天干天天色 | 一级免费a| 国产精品欧美精品 | 久久精品成人热国产成 | 亚洲三区在线播放 |