• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的高速貼片機控制系統改造設計與實現

    基于單片機的高速貼片機控制系統改造設計與實現

    作者: 時間:2012-04-23 來源:網絡 收藏

    引言

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

    隨著表面貼裝技術(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;


    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 吉木萨尔县| 贵州省| 云林县| 蕲春县| 福建省| 玉树县| 垦利县| 通化市| 左贡县| 卢湾区| 航空| 甘泉县| 体育| 乌审旗| 南丹县| 石狮市| 咸阳市| 四子王旗| 循化| 原平市| 徐州市| 仙游县| 永安市| 临清市| 小金县| 鄢陵县| 广安市| 沙洋县| 龙门县| 大邑县| 梓潼县| 樟树市| 库尔勒市| 阳西县| 句容市| 凤冈县| 凌海市| 昌邑市| 黎平县| 塔城市| 大足县|