这几天做了个STC89C52RC单片机控制6级电磁加速器,总的来说单片机在调整触发时间上来的容易,但缺点很多,1子弹的位置,长度,重量,线圈的升温,发射的角度等,电压的高低,对出口的初速有着很大的影响,因为单片机只会在到时间触发,而不会知道子弹的在管子里的真实位置所在,只要子弹在管子的位置改变而触发时间不变的话那么后级的触发影响很大,或是做无用功。光电触发可以减少这类现象的发生,到少它要子弹到了这级位置才会触发。好了,不多说了,上参数
级圈:0.5MM*1.5CM
层数:6层
管子:碳纤维管子外9MM内6.5MM
电压:437V
可控硅:70TPS16
子D:直径6MM*1.5CM长
电容:470UF*6
单片机程序:
#include<reg52.h>
unsigned int a;
sbit S=P1^0;
sbit k=P1^1;
sbit O1=P2^0;
sbit O2=P2^1;
sbit O3=P2^2;
sbit O4=P2^3;
sbit O5=P2^4;
sbit O6=P2^5;
sbit O7=P2^6;
sbit O8=P2^7;
sbit O9=P0^7;
sbit F=P0^6;
void delay20ms(void)
{
unsigned char i,j;
for(i=0;i<100;i++)
for(j=0;j<100;j++)
}
void main()
{
while(1)
{
P0=0x00;
P2=0x00;
a=50000;
while(a--);
P1=0xff;
P3=0xff;
if(S==0)
{
delay20ms();
if(S==0)
{
k=0;
a=4000;
while(a--);
O1=1;
a=310;
while(a--);
O2=1;
a=210;
while(a--);
O3=1;
a=120;
while(a--);
O4=1;
a=160;
while(a--);
O5=1;
a=110;
while(a--);
O6=1;
a=100;
while(a--);
O7=1;
a=50;
while(a--);
O8=1;
a=20;
while(a--);
O9=1;
a=100;
while(a--);
F=1;
a=500;
while(a--);
}
}
while(S==0)
;
}
}
等有空在上发射视频
[upload=5]
200字以内,仅用于支线交流,主线讨论请采用回复功能。