1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu LẬP TRÌNH CHO VI ĐIỀU KHIỂN Chương2 docx

20 487 5
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lệnh And Dữ Liệu Ở Thanh Ghi A Với Các Dữ Liệu
Trường học Trường Đại Học Kỹ Thuật
Chuyên ngành Lập Trình Vi Điều Khiển
Thể loại Tài liệu
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 258,36 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lệnh And dữ liệu trên thanh ghi A với dữ liệu của ô nhớ gián tiếp:  Cú pháp: ANL 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... Lệnh And d

Trang 1

LẬP TRÌNH CHO VI ĐIỀU KHIỂN

Chương2 :Lệnh And dữ liệu ở thanh ghi A với các dữ liệu

1 Lệnh And dữ liệu ở thanh ghi A với dữ liệu ở thanh ghi Rn:

 Cú pháp: ANL 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 AND 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,#0Fh

mov R1,#0F0h

ANL A,R1

Kết quả : A = #0H

2 Lệnh And dữ liệu trên thanh ghi A với dữ liệu của ô nhớ có địa chỉ direct:

 Cú pháp: ANL 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 AND dữ liệu ở thanh ghi A với dữ liệu ở ô nhớ có địa chỉ direct, kết quả được lưu trữ ở thanh ghi A

 Ví dụ:

mov A,#0FFh

mov 10h,#010h

ANL A,10h

Kết quả : A = #010h

3 Lệnh And dữ liệu trên thanh ghi A với dữ liệu của ô nhớ gián tiếp:

 Cú pháp: ANL 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

Trang 2

 Công dụng: thực hiện phép logic AND 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,#0Fh

mov 70h,#0E1h

mov R1,#070h

ANL A,@R1

Kết quả : A = #01h

4 Lệnh And dữ liệu trên thanh ghi A với dữ liệu xác định:

 Cú pháp: ANL 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 AND 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,#0Eh

ANL A,#11h

Kết quả : A = #00

5 Lệnh And dữ liệu của ô nhớ có địa chỉ direct với dữ liệu trên thanh ghi A:

 Cú pháp: ANL 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 AND 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,#08h

mov R1,#0F7h

ANL R1,A

Kết quả : R1 = #0

6 Lệnh And dữ liệu trên ô nhớ có địa chỉ direct với dữ liệu xác định:

 Cú pháp: ANL direct,#data

 Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte

Trang 3

 Thời gian thực hiện: 1 chu kì máy

 Công dụng: thực hiện phép logic AND 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 R1,#0F7h

ANL R1,#1Fh

Kết quả : R1 = #017h

7 Lệnh OR dữ liệu ở thanh ghi A với dữ liệu ở thanh ghi Rn:

 Cú pháp: ORL 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 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,#0Fh

mov R1,#0F0h

ORL A,R1

Kết quả : A = #0FFh

8 Lệnh OR dữ liệu trên thanh ghi A với dữ liệu của ô nhớ có địa chỉ direct:

 Cú pháp: ORL 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 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,#0Eh

mov 50h,#0F0h

ORL A,50h

Kết quả : A = #0FEh

9 Lệnh OR dữ liệu trên thanh ghi A với dữ liệu của ô nhớ gián tiếp:

 Cú pháp: ORL 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

Trang 4

 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ỉ bằng giá trị của thanh ghi Ri, kết quả được lưu trữ ở thanh ghi A

 Ví dụ:

mov A,#18h

mov 30h,#0F0h

mov R1,#30h

ORL A,@R1

Kết quả : A = #0F8h

10 Lệnh And dữ liệu trên thanh ghi A với dữ liệu xác định:

 Cú pháp: ORL 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 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,#00h

ORL A,#10h

Kết quả : A = #010h

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

Trang 5

 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

Trang 6

 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:

Trang 7

 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ị

Trang 8

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 — Quá trình xoay dữ liệu từ

A0 đến A6— Giá trị dữ liệu A7 chuyển

sang bit A0—

A7 A6 A5 A4 A3 A2 A1 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— Quá trình xoay dữ liệu từ A0

đến A6— Giá trị ở C chuyển sang bit A0 —

C A7 A6 A5 A4 A3 A2 A1 A0

<— <— <— <— <— <— <— <—

C ——————————————

—————>A0

Trang 9

 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

Sau khi thực hiện lệnh xoay trái

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 — Quá trình xoay dữ liệu từ

A7 đến A1— Giá trị dữ liệu A0 chuyển

sang bit A7—

A7 A6 A5 A4 A3 A2 A1 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à 10100100b

Trang 10

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— Quá trình xoay dữ liệu từ C đến

A1— Giá trị ở A0 chuyển sang bit C —

C A7 A6 A5 A4 A3 A2 A1 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à 11100100b

và C mang giá trị 1

Cờ nhớ C Giá trị thanh A Trước khi thực hiện lệnh xoay

Sau khi thực hiện lệnh xoay trái

25 Lệnh xoay 4 bit trên thanh ghi A:

Trang 11

 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 —

Dữ liệu trước khi thực hiên lệnh —

Dữ liệu sau khi thực hiên lệnh —

A7 A6 A5 A4 A3 A2 A1 A0 X7 X6 X5 X4 X3 X2 X1 X0 X3 X2 X1 X0 X7 X6 X5 X4

 Ví dụ:

mov A,#0E7h

SWAP A

Kết quả : A = # 7Eh

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

Trang 12

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

Ngày đăng: 20/01/2014, 20:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w