|
本帖最后由 qq88046220 于 2022-2-6 22:55 編輯
現在不能出門,做個多功能的點焊機+升壓反充+汽車啟動點焊時間根據大家用的單片機自行調試,充電可以自行用ADC檢測開關EN腳也可以根據法拉電容容量改一下時間!仿真演示只寫了一個延時程序!代碼雖然有點亂,學習過程中至少實現了所需要的功能!自己過年學習了51黑論壇的各種帖子純手工碼的!
S1升壓充電鍵,EN升壓模塊開關。
點焊機 反充啟動器.zip
(50.15 KB, 下載次數: 14)
2022-2-6 22:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
S2放電并開啟OUT,
S3沒用NC,
S4脈沖時間調整,
S5點焊觸發。
對于LED可以用P0=0xff;表示,代碼會更短,只是那樣跟我一樣的小白可能就看不懂了!
2345截圖20220206222922.png (54.49 KB, 下載次數: 61)
下載附件
2022-2-6 22:38 上傳
51hei圖片_20220120201505.jpg (2.09 MB, 下載次數: 75)
下載附件
PCB
2022-1-20 20:22 上傳
單片機功能演示程序如下:
#include<reg52.h>
#include <intrins.h>
sbit S1=P3^7;
sbit S2=P3^6;
sbit S3=P3^5;
sbit S4=P3^4;
sbit S5=P1^7;
sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit LED5=P0^4;
sbit LED6=P0^5;
sbit LED7=P0^6;
sbit OUT=P1^5;
sbit EN=P1^6;
unsigned char XX;
unsigned int OO=0;
void dianhan();
void delay(xms)
{
unsigned char i,j;
while(xms--)
{
i=12;j=169;
do
{
while(--j);
}while(--i);
}
}
void dianhan()//S4選擇脈沖時間
{
if(S4==0)
{
delay(10);
if(S4==0)
LED6=0;
{
OO++;
if(OO==8)
OO=0;
}
while(!S4);
}
if(OO==0)
{
XX=0;LED1=1;LED2=1;LED3=1;LED4=1;
}
if(OO==1)
{
XX=1;LED1=1;LED2=1;LED3=1;LED4=0;
}
if(OO==2)
{
XX=2;LED1=1;LED2=1;LED3=0;LED4=1;
}
if(OO==3)
{
XX=5;LED1=1;LED2=0;LED3=1;LED4=1;
}
if(OO==4)
{
XX=10;LED1=0;LED2=1;LED3=1;LED4=1;
}
if(OO==5)
{
XX=20;LED1=0;LED2=1;LED3=1;LED4=0;
}
if(OO==6)
{
XX=30;LED1=0;LED2=1;LED3=0;LED4=0;
}
if(OO==7)
{
XX=50;LED1=0;LED2=0;LED3=0;LED4=0;
}
}
void main(void)
{
while(1)
{
dianhan();//PUL
if(S1==0) //S1充電
{
delay(10);
if(S1==0)
{
EN=0;LED7=0;LED6=1;
LED1=0;LED2=1;LED3=1;LED4=1;delay(500)EN=1;LED7=1;
}
}
if(S2==0)//S2放電
{
delay(10);
if(S2==0)
{
OUT=0;LED5=0;LED6=1;
LED1=0;LED2=0;LED3=0;LED4=0;delay(500);OUT=1;LED5=1;
}
}
if(S5==0)//點焊觸發
{
delay(1);
if(S5==1)
{
OUT=0;delay(1*XX);OUT=1;delay(10);//雙脈沖輸出
OUT=0;delay(1*XX);OUT=1;
}
}
}
}
|
|