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

標題: 利用15w401單片機制作雙脈沖點焊機 附源程序 [打印本頁]

作者: yfxzhl    時間: 2019-12-22 18:31
標題: 利用15w401單片機制作雙脈沖點焊機 附源程序
    本人是單片機小白,來學習的新人,還望大家多多照顧噢
  前段時間去大姐夫家玩,發現大姐夫有很多lsuc這種超級電容,非常適合做儲能式點焊機,而且現在點焊18650等電池也越來越多,于是便親自操刀做一個玩玩!
   設計三層電路板,模塊化設計,最底層是固定超級電容的均衡電路板,中間層是mos管矩陣電路板,最上邊是單片機控制電路板
下圖是用TL431做的均衡充電板,LSUC超級電容耐壓2.8v容量3000F,均衡起控電壓2.78v 均衡電流800mA 熱轉印pc為了降低內阻特意買了銅排進行關鍵部位連均衡和mos矩陣板放在一起試一下 打孔加工 安裝上一個,感覺很漂亮啊 裝好的mos管矩陣電路板 組裝在一起看下效果,感覺還是很漂亮的 接下來進入正題,進行時間控制板的程序設計和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 第一次使用綠油技術 接下來下載程序,調試一下 至此大功告成 測試一下點焊效果 用力 焊的還是很牢固
  感謝大家觀看!


作者: oohoh    時間: 2019-12-23 00:20
牛啊!有原理圖嗎
作者: m182892    時間: 2019-12-23 08:19
把原理圖放上來,手畫一個也行
作者: a838899    時間: 2019-12-24 17:56
還用升壓嗎?怎么充電呢?
作者: wl020807    時間: 2019-12-26 17:51
樓主發一個原理圖
作者: yfxzhl    時間: 2019-12-28 18:03
a838899 發表于 2019-12-24 17:56
還用升壓嗎?怎么充電呢?

不用升壓,用直流穩壓電源充電
作者: yfxzhl    時間: 2019-12-28 18:04
wl020807 發表于 2019-12-26 17:51
樓主發一個原理圖

原理圖放在單位了,過幾天上班的再發
作者: gpckwbg    時間: 2019-12-31 23:06
yfxzhl 發表于 2019-12-28 18:04
原理圖放在單位了,過幾天上班的再發

樓主不是發一個原理圖嗎
作者: gpckwbg    時間: 2019-12-31 23:08
樓主不是發一個原理圖嗎?
作者: gpckwbg    時間: 2019-12-31 23:09
樓主不是發一個原理圖嗎
作者: changhai    時間: 2020-1-16 21:06
樓主電路圖弄丟了?
作者: zhyzsn    時間: 2020-1-29 22:20
有空做一個試試
作者: 鐘志偉    時間: 2020-1-30 02:10
絕世好帖!樓主可以用一個100W左右的環形變壓器拿粗電線在磁環繞兩匝有1伏多左右接個大功率二極管給電容供電,比可調電源猛多了,另外考慮到其它地方市電電壓可能會高變壓器輸出會高,可以用ADC采集電壓,控制可控硅給變壓器調壓,嘻嘻。
作者: wifingtta    時間: 2020-1-30 09:07
樓主,這種PCB板的制作過程是怎樣的?
作者: xjw1991    時間: 2020-3-31 14:45
樓主能不能把原理圖分享一下
作者: gpckwbg    時間: 2020-5-23 01:06
我在別的地方找到了電路圖

作者: zgchen    時間: 2020-5-31 09:11
gpckwbg 發表于 2020-5-23 01:06
我在別的地方找到了電路圖

保護板的電路圖有嗎??
作者: xiaodian88    時間: 2020-5-31 10:51
技術人牛
作者: ablaser    時間: 2020-6-2 09:07
有原理圖嗎
作者: gpckwbg    時間: 2020-6-8 00:28
zgchen 發表于 2020-5-31 09:11
保護板的電路圖有嗎??



作者: gpckwbg    時間: 2020-6-8 00:36
zgchen 發表于 2020-5-31 09:11
保護板的電路圖有嗎??


作者: duhui0664    時間: 2020-7-2 16:32
厲害,pcb可以分享一下兒嗎?
作者: 790546684    時間: 2020-7-2 20:35
pcb可以分享一下兒嗎?
作者: wl020807    時間: 2020-8-11 19:26
樓主,焊筆檢測光耦二極管側接那里?
作者: wl020807    時間: 2020-8-11 19:39
樓主:單片機時鐘設置多兆的?
作者: 273765054qq.ocm    時間: 2020-8-12 16:08
樓主的阻焊綠油怎么涂的,我得老涂不好,怎么涂的那么均勻啊
作者: wl020807    時間: 2020-10-27 20:35
樓主你好,STC15W401AS單片機下載程序晶振設置多少兆?
作者: wl020807    時間: 2020-10-28 13:47
yfxzhl 發表于 2019-12-28 18:04
原理圖放在單位了,過幾天上班的再發

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

15W401AS點焊機

15W401AS點焊機.zip

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


作者: wl020807    時間: 2020-11-9 20:15
gpckwbg 發表于 2020-11-2 02:28
15W401AS點焊機

樓主你好:STC15W401下載程序晶振設置多少 MHZ ?
作者: wl020807    時間: 2020-11-9 20:22
gpckwbg 發表于 2020-11-2 02:28
15W401AS點焊機

樓主 控制電路圖中的8腳芯片是什么芯片?
作者: zyh12398    時間: 2020-11-10 10:50
厲害了 不錯在電池側面外皮上直接點焊太瘋狂了
作者: gpckwbg    時間: 2020-11-14 02:12
wl020807 發表于 2020-11-9 20:15
樓主你好:STC15W401下載程序晶振設置多少 MHZ ?

12MHZ
作者: gpckwbg    時間: 2020-11-14 02:12
wl020807 發表于 2020-11-9 20:22
樓主 控制電路圖中的8腳芯片是什么芯片?

TLP250
作者: gpckwbg    時間: 2020-11-14 02:24
wl020807 發表于 2020-11-9 20:15
樓主你好:STC15W401下載程序晶振設置多少 MHZ ?

12MHZ. 也可以p1.4接三極管驅動用在微波爐變壓器上,這個時候就要用開關觸發p1.7按住幾秒。
作者: xiaomao-江    時間: 2020-12-14 20:40
樓主你好我想問一下你這個開機默認的40是是輸出脈沖多少時間。

作者: 獨行者stc    時間: 2021-10-22 15:50
很好,論壇有你更精彩,謝謝樓主分享!
作者: xywf    時間: 2021-10-22 19:33
論壇有你更精彩,謝謝樓主分享!
作者: cooleaf    時間: 2022-3-21 08:42
在電池側面外皮上直接點焊太瘋狂了
作者: cooleaf    時間: 2022-3-24 13:04
看樓主程序,不是有3個數碼管嗎?咋只驅動兩個管子呢?其實可以將第一位用起來,用于提示當前設置項,比如:脈沖寬度設置,和脈沖間隔時間等信息。
作者: ge52    時間: 2022-6-14 17:03
電路板做的很專業
作者: zilin188    時間: 2022-6-15 08:55
厲害了 不錯在電池側面外皮上直接點焊太瘋狂了
作者: wjq1n    時間: 2022-7-31 04:22
cooleaf 發表于 2022-3-21 08:42
在電池側面外皮上直接點焊太瘋狂了

是啊,有次我這么干直接起火了。現在不敢玩這個了




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 精品免费 | 一区二区小视频 | 99热国产 | 亚洲精品久久久久久久久久久 | 少妇一级淫片免费看 | 国产小视频网站 | 毛片av在线 | 激情av在线 | 国产91页| 国产一区一区 | 婷婷午夜天 | 国产一区二区三区久久 | 伊人9999| 亚洲成人精品在线观看 | 精品婷婷 | 性史性dvd影片农村毛片 | 青青草网址 | 国产a毛片 | 中文一区二区 | 97超碰免费 | 国产在线小视频 | 中文字幕手机在线观看 | 天天色天天爱 | 解开岳的丰满奶罩bd | 日韩高清一区二区 | 国产精品av一区二区 | 精品一区二区三区三区 | 伊人久久综合 | 波多野吉衣一二三区乱码 | 美国一级大黄一片免费中文 | 国产精品日韩精品 | 精品影院| 狠狠干美女| 日本免费视频 | 国产寡妇亲子伦一区二区三区四区 | 亚洲激情久久 | 成人免费看片视频 | av一区二区三区四区 | 国产综合亚洲精品一区二 | 欧美成人午夜 | 久久日av|