View Single Post
Old 06-09-2009, 03:51 PM   #13
khangspkt
Đệ tử 1 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 14
:
Trích:
Nguyên văn bởi tiendungkct View Post
anh co thể hướng dẫn cho em cách viết MACRo được không em cũng mới tìm hiểu về nó nên chưa biết ,em cảm ơn anh
Sử dụng macro sẽ giúp bạn sử dụng lại các chương trình viết sẵn, gọi lại và sử dụng nhanh chóng.

VD đơn giản nhất là sử dụng macro delayxs. Bạn theo các bước sau nhé.
B1: Bạn tạo 1 file mới tên delayxs.asm. Lưu lại ở c:\
B2: bạn soạn nội dung file delayxs.asm bằng nodepad cũng được, như sau,
Trích:
delayxs macro ; day la chuong trinh delay 1s
MOVLW D’4’ ; Count 4 of 250 millisecond delays
MOVWF TIME2
LOOP_x_SEC:
MOVLW D’250’ ; Count 250 of one millisecond delays
MOVWF TIME1
LOOP_250_MS:
MOVLW D’250’ ; Count of 250 Loops of four cycles
MOVWF TIME
LOOP_ONE_MS:
NOP
DECFSZ TIME,F
GOTO LOOP_ONE_MS

DECFSZ TIME1,F
GOTO LOOP_250_MS

DECFSZ TIME2,F
GOTO LOOP_x_SEC
endm
b3: bạn mở và tạo 1 project trong mpasm
viet chương trình bật tăt portb delayxs
Trích:
#include "c:\delayxs.asm"
cblock
TIME
TIME1
TIME2
org
<khởi tao trisb=0>
loop
delayxs; goi macro
clrf PORTB
delayxs; goi macro
movlw h'ff'
movwf PORTB
goto loop
end
Ban thấy đấy khi cần sử dụng bạn chỉ cần đánh tên marcro thôi, không cần lệnh call.
Chương trình chính sẽ đơn giản hơn nhiều, nhất là với ứng dụng sử dụng nhiều chức năng.
Chương trình macro bạn có thể viết các chương trình con, debug cho hoạt động chính xác. Đóng gói lại và sử dụng khi cần.

Hiện thời, mình viét chương trình đọc bàn phím ps2, hiển thị lcd và gửi serial.
Khi cần mình cũng viết các marco doc_banphim, khoi_tao_lcd, khoi_tao_serialcom, LCD_out(xuat du lieu ra lcd). Chương trình chính rất gọn và dễ kiểm tra khi có sai sót.
Tùy ứng dụng , bạn có thể phát triển theo ý bạn, nhất là viết bằng asm thì hơi dài và khó kiểm soát. sử dụng macro làm gọn chương trình cũng là 1 ưu điểm macro.
Thân

thay đổi nội dung bởi: khangspkt, 06-09-2009 lúc 03:59 PM.
khangspkt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn