1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Nguyên tắc chuyển đổi từ file .HEX sang file .BIN

Chủ đề trong 'Điện - Điện tử - Viễn thông' bởi kinhbac, 13/12/2004.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. kinhbac

    kinhbac Thành viên mới

    Tham gia ngày:
    10/12/2003
    Bài viết:
    49
    Đã được thích:
    0
    Nguyên tắc chuyển đổi từ file .HEX sang file .BIN

    Chào các bác, tôi định viết chương trình nạp con 89C51, nhưng trước tiên phải dịch file .HEX sang file .BIN cái đã. Mà tôi lại không muốn dùng chương trình có sẵn là HEX2BIN, tôi sẽ viết một đoạn chương trình làm việc này, tôi dã sưu tập được ít tài liệu về cấu trúc file .HEX từ trang web của Thailand. Có bác nào biết khi convert thì bỏ loại byte nào, thêm byte nào, chuyển đổi byte nào, xin chỉ giáo giúp tôi với .

    Understanding Intel HEX File
    "Get internet terminal, describe your friend with this page, what is Intel HEX file? " Wichit Sirichote


    --------------------------------------------------------------------------------

    Let see the example program written in ASM51 format.

    cseg at 8000h
    jmp main

    org 8100h

    main: clr a
    mov r7,#0
    loop: mov a,r7
    cpl a
    mov p1,a
    mov r6,#50h
    djnz r6,$
    djnz r7,loop
    jmp $

    end

    After assembling, we get the intel HEX shown below.

    :03800000028100FA
    :0F810000E47F00EFF4F5907E50DEFEDFF680FEA8
    :00000001FF

    Compare also to the Listing file.


    8000 12 cseg at 8000h
    8000 028100 13 jmp main
    14
    8100 15 org 8100h
    16
    8100 E4 17 main: clr a
    8101 7F00 18 mov r7,#0
    8103 EF 19 loop: mov a,r7
    8104 F4 20 cpl a
    8105 F590 21 mov p1,a
    8107 7E50 22 mov r6,#50h
    8109 DEFE 23 djnz r6,$
    810B DFF6 24 djnz r7,loop
    810D 80FE 25 jmp $
    26
    27
    28
    29 end

    For now study yourself the meaning of each field in HEX file by this picture. Hope you got it.

  2. Quen_mang_kinh

    Quen_mang_kinh Thành viên quen thuộc

    Tham gia ngày:
    23/05/2002
    Bài viết:
    542
    Đã được thích:
    1
    Nếu bạn định phân phối chương trình của bạn dưới dạng Open Source (GPL) thì liên lạc với tôi không thì thôi :)
  3. Tubes

    Tubes Thành viên mới

    Tham gia ngày:
    23/07/2004
    Bài viết:
    187
    Đã được thích:
    0
    Cái này thì có vấn đề gì đâu nhỉ?
    Dễ đấy chứ!
    Câu trả lời là không bỏ byte nào cả!
    Cần tách ra một số thông tin:
    - Bao nhiêu byte có trong hàng
    - Đặt vào địa chỉ bao nhiêu trong bộ nhớ.
    - Các byte chuyển đổi từ HEx sang bin
    - Kiểm tra checksum để xem có lỗi đường truyền hay không (byte cuối cùng)
  4. kinhbac

    kinhbac Thành viên mới

    Tham gia ngày:
    10/12/2003
    Bài viết:
    49
    Đã được thích:
    0
    to Tubes: xin cám ơn !
    to Quen_mang_kinh: tất nhiên rồi, diễn đàn này là để chia sẻ kiến thức và kinh nghiệm. Bạn giúp tôi, người khác giúp bạn, chúng ta cùng giúp đỡ nhau. Địa chỉ email của tôi : phan_uc@yahoo.com

Chia sẻ trang này