mọi người cho em hỏi giờ em muốn lập trình IC 89c51 chạy led với độ trễ 1s thì phải viết delay bằng assembly ntn ạ? em dùng thạch anh 12Mhz. em cảm ơn nhiều
Lập trình cho 89c51 bằng ngôn ngữ assembly
Collapse
X
-
Tags: None
-
bạn có thể viết như sau:
Delay:
MOV R1,#100
N1: MOV R2,#100
N2: MOV R3,#50
N3: DJNZ R3,N3
DJNZ R2,N2
DJNZ R1,N1
Mình sẽ giải thích như sau:
DJNZ là lệnh giảm và nhảy, mỗi lần giảm nó sẽ so sánh với 0, nếu khác 0 thì nó nhảy về nhãn, còn = 0 thì nó kết thúc
Từ đó bạn sẽ suy luận ra là sẽ có : 100 * 100 * 50 = 500 000 lệnh DJZN được thực hiện
Mà thạch anh của bạn là 12MHZ thì suy ra 1 chu kỳ máy = 12/ F thạch anh = 12/12M = 1.10 mũ -6 s = 1 us
Một lệnh DJNZ thì chạy mất 2 chu kỳ máy. Suy thời gian chạy hết 500 000 Lệnh DJNZ = 500 000 * 2us = 1000 000 us = 10 mũ 6 us = 1s
Vậy từ đó bạn có thể tính ra các delay theo số giây mình muốn
Bài viết mới nhất
Collapse
-
-
-
bởi bqvietĐám UPS cửa cuốn đời cổ vẫn chạy 1 biến áp sắt từ vừa để hạ áp điện lưới nạp bình điện, vừa để kích áp bình điện thành sóng vuông đầu ra đấy thôi. Kiểu tiết kiệm này đã có từ mấy chục năm nay. Sơ đồ đại loại như link
https://www.homemade-circuits.com/si...rchargerchang/...-
Channel: Nguồn!
06-09-2026, 16:49 -

Comment