toilet

Thảo luận - DIY mạch nạp ISP... | Page 5

Thảo luận trong 'Họ 8051'

Đang xem chủ đề này ( Thành viên: 1, Khách: 0)

  1. bahauhn12
  1. Đăng 22/12/12 #41

    NgoHungCuong STM32

    Số bài viết: 2,209
    Đã được thích: 5,096
    Yahoo Messenger
    Skype
    Facebook Profile
    chuyển sang dùng pic18f14k50
    sửa lại phần mềm PC, cải thiện thêm tốc độ nạp
    firmware demo
    Mã:
    /*
    * Firmware framework for USB I/O on PIC 18F2455 (and siblings)
    * Copyright (C) 2005 Alexander Enzmann
    * adapted to MCC18 by Alberto Maccioni on 1/8/09
    *
    * This program is free software; you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published by
    * the Free Software Foundation; either version 2 of the License, or
    * (at your option) any later version.
    *
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
    * GNU General Public License for more details.
    *
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA
    * or see <http://www.gnu.org/licenses/>
    */
    //Ngo Hung Cuong - kidteam@gmail.com
    #include <p18f14K50.h>
    #include <delays.h>
    #include "usb.h"
     
    // Note: there are timing related problems associated with GET_FEATURE
    // when run at less than 48 MHz
    #define CLK_48MHZ 1
    #define led LATCbits.LATC7
    #pragma config USBDIV = ON, FOSC = HS, CPUDIV = CLKDIV3, PLLEN = ON, PCLKEN = OFF
    #pragma config FCMEN = OFF, IESO = OFF, PWRTEN = ON, BOREN = OFF, BORV = 19
    #pragma config WDTEN = OFF, WDTPS = 32768, HFOFST = ON, MCLRE = OFF, STVREN = OFF
    #pragma config LVP = OFF, BBSIZ = OFF, XINST = OFF, CP0 = OFF, CP1 = OFF,CPB = OFF
    #pragma config CPD = OFF, WRT0 = OFF, WRT1 = OFF, WRTC = OFF, WRTB = OFF, WRTD = OFF
    #pragma config EBTR0 = OFF, EBTRB = OFF
    // HID feature buffer
     
    volatile unsigned char HIDFeatureBuffer[HID_FEATURE_REPORT_BYTES];
    char txBuffer[HID_INPUT_REPORT_BYTES];
    #pragma udata my_section_1
    char rxBuffer[HID_OUTPUT_REPORT_BYTES];
    unsigned int timestamp=0;
    extern byte transferType;
     
    //===============================================================
    void GetVer(void);
    void KT_i2c_read(void);
    void KT_i2c_write(void);
    //===============================================================
     
    void i2c_start(void);
    void i2c_stop(void);
    void i2c_init(void);
    unsigned char i2c_read(unsigned char ack);
    unsigned char i2c_write(unsigned char d);
    void KT_TestI2C(void);
    /*===============================================================
    chi can khoi tao 2 ham nay
    ===============================================================*/
     
    static void Kidteam_Task(void);
    void Kidteam_Init(void);
     
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     
    //===============================================================
     
    //===============================================================
    #pragma code low_vector=0x8
    void low_interrupt (void)
    {
    }
     
     
    #pragma code
     
    // Allocate buffers in RAM for storage of bytes that have either just
    // come in from the SIE or are waiting to go out to the SIE.
     
    // Regardless of what the USB is up to, we check the USART to see
    // if there's something we should be doing.
     
    // Entry point for user initialization
    void Kidteam_Init(void)
    {
        /*
        LATA=0;
        TRISA=0b11111001;
        LATB=0;
        TRISB=0xff;//bat dau roi day
        INTCON2bits.RBPU=1;//loai bo tro treo noi, dung tro treo ngoai
        */
        T0CON=0x80;            // Timer0 period = T*2^16:2 = 5.46ms:2 = 10.93ms (PS=2)
        LATC=0;
        TRISC=0;
    }
     
    #define LOBYTE(x) (*((char *)&x))
    #define HIBYTE(x) (*(((char *)&x)+1))
    // If we got some bytes from the host, then echo them back.
    static void Kidteam_Task(void)
    {
        byte rxCnt;
        byte cmd;
        // Find out if an Output report has been received from the host.
        rxCnt = HIDRxReport(rxBuffer, HID_OUTPUT_REPORT_BYTES);
     
        // If no bytes in, then nothing to do
        if (rxCnt == 0)
            return;
        cmd=rxBuffer[0];
        switch(cmd) {
            case 0:
                i2c_init();
                break;
            case 1:
                i2c_start();
                break;
            case 2:
                i2c_stop();
                break;
            case 3:
                KT_i2c_write();
                break;
            case 4:
                KT_i2c_read();
                break;
            case 5:
                GetVer();
                break;
            case 6:
                KT_TestI2C();
                break;
        } 
    }
     
    // Central processing loop.  Whenever the firmware isn't busy servicing
    // the USB, we will get control here to do other processing.
    void ProcessIO(void)
    {
     
        // User Application USB tasks
        if ((deviceState < CONFIGURED) || (UCONbits.SUSPND==1))
            return;
     
        // Process USB: Echo back any bytes that have come in.
        Kidteam_Task();
    }
     
    // Initialization for a SET_FEATURE request.  This routine will be
    // invoked during the setup stage and is used to set up the buffer
    // for receiving data from the host
    void SetupFeatureReport(byte reportID)
    {
        if (reportID == 0)
        {
            // When the report arrives in the data stage, the data will be
            // stored in HIDFeatureBuffer.
            inPtr = (byte*)&HIDFeatureBuffer;
        }
    }
     
    // Post processing for a SET_FEATURE request.  After all the data has
    // been delivered from host to device, this will be invoked to perform
    // application specific processing.
    void SetFeatureReport(byte reportID)
    {
     
        // Currently only handling report 0, ignore any others.
        if (reportID == 0)
        {
            // Set the state of PORTB based on the first byte
            // of the feature report.
            //LATB = HIDFeatureBuffer[0];
            // x10 to signal feature transfer
            //LATBbits.LATB1=1;
            //LATBbits.LATB0=0;
        }
    }
     
    // Handle a feature report request on the control pipe
    void GetFeatureReport(byte reportID)
    {
     
        if (reportID == 0)
        {
            // Handle report #0
            outPtr = (byte *)&HIDFeatureBuffer;
            //HIDFeatureBuffer[0]=PORTA;//==========================@@@
            HIDFeatureBuffer[1]=0xF1;    //this is to differentiate between different transfer types
            HIDFeatureBuffer[2]=HIBYTE(timestamp);
            HIDFeatureBuffer[3]=LOBYTE(timestamp);
            wCount = HID_FEATURE_REPORT_BYTES;
            transferType=0;
        }
     
    }
     
    // Handle control out.  This might be an alternate way of processing
    // an output report, so all that's needed is to point the output
    // pointer to the output buffer
    // Initialization for a SET_REPORT request.  This routine will be
    // invoked during the setup stage and is used to set up the buffer
    // for receiving data from the host
    void SetupOutputReport(byte reportID)
    {
        if (reportID == 0)
        {
            // When the report arrives in the data stage, the data will be
            // stored in HIDFeatureBuffer
            inPtr = (byte*)&HIDRxBuffer;
        }
    }
     
    // Post processing for a SET_REPORT request.  After all the data has
    // been delivered from host to device, this will be invoked to perform
    // application specific processing.
    void SetOutputReport(byte reportID)
    {
     
        // Currently only handling report 0, ignore any others.
        if (reportID != 0)
            return;
     
        LATB=HIDRxBuffer[0];
        // x11 to signal SET_REPORT transfer
        //LATBbits.LATB1=1;
        //LATBbits.LATB0=1;
    }
     
    // Handle a control input report
    void GetInputReport(byte reportID)
    {
     
        if (reportID == 0)
        {
            byte i;
            // Send back the contents of the HID report
            // TBD: provide useful information...
            outPtr = (byte *)&HIDTxBuffer;
            //HIDTxBuffer[0]=PORTA;//================================@@@@
            HIDTxBuffer[1]=0xF2;    //this is to differentiate between different transfer types
            HIDTxBuffer[2]=HIBYTE(timestamp);
            HIDTxBuffer[3]=LOBYTE(timestamp);
            for(i=4;i<HID_INPUT_REPORT_BYTES;i++) HIDTxBuffer[i]=HIDRxBuffer[i];
            // The number of bytes in the report (from usb.h).
            wCount = HID_INPUT_REPORT_BYTES;
            transferType=0;
        }
    }
     
    // Entry point of the firmware
    void main(void)
    {
        byte led_cnt=0;
        // Set all I/O pins to digital
        ANSEL=ANSELH=0;
     
        // Initialize USB
        UCFG = 0x14; // Enable pullup resistors; full speed mode
     
        deviceState = DETACHED;
        remoteWakeup = 0x00;
        currentConfiguration = 0x00;
     
        // Call user initialization function
        Kidteam_Init();
     
        while(1)
        {
            // Ensure USB module is available
            EnableUSBModule();
         
            // As long as we aren't in test mode (UTEYE), process
            // USB transactions.
            if(UCFGbits.UTEYE != 1)
                ProcessUSBTransactions();
     
            // Application specific tasks
            ProcessIO();
         
            //Blink LED2 @ 1Hz when configured
            if(INTCONbits.TMR0IF){ 
                INTCONbits.TMR0IF=0;
                timestamp++;
                led_cnt++;
                if (deviceState<CONFIGURED&&led_cnt>=40){
                    led = !led;
                    led_cnt=0;
                }
                else if (deviceState == CONFIGURED&&led_cnt>=5){
                    led = !led;
                    led_cnt=0;
                }
            } 
        }
    }
     
    void i2c_start(void){
        SSPCON2bits.SEN = 1;
        while(SSPCON2bits.SEN);
    }
     
    void i2c_stop(void){
        SSPCON2bits.PEN = 1;
        while(SSPCON2bits.PEN);
    }
     
    unsigned char i2c_read(unsigned char ack){
        SSPCON2bits.RCEN = 1;
        while(SSPCON2bits.RCEN);
        SSPCON2bits.ACKDT = ack;
        SSPCON2bits.ACKEN = 1;
        while(SSPCON2bits.ACKEN);
        return SSPBUF;
    }
     
    unsigned char i2c_write(unsigned char d){
        SSPCON1bits.WCOL = 0;
        PIR1bits.SSPIF = 0;
        SSPBUF = d;
        _asm
        nop
        nop
        nop
        _endasm
        if(SSPCON1bits.WCOL) return 2;            // write collision
        else {
            while(!PIR1bits.SSPIF);
            if(SSPCON2bits.ACKSTAT) return 1;    // not acknowledge
            return 0;                // everything is ok
        }
    }
     
    void i2c_init(void){
     
        PORTBbits.RB4 = 1;
        PORTBbits.RB6 = 1;
        TRISBbits.RB4 = 1;
        TRISBbits.RB6 = 1; //    control by mssp
     
        SSPADD = 39;        // Baudrate = Fosc/4/(SSPADDR+1)@@@@@@@@ chu y cho nay do 16Mhz
        SSPSTATbits.SMP = 1;        // slew rate control disabled for 100KHz baudrate
        SSPCON2 = 0; 
        SSPCON1 = 0x28; //I2C Master Hardware mode
    }
     
     
    void KT_TestI2C(void) {
        //khoi tao I2C cua PIC
        i2c_init();
     
        i2c_start();
        i2c_write(0xa0);
        i2c_write(0);
        i2c_write(0);
        i2c_write('n');
        i2c_write('g');
        i2c_write('o');
        i2c_write(' ');
        i2c_write('h');
        i2c_write('u');
        i2c_write('n');
        i2c_write('g');
        i2c_write(' ');
        i2c_write('c');
        i2c_write('u');
        i2c_write('o');
        i2c_write('n');
        i2c_write('g');
        i2c_write(' ');
        i2c_write('K');
        i2c_write('i');
        i2c_write('d');
        i2c_write('t');
        i2c_write('e');
        i2c_write('a');
        i2c_write('m');
        i2c_write('@');
        i2c_write('g');
        i2c_write('m');
        i2c_write('a');
        i2c_write('i');
        i2c_write('l');
        i2c_write('.');
        i2c_write('c');
        i2c_write('o');
        i2c_write('m');
        i2c_stop();
        Delay10KTCYx(10);
        i2c_start();
        //i2c_restart();
        i2c_write(0xa0);
        i2c_write(0);
        i2c_write(0);
        i2c_stop();
        i2c_start();
        i2c_write(0xa1);
        txBuffer[0]=i2c_read(0);
        txBuffer[1]=i2c_read(0);
        txBuffer[2]=i2c_read(0);
        txBuffer[3]=i2c_read(0);
        txBuffer[4]=i2c_read(0);
        txBuffer[5]=i2c_read(0);
        txBuffer[6]=i2c_read(0);
        txBuffer[7]=i2c_read(0);
        txBuffer[8]=i2c_read(0);
        txBuffer[9]=i2c_read(0);
        txBuffer[10]=i2c_read(0);
        txBuffer[11]=i2c_read(0);
        txBuffer[12]=i2c_read(0);
        txBuffer[13]=i2c_read(0);
        txBuffer[14]=i2c_read(0);
        txBuffer[15]=i2c_read(0);
        txBuffer[16]=i2c_read(0);
        txBuffer[17]=i2c_read(0);
        txBuffer[18]=i2c_read(0);
        txBuffer[19]=i2c_read(0);
        txBuffer[20]=i2c_read(0);
        txBuffer[21]=i2c_read(0);
        txBuffer[22]=i2c_read(0);
        txBuffer[23]=i2c_read(0);
        txBuffer[24]=i2c_read(0);
        txBuffer[25]=i2c_read(0);
        txBuffer[26]=i2c_read(0);
        txBuffer[27]=i2c_read(0);
        txBuffer[28]=i2c_read(0);
        txBuffer[29]=i2c_read(0);
        txBuffer[30]=i2c_read(0);
        txBuffer[31]=i2c_read(1);
        //gui nguoc lai qua usb
        while (ep1Bi.Stat & UOWN)
            ProcessUSBTransactions();
        HIDTxReport(txBuffer, HID_INPUT_REPORT_BYTES);
    }
     
    void GetVer(void) {
        txBuffer[0]='K';
        txBuffer[1]='i';
        txBuffer[2]='d';
        txBuffer[3]='t';
        txBuffer[4]='e';
        txBuffer[5]='a';
        txBuffer[6]='m';
        txBuffer[7]=' ';
        txBuffer[8]='I';
        txBuffer[9]='S';
        txBuffer[10]='P';
        txBuffer[11]=' ';
        txBuffer[12]='P';
        txBuffer[13]='r';
        txBuffer[14]='o';
        txBuffer[15]='g';
        txBuffer[16]=' ';
        txBuffer[17]='v';
        txBuffer[18]='1';
        txBuffer[19]='.';
        txBuffer[20]='0';
        txBuffer[21]='.';
        txBuffer[22]='0';
        txBuffer[23]='.';
        txBuffer[24]='0';
        txBuffer[25]=0;
        txBuffer[26]='K';
        txBuffer[27]='K';
        while (ep1Bi.Stat & UOWN)
            ProcessUSBTransactions();
        HIDTxReport(txBuffer, HID_INPUT_REPORT_BYTES);
    }
     
    void KT_i2c_read(void) {
        byte i,n;
        n=rxBuffer[1];//so luong byte se doc
        txBuffer[0]=n;
        for(i=0;i<n-1;++i) {
            txBuffer[1+i]=i2c_read(0);
        }
        if(rxBuffer[2]) {
            txBuffer[n]=i2c_read(1);
        } else {
            txBuffer[n]=i2c_read(0);
        }
        while (ep1Bi.Stat & UOWN)
            ProcessUSBTransactions();
        HIDTxReport(txBuffer, HID_INPUT_REPORT_BYTES);
    }
     
    void KT_i2c_write(void) {
        byte n,i;
        n=rxBuffer[1];//so luong byte se ghi
        for(i=0;i<n;++i) {
            i2c_write(rxBuffer[i+2]);
        }
    }
    kết quả thử nghiệm. (EEPROM 24C32)
    #41
  2. Đăng 22/12/12 #42

    NgoHungCuong STM32

    Số bài viết: 2,209
    Đã được thích: 5,096
    Yahoo Messenger
    Skype
    Facebook Profile
    Test EEPROM 24C04 (1 byte Address)
    #42
  3. Đăng 22/12/12 #43

    NgoHungCuong STM32

    Số bài viết: 2,209
    Đã được thích: 5,096
    Yahoo Messenger
    Skype
    Facebook Profile
    Test EEPROM 24C02
    #43
  4. Đăng 22/12/12 #44

    NgoHungCuong STM32

    Số bài viết: 2,209
    Đã được thích: 5,096
    Yahoo Messenger
    Skype
    Facebook Profile
    Test EEPROM 24C16
    #44
  5. Đăng 22/12/12 #45

    MuoiTDH Sinh viên đại học

    Số bài viết: 104
    Đã được thích: 14
    em gà quá, anh cho em hỏi kết nối từ cổng Com ra mạch thì làm như thế nào ạ (Com <=> J2), xấu hổ quá, anh đừng cươif nhé. thanhk all!
    #45
  6. Đăng 22/12/12 #46

    NgoHungCuong STM32

    Số bài viết: 2,209
    Đã được thích: 5,096
    Yahoo Messenger
    Skype
    Facebook Profile
    hi, bạn dùng PIC18F14K50 đi
    mình đang cập nhật thêm đây
    giao tiếp USB, tốc độ nhanh hơn COM nhiều và giá thành pic18F14K50 cũng rẻ
    so với 8051+ cáp chuyển USB sang COM (với laptop không có cổng COM) thì pic rẻ hơn ấy chứ :)
    Tốc độ nạp của mạch dùng PIC nhanh hơn nhiều lần so với dùng 8051 + COM. thân
    MuoiTDH thích bài này.
    #46
  7. Đăng 23/12/12 #47

    NgoHungCuong STM32

    Số bài viết: 2,209
    Đã được thích: 5,096
    Yahoo Messenger
    Skype
    Facebook Profile
    Test AT89S51
    MuoiTDH thích bài này.
    #47
  8. Đăng 23/12/12 #48

    NgoHungCuong STM32

    Số bài viết: 2,209
    Đã được thích: 5,096
    Yahoo Messenger
    Skype
    Facebook Profile
    Hex file pic18f14k50
    Mã:
    :020000040000FA
    :06000000BDEF0CF0120040
    :020006001200E6
    :020008001200E4
    :06000A0001009619000040
    :08001000E00000000200000006
    :08001800800ED56E8B6A946A1C
    :100020009368F18E1200D9CFE6FFE1CFD9FF020E1F
    :10003000E126400EE66E210EE66E020EE66E9AECAA
    :1000400006F0E552E552E552DF6EDF5001E138D0AF
    :10005000010E21C2DBFFDB500B0A2FE0010A2AE070
    :10006000030A26E0010A22E00F0A1DE0010A19E056
    :10007000030A15E0010A11E0070A0DE0010A09E090
    :10008000030A05E0010A01E01BD02ED919D0F1D8EE
    :1000900017D0F3D815D02DDB13D0D0DA11D085DAF4
    :1000A0000FD02DD90DD0BBEC05F00AD068DB08D0FD
    :1000B0007FDB06D04BEC05F003D099EC04F000D0C8
    :1000C000020EE15C02E2E16AE552E16EE552E7CF41
    :1000D000D9FF1200050E0201615D03E36450020BBB
    :1000E00001E001D0A0DF1200D9CFE6FFE1CFD9FFB8
    :1000F000FE0EDB5005E10201600E6D6F000E6E6FAB
    :10010000E552E7CFD9FF1200D9CFE6FFE1CFD9FF03
    :10011000FE0EDB5000E1E552E7CFD9FF1200D9CF48
    :10012000E6FFE1CFD9FFFE0EDB5012E10201600EC7
    :10013000696F000E6A6F0001F10E616FE1C062F03D
    :10014000E0C063F0400E02016F6F706B0201716BD3
    :10015000E552E7CFD9FF1200D9CFE6FFE1CFD9FFB3
    :10016000FE0EDB5005E10201800E6D6F020E6E6F18
    :10017000E552E7CFD9FF1200D9CFE6FFE1CFD9FF93
    :10018000FE0EDB5001E002D080C28AFFE552E7CFCD
    :10019000D9FF1200D9CFE6FFE1CFD9FFE652FE0E1C
    :1001A000DB502AE10201C00E696F020E6A6F020184
    :1001B000F20EC16FE1C0C2F2E0C0C3F2040EDF6E06
    :1001C000400EDF5C13E2DF50EA6A800FE96E020E38
    :1001D000EA22EF50E66EDF50EA6AC00FE96E020EC7
    :1001E000EA22E552E750EF6EDF2AEAD7400E02011D
    :1001F0006F6F706B0201716BE552E552E7CFD9FF6B
    :100200001200D9CFE6FFE1CFD9FFE652DF6A7F6A5D
    :100210007E6A140E616E0201616B0201626B020163
    :10022000656BFADE4EEC0BF061BE02D094EC0BF085
    :1002300051DFF2A418D0F2940001E02B000EE1236C
    :10024000DF2A050E0201615D06E2280EDF5C03E392
    :100250008B7EDF6A08D0050E615D05E1050EDF5C6F
    :1002600002E38B7EDF6ADED7E552E552E7CFD9FFA6
    :100270001200C580C5B0FED71200C584C5B4FED734
    :100280001200D9CFE6FFE1CFD9FFC586C5B6FED7AC
    :10029000FE0EDB50E8B0C58AE8A0C59AC588C5B88F
    :1002A000FED7C95000D0E552E7CFD9FF1200D9CF11
    :1002B000E6FFE1CFD9FFC69E9E96FE0EDB50C96ECB
    :1002C000000000000000C6AE03D0020E09D008D026
    :1002D0009EA6FED7C5AC02D0010E02D0000E00D003
    :1002E000E552E7CFD9FF12008188818C9388938CE7
    :1002F000270EC86EC78EC56A280EC66E1200F4DFC0
    :10030000B8DFA00EE66ED3DFE552E66AD0DFE55235
    :10031000E66ACDDFE5526E0EE66EC9DFE552670E86
    :10032000E66EC5DFE5526F0EE66EC1DFE552200EC8
    :10033000E66EBDDFE552680EE66EB9DFE552750E7A
    :10034000E66EB5DFE5526E0EE66EB1DFE552670E82
    :10035000E66EADDFE552200EE66EA9DFE552630ED4
    :10036000E66EA5DFE552750EE66EA1DFE5526F0E73
    :10037000E66E9DDFE5526E0EE66E99DFE552670E82
    :10038000E66E95DFE552200EE66E91DFE5524B0EEC
    :10039000E66E8DDFE552690EE66E89DFE552640E8A
    :1003A000E66E85DFE552740EE66E81DFE552650E7E
    :1003B000E66E7DDFE552610EE66E79DFE5526D0E89
    :1003C000E66E75DFE552400EE66E71DFE552670EB0
    :1003D000E66E6DDFE5526D0EE66E69DFE552610E89
    :1003E000E66E65DFE552690EE66E61DFE5526C0E82
    :1003F000E66E5DDFE5522E0EE66E59DFE552630EC6
    :10040000E66E55DFE5526F0EE66E51DFE5526D0E7A
    :10041000E66E4DDFE55231DF0A0EE66E86EC0CF03B
    :10042000E55227DFA00EE66E42DFE552E66A3FDFC7
    :10043000E552E66A3CDFE55220DF1BDFA10EE66EE7
    :1004400036DFE552E66A1DDFE5520001A06FE66A7D
    :1004500018DFE5520001A16FE66A13DFE5520001E3
    :10046000A26FE66A0EDFE5520001A36FE66A09DFBC
    :10047000E5520001A46FE66A04DFE5520001A56FB2
    :10048000E66AFFDEE5520001A66FE66AFADEE55293
    :100490000001A76FE66AF5DEE5520001A86FE66A83
    :1004A000F0DEE5520001A96FE66AEBDEE5520001DD
    :1004B000AA6FE66AE6DEE5520001AB6FE66AE1DEAE
    :1004C000E5520001AC6FE66ADCDEE5520001AD6F7B
    :1004D000E66AD7DEE5520001AE6FE66AD2DEE5528B
    :1004E0000001AF6FE66ACDDEE5520001B06FE66A4B
    :1004F000C8DEE5520001B16FE66AC3DEE5520001D5
    :10050000B26FE66ABEDEE5520001B36FE66AB9DE9D
    :10051000E5520001B46FE66AB4DEE5520001B56F42
    :10052000E66AAFDEE5520001B66FE66AAADEE55282
    :100530000001B76FE66AA5DEE5520001B86FE66A12
    :10054000A0DEE5520001B96FE66A9BDEE5520001CC
    :10055000BA6FE66A96DEE5520001BB6FE66A91DE8D
    :10056000E5520001BC6FE66A8CDEE5520001BD6F0A
    :10057000E66A87DEE5520001BE6F010EE66E81DE9F
    :10058000E5520001BF6F02010CAF03D094EC0BF0F9
    :10059000FAD7400EE66EA00EE66E000EE66E56EC42
    :1005A00006F0E552E552E552120000014B0EA06F35
    :1005B000690EA16F640EA26F740EA36F650EA46F17
    :1005C000610EA56F6D0EA66F200EA76F490EA86F66
    :1005D000530EA96F500EAA6F200EAB6F500EAC6F6A
    :1005E000720EAD6F6F0EAE6F670EAF6F200EB06FF5
    :1005F000760EB16F310EB26F2E0EB36F300EB46F38
    :100600002E0EB56F300EB66F2E0EB76F300EB86F60
    :10061000B96B4B0EBA6FBB6F02010CAF03D094ECF9
    :100620000BF0FAD7400EE66EA00EE66E000EE66EF8
    :1006300056EC06F0E552E552E5521200D9CFE6FF3E
    :10064000E1CFD9FF020EE126010E22C2DBFFDBCF94
    :10065000A0F0DF6A010EDB04DF5C0FE2E66A11DE68
    :10066000E552E66EDF28EA6AA00FE96E000EEA2284
    :10067000E552E750EF6EDF2AEDD70201235110E07B
    :10068000010EE66EFEDDE552E66E010EDB50EA6A13
    :10069000A00FE96E000EEA22E552E750EF6E0ED091
    :1006A000E66AEFDDE552E66E010EDB50EA6AA00F66
    :1006B000E96E000EEA22E552E750EF6E02010CAF40
    :1006C00003D094EC0BF0FAD7400EE66EA00EE66E67
    :1006D000000EE66E56EC06F0E552E552E552020ECB
    :1006E000E15C02E2E16AE552E16EE552E7CFD9FF53
    :1006F0001200D9CFE6FFE1CFD9FF020EE12622C2D8
    :10070000DFFF010EDB6ADF50F36E010EDBCFF4FF7B
    :10071000F350F45C0FE2010EDB50020FEA6A210F86
    :10072000E96E020EEA22EF50E66EC1DDE552010EDF
    :10073000DB2AE9D7020EE15C02E2E16AE552E16EF2
    :10074000E552E7CFD9FF12008A988A9A8A9C8A9E3E
    :100750009388939A939C939E0A0EE66E86EC0CF017
    :10076000E5528A8E0A0EE66E86EC0CF0E5528A8817
    :100770008A8AC78EC698C78C210EC66E1200F18E6B
    :1007800093688A6A9388938A939C939E0A0EE66E76
    :1007900086EC0CF0E552938E0A0EE66E86EC0CF0B9
    :1007A000E5521200C69A9388938A938C8A9E12000F
    :1007B000939E1200D9CFE6FFE1CFD9FFC69E9E9649
    :1007C000FE0EDB50C96E9EA6FED7C95000D0E55282
    :1007D000E7CFD9FF1200D9CFE6FFE1CFD9FF020E54
    :1007E000E126010EDB6ADF6A080EDF5C29E2010EFA
    :1007F000DBCFF3FFF39EF346010EF3CFDBFF815017
    :10080000100B01E0010E006E010EDBCFE7FF005080
    :10081000E712010EE7CFDBFF939AFE0EDBBE938A51
    :10082000FE0EDBCFF3FFF39EF346FE0EF3CFDBFFAE
    :10083000938C00000000939C00000000DF2AD4D7B6
    :10084000010EDB5000D0006E020EE15C02E2E16AB4
    :10085000E552E16E0050E552E7CFD9FF1200D9CF43
    :10086000E6FFE1CFD9FF040EE12622C200F0016AC3
    :1008700000BE016800C0DEFF01C0DDFF020EDB6AC2
    :10088000030EDB6A020EDBCF00F0030EDBCF01F0BC
    :10089000DECF02F0DDCF03F001500318E8AE02D046
    :1008A000033404D00250005C0350015827E2020ECA
    :1008B000E76EDBCFE9FF030EDBCFEAFFE750E92667
    :1008C000000EEA22210EE926020EEA22EF50E66E21
    :1008D00071DFE552E66E020EDBCFE9FF030EDBCFE0
    :1008E000EAFFA00EE926000EEA22E552E750EF6E7D
    :1008F000020EDB2A030E01E3DB2AC4D702010CAF90
    :1009000003D094EC0BF0FAD7400EE66EA00EE66E24
    :10091000000EE66E56EC06F0E552E552E552040E86
    :10092000E15C02E2E16AE552E16EE552E7CFD9FF10
    :100930001200D9CFE6FFE1CFD9FF040EE12622C293
    :1009400000F0016A00BE0168020E00C0DBFF030E6A
    :1009500001C0DBFF020EDBCFA0F0DE6ADD6ADECF76
    :1009600000F0DDCF01F0020EDBCF02F0030EDBCF93
    :1009700003F001500318E8AE02D0033404D0025053
    :10098000005C0350015825E2DECFE9FFDDCFEAFF2E
    :10099000020EE926000EEA22210EE926020EEA22C4
    :1009A000EF50E66E18DFE552E66EDECFE9FFDDCFF1
    :1009B000EAFF010EE926000EEA22A00EE926000E4B
    :1009C000EA22E552E750EF6EDF2A010E01E3DB2A4F
    :1009D000C6D702010CAF03D094EC0BF0FAD7400E4F
    :1009E000E66EA00EE66E000EE66E56EC06F0E552E0
    :1009F000E552E552040EE15C02E2E16AE552E16E85
    :100A0000E552E7CFD9FF1200D9CFE6FFE1CFD9FFFA
    :100A1000040EE12622C200F0016A00BE0168020E47
    :100A200000C0DBFF030E01C0DBFFDE6ADD6ADECF44
    :100A300000F0DDCF01F0020EDBCF02F0030EDBCFC2
    :100A400003F001500318E8AE02D0033404D0025082
    :100A5000005C0350015815E2DECFE9FFDDCFEAFF6D
    :100A6000020EE926000EEA22210EE926020EEA22F3
    :100A7000EF50E66E9FDEE552DF2A010E01E3DB2A2E
    :100A8000D6D7040EE15C02E2E16AE552E16EE5527E
    :100A9000E7CFD9FF1200D9CFE6FFE1CFD9FF040E8F
    :100AA000E12622C200F0016A00BE0168020E00C009
    :100AB000DBFF030E01C0DBFFDE6ADD6ADECF00F084
    :100AC000DDCF01F0020EDBCF02F0030EDBCF03F02F
    :100AD00001500318E8AE02D0033404D00250005C89
    :100AE000035001581AE2DECFE9FFDDCFEAFF020E24
    :100AF000E926000EEA22210EE926020EEA22EF5034
    :100B0000E66E69DEE552030EE66E9DEC0CF0E552F2
    :100B1000DF2A010E01E3DB2AD1D7040EE15C02E2F9
    :100B2000E16AE552E16EE552E7CFD9FF12000CDE33
    :100B3000AC0EE66E3FDEE552530EE66E3BDEE5524E
    :100B4000E66838DEE552E66835DEE5520001A06F62
    :100B500029DE02010CAF03D094EC0BF0FAD7400E63
    :100B6000E66EA00EE66E000EE66E56EC06F0E5525E
    :100B7000E552E5521200D9CFE6FFE1CFD9FF020ED0
    :100B8000E126FDDDAC0EE66E26DEE552530EE66E86
    :100B900022DEE552E6681FDEE552530EE66E1BDEEE
    :100BA000E5520001A06F02010CAF03D094EC0BF0F2
    :100BB000FAD7400EE66EA00EE66E000EE66E56EC1C
    :100BC00006F0E552E552E552AC0EE66E04DEE55263
    :100BD000800EE66E00DEE552E668FDDDE552E66871
    :100BE000FADDE552C80EE66E86EC0CF0E552640EB6
    :100BF000E66E86EC0CF0E5520001140EA06F120EAA
    :100C0000A16F02010CAF03D094EC0BF0FAD7400EA9
    :100C1000E66EA00EE66E000EE66E56EC06F0E552AD
    :100C2000E552E552500EE66ED6DDE552E66AD3DDBA
    :100C3000E552DE6ADD6ADECF00F0DDCF01F0D8904C
    :100C4000015004E6000E005C010E01580EE2DFCFF9
    :100C5000E6FFC1DDE552030EE66E9DEC0CF0E552B9
    :100C6000DF2A010E01E3DB2AE6D70001140EA06F94
    :100C7000120EA16F02010CAF03D094EC0BF0FAD767
    :100C8000400EE66EA00EE66E000EE66E56EC06F026
    :100C9000E552E552E5528CDD020EE15C02E2E16ACA
    :0C0CA000E552E16EE552E7CFD9FF1200EB
    :040CAC00D9CFE6FFB7
    :100CB000E1CFD9FFE65202010CAF02D0000E35D0D1
    :100CC000FC0EDB50400805E2400EF36EFC0EF3CF45
    :100CD000DBFFDF6AFC0EDB50DF5C19E2DF50E76E02
    :100CE000FD0EDBCFE9FFFE0EDBCFEAFFE750E92682
    :100CF000000EEA22EF50E66EDF50EA6AC00FE96E9E
    :100D0000020EEA22E552E750EF6EDF2AE3D7FC0E2F
    :100D1000DBCF0DF202010CAD03D0880E0C6F02D0B8
    :100D2000C80E0C6FFC0EDB5000D0E552E552E7CF49
    :100D3000D9FF1200D9CFE6FFE1CFD9FF0201746BD2
    :100D4000020108BF33D0FC0EDBCF00F00951D88080
    :100D5000005403E2FC0E09C2DBFF0201746BFC0EBF
    :100D6000DB50745D19E27451EA6A800FE96E020E7D
    :100D7000EA22EF50E66E7451E76EFD0EDBCFE9FF1D
    :100D8000FE0EDBCFEAFFE750E926000EEA22E5522D
    :100D9000E750EF6E742BE3D70201400E096F08ADE8
    :100DA00003D0880E086F02D0C80E086F020174517C
    :100DB00000D0E552E7CFD9FF12000201746B0F019A
    :100DC0001E0E546F0201400E096F800E006E020E5F
    :100DD000016E026A036A026A036A00C00AF201C075
    :100DE0000BF2880E086FC00E006E020E016E026AD2
    :100DF000036A026A036A00C00EF201C00FF2400EDD
    :100E00000C6F1200D9CFE6FFE1CFD9FFE65212C234
    :100E1000DFFF0201130509E1DFCFE6FFCAEC00F0B6
    :100E2000E5520201010E686F0BD0030E135D08E15D
    :100E3000DFCFE6FF8FEC00F0E5520201010E686F94
    :100E4000E552E552E7CFD9FF1200D9CFE6FFE1CF57
    :100E5000D9FFE65212C2DFFF020E0201135D09E163
    :100E6000DFCFE6FFACEC00F0E5520201010E686F47
    :100E70000BD0030E135D08E1DFCFE6FF74EC00F04A
    :100E8000E5520201010E686FE552E552E7CFD9FF46
    :100E90001200D9CFE6FFE1CFD9FF020EE1261F0EE7
    :100EA00002011015010802E1145101E070D011C2D5
    :100EB000DFFF060EDF5C29E1010E13C2DBFFDB5012
    :100EC00021080DE10201010E686FBF0E6B6F170E56
    :100ED0006C6F090E6F6F706B010E716F16D0010E83
    :100EE000DB5022080DE10201010E686FDF0E6B6F0F
    :100EF000170E6C6F2F0E6F6F706B010E716F05D038
    :100F0000010EDB50230801E100D0600E0201101534
    :100F1000200801E03CD0DF0402E174DF38D0090E84
    :100F2000DF5C05E10201010E676F8FDF30D0020E3A
    :100F3000DF5C0CE10201010E686F720E696F020E38
    :100F40006A6F010E6F6F706B716B21D00A0EDF5CE0
    :100F500006E10201010E686F13C272F218D0030E8F
    :100F6000DF5C0CE10201010E686F730E696F020E07
    :100F70006A6F010E6F6F706B716B09D00B0EDF5CC7
    :100F800006E10201010E686F12C273F200D0020E78
    :100F9000E15C02E2E16AE552E16EE552E7CFD9FF9A
    :100FA0001200D9CFE6FFE1CFD9FF020EE126800E75
    :100FB0000201105D48E113C2DFFF010E12C2DBFF28
    :100FC000DF040DE10201010E686FA40E6B6F170EB6
    :100FD0006C6F120E6F6F706B010E716F34D0020E5A
    :100FE000DF5C0DE10201010E686FB60E6B6F170E2C
    :100FF0006C6F290E6F6F706B010E716F24D0030E32
    :10100000DF5C21E10201010E686FDB5005E10E0E8D
    :101010006B6F180E6C6F0CD0010EDB0405E1120E25
    :101020006B6F180E6C6F04D03A0E6B6F180E6C6FEE
    :101030006BC2F6FF6CC2F7FF0800F5506F6F706B64
    :10104000010E716F00D0020EE15C02E2E16AE5522E
    :10105000E16EE552E7CFD9FF1200D9CFE6FFE1CF2D
    :10106000D9FF030EE1261F0E02011015DF6E196B6A
    :101070001A6BDF500DE10201010E686F645102E04E
    :10108000020119810201625102E00201198332D08A
    :10109000DF0404E10201010E686F2CD0020EDF5C58
    :1010A00029E10F0E1415E76E010EE7CFDBFF800E6E
    :1010B0001415E76E020EE7CFDBFF0201010E686F29
    :1010C000DB50080DF3506D6F6E6B000E6D27020E36
    :1010D0006E23020EDB5004E0040E6D27000E6E231B
    :1010E0006DC2E9FF6EC2EAFFEF50040B03E002019C
    :1010F000010E196F0201685108E0190E696F020EA6
    :101100006A6F020E6F6F706B716B030EE15C02E22F
    :10111000E16AE552E16EE552E7CFD9FF1200D9CF7F
    :10112000E6FFE1CFD9FF040EE1261F0E02011015E4
    :10113000DF6E010E12C2DBFFDF5011E1010EDB0496
    :101140000DE10201010E686F030E0201115D04E161
    :101150000201010E626F02D00201626B43D0020EE7
    :10116000DF5C40E10F0E1415E76E020EE7CFDBFFE8
    :10117000800E1415E76E030EE7CFDBFF010EDB5088
    :1011800031E1020EDB502EE00201010E686F020E0B
    :10119000DB50080DF3506D6F6E6B000E6D27020E65
    :1011A0006E23030EDB5004E0040E6D27000E6E2349
    :1011B000030E0201115D07E1840E6DC2E9FF6EC2EC
    :1011C000EAFFEF6E0FD0030EDB0406E16DC2E9FF0C
    :1011D0006EC2EAFFEF6A06D0880E6DC2E9FF6EC2EA
    :1011E000EAFFEF6E040EE15C02E2E16AE552E16EB5
    :1011F000E552E7CFD9FF1200D9CFE6FFE1CFD9FF03
    :10120000E65211C2DFFF600E0201101501E05CD052
    :10121000050EDF5C08E10201010E686F040E616FCC
    :1012200012C263F251D0060EDF5C02E1BADE4CD08E
    :10123000090EDF5C0EE10201010E686F12C265F259
    :10124000655103E1040E616F03D0050E616FB5DDDA
    :101250003BD0080EDF5C0CE10201010E686F650EE9
    :10126000696F020E6A6F010E6F6F706B716B2CD01D
    :10127000DF5002E1F2DE28D0DF0403E0030EDF5C82
    :1012800002E14DDF21D00A0EDF5C0FE10201010E09
    :10129000686F0201196B0201190E696F020E6A6F05
    :1012A000010E6F6F706B716B0FD00B0EDF5C04E182
    :1012B0000201010E686F08D0070EDF5C01E104D067
    :1012C0000C0EDF5C01E100D0E552E552E7CFD9FF1B
    :1012D0001200D9CFE6FFE1CFD9FF030EE1260201CC
    :1012E000080E6F5D000E705907E2010E6FC2DBFF42
    :1012F000020E70C2DBFF07D0080EF36E010EF3CFB3
    :10130000DBFF020EDB6AFC0E02010417010EDBCFCD
    :1013100000F0020EDBCF01F0000E0016030E0116E6
    :1013200001C000F0016A00500413FF0EE76E010EC9
    :10133000DBCF00F0020EDBCF01F0E7500016016AB0
    :1013400000C005F2190E006E020E016E026A036AF9
    :10135000026A036A00C006F201C007F2010EDB5008
    :1013600002016F5F020EDB50705B190E6D6F020E93
    :101370006E6F710525E1DF6ADFCF00F0010EDBCF74
    :1013800001F0020EDBCF02F00150005C000E0254AF
    :1013900016E26BC2F6FF6CC2F7FF6B2B000E6C23DC
    :1013A0000800F550E66E6DC2E9FF6EC2EAFF6D2BD4
    :1013B000000E6E23E552E750EF6EDF2ADDD723D013
    :1013C000DF6ADFCF00F0010EDBCF01F0020EDBCFD2
    :1013D00002F00150005C000E025415E269C2E9FF00
    :1013E0006AC2EAFF692B000E6A23EF50E66E6DC2F7
    :1013F000E9FF6EC2EAFF6D2B000E6E23E552E75047
    :10140000EF6EDF2ADED7030EE15C02E2E16AE5520D
    :10141000E16EE552E7CFD9FF1200D9CFE6FFE1CF69
    :10142000D9FF040EE126030E02010015000EF35051
    :101430000111E66ED950020FE96EDACFEAFFE552EC
    :10144000E750EE6EED6A020EDB5002016F27030ECD
    :10145000DB507023190E696F020E6A6FDE6ADD6A57
    :10146000DECF00F0DDCF01F0020EDBCF02F0030E85
    :10147000DBCF03F00250005C0350015818E269C250
    :10148000E9FF6AC2EAFF692B000E6A23EF50E66E9D
    :101490006DC2E9FF6EC2EAFF6D2B000E6E23E552AE
    :1014A000E750EF6EDF2A010E01E3DB2AD9D7040EE5
    :1014B000E15C02E2E16AE552E16EE552E7CFD9FF75
    :1014C00012000201049F009F0201666B686B676B4C
    :1014D0006F6B706B91DEDDDC0201685113E102017C
    :1014E000080E016F100E006E020E016E026A036A92
    :1014F000026A036A00C002F201C003F2840E006FA8
    :10150000046F4BD0020110AF31D002016F510201C4
    :10151000165D020170510201175904E216C26FF202
    :1015200017C270F2D6DE0201020E666F0201080ECB
    :10153000016F100E006E020E016E026A036A026AEB
    :10154000036A00C002F201C003F2800E006F190EA0
    :10155000006E020E016E026A036A026A036A00C02C
    :1015600006F201C007F2C80E046F17D00201010E87
    :10157000666F0201056BC80E046F080E016F190E2D
    :10158000006E020E016E026A036A026A036A00C0FC
    :1015900002F201C003F2C80E006F6498120002014B
    :1015A000666B0201080E016F100E006E020E016ED6
    :1015B000026A036A026A036A00C002F201C003F20F
    :1015C000880E006F046B1200D9CFE6FFE1CFD9FF80
    :1015D000020EE126635036E13C0E02010015E840A0
    :1015E000E8403F0BDF6E0D0EDF5C02E16ADF29D0C1
    :1015F0000201660525E111DF0201675118E0010EC5
    :1016000012C2DBFF020E0201135D07E1010EDBCF08
    :10161000E6FFBCEC00F0E5520AD0030E135D07E1D3
    :10162000010EDBCFE6FF84EC00F0E55200D00201B2
    :1016300000AD03D0880E006F02D0C80E006F01D03D
    :10164000AEDF22D0040E635C1FE10F015C510CE1A0
    :10165000040E0201615D08E112C25CFF0F015C51E2
    :1016600003E10201030E616F020E0201665D0AE1F1
    :1016700030DE020104AD03D0880E046F02D0C80E24
    :10168000046F01D08CDF00D0020EE15C02E2E16A5F
    :10169000E552E16EE552E7CFD9FF120064B606D0FD
    :1016A000646A606A64860201010E616F020161056D
    :1016B00009E16450200B06E1626A606A608060881C
    :1016C000020E616F12006492609462941200629C38
    :1016D00012000F0153A103D062DF0F015391629AF0
    :1016E0001200608462986482A194A084AB98AC9A42
    :1016F0000300AB88AC8AA09412000F015F6B626A92
    :101700009F0E5B6F7B0E606E5C6B160E536F62A656
    :1017100002D06296FCD7649842DF0201626B646B70
    :10172000656B030E616F12000201615101E139D056
    :101730006250040B04E06050040B01E0C4DF64B2AB
    :1017400030D06250010B04E06050010B01E0D5DFA6
    :101750006250100B04E06050100B01E0C2DF6250D9
    :10176000400B04E06050400B01E0B1DF6250200B01
    :1017700004E06050200B01E0ACDF6250020B04E09B
    :101780006050020B01E06292030E0201615D01E212
    :1017900008D06250080B05E06050080B02E014DF2F
    :0417A000629612003B
    :0C17A4001201000200000008D80412141A
    :1017B00001000102000109022900010100A0320913
    :1017C0000400000203000000092101010001222F92
    :1017D00000070581034000010705010340000106E1
    :1017E000A0FF0901A1010901150026FF0075089558
    :1017F0004081020901150026FF00750895409102FD
    :101800000902150026FF0075089540B102C00403C7
    :10181000090428034B00690064007400650061003E
    :101820006D00200045006C006500630074007200CC
    :101830006F006E0069006300730034034B006900A1
    :1018400064007400650061006D00200049005300D1
    :1018500050002000500072006F00670020007600EA
    :0E18600031002E0030002E0030002E0030002F
    :02186E000A0E60
    :10187000F66E000EF76E000EF86E02010900F550CC
    :101880007A6F0900F5507B6F03E17A6701D03DD094
    :101890000900F550756F0900F550766F0900F55095
    :1018A000776F09000900F550E96E0900F550EA6EFE
    :1018B000090009000900F550786F0900F550796FAB
    :1018C00009000900F6CF7CF2F7CF7DF2F8CF7EF267
    :1018D00075C2F6FF76C2F7FF77C2F8FF02017853B0
    :1018E00002E1795307E00900F550EE6E7807F8E25F
    :1018F0007907F9D77CC2F6FF7DC2F7FF7EC2F8FFF9
    :0C19000002017A07000E7B5BBFD71200CB
    :04190C00FF0EE35097
    :10191000076EEF0E01D0F30EE76EE72E8DEF0CF0A1
    :101920000C0E066EE76AE72E93EF0CF0062E92EF90
    :0A1930000CF0072E8BEF0CF01200F4
    :06193A00FF0EE350076EF2
    :10194000480E01D04C0EE76EE72EFED7E76AE72E71
    :0A195000FED7072EF7D700001200A3
    :06195A00000EF36E00EE2A
    :1019600000F0030E01D81200EA6002D0EE6AFCD744
    :0A197000F350E9601200EE6AFCD7A4
    :06197A0011EE00F021EE69
    :1019800000F0F86A059C37EC0CF003EC00F001EC79
    :0619900001F0FBD712007C
    :0219960000004F
    :020000040030CA
    :0100000030CF
    :0100010012EC
    :0100020038C5
    :010003001EDE
    :0100050008F2
    :010006008079
    :0100080003F4
    :01000900C036
    :01000A0003F2
    :01000B00E014
    :01000C0003F0
    :01000D0040B2
    :00000001FF
    

    Các file đính kèm:

    #48
  9. Đăng 23/12/12 #49

    NgoHungCuong STM32

    Số bài viết: 2,209
    Đã được thích: 5,096
    Yahoo Messenger
    Skype
    Facebook Profile
    Sơ đồ mạch:
    New Bitmap Image.JPG
    MuoiTDH thích bài này.
    #49
  10. Đăng 23/12/12 #50

    NgoHungCuong STM32

    Số bài viết: 2,209
    Đã được thích: 5,096
    Yahoo Messenger
    Skype
    Facebook Profile
    Phần mềm giao tiếp: đã hỗ trợ 24Cxx và 89S51, 89S52
    đã có phần detect 89s
    (chưa hỗ trợ đọc code và khóa chip, tại mình lười code quá)
    2.JPG

    Các file đính kèm:

    #50

Chia sẻ trang này