Giới thiệu một phần mềm soạn thảo để gõ chương trình nguồn và biên dịch file asm ra file mã (file có họ hex).

Một phần của tài liệu làm quen với ic vi điều khiển potx (Trang 60 - 70)

và biên dịch file .asm ra file mã (file có họ .hex).

Sau khi đã có bo thực hành (Xem phần trình bày trên), bây giờ Bạn phải làm quen với một phần mềm dùng soạn các chương trình nguồn, các file này lấy họ là .asm. Ở đây, chúng tôi giới thiệu Bạn dùng phần mềm miễm phí MIDE-51. Tiêu hình của MIDE-51 như hình sau.

Bây giờ Bạn sẽ gõ hay dán các câu lệnh vào vùng soạn thảo của nó. Tôi làm một thí dụ: Tôi sẽ cắt một chương trình đã có và cho dán vào MIDE-51 rồi cho chép lại với một tên file lấy họ là .asm và sau đó cho dịch file nguồn ra file mã 16 với họ là .hex.

Chúng ta thử soạn một chương trình nguồn đơn giản, làm công việc tắt mở 8 Led trên cảng p1. Chương trình nguồn sẽ được viết như sau:

org 0000h start: mov p1, #00000000b call delay mov p1, #11111111b call delay jmp start delay: mov r7, #20 v6: mov r6, #50 v5: mov r5, #200 djnz r5, $ djnz r6, v5 djnz r7, v6 ret end

Đoạn chương trình nguồn trên đã được gõ trong vùng soạn thảo của MIDE-51 và nó được chép lại với tên file là thi-du-1.asm

Khi gõ xong, Bạn mở cửa sổ Build và chọn mục Build (hay lúc nào cần biên dịch thì gõ phím nóng F9) chương trình nguồn thi-du-1.asm sẽ được biên dịch ra file mã Code.

MIDE-51 dịch xong và báo không thầy lỗi. Bạn xem câu báo ở phần dưới "no errors". Lúc này trên thư mục của file thi-du-1.asm đã có file thi-du-1.hex. Đó chính là file mã Code của chương trình nguồn trên.

File thi-du-1.hex có nội dung như sau:

:1000000075900012000E7590FF12000E80F27F14A2 :0B0010007E327DC8DDFEDEFADFF62246

:00000001FF

Phân tích file mã Code thi-du-1.hex, Bạn sẽ thấy:

:10000000---759000---12000E---7590FF---12000E---80F2 ---7F14---A2 :0B001000---7E32---7DC8---DDFE---DEFA---DFF6---22---46

:00000001FF

org 0000h start:

mov p1, #00000000b Có mã Colde là: 759000

call delay Có mã Colde là: 12000E

mov p1, #11111111b Có mã Colde là: 7590FF

call delay Có mã Colde là: 12000E

jmp start Có mã Colde là: 80F2

delay:

mov r7, #20 Có mã Colde là: 7F14

v6: mov r6, #50 Có mã Colde là: 7E32

djnz r5, $ Có mã Colde là: DDFE

djnz r6, v5 Có mã Colde là: DEFA

djnz r7, v6 Có mã Colde là: DFF6

ret Có mã Colde là: 22

end

Nếu Bạn xem các câu lệnh ở phần phụ lục, Bạn sẽ thấy phần số ghi đậm trên chính là mã Code của các câu lệnh mà Bạn đã gõ trong chương trình nguồn. Các mã Code (dạng mã 16) này sẽ được cho đổi ra dạng nhị phân và rồi sẽ cho nạp vào bộ nhớ EEP-ROM của ic vi điều khiển AT89C51. Làm đến đây xem như công việc đã hoàn tất, Bạn gắn ic AT89C51 vào bo thực hành để thử, Bạn sẽ thấy 8 Led trên cảng p1 sẽ nhấp nháy (như hình).

Dùng lệnh mov p1, #data, Bạn có thể điều khiển 8 Led trên port 1 sáng theo ý của Bạn. Bạn xem tác dụng của lệnh move trên cảng p1 như hình sau:

Dùng lệnh quay trái: rl a (Rotate Left a), kết quả cho chuyển ra cảng p1.

Vấn đề hộp nạp các mã Code vào bộ nhớ EEP-ROM của các ic vi điều khiển Bạn vào đọc bài:

Giới thiệu cách dùng hộp nạp ic vi điều khiển TOP853

Bạn muốn dùng các câu lệnh để điều khiển các thiết bị tự động, các bảng đèn quảng cáo, hay các robot...Trước hết Bạn hãy viết ra các câu lệnh rồi cho chuyển đổi ra dạng mã và bây giờ dùng hộp nạp TOP853 để nạp các câu lệnh này vào bộ nhớ EEPROM. Sau khi đã làm xong các công việc trên, xem như Bạn đã có một ic luôn trung thành với các sai bảo của Bạn. Thích không? Hãy vào đọc bài này để biết cách làm nhé....(Click vào đây để xem)

Một phần của tài liệu làm quen với ic vi điều khiển potx (Trang 60 - 70)