Thông báo

Collapse
No announcement yet.

Lập trình cho 89c51 bằng ngôn ngữ assembly

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Lập trình cho 89c51 bằng ngôn ngữ assembly

    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

  • #2
    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

    Comment

    Về tác giả

    Collapse

    mikiramper Tìm hiểu thêm về mikiramper

    Bài viết mới nhất

    Collapse

    Đang tải...
    X