《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于PIC16F628單片機的CM402型高速貼片機控制系統改造設計與實現
基于PIC16F628單片機的CM402型高速貼片機控制系統改造設計與實現
摘要: 該PVS控制系統以PIC16F628單片機為核心,具有集成度高、性能穩定、抗干擾能力強、性價比高等優點。該PVS控制系統已制作成品銷售,由蘇州翔慶精密機械有限公司等單位經過6個月的聯機生產驗證,證明該設計方案可靠、可行。利用該PVS控制系統改造CM402型貼片機,預期可提升生產力約4%,具有良好的實用價值。
Abstract:
Key words :

引言

隨著表面貼裝技術(Surface Mounted Technology,SMT)的不斷優化及貼片元器件制作工藝的迅速發展,貼片機在電子制造業中的應用日益突出。CM402型高速貼片機是由日本松下公司研發和生產,針對某些特定工件、按特定工序進行批量加工的專用設備。根據筆者為期兩周的現場調查和論證,傳統CM402型高速貼片機在拼接料生產過程中,若出現拼接料檢知停止時,停機掃料的時間將影響到生產效率。通過認真分析該設備的工序流程及閱讀其用戶手冊,可將此拼接料檢知、停機掃料程序進行技術改造,并在原有電控系統上利用PVS控制系統替代Timer(計時器),可實現接料不停機控制功能,從而可提升其生產效率。

本文以利用PIC16F628單片機構成PVS控制系統為例,從硬件系統設計和軟件系統設計入手,給出了印制電路板圖、電路原理圖及源代碼。

硬件系統設計

該PVS控制系統以PIC16F628單片機為核心,由PIC16F628單片機及其外圍元器件、電源模塊、繼電器模塊組成,印制電路板和電路原理圖如圖1、圖2所示。

 

圖1 印制電路板

圖2 原理圖

PIC16F628單片機及其外圍元器件

PIC16F628單片機是由Microchip公司生產的PIC系列8位CMOS閃存單片機之一,該系列單片機采用RISC(Reduced Instruction Set Computer)嵌入式結構,具有執行速度高、功耗低、體積小巧、工作電壓低、驅動能力強、品種豐富等優越性能。其總線結構采取數據總線和指令線分離獨立的哈佛(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型貼片機相應端口相連。

軟件系統設計

軟件環鏡基于MPLAB IDE V8.33,編譯器HI-TECH C,仿真器ICD2.0燒寫PIC16F628芯片實現CM402型貼片機控制系統改造設計功能。

實現程序如下:

#include

__CONFIG(0X1F3C);

#define ulong unsigned long

#define uint unsigned int

#define uchar unsigned char

#define RD (1)

#define WR (1<<1)

#define WREN (1<<2)

#define WRERR (1<<3)

#define FREE (1<<4)

#define CFGS (1<<6)

#define EEPGD (1<<7)

#define START_READ_EEPROM() EECON1=EECON1|RD

#define START_WRITE_EEPROM() EECON1=EECON1|WR

#define ENABLE_WRITE_EEPROM() EECON1=EECON1|WREN

#define DISABLE_WRITE_EEPROM() EECON1=EECON1&(~WREN)

#define SELECT_EEPROM() EECON1=EECON1&(~(EEPGD|CFGS))

#define out RA3

uint js=1;

uchar Key_Num = 0x00,Key_Num1 = 0x00; //本次鍵碼

uchar Key_Backup = 0x00,Key_Backup1 = 0x00; //備份鍵碼

uchar key,temp,key1,temp1;

bit Key_Dis_F = 0,Key_Dis_F1 = 0,OFF_ON=0;

uchar ES=1,ES_DATA=1;

bit a;

ulong z=1;

uchar ES_BC_DATA;

void ms(uint b);

void keyscan(void);

char readByte(char addr);

void writeByte(char addr, char data);

void X_Y_IN(void);

void main()

{ 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)

{ case 1:

RB2=1;

RB3=1;

RB4=1;

RB5=1;

RA6=1;

RA7=0;

break;

case 2:

RB2=1;

RB3=1;

RB4=1;

RB5=1;

RA6=0;

RA7=0;

break;

case 3:

RB2=1;

RB3=1;

RB4=1;

RB5=0;

RA6=0;

RA7=0;

break;

case 4:

RB2=1;

RB3=1;

RB4=0;

RB5=0;

RA6=0;

RA7=0;

break;

case 5:

RB2=1;

RB3=0;

RB4=0;

RB5=0;

RA6=0;

RA7=0;

break;

case 6:

RB2=0;

RB3=0;

RB4=0;

RB5=0;

RA6=0;

RA7=0;

break;

}

}

}

void ms(uint b)

{ uchar c;

while(b--)

for(c=123;c>0;c--);

}

void interrupt tmr1(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;

}

}

}

}

}

}

void X_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;

}

}

void keyscan(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;

}

}

char readByte(char addr)

{ char tmpEEPROM;

EEADR = addr;

SELECT_EEPROM();

START_READ_EEPROM();

tmpEEPROM = EEDATA;

return tmpEEPROM;

}

void writeByte(char addr, char data)

{ 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%,具有良好的實用價值。

作者:湖南有色金屬職業技術學院 李響初  上海振華科技有限公司 蔡振華

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 精品久久久BBBB人妻| 国自产精品手机在线观看视频| 欧美国产在线观看| 欧美式free群乱| 欧美精品束缚一区二区三区| 欧美成人在线影院| 男人和女人在床做黄的网站| 色欲综合久久中文字幕网| 亚洲一区二区三区高清| 一本之道在线视频| z0z0z0女人极品另类视频| 1313mm禁片视频| 绿帽子巨物夺娇妻09| 在线免费观看国产| 中文字幕无码中文字幕有码| 欧洲美熟女乱又伦免费视频| 伊人色综合网一区二区三区| 草久在线观看视频| 国产精品久久久久久久久齐齐 | 天天射天天干天天色| 丰满少妇高潮惨叫久久久一| 樱花草www日本在线观看| 亚洲精品狼友在线播放| 精字窝全球最大华人| 国产午夜影视大全免费观看| 美女张开腿让男人桶的动态图 | 久久精品日日躁精品| 欧美最猛黑人xxxx黑人猛交 | 日本在线xxxx| 国模杨依大胆张腿视频流露| 一本久久A久久免费精品不卡| 日本不卡高字幕在线2019| 亚洲国产成人高清在线观看| 狠狠色成人综合首页| 午夜欧美日韩在线视频播放| 超清首页国产亚洲丝袜| 国产真实乱freesex| 911亚洲精品| 在线视频你懂的国产福利| 一区二区三区视频在线播放| 无码人妻精一区二区三区|