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

Hỏi về chương trình mon51 trong sách "họ vi điều khiển 8051"

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

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

    ddtdodien Thành viên mới

    Tham gia ngày:
    03/08/2003
    Bài viết:
    70
    Đã được thích:
    0
    Hỏi về chương trình mon51 trong sách "họ vi điều khiển 8051"

    Tui đã đọc rất nhiều mà vẫn chưa hiểu nó có chức năng gì, mong mấy bác chỉ giúp, tui định làm cái mạch trong sách máy tính đơn board để thực hành lập trình cho chíp, nhưng chương trình mon51có nhiều tập tin mà không biết nạp cái nào vào Rom nào, mong mấy bác chỉ giúp. Cám ơn.
  2. opentdoors

    opentdoors Thành viên mới

    Tham gia ngày:
    09/01/2004
    Bài viết:
    1.205
    Đã được thích:
    0
    Thông thường tất cả các chương trình monitor cho các uC hoặc uP chỉ có chức năng chính là download file obj hoặc file hex để uC, uP debug chương trình, thông qua cổng rs232c.
    Chương trình monitor trong cuôn sách đó không hay, bạn nên tham khảo một số hàm về nhận phát 1 chuỗi ký tự trong cuốn đó thôi.
    Bạn vào trang của kswitch để lấy sơ đồ nguyên lý, sau đó dùng google để tìm chương trình Paulmon2 để nạp.
    Thật ra chức năng chính của mạch lập trình trong cuôn sách 8051microcrontroller là bạn load và giải mã từ file ascii ra nhị phân rồi movx vào RAM, sau đó bạn sử dụng lệnh jmp @a+dptr hoặc lệnh ret, ljmp để thi hành chương trình đó thôi.
  3. ddtdodien

    ddtdodien Thành viên mới

    Tham gia ngày:
    03/08/2003
    Bài viết:
    70
    Đã được thích:
    0
    Bác nói rõ hơn một chút được không?mấy tập tin đó có cần dịch ra rồi nạp vào đâu? tui chưa dùng thử nên không thế biết nó hoạt động thế nào, cũng định làm để nâng khả năng lập trình của mình lên, cám ơn .
  4. opentdoors

    opentdoors Thành viên mới

    Tham gia ngày:
    09/01/2004
    Bài viết:
    1.205
    Đã được thích:
    0
    Bạn phải dùng chương trình dịch của Intel hoặc Rigel hoặc dùng Keil (trên mạng có nhiều lắm). Còn không thi 2 -3 hôm nữa mình gởi qua mail. File dịch ra có dạng .hex hoặc .obj (hình như v2.hex ở trang cuối). Nạp vào flash của AT89c51/52.
    Mình cũng có 1 bộ lập trình như vậy, chương trình mình viết bằng C hoặc asm, sau khi biên dịch ra file .hex hoặc .obj, mình load vào RAM, khi đó chương trình chạy như trong 1 con 8951. Sau khi cắm nối thử xong, mình thay đổi địa chỉ chương trình rồi nạp vào 8951/52 hoặc 2051.
    Thay đổi địa chỉ chương trình bằng giả lệnh org.
    Nếu dùng 52 thì phải org 2000/ 51 thì org 1000 tại đầu chương trình.
  5. ddtdodien

    ddtdodien Thành viên mới

    Tham gia ngày:
    03/08/2003
    Bài viết:
    70
    Đã được thích:
    0
    Bác nói tui vẫn chưa hiểu, vì mạch trong sách, dùng Rom ngoài để lưu trữ chương trình.Cám ơn,
  6. thanhnguyencong

    thanhnguyencong Thành viên mới

    Tham gia ngày:
    28/04/2004
    Bài viết:
    17
    Đã được thích:
    0
    Tôi thấy ddtdodien hình như mới làm quen với MCU
    Nói như Opentddoor thì đúng là chưa hiểu được, theo tớic làm một cái thật đơn giản, khi thạo rồi thì hiểu ngay MON51 để làm gì cần thiết ntn (thường dùng để debug thôi)
    Không biết ddtdodien đã làm đến đâu rồi?
  7. ddtdodien

    ddtdodien Thành viên mới

    Tham gia ngày:
    03/08/2003
    Bài viết:
    70
    Đã được thích:
    0
    Ý tui nói ở đây là vẫn chưa hiểu phải nạp tập tin mon51 vào đâu? vào rom nội của 89c51 hay Rom 27c64, khi tui dùng chưa trình ASEM51 để dịch mấy tập tin nguồn ra mã đối tượng và mã máy thì nó báo lỗi không tìm thấy tập tin macros(lúc dịch tập tin main.src), tui có về xem lại thì nó bảo dùng chương trình liên kết định vị gì đó, không hiểu?. Mong mấy bác hướng dẫn thêm, cám ơn.
    Tui có làm mạch C52EVB V2.0 , theo mạch in của một tác giả việt nam (Vũ Như Khánh), mặc dù đã nạp chương trình Paulmon2 cho con 89c52 rồi, nhưng mấy tính không nhận ra board mạch. Mong mấy bác chỉ luôn.
  8. biettiti

    biettiti Thành viên mới

    Tham gia ngày:
    23/12/2002
    Bài viết:
    1.573
    Đã được thích:
    0
    Một kit như thế nay người ta dùng để debug lỗi, phần mềm mon51 có các nhiệm vụ quản lí vào ra, kết nối..v.v .Phần mềm này được nạp vào Rom nội của vi điều khiển, ngoài ra người ta hay thiết kế thêm một con Rom nữa để chứa các chương trình gần như là tiện ích vậy.Tuỳ dung lượng mà dùng Rom, tôi thấy dùng họ flash 29XX hay hơn họ 27XX
    Được lotomo sửa chữa / chuyển vào 17:06 ngày 05/05/2004
  9. opentdoors

    opentdoors Thành viên mới

    Tham gia ngày:
    09/01/2004
    Bài viết:
    1.205
    Đã được thích:
    0
    Rất đơn giản, bạn để ý chân EA của mcu51, trong sách chân này nối đất, vì trong sách sử dụng 8031 không có ROM trong.
    Còn họ 89 của ATMEL có 4,8..K Flash ROM trong do đó chân EA nối lên nguồn.
    Sự khác nhau là chân EA, ở đây :
    -Nếu bạn sử dụng 89C51, giả sử bạn có 1 chương trình lớn hơn 4K thì địa chỉ từ 0000H đến 0FFFH nằm trong Flash, còn từ 1000H trở đi nằm ở 60K ROM ngoài.
    -Nếu bạn sử dụng 8031/51/hoặc 89 mà chân EA nối đất thì toàn bộ 64K chương trình nằm ở ROM ngoài. Bạn sử dụng 28C64 thuận tiện hơn là 2764.
    Mình sử dụng 4K Flash trong để lưu chương trình monitor và dùng 32K RAM để giả ROM, như vậy mình có 4K RAM và28K Bộ nhớ chương trình ngoài.
    Chương trình monitor này thì đơn giản, có nhiệm vụ download file hex hoặc obj và giải mã ra nhị phân và lưu vào RAM. Các chương trình được download đó mình đều org 1000H hoặc lớn hơn. Sau đó chương trình monitor trong Flash thực hiện 1 lệnh jmp @a+dptr với a=0, dptr=#1000H là chương trình trên RAM thi hành.
    Bạn chú ý chân PSEN và RD được AND với nhau, nghĩa là khi bạn load chương trình ra RAM thì chân RD thực hiện như bộ nhớ data, khi thực hiện lệnh jmp, lcall hay ret thì chân PSEN assert như bộ nhớ chương trình.
    Mình không nhớ rõ ROM ngoài trong cuốn sách đó là bao nhiêu. Nếu là 2764 (8K) ROM, thì bạn làm như sau:
    - Sử dụng 89C52 có 8K Flash.
    -Nối mạch y hệt trong sách nhưng chân EA nối lên nguồn.
    -Load chương trình trong sách vào Flash.
    -Chú ý chân A15(P2.7) nối vào chân CS của RAM thông qua 1 con đảo, nếu các vd trong sách có "org 8000h", nếu nối trực tiếp thì phải " org 2000H" thay vì " org 8000H".
    Được opentdoors sửa chữa / chuyển vào 08:44 ngày 06/05/2004
  10. opentdoors

    opentdoors Thành viên mới

    Tham gia ngày:
    09/01/2004
    Bài viết:
    1.205
    Đã được thích:
    0
    Nếu là 8031/51 thì phải nạp ROM ngoài (2764 như trong sách)
    Bạn xem thử file macro tên gì, sau đó bạn đánh dòng sau vào cuối file main.src: "#include <tên file macro kể cả phần mở rộng >"
    Mình thì biết c52evb của kswitch chứ chưa thấy của V N Khánh. Không biết có phải ông VNK này là người viết bài "Cách làm mạch in" bằng sơn dỏm trên báo Điện tử cách đây 1 năm không(???).
    c52evb giao tiếp PC bằng Hyper Terminal với cấu hình 9600,8,n,n. Bạn xem lại trong Paukmon2 cấu hình tốc độ cổng COM là bao nhiêu.
    Mà mình nghĩ là bạn nên vào trang của kswitch để lấy c52evb hơn là đọc cuốn sách của Tống Văn On. Mình chả ưa gì 1 số người kể cả thầy giáo chuyên dịch sách với copy tài liệu của người khác rồi đề tên tác giả là mình, không thấy mục tài liệu tham khảo ở đâu, đếch biết đúng hay sai. Thảo nào nền giáo dục của nước ta sản xuất rất nhiều thsỹ, TS mà nền công nghiệp vẫn còn lạc hậu.

Chia sẻ trang này