找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于PIC16F628单片机的CM402型高速贴片机控制系统改造设计与实现

[复制链接]
admin 发表于 2013-3-24 16:45:00 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

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

×
引言
    随着表面贴装技术(Surface Mounted Technology,SMT)的不断优化及贴片元器件制作工艺的迅速发展,贴片机在电子制造业中的应用日益突出。CM402型高速贴片机是由日本松下公司研发和生产,针对某些特定工件、按特定工序进行批量加工的专用设备。根据笔者为期两周的现场调查和论证,传统CM402型高速贴片机在拼接料生产过程中,若出现拼接料检知停止时,停机扫料的时间将影响到生产效率。通过认真分析该设备的工序流程及阅读其用户手册,可将此拼接料检知、停机扫料程序进行技术改造,并在原有电控系统上利用PVS控制系统替代Timer(计时器),可实现接料不停机控制功能,从而可提升其生产效率。
    本文以利用PIC16F628单片机构成PVS控制系统为例,从硬件系统设计和软件系统设计入手,给出了印制电路板图、电路原理图及源代码。
    硬件系统设计
    该PVS控制系统以PIC16F628单片机为核心,由PIC16F628单片机及其外围元器件、电源模块、继电器模块组成,印制电路板和电路原理图如图1、图2所示。
      
     
    图1 印制电路板
    20121107050723082224111.jpg
  
     图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&lt;<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&amp;(~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%,具有良好的实用价值。


    作者:湖南有色金属职业技术学院 李响初  上海振华科技有限公司 蔡振华
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-26 11:46 , Processed in 0.057693 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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