基于PICF单片机的CM型高速贴片机控制系统改造设计与实现.docx
- 文档编号:10520167
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:13
- 大小:70.68KB
基于PICF单片机的CM型高速贴片机控制系统改造设计与实现.docx
《基于PICF单片机的CM型高速贴片机控制系统改造设计与实现.docx》由会员分享,可在线阅读,更多相关《基于PICF单片机的CM型高速贴片机控制系统改造设计与实现.docx(13页珍藏版)》请在冰点文库上搜索。
基于PICF单片机的CM型高速贴片机控制系统改造设计与实现
(2012/4/2611:
28)
引言
随着表面贴装技术(SurfaceMountedTechnology,SMT)的不断优化及贴片元器件制作工艺的迅速发展,贴片机在电子制造业中的应用日益突出。
CM402型高速贴片机是由日本松下公司研发和生产,针对某些特定工件、按特定工序进行批量加工的专用设备。
根据笔者为期两周的现场调查和论证,传统CM402型高速贴片机在拼接料生产过程中,若出现拼接料检知停止时,停机扫料的时间将影响到生产效率。
通过认真分析该设备的工序流程及阅读其用户手册,可将此拼接料检知、停机扫料程序进行技术改造,并在原有电控系统上利用PVS控制系统替代Timer(计时器),可实现接料不停机控制功能,从而可提升其生产效率。
本文以利用PIC16F628单片机构成PVS控制系统为例,从硬件系统设计和软件系统设计入手,给出了印制电路板图、电路原理图及源代码。
硬件系统设计
该PVS控制系统以PIC16F628单片机为核心,由PIC16F628单片机及其外围元器件、电源模块、继电器模块组成,印制电路板和电路原理图如图1、图2所示。
图1印制电路板
图2原理图
PIC16F628单片机及其外围元器件
PIC16F628单片机是由Microchip公司生产的PIC系列8位CMOS闪存单片机之一,该系列单片机采用RISC(ReducedInstructionSetComputer)嵌入式结构,具有执行速度高、功耗低、体积小巧、工作电压低、驱动能力强、品种丰富等优越性能。
其总线结构采取数据总线和指令线分离独立的哈佛(Harvord)结构,具有很高的流水处理速度。
与同类8位单片机相比,程序存储器可节省一半,指令运行速度可以提高4倍左右。
PIC16F628单片机封装形式为DIP-18,配合相应程序,该芯片可实现继电器智能控制功能,即配合其他配套电路可构成PVS控制系统,实现CM402型贴片机接料不停机控制功能。
JP2为报警信号输入端、JP5为PC机并口解锁信号输入端、SB1、SB2为定时时间调节按钮,LED1~LED6构成定时时间显示电路,单只LED亮表示10s,全部亮表示60s。
电源模块
电源模块设计的质量直接关系到PVS控制系统的稳定性。
该控制系统直接利用CM402型贴片机的+24V稳压电源,故采用稳压性能较好的三端稳压集成电路LM7812、LM7805实现两级稳压,为单片机、光电耦合器等元器件提供+5V直流稳压电源。
JP1为24V电源输入端,与CM402贴片机相应插座直接连接。
继电器模块
继电器模块由晶体管驱动电路和固态继电器构成。
其中VT1、VT2选用C9014型晶体管;欧姆龙TQ2-24V型24V继电器。
该模块工作状态由单片机RA4(第3脚)控制,并通过JP3、JP4与CM402型贴片机相应端口相连。
软件系统设计
软件环镜基于MPLABIDEV8.33,编译器HI-TECHC,仿真器ICD2.0烧写PIC16F628芯片实现CM402型贴片机控制系统改造设计功能。
实现程序如下:
#include
__CONFIG(0X1F3C);
#defineulongunsignedlong
#defineuintunsignedint
#defineucharunsignedchar
#defineRD
(1)
#defineWR(1<<1)
#defineWREN(1<<2)
#defineWRERR(1<<3)
#defineFREE(1<<4)
#defineCFGS(1<<6)
#defineEEPGD(1<<7)
#defineSTART_READ_EEPROM()EECON1=EECON1|RD
#defineSTART_WRITE_EEPROM()EECON1=EECON1|WR
#defineENABLE_WRITE_EEPROM()EECON1=EECON1|WREN
#defineDISABLE_WRITE_EEPROM()EECON1=EECON1&(~WREN)
#defineSELECT_EEPROM()EECON1=EECON1&(~(EEPGD|CFGS))
#defineoutRA3
uintjs=1;
ucharKey_Num=0x00,Key_Num1=0x00;//本次键码
ucharKey_Backup=0x00,Key_Backup1=0x00;//备份键码
ucharkey,temp,key1,temp1;
bitKey_Dis_F=0,Key_Dis_F1=0,OFF_ON=0;
ucharES=1,ES_DATA=1;
bita;
ulongz=1;
ucharES_BC_DATA;
voidms(uintb);
voidkeyscan(void);
charreadByte(charaddr);
voidwriteByte(charaddr,chardata);
voidX_Y_IN(void);
voidmain()
{TRISB2=0;
TRISB3=0;
TRISB4=0;
TRISB5=0;
TRISA6=0;
TRISA7=0;
RB2=1;
RB3=1;
RB4=1;
RB5=1;
RA6=1;
RA7=1;
TRISB0=1;
TRISB1=1;
RB0=1;
RB1=1;
TRISB6=1;
TRISB7=1;
RB7=1;
RB6=1;
GIE=1;
PEIE=1;
T1CON=0X01;
TMR1IE=1;
TMR1IF=0;
TMR1L=0XEF;
TMR1H=0XD8;
CM0=1;
CM1=0;
CM2=1;
C2OUT=0;
C2INV=1;
TRISA4=0;
RA4=1;
TRISA3=0;
RA3=1;
a=out=1;
ES_BC_DATA=readByte(0x00);
ES_DATA=ES=ES_BC_DATA;
while
(1)
{asm("clrwdt");//清看门狗
keyscan();
X_Y_IN();
if((C2OUT==1)&(OFF_ON==1)&(a==0))
{ms(4);
if((C2OUT==1)&(OFF_ON==1)&(a==0))
{C2OUT=0;
ES_DATA=ES_BC_DATA;
OFF_ON=0;
a=out=1;
z=1;
}
}
switch(ES)
{case1:
RB2=1;
RB3=1;
RB4=1;
RB5=1;
RA6=1;
RA7=0;
break;
case2:
RB2=1;
RB3=1;
RB4=1;
RB5=1;
RA6=0;
RA7=0;
break;
case3:
RB2=1;
RB3=1;
RB4=1;
RB5=0;
RA6=0;
RA7=0;
break;
case4:
RB2=1;
RB3=1;
RB4=0;
RB5=0;
RA6=0;
RA7=0;
break;
case5:
RB2=1;
RB3=0;
RB4=0;
RB5=0;
RA6=0;
RA7=0;
break;
case6:
RB2=0;
RB3=0;
RB4=0;
RB5=0;
RA6=0;
RA7=0;
break;
}
}
}
voidms(uintb)
{ucharc;
while(b--)
for(c=123;c>0;c--);
}
voidinterrupttmr1(void)
{if(TMR1IF==1)
{TMR1IF=0;
TMR1L=0XEF;
TMR1H=0XD8;
js++;
if(js==1000)
{js=1;
if(OFF_ON==1)
{if(ES_DATA!
=0);
{ES_DATA--;
if(ES_DATA==0)
{a=out=0;
}
}
}
}
}
}
voidX_Y_IN(void)
{if((RB0==0)&(RB1==0))
{ms
(2);
if((RB0==0)&(RB1==0)&((z++)==500))
{temp1=1;
}
}
else
{z=1;
temp1=0;
}
Key_Num1=temp1;
if((Key_Num1!
=0x00)&&(Key_Num1==Key_Backup1))
{if(!
Key_Dis_F1)
{Key_Dis_F1=1;
asm("clrwdt");
if((RB0==0)&(RB1==0))
{OFF_ON=1;
}
}
}
else
{Key_Backup1=Key_Num1;
Key_Dis_F1=0;
}
}
voidkeyscan(void)
{if((RB7==0)|(RB6==0))
{ms(10);
if((RB7==0)|(RB6==0))
{temp=1;
}
}
else
{temp=0;
}
Key_Num=temp;
if((Key_Num!
=0x00)&&(Key_Num==Key_Backup))
{if(!
Key_Dis_F)
{Key_Dis_F=1;
asm("clrwdt");
if((RB6==0)&(RB7==1))
{ES--;
if(ES<=1)
{ES=1;
}
if(ES!
=ES_BC_DATA)
{ES_DATA=ES_BC_DATA=ES;
writeByte(0x00,ES_BC_DATA);
writeByte(0x01,out);
writeByte(0x02,RA4);
writeByte(0x03,RB1);
writeByte(0x04,RB0);
writeByte(0x05,z);
}
}
if((RB6==1)&(RB7==0))
{ES++;
if(ES>=6)
{ES=6;
}
if(ES!
=ES_BC_DATA)
{ES_DATA=ES_BC_DATA=ES;
writeByte(0x00,ES_BC_DATA);
}
}
}
}
else
{Key_Backup=Key_Num;
Key_Dis_F=0;
}
}
charreadByte(charaddr)
{chartmpEEPROM;
EEADR=addr;
SELECT_EEPROM();
START_READ_EEPROM();
tmpEEPROM=EEDATA;
returntmpEEPROM;
}
voidwriteByte(charaddr,chardata)
{EEADR=addr;
EEDATA=data;
SELECT_EEPROM();
ENABLE_WRITE_EEPROM();
EECON2=0X55;
EECON2=0Xaa;
START_WRITE_EEPROM();
ENABLE_WRITE_EEPROM();
while(1!
=EEIF);
EEIF=0;
}
结束语
该PVS控制系统以PIC16F628单片机为核心,具有集成度高、性能稳定、抗干扰能力强、性价比高等优点。
该PVS控制系统已制作成品销售,由苏州翔庆精密机械有限公司等单位经过6个月的联机生产验证,证明该设计方案可靠、可行。
利用该PVS控制系统改造CM402型贴片机,预期可提升生产力约4%,具有良好的实用价值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PICF 单片机 CM 高速 贴片机 控制系统 改造 设计 实现