基于单片机的高速贴片机控制系统改造设计bob综

2022-05-16 07:29 胡八一

介绍

本文引用地址:http://www.eepw.com.cn/article/171570.htm

随着表面贴装技术(SMT)的不断优化和SMD元器件制造技术的快速发展,SMD在电子制造业中的应用日益突出。CM402高速贴片机是日本松下公司开发生产的,是按照特定工艺对某些特定工件进行批量加工的专用设备。根据笔者两周的现场调研和论证,在拼接料生产过程中,传统的CM402高速贴片机,如果拼接料检测停止,停机时间和扫料时间都会影响生产效率。通过认真分析设备的工艺流程,阅读其用户手册,对拼接料检测、停车、扫料程序进行技术改造,用PVS控制系统代替原电控系统上的定时器,实现不停车接料的控制功能,从而提高其生产效率。

本文以PIC16F628单片机构成的PVS控制系统为例,从硬件系统和软件系统的设计入手,给出了印刷电路板图、电路原理图和源代码。

硬件系统设计

PVS控制系统以PIC16F628单片机为核心,由PIC16F628单片机及其外围器件、电源模块和继电器模块组成。印刷电路板和电路原理图如图1和图2所示。

图1 印制电路板图1印刷电路板

图2 原理图图2示意图

PIC16F628单片机及其外围器件

PIC16F628单片机是Microchip公司生产的PIC系列8位CMOS闪存单片机之一。该系列单片机采用RISC(精简指令集计算机)嵌入式结构,具有执行速度快、功耗低、体积小、工作电压低、驱动能力强、品种丰富等优点。其总线结构采用数据总线和指令线分离独立的Harvord结构,具有较高的流水线处理速度。与同类8位单片机相比,程序内存可节省一半,指令运行速度可提高4倍左右。PIC16F628单片机采用DIP-18封装。配合相应的程序,该芯片可以实现继电器的智能控制功能,即与其他配套电路组成PVS控制系统,实现CM402贴片机的不停机控制功能。JP2为报警信号输入端,JP5为PC并口解锁信号输入端,SB1和SB2为定时时间调节按钮,LED 1 ~ LED 6构成定时时间显示电路。单个LED指示10s,所有LED指示60s。

电源模块

电源模块设计的好坏直接关系到PVS控制系统的稳定性。控制系统直接使用CM402贴片机的+24V稳压电源。因此,采用稳压性能良好的三端稳压集成电路LM7812和LM7805实现两级稳压电源,为单片机、光电耦合器等元器件提供+5V DC稳压电源。JP1为24V电源输入,直接接CM402贴片机对应插座。

继电器模块

继电器模块由晶体管驱动电路和固态继电器组成。VT1和VT2选用C9014晶体管;欧姆龙TQ2-24V继电器。该模块的工作状态由单片机RA4(第3针)控制,通过JP3和JP4与CM402贴片机的相应端口相连。

软件系统设计

软件loop mirror基于MPLAB IDE V8.33,编译器HI-TECH C,模拟器ICD2.0,编写PIC16F628芯片,实现CM402贴片机控制系统的改造设计功能。

实现过程如下:

#包括

_ _ CONFIG(0x 1f3c);

#定义ulong无符号长整型

#定义uint无符号整数

#定义uchar无符号字符

#定义研发(1)

#定义WR (1《1》

#定义鹪鹩(1《2》

#定义WRERR (1《3》)

#定义自由(1《4》)

#定义CFGS (1《6》)

#定义EEPGD (1《7 》)

# define START _ READ _ EEPROM()eecon 1 = eecon 1 | RD

# define START _ WRITE _ EEPROM()eecon 1 = eecon 1 | WR

# define ENABLE _ WRITE _ EEPROM()eecon 1 = eecon 1 | WREN

# define DISABLE _ WRITE _ EEPROM()eecon 1 = eecon 1(~ WREN)

# define SELECT _ EEPROM()eecon 1 = eecon 1(~(eep GD | CFGS))

#定义RA3

uint js = 1;

uchar Key_Num = 0x00,Key _ Num1 = 0x00//这个键码

uchar Key_Backup = 0x00,Key _ Backup1 = 0x00//备份密钥代码

uchar键,temp,key1,temp 1;

位Key_Dis_F = 0,Key_Dis_F1 = 0,OFF _ ON = 0;

uchar ES=1,ES _ DATA = 1;

位a;

ulong z = 1;

uchar ES _ BC _ DATA

void ms(uint b);

void key scan(void);

char readByte(char addr);

void writeByte(char addr,char data);

void X _ Y _ IN(void);

void main()

{ tris B2 = 0;

tris B3 = 0;

tris B4 = 0;

tris b5 = 0;

tris a6 = 0;

trisa 7 = 0;

RB2 = 1;

RB3 = 1;

RB4 = 1;

RB5 = 1;

RA6 = 1;

RA7 = 1;

trisb 0 = 1;

tris B1 = 1;

RB0 = 1;

RB1 = 1;

trisb 6 = 1;

trisb 7 = 1;

RB7 = 1;

RB6 = 1;

GIE = 1;

PEIE = 1;

T1CON = 0X01

TMR1IE = 1

TMR 1 if = 0;

TMR1L = 0XEF

TMR1H = 0XD8

CM0 = 1;

CM1 = 0;

CM2 = 1;

C2 out = 0;

C2INV = 1;

tris a4 = 0;

RA4 = 1;

tris a3 = 0;

RA3 = 1;

a = out = 1;

ES _ BC _ DATA = read byte(0x 00);

ES _ DATA = ES = ES _ BC _ DATA

while(1)

{ ASM(& ldquo;clrwdt & rdquo);//清除看门狗

key scan();

x _ Y _ IN();

if((C2OUT==1)(OFF_ON==1)(a==0))

{ ms(4);

if((C2OUT==1)(OFF_ON==1)(a==0))

{ C2 out = 0;

ES _ DATA = ES _ BC _ DATA

OFF _ ON = 0;

a = out = 1;

z = 1;

}

}

开关

{案例1:

RB2 = 1;

RB3 = 1;

RB4 = 1;

RB5 = 1;

RA6 = 1;

RA7 = 0;

打破;

案例二:

RB2 = 1;

RB3 = 1;

RB4 = 1;

RB5 = 1;

RA6 = 0;

RA7 = 0;

打破;

案例三:

RB2 = 1;

RB3 = 1;

RB4 = 1;

RB5 = 0;

RA6 = 0;

RA7 = 0;

打破;

案例4:

RB2 = 1;

RB3 = 1;

RB4 = 0;

RB5 = 0;

RA6 = 0;

RA7 = 0;

打破;