以单片机为核心的线切割高频电源设计

2017-12-25 01:11陈莉
电动工具 2017年6期
关键词:功率管控制程序数码管

陈莉

( 威海市技术学院,山东 威海 264210 )

以单片机为核心的线切割高频电源设计

陈莉

( 威海市技术学院,山东 威海 264210 )

采用STC89C52RC单片机对传统的线切割机床高频电源进行设计改造,并加以控制,改进后的电路简单,控制灵活、操作方便,加工速度获得较大幅度提升。

线切割;脉冲信号;功能参数;动态显示;光耦;C语言

0 引言

传统线切割机床的高频电源信号,通常来源于由NE555组成的振荡电路,或来源于单片机,某些线切割高频电源信号更是采用两片单片机。本文探讨的电路以STC89C52RC产生高频电源,并加以控制,促使电路简单,控制灵活方便,加工速度较大幅度提升。

1 原理分析

本文所述线切割高频电源的单片机控制电路原理如图1所示。

1.1 控制信号产生电路

在单片机控制程序控制下产生的脉冲信号,由单片机P1.4、P1.5、P1.6输出。输出功率的大小由P1.4、P1.5、P1.6输出情况和其脉冲宽度控制。在输出功率较小时,P1.4端有脉冲输出,P1.5、P1.6端无脉冲输出,仅有1枚对应的功率输出管工作;要求输出功率增大,P1.5端有脉冲信号输出对应控制2枚功率管工作;功率持续加大,则P1.6端输出控制信号,对应控制3枚功率管工作。即:P1.4输出,1枚功率管工作,P1.4、P1.5输出,3枚功率管工作,P1.4、P1.5、P1.6同时输出信号,则6枚功率管全部工作。

1.2 功能参数显示电路

参数显示电路由5枚LED数码管组成,分别由单片机的P0口P2口输出控制LED数码管的段码信号和位码信号。

参数显示电路显示,第一位显示功率管的电源电压,第二位和第三位用以显示输出脉冲宽度,第四位显示脉间的时间长短,第五位显示动率输出管工作数量。电源电压高低由电压选择开关选定;脉冲的宽度为九个等级,可通过选择开关选定。脉间同样具有九个等级,由脉间选择开关选定。上述四个参数的初始值由系统自动设定为常用值。需改变时,操作者可通过相应的选择开关自行设定。

1.3 驱动电路

驱动电路由三块TLP250光耦合集成电路组成,TLP250的⑤脚接地,⑧脚接12 V电源。当TLP250光耦的③脚存在低电平脉冲信号时,其⑥、⑦脚输出高电平脉冲,直接驱动功率场效应管IRFP450的栅极。其中IC2(TLP250)的输出(⑥、⑦脚)控制VT1的栅极, IC3(TLP250)的输出同时控制VT2和VT3的栅极,IC4(TLP250)的输出同时控制VT4、VT5和VT6的栅极。由单片机P1.4、P1.5、P1.6端子输出脉冲信号,分别加载至三块TLP250光耦的③脚。

1.4 功率输出电路

由VT1~VT6功率场效应管组成功率输出电路,由单片机的P1.4、P1.5、P1.6端输出的脉冲信号,通过光耦IC2、IC3、IC4驱动功率场效应管,以控制相应的功率管工作。

图1 线切割高频电源的单片机控制电路原理

2 程序分析

单片机程序采用C语言编程。

001 #include

002 unsigned char display_code[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,

003 0x6f,0x77,0x38,0x76,0x5e,0x79,0x71};

004 unsigned char gong_neng[9]={0,11,40,0 x00,6,0,0x00,0,3};

005 unsigned char i=1;

006 unsigned char guan_shu;

007 unsigned int data nai_kuan;

008 void disptim()

009 {unsigned char k;

010 for (k=0;k<100;k++){;}

011 }

012 void display1 ()

013 { p0=display_code [gong_neng[1]];

014 p2=0x01;

015 disptim();disptim();

016 p0=display_code [gong_neng[2]/10];

017 p2=0x02;

018 disptim();disptim();

019 p0=display_code [gong_neng[2]%10];

020 p2=0x04;

021 disptim();disptim();

022 p0=display_code [gong_neng[4]];

023 p2=0x08;

024 disptim();disptim();

025 p0=display_code [gong_neng[8]];

026 p2=0x10;

027 disptim();disptim();

028 }

029 void gongneng ()

030 { unsigned char gongnengs;

031 gongnengs=p1;

032 gongnengs=~ gongnengs;

033 gongnengs&=0x0f;

034 if(gongnengs!=0x00)

035 { disptim();

036 p1=0xff;

037 gongnengs=p1;

038 gongnengs=~ gongnengs;

039 gongnengs&=0x0f;

040 if(gongnengs!=0x00)

041 while(p1==0xff);

042 switch(gongnengs)

043 { case 1: { gong_neng[1]= gong_neng[1]

+1;

if(gong_neng[1]>12) gong_

neng[1]=11;}; break;

044 case 2: { gong_neng[2]= gong_neng[2]

+10;

if(gong_neng[2]>90) gong_

neng[2]=10;}; break;

045 case 4: { gong_neng[4]= gong_neng[4]

+1;

if(gong_neng[4]>9) gong_

neng[4]=1;}; break;

046 case 8: { gong_neng[8]= gong_neng[8]

+1;

if(gong_neng[8]>6) gong_

neng[8]=1;}; break;

047 }

048 }

049 mai_kuan=gong_neng[2];

050 switch(gong_neng[8])

051 { case 1:{casn_shu=0xef;}; break;

052 case 2:{casn_shu=0xdf;}; break;

053 case 3:{casn_shu=0xbf;}; break;

054 case 4:{casn_shu=0xaf;}; break;

055 case 5:{casn_shu=0x9f;}; break;

056 case 6:{casn_shu=0x8f;}; break;

057 }

058 }

059 void main ()

060 { TMOD =0x15;

061 TH1=(65536-10*221184/120000)/256;

062 TL1=(65536-10*221184/120000)%256;

063 ET1=1; EA=1; TR1=1;

064 while(1)

065 {gongneng (); display1();

066 }}

067 void time1() interrupt 3

068 { switch(i)

069 {case 1: { i=1; p1=guan_shu;

070 switch(gong_neng[2]/10)

071 { case 1:{ TH1=(65536-3*221184/

120000)/256;

072

TL1=(65536-3*221184/

120000)%256;}; break;

073 case 2:{ TH1=(65536-10*221184/

120000)/256;

074

TL1=(65536-10*221184/

120000)%256;}; break;

075 case 3:{ TH1=(65536-25*221184/

120000)/256;

076

TL1=(65536-25*221184/

120000)%256;}; break;

077 case 4:{ TH1=(65536-30*221184/

120000)/256;

078

TL1=(65536-30*221184/

120000)%256;}; break;

079 case 5:{ TH1=(65536-48*221184/

120000)/256;

080

TL1=(65536-48*221184/

120000)%256;}; break;

081 case 6:{ TH1=(65536-65*221184/

120000)/256;

082

TL1=(65536-65*221184/

120000)%256;}; break;

083 case 7:{ TH1=(65536-80*221184/

120000)/256;

084

TL1=(65536-80*221184/

120000)%256;}; break;

085 case 8:{ TH1=(65536-95*221184/

120000)/256;

086

TL1=(65536-95*221184/

120000)%256;}; break;

087 case 9:{ TH1=(65536-110*221184/

120000)/256;

088

TL1=(65536-110*221184/

120000)%256;}; break;

089 } }; break;

090 case 2: { i=1; p1=0xff;

091 switch(gong_neng[4])

092 { case 1:{ TH1=(65536-150*221184/

120000)/256;

093

TL1=(65536-150*221184/

120000)%256;}; break;

094 case 2:{ TH1=(65536-160*221184/

120000)/256;

095

TL1=(65536-160*221184/

120000)%256;}; break;

096 case 3:{ TH1=(65536-170*221184/

120000)/256;

097

TL1=(65536-170*221184/

120000)%256;}; break;

098 case 4:{ TH1=(65536-180*221184/

120000)/256;

099

TL1=(65536-180*221184/

120000)%256;}; break;

100 case 5:{ TH1=(65536-200*221184/

120000)/256;

101

TL1=(65536-200*221184/

120000)%256;}; break;

102 case 6:{ TH1=(65536-230*221184/

120000)/256;

103

TL1=(65536-230*221184/

120000)%256;}; break;

104 case 7:{ TH1=(65536-250*221184/

120000)/256;

105

TL1=(65536-250*221184/

120000)%256;}; break;

106 case 8:{ TH1=(65536-270*221184/

120000)/256;

107

TL1=(65536-270*221184/

120000)%256;}; break;

108 case 9:{ TH1=(65536-290*221184/

120000)/256;

109

TL1=(65536-290*221184/

120000)%256;}; break;

110 } }; break;

111 } }

程序中,001为头文件。002为七段数码管功能参数显示的段码代码。004为功能参数初始值。012~028为功能参数的显示控制程序。P0口设置为七段数码管段码输出端口,P2口设置为五个数码管的位码输出端口。

013~015为五位数码管的第一位显示控制程序,016~018为五位数码管的第二位显示控制程序,019~021为五位数码管的第三位显示控制程序,022~024为五位数码管的第四位显示控制程序,025~027为五位数码管的第五位显示控制程序。

029~058为功能控制程序。其中,031~048为功能选择按钮的参数读入程序,051为控制P1.4端子输出脉冲信号,以控制一枚功率管VT1工作。052为控制P1.5端子输出脉冲信号,以控制两枚功率管VT2、VT3工作。053为控制P1.6端子输出脉冲信号,以控制功率管VT4、VT5、VT6工作。054为控制P1.4、P1.6端子同时输出脉冲信号,以控制四枚功率管同时工作。055为控制P1.5、P1.6端子同时输出脉冲信号,以控制五枚功率管同时工作。056为控制P1.4、P1.5、P1.6三个端子同时输出脉冲信号,以控制六枚功率管同时工作,此时输出功率最大,切割速度最快。

059~066为主程序。其中,060~063为定义定时器1的功能及模式。065为调用功能按钮扫描程序和功能显示程序。

069为向P1端口相应端子(P1.4、P1.5、P1.6),输出脉冲信号。070~089为根据脉冲宽度要求不同,确定输出脉冲相应的宽度。090为P1端口输出高电平(即脉间),091~110为根据脉间要求,以确定输出脉间的时间长短。

3 结语

对传统线切割机床的高频电源采用MCU控制方式改造后,呈现电路简单,故障减少,操作方便的优点,同时促使加工速度得到了大幅提高,经过近一年多时间的运行,工作稳定,效率提高。

[1]刘峰.电力电子技术[M].大连:大连理工大学出版社,2009.

[2]朱永金.单片机应用技术(C语言)[M].北京:中国劳动社会保障出版社,2009.

Design of High Frequency Power Supply for Wire Cutting with MCU as the Core

Chen Li
( Weihai Technical College, Weihai 264210, Shandong )

The design and transformation of the high frequency power supply of the traditional WEDM is carried out by using STC89C52RC single chip microcomputer while controlling is performed. The improved circuit is simple, flexible and easy to operate, which leads to the great improvement of the processing speed.

Wire cutting; Pulse signal; Functional parameters; Dynamic display; Optocoupler; C language

TM 341

A

1674-2796(2017)06-0021-04

2017-08-07

陈莉(1973—)女,大学本科,讲师,主要从事机电一体化、电工电子技术专业的理论与实训教学工作。

猜你喜欢
功率管控制程序数码管
基于GaN HEMT的L波段600W内匹配功率管设计
基于GaN HEMT的S波段小型化内匹配功率管设计
微课教学设计之“数码管动态显示”
基于PLC的变电站备用电源自动投入装置控制程序的研究
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
重型车辆协同式自适应巡航控制系统的车际通信控制程序和信息交互
交流调速控制器MOSFET 功率管选型与发热分析
L波段大功率放大组件的设计