数码之家

 找回密码
 立即注册
搜索
查看: 3203|回复: 17

[C51] 用STC15F104W做电容点焊机控制板电路图,画了一部分,请高手补上

[复制链接]
发表于 2021-11-5 07:45:18 | 显示全部楼层 |阅读模式
用STC15F104W做电容点焊机控制板电路图如下,画了一部分,余下的不会画,请高手补上。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 1家元 +20 收起 理由
家睦 + 20

查看全部打赏

 楼主| 发表于 2021-11-5 07:52:52 | 显示全部楼层
  //5.4V  1500F   电容点焊机程序
      //8脚 STC15F104W  3档调时间(20ms,50ms,100ms)试验证明5ms及以上继电器才正常工作,场效应管的未试验。2021.11.5

      //要求:用加速,减速,停这3个遥控器手柄里的按键来控制每次的点焊时间(硬件用场效应管或者用汽车150A的继电器作开关来控制通断)
                                                        
         #include<reg52.h>   //代入头文件//

         #include <intrins.h>  // 用空操作  _nop_   时要加这句//


     #define ulong unsigned long //宏定义变量类型    0----4294967295/

         #define uint unsigned int //宏定义变量类型    0----65535/

         #define uchar unsigned char//        宏定义变量类型          0-255/

         uchar jlu;  //几率-----------------=======

   

         uint t00,b00,t01,b01;  //X0输入滤波变量
                                                  
     uint t10,b10,t11,b11;  //X1输入滤波变量

     uint t20,b20,t21,b21;  //X2输入滤波变量

      uint b1,b2,b3,k1,k2,k3,t1,t2,t3;  //标志量
         
     

    uint lbcs=5;            //0--65535,输入滤波常数,可以为5到10毫秒,长按用300到700毫秒,一改全改。


sfr P3M1=0xB1;  //A//

sfr P3M0=0xB2;  //B//P3口特殊寄存器声明   sfr P3M1=0xb1; sfr P3M0=0xb2; B可用小写b吗?

  //  P3M1=0x0;  //C//
   // P3M0=0x4;  // D//   3.2脚为推挽输出,其他是准双向口,这两句放在主程序里
                 //    如果全是准双向口,上面ABCD4句可以不要
     
    sbit X0=P3^3;   //减速 D0 // 3个输入   
    sbit X1=P3^4;   //停   D1   
   sbit X2=P3^5; //加速    D2
                    
                 
     

      
    sbit Y0=P3^2;      //1个输出   
   




void  main( )//主程序
{
       TMOD=0x01; //  TMOD=0x11;//设置定时器0为工作方式1//  
            TH0=(65536-1000)/256;  //12MHZ,1MS一次中断,商//
            TL0=(65536-1000)%256;  //低四位装数=余数//
                              
        EA=1;       //开总中断//

            ET0=1;      //开定时器0中断

                TR0=1;//启动定时器0//397//
                                                             // X0=1;//把P3.3 复位脚 RST OUT-LOW 设置为高电平==========????????????????????????
        Y0=0;//出0,停止

    P3M1=0x0;// 高8位为0000 0000
    P3M0=0x4;  //低8位为0000 0100   3.2脚为推挽输出,7脚串联1K电阻到地,有4毫安电流。其他是准双向口串联1K电阻到地只有13微安 ( 写成 P3M1=0x00;  P3M0=0x40;不行,已经验证了)。




  while(1)//大循环
{

                        jlu=0;//几率------

                                //以下是你的编程区=========================================                               
                          
                          


                      //以下你不要编程=========================================

                   while(jlu<1)          //几率-------
                       
                          {_nop_();  _nop_();         _nop_(); }
                                    
                                               
                }

}



                                          

void exter0() interrupt 1         //定时器0的中断程序//定时器1的中断程序 void exter1() interrupt 3//
{           
        TH0=(65536-1000)/256;         //重装数12MHz 1000=1ms,如果不重装,默认数是65536,不是想要的10000//
        TL0=(65536-1000)%256;
                
                 
             //X0滤波
                if(X0==0) {t00++;t01=0;}
                if(t00==lbcs){b00=1;b01=0; }        //b00=1,就是按下
                if(b00==1) t00=0;

                if(X0==1) {t01++;t00=0;}
                if(t01==lbcs){b01=1;b00=0; }  //b01=1,就是松手
                if(b01==1) t01=0;

        //X1滤波
                if(X1==0) {t10++;t11=0;}
                if(t10==lbcs){b10=1;b11=0; }        //b10=1,就是按下
                if(b10==1) t10=0;

                if(X1==1) {t11++;t10=0;}
                if(t11==lbcs){b11=1;b10=0; }  //b11=1,就是松手
                if(b11==1) t11=0;   
               
               
                 //X2滤波
                if(X2==0) {t20++;t21=0;}
                if(t20==lbcs){b20=1;b21=0; }        //b20=1,就是按下
                if(b20==1) t20=0;

                if(X2==1) {t21++;t20=0;}
                if(t21==lbcs){b21=1;b20=0; }  //b21=1,就是松手
                if(b21==1) t21=0;  
               
       
        

        

        //以下是你的编程区=======================================

     if(b00==1){b1=1;k1=0;}

     if(b1==1){   if(b01==1)
                  {
                    b1=0;
                    k1=1;


                  }
               
              }

      if(k1==1){  t1++;
                   if(t1==1000)  Y0=1;
                    if(t1==1020) {Y0=0;
                                   t1=0;
                                    k1=0;
                                  }     //k1=0;
  
                  
                }
                                       //X0  P3.3减速     20ms




     if(b20==1){b2=1;k1=0;}

     if(b2==1){   if(b21==1)
                  {
                    b2=0;
                    k2=1;


                  }
               
              }

    if(k2==1){  t2++;
                   if(t2==1000)  Y0=1;
                    if(t2==1050) {Y0=0;
                                   t2=0;
                                    k2=0;
                                  }     //k2=0;
  
                  
                }
                                       //X2  P3.5加速  50ms






         if(b10==1){b3=1;k3=0;}

     if(b3==1){   if(b11==1)
                  {
                    b3=0;
                    k3=1;


                  }
               
              }

    if(k3==1){  t3++;
                   if(t3==1000)  Y0=1;
                    if(t3==1100) {Y0=0;
                                   t3=0;
                                    k3=0;
                                  }     //k3=0;
  
                  
                }
                                       //X1  P3.4  停键  100ms


回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-5 07:56:00 | 显示全部楼层
写了程序,但没有场效应管的电路,未能验证。请高手补全上面的电路。
回复 支持 反对

使用道具 举报

发表于 2021-11-5 09:45:03 | 显示全部楼层
林华信 发表于 2021-11-5 07:56
写了程序,但没有场效应管的电路,未能验证。请高手补全上面的电路。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2021-11-5 09:46:11 | 显示全部楼层
本帖最后由 banguangan 于 2021-11-5 10:04 编辑

直接P3.2输出,不需要pc817,对法拉电容点焊机来说,焊接时间20ms是最大值,20ms焊不上,再增加时间也没用,反而会让炸管的风险增加,100ms肯定会烧焊针。
回复 支持 反对

使用道具 举报

发表于 2021-11-5 09:49:25 | 显示全部楼层
搞个数码管显示一下啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-5 10:37:50 来自手机浏览器 | 显示全部楼层
banguangan 发表于 2021-11-5 09:46
直接P3.2输出,不需要pc817,对法拉电容点焊机来说,焊接时间20ms是最大值,20ms焊不上,再增加时间也没用, ...

用你的电路试试,正等电容呢,还未收到货。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-5 10:41:50 来自手机浏览器 | 显示全部楼层
banguangan 发表于 2021-11-5 09:45

用这个图推动10个场管,我要改一下3.2口的输出电平极性
回复 支持 反对

使用道具 举报

发表于 2021-11-5 10:42:21 | 显示全部楼层
不懂这个东西,电池是5v的,为什么还要升压再用78L05降压?直接用电池5v不行么?mos管要用12v电路控制?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-5 10:43:04 来自手机浏览器 | 显示全部楼层
banguangan 发表于 2021-11-5 09:45

要改成待机时出高平,工作时出低平。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-5 10:53:11 来自手机浏览器 | 显示全部楼层
xiaoyao_mdj 发表于 2021-11-5 10:42
不懂这个东西,电池是5v的,为什么还要升压再用78L05降压?直接用电池5v不行么?mos管要用12v电路控制? ...

点焊瞬间大电容的电压会下降,给场管的推动就不足,场管导通电阻会变大,承受的功率就变大,就会炸管。用升压为12伏的电源供电,会使任何时候都有足够的推动力,不会炸管。
回复 支持 反对

使用道具 举报

发表于 2021-11-6 00:40:57 来自手机浏览器 | 显示全部楼层
程序参考了,你可以看下开心果的电路。另外你可以先升5V,再控制电路再升12V即可。否则就是浪费了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-6 07:28:53 来自手机浏览器 | 显示全部楼层
banguangan 发表于 2021-11-5 09:45

电容收到,在充电

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2021-11-6 09:53:57 | 显示全部楼层
会画图就不错,有几分图不会,空等高用手。
回复 支持 反对

使用道具 举报

发表于 2021-11-10 23:21:52 来自手机浏览器 | 显示全部楼层
法拉电容充电用恒流模块就行,直接拉12v充,充到5v手动断开,充得也快。要是人不在旁边,那用充电宝充。我做点焊机今晚刚第一次焊好,失败了。烧了好几个芯片
回复 支持 反对

使用道具 举报

发表于 2021-11-23 09:54:08 | 显示全部楼层
可以,大手笔啊
回复 支持 反对

使用道具 举报

发表于 2021-11-23 16:03:38 来自手机浏览器 | 显示全部楼层
banguangan 发表于 2021-11-5 09:45

大佬,R9和D1有啥用啊,三个8050也没看懂,1个推不动吗?
回复 支持 反对

使用道具 举报

发表于 2021-11-23 17:03:06 | 显示全部楼层
qq38113715 发表于 2021-11-23 16:03
大佬,R9和D1有啥用啊,三个8050也没看懂,1个推不动吗?

图腾柱的标准电路,R9消震,D1加快关断速度,在点焊机上可以不用。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-26 17:03 , Processed in 0.234001 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表