Thông báo

Collapse
No announcement yet.

Liệt kê tập lệnh của 8051? Bác nào biết giúp em với,hic,em mới học Vi điều khiển 8051

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

  • #16
    cám ơn các bạn nhiều nha,mình đang tìm thứ này.
    |

    Comment


    • #17
      bạn vào google mà dịch, gửi cả file đó lên rùi sẽ có bài dịch cho bạn

      Comment


      • #18
        co anh nao biet cach lam bai tap dieu khien tu dong ko nhi ?

        Comment


        • #19
          hay đó em cũng giờ mới bắt đầu vào học vi điều khiển 8051 đây .cám ơn mọi người nhìu nhìu nhé

          Comment


          • #20
            cám ơn mọi người nhìu nhé.

            Comment


            • #21
              Cảm ơn các bạn nhiều.

              Comment


              • #22
                Như ý nè.....................
                Attached Files

                Comment


                • #23
                  Nguyên văn bởi zz_bi_zz Xem bài viết
                  mua cuốn 8051 của tống văn ôn ( hay ơn ) j đó về đọc đi u , ai mà rảnh ngồi đó liệt kê ra


                  cuốn thầy tống văn on dài dòng với những ngừoi bắt đầu:
                  Em nên đọc cuốn kỹ thuật vi xử lý 8051 của ks gì đó ( nhà xuất bản đại học quốc gia)
                  đó là cuốn dễ hiểu nhất cho người mới bắt đầu

                  chúc em học tốt
                  Be quan. Plz contact through email:

                  Comment


                  • #24
                    NHÓM LỆNH CỦA 8051


                    I. NHÓM LỆNH DI CHUYỂN
                    1. Lệnh chuyển dữ liệu từ một thanh ghi Rn vào thanh ghi A:
                    • Cú pháp: Mov A,Rn
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Chuyển dữ liệu của thanh ghi Rn vào thanh ghi A, dữ liệu trên thanh ghi Rn không đổi
                    • Ví dụ: Giả sử thanh ghi R5 mang dữ liệu với giá trị là 0A5H (10100101B)
                    Lệnh Mov A,R5
                    Sau khi lệnh được thực hiện A mang dữ liệu giá trị A5H, Rn không đổi
                    giá trị thanh ghi A trước khi thực hiện lệnh không cần quan tâm
                    2. Lệnh chuyển dữ liệu từ ô nhớ có địa chỉ direct vào thanh ghi A:
                    • Cú pháp: Mov A,direct
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: chuyển dữ liệu của ô nhớ có địa chỉ bằng direct vào thanh ghi A.
                    • Ví dụ: Giả sử thanh ghi có địa chỉ 33H mang dữ liệu với giá trị là 09H (00001001B)
                    Lệnh Mov A,33H
                    Sau khi lệnh được thực hiện A mang dữ liệu giá trị 09H
                    3. Lệnh chuyển dữ liệu từ ô nhớ có địa chỉ gián tiếp vào thanh ghi A:
                    • Cú pháp: Mov A,@Ri
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: chuyển dữ liệu của ô nhớ 'có địa chỉ bằng giá trị của thanh ghi Ri' vào thanh ghi A.
                    • Ví dụ: Giả sử trước khi thực hiện lệnh ô nhớ có địa chỉ 33H mang dữ liệu với giá trị là 09H (00001001B) và thanh ghi R1 được thiết lập giá trị là 33H
                    Lệnh Mov A,@R1
                    Khi lệnh được thực hiện A nhận dữ liệu từ ô nhớ có vị trí bằng giá trị được thiết lập trong thanh ghi R1, tức là A nhận dữ liệu từ ô nhớ có địa chỉ là 33H, chú ý: trước đó ô nhớ 33H mang dữ liệu là 09H.
                    Sau khi lệnh được thực hiện A mang giá trị là 09H (00001001B)
                    4. Lệnh đưa dữ liệu vào thanh ghi A
                    • Cú pháp: Mov A,#data
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thiết lập dữ liệu cho thanh ghi A
                    • Ví dụ: Muốn thanh ghi A mang dữ liệu có giá trị là 56H ta thực hiện lệnh
                    Mov A,#56H
                    Sau khi lệnh được thực hiện A mang giá trị là 56H
                    5. Lệnh chuyển dữ liệu từ A vào thanh ghi Rn
                    • Cú pháp: Mov Rn,A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: chuyển dữ liệu từ thanh ghi A vào thanh ghi Rn (n=0-7)
                    • Ví dụ:
                    Mov A,#56H
                    Mov R1,A
                    Sau khi các lệnh được thực hiện R1 mang giá trị là 56H
                    6. Lệnh chuyển dữ liệu từ một ô nhớ có địa chỉ direct vào thanh ghi Rn
                    • Cú pháp: Mov Rn,direct
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: chuyển dữ liệu của ô nhớ có địa chỉ direct vào thanh ghi Rn (n=0-7)
                    • Ví dụ: giả sử ô nhớ 55H mang dữ liệu có giá trị là A3H
                    Mov R4,55H
                    Sau khi các lệnh được thực hiện R4 mang giá trị là A3H
                    7. Thiết đặt dữ liệu cho thanh ghi Rn
                    • Cú pháp: Mov Rn,#data
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thiết đặt dữ liệu cho thanh ghi Rn
                    • Ví dụ: Muốn thanh ghi Rn mang dữ liệu có giá trị là 37H ta thực hiện lệnh
                    Mov A,#37H
                    Sau khi lệnh được thực hiện A mang giá trị là 37H
                    8. Lệnh chuyển dữ liệu từ thanh ghi A vào một ô nhớ có địa chỉ direct
                    • Cú pháp: Mov direct,A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: chuyển dữ liệu từ thanh ghi A vào một ô nhớ có địa chỉ direct.
                    • Ví dụ:
                    Mov A,#77H
                    Mov 69H,A
                    Sau khi các lệnh được thực hiện ô nhớ 69H mang giá trị là 77H (giá trị của các bit được thiết lập trong ô nhớ 69H là 01110111B )
                    9. Lệnh chuyển dữ liệu từ thanh ghi Rn vào một ô nhớ có địa chỉ direct
                    • Cú pháp: Mov direct,Rn
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: chuyển dữ liệu từ thanh ghi A vào một ô nhớ có địa chỉ direct
                    • Ví dụ:
                    Mov Rn,#78H
                    Mov 7AH,Rn
                    Sau khi các lệnh được thực hiện ô nhớ 7AH mang giá trị là 78H
                    10. Lệnh chuyển dữ liệu từ một ô nhớ có địa chỉ direct này vào một ô nhớ có địa chỉ direct khác
                    • Cú pháp: Mov direct,direct
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: chuyển dữ liệu từ ô nhớ có địa chỉ direct này vào một ô nhớ có địa chỉ direct khác
                    • Ví dụ:giả sử thanh ghi 20H mang dữ liệu có giá trị là FFH
                    Mov 22H,20H
                    Sau khi lệnh được thực hiện thanh ghi 22H mang giá trị là FFH
                    11. Lệnh đưa dữ liệu vào ô nhớ có địa chỉ direct
                    • Cú pháp: Mov direct,#data
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: thiết lập dữ liệu cho ô nhớ có địa chỉ direct
                    • Ví dụ:
                    Mov 52H,#43H
                    Sau khi các lệnh được thực hiện ô nhớ 52H mang giá trị là 43H
                    12. Lệnh chuyển dữ liệu từ một ô nhớ có địa chỉ gián tiếp vào ô nhớ có địa chỉ direct
                    • Cú pháp: Mov direct,@Ri
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Chuyển dữ liệu của ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri vào ô nhớ có địa chỉ direct
                    • Ví dụ:
                    Mov 30H,#46H
                    Mov R0,#30H
                    Mov 23H, @R0
                    Sau khi các lệnh được thực hiện ô nhớ 23H mang giá trị là 46H
                    13. Lệnh chuyển dữ liệu từ thanh ghi A vào ô nhớ có địa chỉ gián tiếp
                    • Cú pháp: Mov @Ri,A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Chuyển dữ liệu của thanh ghi A vào ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri
                    • Ví dụ:
                    Mov A,#33H
                    Mov R1,#22H
                    Mov @R0,A
                    Sau khi lệnh được thực hiện ô nhớ 22H mang giá trị là 33H
                    14. Lệnh chuyển dữ liệu từ một ô nhớ có địa chỉ direct vào ô nhớ có địa chỉ gián tiếp
                    • Cú pháp: Mov @Ri,direct
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Chuyển dữ liệu của ô nhớ có địa chỉ direct vào ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri
                    • Ví dụ:
                    Mov 4BH,#2AH
                    Mov R0,#2AH
                    Mov @R0,4BH
                    Sau khi lệnh được thực hiện ô nhớ 2AH mang giá trị là 2AH
                    15. Lệnh đưa dữ liệu vào ô nhớ có địa chỉ gián tiếp
                    • Cú pháp: Mov @Ri,#data
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Thiết đặt dữ liệu cho ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri
                    • Ví dụ:
                    Mov R0,#3BH
                    Mov @R0,#27H
                    Sau khi lệnh được thực hiện ô nhớ 3BH mang giá trị là 27H
                    16. Lệnh đưa dữ liệu vào con trỏ dữ liệu DPTR
                    • Cú pháp: Mov DPTR,#data16
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Thiết đặt dữ liệu cho con trỏ dữ liệu với dữ liệu 16 bit, thực chất dữ liệu được lưu ở hai thanh ghi DPL (byte thấp-địa chỉ byte 82H) và DPH (byte cao-địa chỉ byte 83H).
                    • Ví dụ: Mov DPTR,#3A5FH
                    Sau khi lệnh được thực hiện DPTR mang giá trị là 3A5FH
                    DPL mang giá trị 5FH và DPL mang giá trị 3AH
                    17. Lệnh trao đổi dữ liệu giữa ô nhớ có địa chỉ direct với thanh ghi A
                    • Cú pháp: XCH A,direct
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Trao đổi dữ liệu của thanh ghi A với ô nhớ có địa chỉ direct, tức là sau khi thực hiện lệnh ô nhớ có địa chỉ direct mang dữ liệu của thanh ghi A trước đó và thanh ghi A mang dữ liệu của ô nhớ có địa chỉ direct.
                    • Ví dụ: Mov A,#0FAH
                    Mov 50H,#60H
                    XCH A,50H
                    Kết quả :A mang giá trị là 60H
                    50H mang giá trị là 0FAH
                    18. Lệnh trao đổi dữ liệu giữa thanh ghi Rn và thanh ghi A
                    • Cú pháp: XCH A,Rn
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Trao đổi dữ liệu của thanh ghi A với thanh ghi Rn.
                    19. Lệnh trao đổi dữ liệu giữa thanh ghi có địa chỉ gián tiếp và thanh ghi A
                    • Cú pháp: XCH A,@Ri
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Trao đổi dữ liệu của thanh ghi A với ô nhớ có địa chỉ bằng giá trị lưu giữ trong thanh ghi Ri
                    20. Lệnh trao đổi dữ liệu 4 bit giữa thanh ghi có địa chỉ gián tiếp và thanh ghi A
                    • Cú pháp: XCHD A,@Ri
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Trao đổi dữ liệu của 4 bit thấp ở thanh ghi A với dữ liệu của 4 bit thấp ở ô nhớ có địa chỉ bằng giá trị lưu giữ trong thanh ghi Ri
                    21. Lệnh truy xuất dữ liệu từ ROM nội
                    • Cú pháp: MovC A,@A+DPTR
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Chuyển dữ liệu từ bộ nhớ ROM có địa chỉ bằng giá trị của A cộng với DPTR vào thanh ghi A
                    Các lệnh còn lại trong nhóm lệnh di chuyển
                    MovC A,@A+PC
                    MovC A,@i
                    MovX A,@DPTR
                    MovX A,@Ri
                    MovX @DPTR,A
                    PUSH direct
                    POP direct
                    22. Lệnh OR dữ liệu của ô nhớ có địa chỉ direct với dữ liệu trên thanh ghi A:
                    • Cú pháp: ORL direct,A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thực hiện phép logic OR dữ liệu ở thanh ghi A với dữ liệu của ô nhớ có địa chỉ direct, kết quả được lưu trữ ở ô nhớ có địa chỉ direct.
                    • Ví dụ:
                    mov A,#0Fh
                    mov 5Fh,#0F0h
                    ORL 5Fh,A
                    Kết quả : 5Fh = #0FFh
                    23. Lệnh OR dữ liệu trên ô nhớ có địa chỉ direct với dữ liệu xác định:
                    • Cú pháp: ORL direct,#data
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: thực hiện phép logic OR dữ liệu của ô nhớ có địa chỉ direct với dữ liệu cho trước, kết quả được lưu trữ ở ô nhớ có địa chỉ direct.
                    • Ví dụ:
                    mov 60h,#0F0h
                    ORL 60h,#1Fh
                    Kết quả : 60h = #0FFh
                    24. Lệnh EX-OR dữ liệu ở thanh ghi A với dữ liệu ở thanh ghi Rn:
                    • Cú pháp: XRL A,Rn
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là: 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thực hiện phép logic EX-OR dữ liệu ở thanh ghi A với dữ liệu ở thanh ghi Rn, kết quả được lưu trữ ở thanh ghi A
                    • Ví dụ:
                    mov A,#0F2h
                    mov R3,#0E0h
                    XRL A,R3
                    Kết quả : A = #12h
                    25. Lệnh EX-OR dữ liệu trên thanh ghi A với dữ liệu của ô nhớ có địa chỉ direct:
                    • Cú pháp: XRL A,direct
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thực hiện phép logic EX-OR dữ liệu ở thanh ghi A với dữ liệu của ô nhớ có địa chỉ direct, kết quả được lưu trữ ở thanh ghi A
                    • Ví dụ:
                    mov A,#012h
                    mov 10h,#0E0h
                    XRL A,10h
                    Kết quả : A = #0F2h
                    26. Lệnh EX-OR dữ liệu trên thanh ghi A với dữ liệu của ô nhớ gián tiếp:
                    • Cú pháp: XRL A,@Ri
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thực hiện phép logic EX-OR dữ liệu ở thanh ghi A với dữ liệu của ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri, kết quả được lưu trữ ở thanh ghi A
                    • Ví dụ:
                    mov A,#08h
                    mov 10h,#0E9h
                    mov R0,#10h
                    XRL A,@R0
                    Kết quả : A = #0E1h
                    27. Lệnh EX-OR dữ liệu trên thanh ghi A với dữ liệu xác định:
                    • Cú pháp: XRL A,#data
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thực hiện phép logic EX-OR dữ liệu ở thanh ghi A với dữ liệu cho trước, kết quả được lưu trữ ở thanh ghi A
                    • Ví dụ:
                    mov A,#12h
                    XRL A,#12h
                    Kết quả : A = #0
                    28. Lệnh EX-OR dữ liệu của ô nhớ có địa chỉ direct với dữ liệu trên thanh ghi A:
                    • Cú pháp: XRL direct,A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thực hiện phép logic EX-OR dữ liệu ở thanh ghi A với dữ liệu của ô nhớ có địa chỉ direct, kết quả được lưu trữ ở ô nhớ có địa chỉ direct.
                    • Ví dụ:
                    mov A,#0F2h
                    mov 50h,#0E0h
                    XRL 50h,A
                    Kết quả : 50h = #12h
                    18. Lệnh EX-OR dữ liệu trên ô nhớ có địa chỉ direct với dữ liệu xác định:
                    • Cú pháp: XRL direct,#data
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: thực hiện phép logic EX-OR dữ liệu của ô nhớ có địa chỉ direct với dữ liệu cho trước, kết quả được lưu trữ ở ô nhớ có địa chỉ direct.
                    • Ví dụ:
                    mov 50h,#0E0h
                    XRL 50h,#01h
                    Kết quả : 50h = #0E1h
                    29. Lệnh bù giá trị dữ liệu trên thanh ghi A:
                    • Cú pháp: CPL A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: lấy bù giá trị lưu giữ ở thanh ghi A, các bit có giá trị là 1 chuyển thành 0 và ngược lại các bit có giá trị là 0 chuyển thành 1.
                    • Ví dụ: mov A,#01100111b ;(tương đương 67h)
                    CPL A
                    Kết quả : A = #10011000b (tương đương 98h)
                    30. Lệnh xóa dữ liệu trên thanh ghi A:
                    • Cú pháp: CLR A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: tất cả các bit của thanh ghi A đều được xác lập giá trị 0 .
                    • Ví dụ:
                    mov A,#01100111b
                    CLR A
                    Kết quả : A = #0
                    31. Lệnh xoay trái dữ liệu trên thanh ghi A:
                    • Cú pháp: RL A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thanh ghi A gồm tám bit A7 A6 A5 A4 A3 A2 A1 A0. Khi thực hiện lệnh xoay trái RL A giá trị của các bit được chuyển trang bit ở bên trái nó, giá trị của bit A0 chuyển sang bit A1, giá trị của bit A1 chuyển sang bit A2, tương tự với các bit còn lại, và giá trị của bit A7 chuyển sang bit A0. Minh họa các bit trong thanh ghi A khi thực hiện lệnh như trong hình dưới
                    Các bit ở thanh ghi A — A7 A6 A5 A4 A3 A2 A1 A0
                    Quá trình xoay dữ liệu từ A0 đến A6 — <— <— <— <— <— <— <—
                    Giá trị dữ liệu A7 chuyển sang bit A0 — A7 ——————————————————>A0
                    • Ví dụ:
                    Mov A,#01001001b
                    RL A
                    Kết quả sau khi các lệnh được thực hiện A mang giá trị là 10010010b
                    Giá trị thanh ghi A
                    Trước khi thực hiện lệnh xoay trái 0 1 0 0 1 0 0 1
                    Sau khi thực hiện lệnh xoay trái 1 0 0 1 0 0 1 0
                    32. Lệnh xoay trái dữ liệu trên thanh ghi A cùng với cờ nhớ C:
                    • Cú pháp: RLC A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thanh ghi A gồm tám bit A7 A6 A5 A4 A3 A2 A1 A0. Khi thực hiện lệnh xoay trái A với cờ nhớ RLC A giá trị của các bit được chuyển trang bit ở bên trái nó, giá trị của bit A0 chuyển sang bit A1, giá trị của bit A1 chuyển sang bit A2, tương tự với các bit còn lại, và giá trị của bit A7 chuyển sang cờ nhớ C, giá trị ở cờ nhớ C chuyển sang bit A0
                    Các bit ở thanh ghi A cùng với cờ C — C A7 A6 A5 A4 A3 A2 A1 A0
                    Quá trình xoay dữ liệu từ A0 đến A6 — <— <— <— <— <— <— <— <—
                    Giá trị ở C chuyển sang bit A0 — C ———————————————————>A0
                    • Ví dụ: giả sử cờ nhớ C đang mang giá trị 1
                    Mov A,#11001001b
                    RLC A
                    Kết quả sau khi các lệnh được thực hiện A mang giá trị là 10010011b và C mang giá trị 1
                    Cờ nhớ C Giá trị thanh A
                    Trước khi thực hiện lệnh xoay trái với C 1 1 1 0 0 1 0 0 1
                    Sau khi thực hiện lệnh xoay trái với C 1 1 0 0 1 0 0 1 1
                    33. Lệnh xoay phải dữ liệu trên thanh ghi A:
                    • Cú pháp: RR A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thanh ghi A gồm tám bit A7 A6 A5 A4 A3 A2 A1 A0. Khi thực hiện lệnh xoay phải RR A giá trị của các bit được chuyển trang bit ở bên phải nó, giá trị của bit A7 chuyển sang bit A6, giá trị của bit A6 chuyển sang bit A5, tương tự với các bit còn lại, và giá trị của bit A0 chuyển sang bit A7. Minh họa các bit trong thanh ghi A khi thực hiện lệnh như trong hình dưới
                    Các bit ở thanh ghi A — A7 A6 A5 A4 A3 A2 A1 A0
                    Quá trình xoay dữ liệu từ A7 đến A1 — —> —> —> —> —> —> —>
                    Giá trị dữ liệu A0 chuyển sang bit A7 — A7 <——————————————————A0
                    • Ví dụ:
                    Mov A,#01001001b
                    RL A
                    Kết quả sau khi các lệnh được thực hiện A mang giá trị là 10100100b
                    Giá trị thanh A
                    Trước khi thực hiện lệnh xoay phải 0 1 0 0 1 0 0 1
                    Sau khi thực hiện lệnh xoay phải 1 0 1 0 0 1 0 0
                    34. Lệnh xoay phải dữ liệu trên thanh ghi A cùng với cờ nhớ C:
                    • Cú pháp: RRC A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thanh ghi A gồm tám bit A7 A6 A5 A4 A3 A2 A1 A0. Khi thực hiện lệnh xoay phải A với cờ nhớ -RRC A -giá trị của các bit được chuyển trang bit ở bên phải nó, giá trị của bit A7 chuyển sang bit A6, giá trị của bit A6 chuyển sang bit A5, tương tự với các bit còn lại, và giá trị của bit A0 chuyển sang cờ nhớ C, giá trị ở cờ nhớ C chuyển sang bit A7
                    Các bit ở thanh ghi A cùng với cờ C — C A7 A6 A5 A4 A3 A2 A1 A0
                    Quá trình xoay dữ liệu từ C đến A1 — —> —> —> —> —> —> —> —>
                    Giá trị ở A0 chuyển sang bit C — C <———————————————————A0
                    • Ví dụ: giả sử cờ nhớ C đang mang giá trị 1
                    Mov A,#11001001b
                    RLC A
                    Kết quả sau khi các lệnh được thực hiện A mang giá trị là 11100100b và C mang giá trị 1
                    Cờ nhớ C Giá trị thanh A
                    Trước khi thực hiện lệnh xoay trái với C 1 1 1 0 0 1 0 0 1
                    Sau khi thực hiện lệnh xoay trái với C 1 1 1 1 0 0 1 0 0
                    35. Lệnh xoay 4 bit trên thanh ghi A:
                    • Cú pháp: SWAP A
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: hoán chuyển dữ liệu ở 4 bit thấp lên 4 bit cao và 4 bit cao xuống 4 bit thấp
                    Các bit ở thanh ghi A — A7 A6 A5 A4 A3 A2 A1 A0
                    Dữ liệu trước khi thực hiên lệnh — X7 X6 X5 X4 X3 X2 X1 X0
                    Dữ liệu sau khi thực hiên lệnh — X3 X2 X1 X0 X7 X6 X5 X4
                    • Ví dụ:
                    mov A,#0E7h
                    SWAP A
                    Kết quả : A = # 7Eh

                    II.NHÓM LỆNH RẼ NHÁNH

                    Phần này liên quan đến các câu lệnh được lưu giữ trên ROM, vì vậy cần xem lại phần bộ nhớ ROM trước khi xem phần này.
                    Phần phụ chú:
                    Nhãn: Kí hiệu: rel
                    Nhãn là một chuỗi kí tự do người dùng tự đặt dùng để đánh dấu các đoạn chương trình, nhãn này biểu thị địa chỉ của lệnh khi được lưu trên ROM.
                    Nhãn chỉ được bắt đầu bằng một kí tự chữ hoặc dấu "_" ,không được bắt đầu bằng số ,không có khoảng trắng và kết thúc bằng dấu hai chấm ":"
                    Trong chương trình nhãn không được đặt trùng tên với nhau, và không được trùng với các từ khóa mà chương trình đã sử dụng.
                    Ví dụ : Các nhãn đúng X1: ;S_2: ;_5:s10: ;...
                    Các nhãn sai 1X: ; S_2 ;S 5: ;DW: ,LPT :...
                    Chương trình con: là những đoạn chương trình thực hiện một số lệnh nào đó và được viết ngoài chương trình chính, các chương trình con này được đặt tên bằng một nhãn và kết thúc bằng lệnh RET, chương trình con có thể gọi một chương trình con khác. Chương trình con được chương trình chính sử dụng khi cần thiết bằng các lệnh gọi chương trình con; khi có lệnh gọi chương trình con, Vi điều khiển chuyển về thực hiện các đoạn chương trình của chương trình con, sau khi thực hiện chương trình con Vi điều khiển tiếp tục trở về thực hiện các câu lệnh trong chương trình chính.
                    Chương trình con giúp cho chương trình mạch lạc, dễ hiểu hơn, nếu trong chương trình chính có các đoạn chương trình được lặp đi lặp lại nhiều lần thì các đoạn chương trình đó thường được viết thành một chương trình con và truy xuất bằng một câu lệnh gọi chương trình con. Việc sử dụng chương trình con giúp cho việc tìm lỗi và chỉnh sửa chương trình dễ hơn, nếu chương trình chính sử dụng nhiều lần chương trình con, khi cần sửa đổi chỉ cần thay đổi các câu lệnh trong chương trình con.
                    Chương trình con bắt đầu bằng một nhãn và kết thúc bằng lệnh Reti, chương trình con có thể đặt ở đầu hoặc cuối chương trình.
                    1. Lệnh gọi chương trình con dùng địa chỉ tuyệt đối
                    • Cú pháp: ACall addr11
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình con bắt đầu từ địa chỉ addr11 trên Rom, địa chỉ addr11 có thể thay bằng nhãn bắt đầu của một chương trình con. Câu lệnh được thực hiện khi địa chỉ addr11 cách lệnh gọi không quá 2 KByte .
                    • Ví dụ: ACall 45A6H
                    2. Lệnh gọi chương trình con dùng địa chỉ tuyệt đối
                    • Cú pháp: ACall addr16
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình con bắt đầu từ địa chỉ addr16 trên Rom, địa chỉ addr16 có thay bằng nhãn bắt đầu chương trình con. Câu lệnh có thể gọi chương trình con ở bất kì vị trí nào trên Rom vì khoảng cách từ lệnh gọi đến chương trình con là 64 KByte.
                    3. Lệnh kết thúc chương trình con
                    • Cú pháp: Ret
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Lệnh này dùng kết thúc chương trình con, khi gặp lệnh này Vi điều khiển quay về thực hiện lệnh ở chương trình chính.
                    4. Lệnh kết thúc chương trình con phục vụ ngắt
                    • Cú pháp: Reti
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Lệnh này dùng kết thúc chương trình con ngắt, khi gặp lệnh này Vi điều khiển quay về thực hiện lệnh ở chương trình chính.
                    5. Lệnh nhảy ngắn đến địa chỉ tuyệt đối
                    • Cú pháp: AJMP addr11
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình bắt đầu tại địa chỉ addr11 trên Rom, địa chỉ addr11 có thể thay bằng nhãn . Câu lệnh chỉ được thực hiện khi vị trí lưu chương trình cần thực hiện cách lệnh gọi không quá 2 KByte
                    6. Lệnh nhảy dài đến địa chỉ tuyệt đối
                    • Cú pháp: LJMP addr16
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình bắt đầu tại địa chỉ addr11 trên Rom, địa chỉ addr11 có thể thay bằng nhãn . Câu lệnh có thể gọi chương trình ở bất kì vị trí nào trên Rom vì khoảng cách từ lệnh gọi đến chương trình con là 64 KByte
                    7. Lệnh nhảy tương đối
                    • Cú pháp: SJMP rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển đến thực hiện các câu lệnh của chương trình được đánh dấu bằng nhãn. Câu lệnh chỉ được thực hiện địa chỉ của nhãn cách lệnh gọi không quá 128 Byte.(cả tới hoặc lùi )
                    8. Lệnh nhảy gián tiếp
                    • Cú pháp: JMP @A+DPTR
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển đến thực hiện các câu lệnh của chương trình có địa chỉ trên ROM bằng giá trị của A cộng với giá trị lưu giữ trên DPTR
                    9. Lệnh nhảy thuận với cờ Zero
                    • Cú pháp: JZ rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Nếu cờ Zero có giá trị 1(tức thanh ghi A có giá trị 0), Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                    Nếu cờ Zero có giá trị 0(tức thanh ghi A có giá trị khác 0), Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                    10. Lệnh nhảy nghịch với cờ Zero
                    • Cú pháp: JNZ rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Nếu cờ Zero có giá trị 0(tức thanh ghi A có giá trị khác 0), Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                    Nếu cờ Zero có giá trị 1(tức thanh ghi A có giá trị 0), Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                    11. Lệnh nhảy thuận với cờ C
                    • Cú pháp: JC rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Nếu cờ C có giá trị 1, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                    Nếu cờ C có giá trị 0, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                    12. Lệnh nhảy nghịch với cờ Zero
                    • Cú pháp: JNC rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Nếu cờ C có giá trị 0, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                    Nếu cờ C có giá trị 1, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                    13. Lệnh nhảy thuận với giá trị của bit nhớ
                    • Cú pháp: JB bit,rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Nếu bit nhớ có giá trị 1, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                    Nếu bit nhớ có giá trị 0, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                    14. Lệnh nhảy nghịch với giá trị của bit nhớ
                    • Cú pháp: JNC bit,rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Nếu bit nhớ có giá trị 0, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                    Nếu bit nhớ có giá trị 1, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                    15. Lệnh nhảy thuận với giá trị của bit nhớ và xóa bit
                    • Cú pháp: JBC bit,rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Nếu bit nhớ có giá trị 1, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt, đồng thời xóa giá trị chứa trong bit nhớ đó tức là đưa bit nhớ đó về giá trị 0
                    Nếu bit nhớ có giá trị 0, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                    16. Lệnh nhảy có điều kiện(so sánh giá trị của thanh ghi A và Rn)
                    • Cú pháp: CJNE A,direct,rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt nếu giá trị của thanh ghi A khác giá trị của ô nhớ có địa chỉ direct, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế
                    Ảnh hưởng của lệnh đến cờ nhớ C:
                    Nếu giá trị của thanh ghi A ≥ giá trị của ô nhớ có địa chỉ direct thì bit C có giá trị 0
                    Nếu giá trị của thanh ghi A < giá trị của ô nhớ có địa chỉ direct thì bit C có giá trị 1
                    17. Lệnh nhảy có điều kiện(so sánh giá trị của thanh ghi A và dữ liệu cho trước)
                    • Cú pháp: CJNE A,#data,rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt, nếu giá trị của thanh ghi A khác giá trị dữ liệu cho trước, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế
                    Ảnh hưởng của lệnh đến cờ nhớ C:
                    Nếu giá trị của thanh ghi A ≥ giá trị dữ liệu cho trước thì bit C có giá trị 0
                    Nếu giá trị của thanh ghi A < giá trị dữ liệu cho trước thì bit C có giá trị 1
                    18. Lệnh nhảy có điều kiện(so sánh giá trị của thanh ghi Rn và dữ liệu cho trước)
                    • Cú pháp: CJNE Rn,#data,rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt nếu giá trị của thanh ghi Rn khác giá trị dữ liệu cho trước, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế.
                    Ảnh hưởng của lệnh đến cờ nhớ C:
                    Nếu giá trị của thanh ghi A ≥ giá trị dữ liệu cho trước thì bit C có giá trị 0
                    Nếu giá trị của thanh ghi A < giá trị dữ liệu cho trước thì bit C có giá trị 1
                    19. Lệnh nhảy có điều kiện(so sánh giá trị của ô nhớ có địa chỉ gián tiếp và dữ liệu cho trước)
                    • Cú pháp: CJNE @Ri,#data,rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt nếu giá trị của ô nhớ có địa chỉ bằng giá trị của Ri khác giá trị dữ liệu cho trước, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế
                    Ảnh hưởng của lệnh đến cờ nhớ C:
                    Nếu giá trị của ô nhớ có địa chỉ gián tiếp ≥ giá trị dữ liệu cho trước thì bit C có giá trị 0
                    Nếu giá trị của ô nhớ có địa chỉ gián tiếp < giá trị dữ liệu cho trước thì bit C có giá trị 1
                    20. Lệnh nhảy có điều kiện kết hợp với lệnh giảm trên thanh ghi Rn
                    • Cú pháp: DJNZ Rn,rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Giảm giá trị của thanh ghi Rn xuống 1 đơn vị, và
                    -Nếu giá trị trong thanh ghi Rn khác 0, Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt.
                    -Nếu giá trị trong thanh ghi Rn bằng 0, Vi điều khiển thực hiện lệnh kế tiếp
                    21. Lệnh nhảy có điều kiện kết hợp với lệnh giảm trên ô nhớ có địa chỉ direct
                    • Cú pháp: DJNZ direct,rel
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng:
                    Giảm giá trị của ô nhớ có địa chỉ direct xuống 1 đơn vị
                    Nếu giá trị trong ô nhớ có địa chỉ direct khác 0, Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt.
                    Nếu giá trị trong ô nhớ có địa chỉ direct bằng 0, Vi điều khiển thực hiện lệnh kế tiếp
                    22. Lệnh delay 1 chu kì máy
                    • Cú pháp: NOP
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: delay trong 1 chu kì máy
                    III.NHÓM LỆNH XỬ LÍ BIT
                    Qui ước: trong câu lệnh "bit" đại diện cho một địa chỉ của bit nhớ
                    1. Lệnh xoá cờ nhớ C
                    • Cú pháp: CLR C
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Xóa cờ nhớ C - tức là đưa giá trị của cờ nhớ C về 0
                    2. Lệnh xoá bit
                    • Cú pháp: CLR bit
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Xóa giá trị của bit nhớ có địa chỉ xác định - tức là đưa giá trị bit đó về 0
                    3. Lệnh thiết đặt cờ nhớ C
                    • Cú pháp: SetB C
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: thiết đặt cờ nhớ C - tức là đưa giá trị của cờ nhớ C lên 1
                    4. Lệnh thiết đặt giá trị cho bit nhớ
                    • Cú pháp: SetB bit
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Thiết đặt giá trị bit nhớ có địa chỉ xác định - tức là đưa giá trị bit đó lên 1
                    5. Lệnh bù cờ nhớ C
                    • Cú pháp: CPL C
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: đổi giá trị của cờ nhớ C, nếu trước đó C có giá trị 0 chuyển thành 1, và ngược lại nếu trước đó C có giá trị 1 chuyển thành 0
                    6. Lệnh bù bit
                    • Cú pháp: CPL bit
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: đổi giá trị của bit có địa chỉ xác định, nếu trước đó bit đó có giá trị 0 chuyển thành 1, và ngược lại nếu trước đó bit đó có giá trị 1 chuyển thành 0
                    7. Lệnh And cờ nhớ C với bit
                    • Cú pháp: ANL C,bit
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Thực hiện phép And cờ nhớ C và bit có địa chỉ xác định, kết quả lưu ở C
                    8. Lệnh And cờ nhớ C với bit đã được lấy bù
                    • Cú pháp: ANL C,/bit
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Thực hiện phép And cờ nhớ C và bit có địa chỉ xác định đã được lấy bù, kết quả lưu ở C
                    9. Lệnh OR cờ nhớ C với bit
                    • Cú pháp: ORL C,bit
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Thực hiện phép And cờ nhớ C và bit có địa chỉ xác định, kết quả lưu ở C
                    10. Lệnh OR cờ nhớ C với bit đã được lấy bù
                    • Cú pháp: ORL C,/bit
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Thực hiện phép And cờ nhớ C và bit có địa chỉ xác định đã được lấy bù, kết quả lưu ở C
                    11. Lệnh chuyển giá trị bit có địa chỉ xác định vào cờ nhớ C
                    • Cú pháp: Mov C,bit
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 1 chu kì máy
                    • Công dụng: Thực hiện chuyển giá trị của bit có địa chỉ xác định vào cờ nhớ C
                    12. Lệnh chuyển giá trị cờ nhớ C vào bit có địa chỉ xác định
                    • Cú pháp: Mov bit,C
                    • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                    • Thời gian thực hiện: 2 chu kì máy
                    • Công dụng: Thực hiện chuyển giá trị của cờ nhớ C vào bit có địa chỉ xác định
                    Last edited by s2_dientu_s2; 27-11-2011, 11:29.

                    Comment


                    • #25
                      Nhóm lệnh của 8051


                      2.2. NHÓM LỆNH DI CHUYỂN
                      2.2.1. Lệnh chuyển dữ liệu từ một thanh ghi Rn vào thanh ghi A:
                      • Cú pháp: Mov A,Rn
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Chuyển dữ liệu của thanh ghi Rn vào thanh ghi A, dữ liệu trên thanh ghi Rn không đổi
                      • Ví dụ: Giả sử thanh ghi R5 mang dữ liệu với giá trị là 0A5H (10100101B)
                      Lệnh Mov A,R5
                      Sau khi lệnh được thực hiện A mang dữ liệu giá trị A5H, Rn không đổi
                      giá trị thanh ghi A trước khi thực hiện lệnh không cần quan tâm
                      2.2.2. Lệnh chuyển dữ liệu từ ô nhớ có địa chỉ direct vào thanh ghi A:
                      • Cú pháp: Mov A,direct
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: chuyển dữ liệu của ô nhớ có địa chỉ bằng direct vào thanh ghi A.
                      • Ví dụ: Giả sử thanh ghi có địa chỉ 33H mang dữ liệu với giá trị là 09H (00001001B)
                      Lệnh Mov A,33H
                      Sau khi lệnh được thực hiện A mang dữ liệu giá trị 09H
                      2.2.3. Lệnh chuyển dữ liệu từ ô nhớ có địa chỉ gián tiếp vào thanh ghi A:
                      • Cú pháp: Mov A,@Ri
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: chuyển dữ liệu của ô nhớ 'có địa chỉ bằng giá trị của thanh ghi Ri' vào thanh ghi A.
                      • Ví dụ: Giả sử trước khi thực hiện lệnh ô nhớ có địa chỉ 33H mang dữ liệu với giá trị là 09H (00001001B) và thanh ghi R1 được thiết lập giá trị là 33H
                      Lệnh Mov A,@R1
                      Khi lệnh được thực hiện A nhận dữ liệu từ ô nhớ có vị trí bằng giá trị được thiết lập trong thanh ghi R1, tức là A nhận dữ liệu từ ô nhớ có địa chỉ là 33H, chú ý: trước đó ô nhớ 33H mang dữ liệu là 09H.
                      Sau khi lệnh được thực hiện A mang giá trị là 09H (00001001B)
                      2.2.4. Lệnh đưa dữ liệu vào thanh ghi A
                      • Cú pháp: Mov A,#data
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thiết lập dữ liệu cho thanh ghi A
                      • Ví dụ: Muốn thanh ghi A mang dữ liệu có giá trị là 56H ta thực hiện lệnh
                      Mov A,#56H
                      Sau khi lệnh được thực hiện A mang giá trị là 56H
                      2.2.5. Lệnh chuyển dữ liệu từ A vào thanh ghi Rn
                      • Cú pháp: Mov Rn,A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: chuyển dữ liệu từ thanh ghi A vào thanh ghi Rn (n=0-7)
                      • Ví dụ:
                      Mov A,#56H
                      Mov R1,A
                      Sau khi các lệnh được thực hiện R1 mang giá trị là 56H
                      2.2.6. Lệnh chuyển dữ liệu từ một ô nhớ có địa chỉ direct vào thanh ghi Rn
                      • Cú pháp: Mov Rn,direct
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: chuyển dữ liệu của ô nhớ có địa chỉ direct vào thanh ghi Rn (n=0-7)
                      • Ví dụ: giả sử ô nhớ 55H mang dữ liệu có giá trị là A3H
                      Mov R4,55H
                      Sau khi các lệnh được thực hiện R4 mang giá trị là A3H
                      2.2.7. Thiết đặt dữ liệu cho thanh ghi Rn
                      • Cú pháp: Mov Rn,#data
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thiết đặt dữ liệu cho thanh ghi Rn
                      • Ví dụ: Muốn thanh ghi Rn mang dữ liệu có giá trị là 37H ta thực hiện lệnh
                      Mov A,#37H
                      Sau khi lệnh được thực hiện A mang giá trị là 37H
                      2.2.8. Lệnh chuyển dữ liệu từ thanh ghi A vào một ô nhớ có địa chỉ direct
                      • Cú pháp: Mov direct,A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: chuyển dữ liệu từ thanh ghi A vào một ô nhớ có địa chỉ direct.
                      • Ví dụ:
                      Mov A,#77H
                      Mov 69H,A
                      Sau khi các lệnh được thực hiện ô nhớ 69H mang giá trị là 77H (giá trị của các bit được thiết lập trong ô nhớ 69H là 01110111B )
                      2.2.9. Lệnh chuyển dữ liệu từ thanh ghi Rn vào một ô nhớ có địa chỉ direct
                      • Cú pháp: Mov direct,Rn
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: chuyển dữ liệu từ thanh ghi A vào một ô nhớ có địa chỉ direct
                      • Ví dụ:
                      Mov Rn,#78H
                      Mov 7AH,Rn
                      Sau khi các lệnh được thực hiện ô nhớ 7AH mang giá trị là 78H
                      2.2.10. Lệnh chuyển dữ liệu từ một ô nhớ có địa chỉ direct này vào một ô nhớ có địa chỉ direct khác
                      • Cú pháp: Mov direct,direct
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: chuyển dữ liệu từ ô nhớ có địa chỉ direct này vào một ô nhớ có địa chỉ direct khác
                      • Ví dụ:giả sử thanh ghi 20H mang dữ liệu có giá trị là FFH
                      Mov 22H,20H
                      Sau khi lệnh được thực hiện thanh ghi 22H mang giá trị là FFH
                      2.2.11. Lệnh đưa dữ liệu vào ô nhớ có địa chỉ direct
                      • Cú pháp: Mov direct,#data
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: thiết lập dữ liệu cho ô nhớ có địa chỉ direct
                      • Ví dụ:
                      Mov 52H,#43H
                      Sau khi các lệnh được thực hiện ô nhớ 52H mang giá trị là 43H
                      2.2.12. Lệnh chuyển dữ liệu từ một ô nhớ có địa chỉ gián tiếp vào ô nhớ có địa chỉ direct
                      • Cú pháp: Mov direct,@Ri
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Chuyển dữ liệu của ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri vào ô nhớ có địa chỉ direct
                      • Ví dụ:
                      Mov 30H,#46H
                      Mov R0,#30H
                      Mov 23H, @R0
                      Sau khi các lệnh được thực hiện ô nhớ 23H mang giá trị là 46H
                      2.2.13. Lệnh chuyển dữ liệu từ thanh ghi A vào ô nhớ có địa chỉ gián tiếp
                      • Cú pháp: Mov @Ri,A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Chuyển dữ liệu của thanh ghi A vào ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri
                      • Ví dụ:
                      Mov A,#33H
                      Mov R1,#22H
                      Mov @R0,A
                      Sau khi lệnh được thực hiện ô nhớ 22H mang giá trị là 33H
                      2.2.14. Lệnh chuyển dữ liệu từ một ô nhớ có địa chỉ direct vào ô nhớ có địa chỉ gián tiếp
                      • Cú pháp: Mov @Ri,direct
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Chuyển dữ liệu của ô nhớ có địa chỉ direct vào ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri
                      • Ví dụ:
                      Mov 4BH,#2AH
                      Mov R0,#2AH
                      Mov @R0,4BH
                      Sau khi lệnh được thực hiện ô nhớ 2AH mang giá trị là 2AH
                      2.2.15. Lệnh đưa dữ liệu vào ô nhớ có địa chỉ gián tiếp
                      • Cú pháp: Mov @Ri,#data
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Thiết đặt dữ liệu cho ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri
                      • Ví dụ:
                      Mov R0,#3BH
                      Mov @R0,#27H
                      Sau khi lệnh được thực hiện ô nhớ 3BH mang giá trị là 27H
                      2.2.16. Lệnh đưa dữ liệu vào con trỏ dữ liệu DPTR
                      • Cú pháp: Mov DPTR,#data16
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Thiết đặt dữ liệu cho con trỏ dữ liệu với dữ liệu 16 bit, thực chất dữ liệu được lưu ở hai thanh ghi DPL (byte thấp-địa chỉ byte 82H) và DPH (byte cao-địa chỉ byte 83H).
                      • Ví dụ: Mov DPTR,#3A5FH
                      Sau khi lệnh được thực hiện DPTR mang giá trị là 3A5FH
                      DPL mang giá trị 5FH và DPL mang giá trị 3AH
                      2.2.17. Lệnh trao đổi dữ liệu giữa ô nhớ có địa chỉ direct với thanh ghi A
                      • Cú pháp: XCH A,direct
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Trao đổi dữ liệu của thanh ghi A với ô nhớ có địa chỉ direct, tức là sau khi thực hiện lệnh ô nhớ có địa chỉ direct mang dữ liệu của thanh ghi A trước đó và thanh ghi A mang dữ liệu của ô nhớ có địa chỉ direct.
                      • Ví dụ: Mov A,#0FAH
                      Mov 50H,#60H
                      XCH A,50H
                      Kết quả :A mang giá trị là 60H
                      50H mang giá trị là 0FAH
                      2.2.18. Lệnh trao đổi dữ liệu giữa thanh ghi Rn và thanh ghi A
                      • Cú pháp: XCH A,Rn
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Trao đổi dữ liệu của thanh ghi A với thanh ghi Rn.
                      2.2.19. Lệnh trao đổi dữ liệu giữa thanh ghi có địa chỉ gián tiếp và thanh ghi A
                      • Cú pháp: XCH A,@Ri
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Trao đổi dữ liệu của thanh ghi A với ô nhớ có địa chỉ bằng giá trị lưu giữ trong thanh ghi Ri
                      2.2.20. Lệnh trao đổi dữ liệu 4 bit giữa thanh ghi có địa chỉ gián tiếp và thanh ghi A
                      • Cú pháp: XCHD A,@Ri
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Trao đổi dữ liệu của 4 bit thấp ở thanh ghi A với dữ liệu của 4 bit thấp ở ô nhớ có địa chỉ bằng giá trị lưu giữ trong thanh ghi Ri
                      2.2.21. Lệnh truy xuất dữ liệu từ ROM nội
                      • Cú pháp: MovC A,@A+DPTR
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Chuyển dữ liệu từ bộ nhớ ROM có địa chỉ bằng giá trị của A cộng với DPTR vào thanh ghi A
                      Các lệnh còn lại trong nhóm lệnh di chuyển
                      MovC A,@A+PC
                      MovC A,@i
                      MovX A,@DPTR
                      MovX A,@Ri
                      MovX @DPTR,A
                      PUSH direct
                      POP direct
                      11. Lệnh OR dữ liệu của ô nhớ có địa chỉ direct với dữ liệu trên thanh ghi A:
                      • Cú pháp: ORL direct,A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thực hiện phép logic OR dữ liệu ở thanh ghi A với dữ liệu của ô nhớ có địa chỉ direct, kết quả được lưu trữ ở ô nhớ có địa chỉ direct.
                      • Ví dụ:
                      mov A,#0Fh
                      mov 5Fh,#0F0h
                      ORL 5Fh,A
                      Kết quả : 5Fh = #0FFh
                      12. Lệnh OR dữ liệu trên ô nhớ có địa chỉ direct với dữ liệu xác định:
                      • Cú pháp: ORL direct,#data
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: thực hiện phép logic OR dữ liệu của ô nhớ có địa chỉ direct với dữ liệu cho trước, kết quả được lưu trữ ở ô nhớ có địa chỉ direct.
                      • Ví dụ:
                      mov 60h,#0F0h
                      ORL 60h,#1Fh
                      Kết quả : 60h = #0FFh
                      13. Lệnh EX-OR dữ liệu ở thanh ghi A với dữ liệu ở thanh ghi Rn:
                      • Cú pháp: XRL A,Rn
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là: 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thực hiện phép logic EX-OR dữ liệu ở thanh ghi A với dữ liệu ở thanh ghi Rn, kết quả được lưu trữ ở thanh ghi A
                      • Ví dụ:
                      mov A,#0F2h
                      mov R3,#0E0h
                      XRL A,R3
                      Kết quả : A = #12h
                      14. Lệnh EX-OR dữ liệu trên thanh ghi A với dữ liệu của ô nhớ có địa chỉ direct:
                      • Cú pháp: XRL A,direct
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thực hiện phép logic EX-OR dữ liệu ở thanh ghi A với dữ liệu của ô nhớ có địa chỉ direct, kết quả được lưu trữ ở thanh ghi A
                      • Ví dụ:
                      mov A,#012h
                      mov 10h,#0E0h
                      XRL A,10h
                      Kết quả : A = #0F2h
                      15. Lệnh EX-OR dữ liệu trên thanh ghi A với dữ liệu của ô nhớ gián tiếp:
                      • Cú pháp: XRL A,@Ri
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thực hiện phép logic EX-OR dữ liệu ở thanh ghi A với dữ liệu của ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri, kết quả được lưu trữ ở thanh ghi A
                      • Ví dụ:
                      mov A,#08h
                      mov 10h,#0E9h
                      mov R0,#10h
                      XRL A,@R0
                      Kết quả : A = #0E1h
                      16. Lệnh EX-OR dữ liệu trên thanh ghi A với dữ liệu xác định:
                      • Cú pháp: XRL A,#data
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thực hiện phép logic EX-OR dữ liệu ở thanh ghi A với dữ liệu cho trước, kết quả được lưu trữ ở thanh ghi A
                      • Ví dụ:
                      mov A,#12h
                      XRL A,#12h
                      Kết quả : A = #0
                      17. Lệnh EX-OR dữ liệu của ô nhớ có địa chỉ direct với dữ liệu trên thanh ghi A:
                      • Cú pháp: XRL direct,A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thực hiện phép logic EX-OR dữ liệu ở thanh ghi A với dữ liệu của ô nhớ có địa chỉ direct, kết quả được lưu trữ ở ô nhớ có địa chỉ direct.
                      • Ví dụ:
                      mov A,#0F2h
                      mov 50h,#0E0h
                      XRL 50h,A
                      Kết quả : 50h = #12h
                      18. Lệnh EX-OR dữ liệu trên ô nhớ có địa chỉ direct với dữ liệu xác định:
                      • Cú pháp: XRL direct,#data
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: thực hiện phép logic EX-OR dữ liệu của ô nhớ có địa chỉ direct với dữ liệu cho trước, kết quả được lưu trữ ở ô nhớ có địa chỉ direct.
                      • Ví dụ:
                      mov 50h,#0E0h
                      XRL 50h,#01h
                      Kết quả : 50h = #0E1h
                      19. Lệnh bù giá trị dữ liệu trên thanh ghi A:
                      • Cú pháp: CPL A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: lấy bù giá trị lưu giữ ở thanh ghi A, các bit có giá trị là 1 chuyển thành 0 và ngược lại các bit có giá trị là 0 chuyển thành 1.
                      • Ví dụ: mov A,#01100111b ;(tương đương 67h)
                      CPL A
                      Kết quả : A = #10011000b (tương đương 98h)
                      20. Lệnh xóa dữ liệu trên thanh ghi A:
                      • Cú pháp: CLR A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: tất cả các bit của thanh ghi A đều được xác lập giá trị 0 .
                      • Ví dụ:
                      mov A,#01100111b
                      CLR A
                      Kết quả : A = #0
                      • 21. Lệnh xoay trái dữ liệu trên thanh ghi A:
                      • Cú pháp: RL A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thanh ghi A gồm tám bit A7 A6 A5 A4 A3 A2 A1 A0. Khi thực hiện lệnh xoay trái RL A giá trị của các bit được chuyển trang bit ở bên trái nó, giá trị của bit A0 chuyển sang bit A1, giá trị của bit A1 chuyển sang bit A2, tương tự với các bit còn lại, và giá trị của bit A7 chuyển sang bit A0. Minh họa các bit trong thanh ghi A khi thực hiện lệnh như trong hình dưới
                      Các bit ở thanh ghi A — A7 A6 A5 A4 A3 A2 A1 A0
                      Quá trình xoay dữ liệu từ A0 đến A6 — <— <— <— <— <— <— <—
                      Giá trị dữ liệu A7 chuyển sang bit A0 — A7 ——————————————————>A0
                      • Ví dụ:
                      Mov A,#01001001b
                      RL A
                      Kết quả sau khi các lệnh được thực hiện A mang giá trị là 10010010b
                      Giá trị thanh ghi A
                      Trước khi thực hiện lệnh xoay trái 0 1 0 0 1 0 0 1
                      Sau khi thực hiện lệnh xoay trái 1 0 0 1 0 0 1 0
                      22. Lệnh xoay trái dữ liệu trên thanh ghi A cùng với cờ nhớ C:
                      • Cú pháp: RLC A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thanh ghi A gồm tám bit A7 A6 A5 A4 A3 A2 A1 A0. Khi thực hiện lệnh xoay trái A với cờ nhớ RLC A giá trị của các bit được chuyển trang bit ở bên trái nó, giá trị của bit A0 chuyển sang bit A1, giá trị của bit A1 chuyển sang bit A2, tương tự với các bit còn lại, và giá trị của bit A7 chuyển sang cờ nhớ C, giá trị ở cờ nhớ C chuyển sang bit A0
                      Các bit ở thanh ghi A cùng với cờ C — C A7 A6 A5 A4 A3 A2 A1 A0
                      Quá trình xoay dữ liệu từ A0 đến A6 — <— <— <— <— <— <— <— <—
                      Giá trị ở C chuyển sang bit A0 — C ———————————————————>A0
                      • Ví dụ: giả sử cờ nhớ C đang mang giá trị 1
                      Mov A,#11001001b
                      RLC A
                      Kết quả sau khi các lệnh được thực hiện A mang giá trị là 10010011b và C mang giá trị 1
                      Cờ nhớ C Giá trị thanh A
                      Trước khi thực hiện lệnh xoay trái với C 1 1 1 0 0 1 0 0 1
                      Sau khi thực hiện lệnh xoay trái với C 1 1 0 0 1 0 0 1 1
                      23. Lệnh xoay phải dữ liệu trên thanh ghi A:
                      • Cú pháp: RR A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thanh ghi A gồm tám bit A7 A6 A5 A4 A3 A2 A1 A0. Khi thực hiện lệnh xoay phải RR A giá trị của các bit được chuyển trang bit ở bên phải nó, giá trị của bit A7 chuyển sang bit A6, giá trị của bit A6 chuyển sang bit A5, tương tự với các bit còn lại, và giá trị của bit A0 chuyển sang bit A7. Minh họa các bit trong thanh ghi A khi thực hiện lệnh như trong hình dưới
                      Các bit ở thanh ghi A — A7 A6 A5 A4 A3 A2 A1 A0
                      Quá trình xoay dữ liệu từ A7 đến A1 — —> —> —> —> —> —> —>
                      Giá trị dữ liệu A0 chuyển sang bit A7 — A7 <——————————————————A0
                      • Ví dụ:
                      Mov A,#01001001b
                      RL A
                      Kết quả sau khi các lệnh được thực hiện A mang giá trị là 10100100b
                      Giá trị thanh A
                      Trước khi thực hiện lệnh xoay phải 0 1 0 0 1 0 0 1
                      Sau khi thực hiện lệnh xoay phải 1 0 1 0 0 1 0 0
                      24. Lệnh xoay phải dữ liệu trên thanh ghi A cùng với cờ nhớ C:
                      • Cú pháp: RRC A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thanh ghi A gồm tám bit A7 A6 A5 A4 A3 A2 A1 A0. Khi thực hiện lệnh xoay phải A với cờ nhớ -RRC A -giá trị của các bit được chuyển trang bit ở bên phải nó, giá trị của bit A7 chuyển sang bit A6, giá trị của bit A6 chuyển sang bit A5, tương tự với các bit còn lại, và giá trị của bit A0 chuyển sang cờ nhớ C, giá trị ở cờ nhớ C chuyển sang bit A7
                      Các bit ở thanh ghi A cùng với cờ C — C A7 A6 A5 A4 A3 A2 A1 A0
                      Quá trình xoay dữ liệu từ C đến A1 — —> —> —> —> —> —> —> —>
                      Giá trị ở A0 chuyển sang bit C — C <———————————————————A0
                      • Ví dụ: giả sử cờ nhớ C đang mang giá trị 1
                      Mov A,#11001001b
                      RLC A
                      Kết quả sau khi các lệnh được thực hiện A mang giá trị là 11100100b và C mang giá trị 1
                      Cờ nhớ C Giá trị thanh A
                      Trước khi thực hiện lệnh xoay trái với C 1 1 1 0 0 1 0 0 1
                      Sau khi thực hiện lệnh xoay trái với C 1 1 1 1 0 0 1 0 0
                      25. Lệnh xoay 4 bit trên thanh ghi A:
                      • Cú pháp: SWAP A
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: hoán chuyển dữ liệu ở 4 bit thấp lên 4 bit cao và 4 bit cao xuống 4 bit thấp
                      Các bit ở thanh ghi A — A7 A6 A5 A4 A3 A2 A1 A0
                      Dữ liệu trước khi thực hiên lệnh — X7 X6 X5 X4 X3 X2 X1 X0
                      Dữ liệu sau khi thực hiên lệnh — X3 X2 X1 X0 X7 X6 X5 X4
                      • Ví dụ:
                      mov A,#0E7h
                      SWAP A
                      Kết quả : A = # 7Eh

                      2.5.NHÓM LỆNH RẼ NHÁNH Trang 5

                      Phần này liên quan đến các câu lệnh được lưu giữ trên ROM, vì vậy cần xem lại phần bộ nhớ ROM trước khi xem phần này.
                      Phần phụ chú:
                      Nhãn: Kí hiệu: rel
                      Nhãn là một chuỗi kí tự do người dùng tự đặt dùng để đánh dấu các đoạn chương trình, nhãn này biểu thị địa chỉ của lệnh khi được lưu trên ROM.
                      Nhãn chỉ được bắt đầu bằng một kí tự chữ hoặc dấu "_" ,không được bắt đầu bằng số ,không có khoảng trắng và kết thúc bằng dấu hai chấm ":"
                      Trong chương trình nhãn không được đặt trùng tên với nhau, và không được trùng với các từ khóa mà chương trình đã sử dụng.
                      Ví dụ : Các nhãn đúng X1: ;S_2: ;_5:s10: ;...
                      Các nhãn sai 1X: ; S_2 ;S 5: ;DW: ,LPT :...
                      Chương trình con: là những đoạn chương trình thực hiện một số lệnh nào đó và được viết ngoài chương trình chính, các chương trình con này được đặt tên bằng một nhãn và kết thúc bằng lệnh RET, chương trình con có thể gọi một chương trình con khác. Chương trình con được chương trình chính sử dụng khi cần thiết bằng các lệnh gọi chương trình con; khi có lệnh gọi chương trình con, Vi điều khiển chuyển về thực hiện các đoạn chương trình của chương trình con, sau khi thực hiện chương trình con Vi điều khiển tiếp tục trở về thực hiện các câu lệnh trong chương trình chính.
                      Chương trình con giúp cho chương trình mạch lạc, dễ hiểu hơn, nếu trong chương trình chính có các đoạn chương trình được lặp đi lặp lại nhiều lần thì các đoạn chương trình đó thường được viết thành một chương trình con và truy xuất bằng một câu lệnh gọi chương trình con. Việc sử dụng chương trình con giúp cho việc tìm lỗi và chỉnh sửa chương trình dễ hơn, nếu chương trình chính sử dụng nhiều lần chương trình con, khi cần sửa đổi chỉ cần thay đổi các câu lệnh trong chương trình con.
                      Chương trình con bắt đầu bằng một nhãn và kết thúc bằng lệnh Reti, chương trình con có thể đặt ở đầu hoặc cuối chương trình.
                      2.5.1. Lệnh gọi chương trình con dùng địa chỉ tuyệt đối
                      • Cú pháp: ACall addr11
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình con bắt đầu từ địa chỉ addr11 trên Rom, địa chỉ addr11 có thể thay bằng nhãn bắt đầu của một chương trình con. Câu lệnh được thực hiện khi địa chỉ addr11 cách lệnh gọi không quá 2 KByte .
                      • Ví dụ: ACall 45A6H
                      2.5.2. Lệnh gọi chương trình con dùng địa chỉ tuyệt đối
                      • Cú pháp: ACall addr16
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình con bắt đầu từ địa chỉ addr16 trên Rom, địa chỉ addr16 có thay bằng nhãn bắt đầu chương trình con. Câu lệnh có thể gọi chương trình con ở bất kì vị trí nào trên Rom vì khoảng cách từ lệnh gọi đến chương trình con là 64 KByte.
                      2.5.3. Lệnh kết thúc chương trình con
                      • Cú pháp: Ret
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Lệnh này dùng kết thúc chương trình con, khi gặp lệnh này Vi điều khiển quay về thực hiện lệnh ở chương trình chính.
                      2.5.4. Lệnh kết thúc chương trình con phục vụ ngắt
                      • Cú pháp: Reti
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Lệnh này dùng kết thúc chương trình con ngắt, khi gặp lệnh này Vi điều khiển quay về thực hiện lệnh ở chương trình chính.
                      2.5.5. Lệnh nhảy ngắn đến địa chỉ tuyệt đối
                      • Cú pháp: AJMP addr11
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình bắt đầu tại địa chỉ addr11 trên Rom, địa chỉ addr11 có thể thay bằng nhãn . Câu lệnh chỉ được thực hiện khi vị trí lưu chương trình cần thực hiện cách lệnh gọi không quá 2 KByte
                      2.5.6. Lệnh nhảy dài đến địa chỉ tuyệt đối
                      • Cú pháp: LJMP addr16
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình bắt đầu tại địa chỉ addr11 trên Rom, địa chỉ addr11 có thể thay bằng nhãn . Câu lệnh có thể gọi chương trình ở bất kì vị trí nào trên Rom vì khoảng cách từ lệnh gọi đến chương trình con là 64 KByte
                      2.5.7. Lệnh nhảy tương đối
                      • Cú pháp: SJMP rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển đến thực hiện các câu lệnh của chương trình được đánh dấu bằng nhãn. Câu lệnh chỉ được thực hiện địa chỉ của nhãn cách lệnh gọi không quá 128 Byte.(cả tới hoặc lùi )
                      2.5.8. Lệnh nhảy gián tiếp
                      • Cú pháp: JMP @A+DPTR
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển đến thực hiện các câu lệnh của chương trình có địa chỉ trên ROM bằng giá trị của A cộng với giá trị lưu giữ trên DPTR
                      2.5.9. Lệnh nhảy thuận với cờ Zero
                      • Cú pháp: JZ rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Nếu cờ Zero có giá trị 1(tức thanh ghi A có giá trị 0), Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                      Nếu cờ Zero có giá trị 0(tức thanh ghi A có giá trị khác 0), Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                      2.5.10. Lệnh nhảy nghịch với cờ Zero
                      • Cú pháp: JNZ rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Nếu cờ Zero có giá trị 0(tức thanh ghi A có giá trị khác 0), Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                      Nếu cờ Zero có giá trị 1(tức thanh ghi A có giá trị 0), Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                      2.5.11. Lệnh nhảy thuận với cờ C
                      • Cú pháp: JC rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Nếu cờ C có giá trị 1, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                      Nếu cờ C có giá trị 0, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                      2.5.12. Lệnh nhảy nghịch với cờ Zero
                      • Cú pháp: JNC rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Nếu cờ C có giá trị 0, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                      Nếu cờ C có giá trị 1, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                      2.5.13. Lệnh nhảy thuận với giá trị của bit nhớ
                      • Cú pháp: JB bit,rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Nếu bit nhớ có giá trị 1, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                      Nếu bit nhớ có giá trị 0, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                      2.5.14. Lệnh nhảy nghịch với giá trị của bit nhớ
                      • Cú pháp: JNC bit,rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Nếu bit nhớ có giá trị 0, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
                      Nếu bit nhớ có giá trị 1, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                      2.5.15. Lệnh nhảy thuận với giá trị của bit nhớ và xóa bit
                      • Cú pháp: JBC bit,rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Nếu bit nhớ có giá trị 1, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt, đồng thời xóa giá trị chứa trong bit nhớ đó tức là đưa bit nhớ đó về giá trị 0
                      Nếu bit nhớ có giá trị 0, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)
                      2.5.16. Lệnh nhảy có điều kiện(so sánh giá trị của thanh ghi A và Rn)
                      • Cú pháp: CJNE A,direct,rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt nếu giá trị của thanh ghi A khác giá trị của ô nhớ có địa chỉ direct, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế
                      Ảnh hưởng của lệnh đến cờ nhớ C:
                      Nếu giá trị của thanh ghi A ≥ giá trị của ô nhớ có địa chỉ direct thì bit C có giá trị 0
                      Nếu giá trị của thanh ghi A < giá trị của ô nhớ có địa chỉ direct thì bit C có giá trị 1
                      2.5.17. Lệnh nhảy có điều kiện(so sánh giá trị của thanh ghi A và dữ liệu cho trước)
                      • Cú pháp: CJNE A,#data,rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt, nếu giá trị của thanh ghi A khác giá trị dữ liệu cho trước, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế
                      Ảnh hưởng của lệnh đến cờ nhớ C:
                      Nếu giá trị của thanh ghi A ≥ giá trị dữ liệu cho trước thì bit C có giá trị 0
                      Nếu giá trị của thanh ghi A < giá trị dữ liệu cho trước thì bit C có giá trị 1
                      2.5.18. Lệnh nhảy có điều kiện(so sánh giá trị của thanh ghi Rn và dữ liệu cho trước)
                      • Cú pháp: CJNE Rn,#data,rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt nếu giá trị của thanh ghi Rn khác giá trị dữ liệu cho trước, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế.
                      Ảnh hưởng của lệnh đến cờ nhớ C:
                      Nếu giá trị của thanh ghi A ≥ giá trị dữ liệu cho trước thì bit C có giá trị 0
                      Nếu giá trị của thanh ghi A < giá trị dữ liệu cho trước thì bit C có giá trị 1
                      2.5.18. Lệnh nhảy có điều kiện(so sánh giá trị của ô nhớ có địa chỉ gián tiếp và dữ liệu cho trước)
                      • Cú pháp: CJNE @Ri,#data,rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt nếu giá trị của ô nhớ có địa chỉ bằng giá trị của Ri khác giá trị dữ liệu cho trước, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế
                      Ảnh hưởng của lệnh đến cờ nhớ C:
                      Nếu giá trị của ô nhớ có địa chỉ gián tiếp ≥ giá trị dữ liệu cho trước thì bit C có giá trị 0
                      Nếu giá trị của ô nhớ có địa chỉ gián tiếp < giá trị dữ liệu cho trước thì bit C có giá trị 1
                      2.5.19. Lệnh nhảy có điều kiện kết hợp với lệnh giảm trên thanh ghi Rn
                      • Cú pháp: DJNZ Rn,rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Giảm giá trị của thanh ghi Rn xuống 1 đơn vị, và
                      -Nếu giá trị trong thanh ghi Rn khác 0, Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt.
                      -Nếu giá trị trong thanh ghi Rn bằng 0, Vi điều khiển thực hiện lệnh kế tiếp
                      2.5.20. Lệnh nhảy có điều kiện kết hợp với lệnh giảm trên ô nhớ có địa chỉ direct
                      • Cú pháp: DJNZ direct,rel
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng:
                      Giảm giá trị của ô nhớ có địa chỉ direct xuống 1 đơn vị
                      Nếu giá trị trong ô nhớ có địa chỉ direct khác 0, Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt.
                      Nếu giá trị trong ô nhớ có địa chỉ direct bằng 0, Vi điều khiển thực hiện lệnh kế tiếp
                      2.5.21. Lệnh delay 1 chu kì máy
                      • Cú pháp: NOP
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: delay trong 1 chu kì máy
                      2.6.NHÓM LỆNH XỬ LÍ BIT Trang 6
                      Qui ước: trong câu lệnh "bit" đại diện cho một địa chỉ của bit nhớ
                      2.6.1. Lệnh xoá cờ nhớ C
                      • Cú pháp: CLR C
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Xóa cờ nhớ C - tức là đưa giá trị của cờ nhớ C về 0
                      2.6.2. Lệnh xoá bit
                      • Cú pháp: CLR bit
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Xóa giá trị của bit nhớ có địa chỉ xác định - tức là đưa giá trị bit đó về 0
                      2.6.3. Lệnh thiết đặt cờ nhớ C
                      • Cú pháp: SetB C
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: thiết đặt cờ nhớ C - tức là đưa giá trị của cờ nhớ C lên 1
                      2.6.4. Lệnh thiết đặt giá trị cho bit nhớ
                      • Cú pháp: SetB bit
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Thiết đặt giá trị bit nhớ có địa chỉ xác định - tức là đưa giá trị bit đó lên 1
                      2.6.5. Lệnh bù cờ nhớ C
                      • Cú pháp: CPL C
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: đổi giá trị của cờ nhớ C, nếu trước đó C có giá trị 0 chuyển thành 1, và ngược lại nếu trước đó C có giá trị 1 chuyển thành 0
                      2.6.6. Lệnh bù bit
                      • Cú pháp: CPL bit
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: đổi giá trị của bit có địa chỉ xác định, nếu trước đó bit đó có giá trị 0 chuyển thành 1, và ngược lại nếu trước đó bit đó có giá trị 1 chuyển thành 0
                      2.6.7. Lệnh And cờ nhớ C với bit
                      • Cú pháp: ANL C,bit
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Thực hiện phép And cờ nhớ C và bit có địa chỉ xác định, kết quả lưu ở C
                      2.6.8. Lệnh And cờ nhớ C với bit đã được lấy bù
                      • Cú pháp: ANL C,/bit
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Thực hiện phép And cờ nhớ C và bit có địa chỉ xác định đã được lấy bù, kết quả lưu ở C
                      2.6.9. Lệnh OR cờ nhớ C với bit
                      • Cú pháp: ORL C,bit
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Thực hiện phép And cờ nhớ C và bit có địa chỉ xác định, kết quả lưu ở C
                      2.6.10. Lệnh OR cờ nhớ C với bit đã được lấy bù
                      • Cú pháp: ORL C,/bit
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Thực hiện phép And cờ nhớ C và bit có địa chỉ xác định đã được lấy bù, kết quả lưu ở C
                      2.6.11. Lệnh chuyển giá trị bit có địa chỉ xác định vào cờ nhớ C
                      • Cú pháp: Mov C,bit
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 1 chu kì máy
                      • Công dụng: Thực hiện chuyển giá trị của bit có địa chỉ xác định vào cờ nhớ C
                      2.6.12. Lệnh chuyển giá trị cờ nhớ C vào bit có địa chỉ xác định
                      • Cú pháp: Mov bit,C
                      • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
                      • Thời gian thực hiện: 2 chu kì máy
                      • Công dụng: Thực hiện chuyển giá trị của cờ nhớ C vào bit có địa chỉ xác định

                      Comment


                      • #26
                        Các bác cho em hỏi '' vi điều khiển'' trong tường học gọi chung là học nghành gì vậy? Đọc sách có tự học được không mấy bác. Em học trung cấp điện lạnh nhưng mê điện tử lắm, không biết tự học lập trình cho vi điều khiển có khó không các bác. Mê quá trời mà gia đình không có điều kiện. Các bác đừng chém em nhé!

                        Comment


                        • #27
                          trong trường bạn sẽ được học vi điều khiển nếu bạn học chuyên ngành đại loại như : Tự Động Hóa,Cơ Điện Tử ,Điện tử viễn thông ...,chủ yếu là tự học mà bạn cố gắng sẽ thành công thôi.
                          chúc vui
                          Email :
                          Phone : 0902 5777 39
                          Branch: LẬP TRÌNH CÁC DÒNG CHIP NXP, ST, ATMEL

                          Comment


                          • #28
                            Nguyên văn bởi daily84 Xem bài viết
                            trong trường bạn sẽ được học vi điều khiển nếu bạn học chuyên ngành đại loại như : Tự Động Hóa,Cơ Điện Tử ,Điện tử viễn thông ...,chủ yếu là tự học mà bạn cố gắng sẽ thành công thôi.
                            chúc vui
                            Cảm ơn bác! Vậy là mình có thể tự học nếu cố gắng tìm tòi phải không ạ?

                            Comment


                            • #29
                              vang cam on cac bac em moi vao nghe cac bac chi giao gium em nhen

                              Comment


                              • #30
                                có bác nào có mạch mà có người đi qua thi đèn sáng không ạ. bác chỉ giùm em nhé và chỉ lun em là dùng cam biến gì giúp em nhé em cám ơn nhé

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X