1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng môn vi xử lý chương 3 2

30 5 0

Đ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

Định dạng
Số trang 30
Dung lượng 1 MB

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

Nội dung

direct A 1 Bảng lệnh MOV 8bits Chuyển dữ liệu trong RAM nội và vùng SFR... LỆNH MOV TT... Chú ý: với các số HEX nếu bắt đầu bằng chữ thì phải thêm số 0 phía trước chữ đó.. Chú ý: với

Trang 1

Lệnh chuyển dữ liệu

8 bits của 8051

Trang 2

Lệnh chuyển dữ liệu 8bits của 8051

2

Võ Thị Thu Hồng

Trang 3

(direct A 1

Bảng lệnh MOV (8bits)

Chuyển dữ liệu trong RAM nội và vùng SFR

Trang 4

(direct)

 data

2

MOV @Ri, A 1 1 1 1 0 1 1 i F6 ÷ F7 (Ri)  A 1

MOV @Ri, direct 1

(Ri)  (direct)

DPTR  data16

2

Bảng lệnh MOV (8bits) của 8051 (TT)

1 LỆNH MOV (TT)

Trang 5

Ký hiệu

Rn Định địa chỉ thanh ghi (các thanh ghi R0 đến R7)

direct Địa chỉ trực tiếp 8 bit (00H đến FFH), tên gọi các SFR (VD: Port1 là P1)

@Ri Định địa chỉ gián tiếp (thanh ghi R0 hoặc R1)

#data Hằng số 8 bit Chú ý: với các số HEX nếu bắt đầu bằng chữ thì phải

thêm số 0 phía trước chữ đó

#data16 Hằng số 16 bit Chú ý: với các số HEX nếu bắt đầu bằng chữ thì phải

thêm số 0 phía trước chữ đó

(XXH) Nội dung ô nhớ ở địa chỉ XXH ( Ví dụ : (20H)=15H )

Không dùng chung nguồn và đích các cách định địa chỉ sau:

Trang 6

A0H

17H

17H

Trang 7

MOV R3, 45H ; R3 <- (45H)

(MOV Rn, Direct)

Opcode 10101 011 01110101 (HEX) ABH 45H

45H

03H

2AH

2AH RAM Nội

Rn

(direct)

2

Trang 8

03H

2AH

45H RAM Nội

Rn

(direct)

2

Trang 9

MOV R3,45H tương đương MOV 03H,45H MOV 3,45H

( MOV Rn, Direct) ( MOV direct1 ,direct2)

Opcode ABH 45H

Opcode 85H 45H 03h

Chú ý : lệnh MOV direct1, direct2 có 3 byte, byte 1 là mã

lệnh , byte 2 là mã địa chỉ nguồn , byte 3 là mã địa chỉ đích

Dest Src

Trang 10

R0

FBH

(1) (2)

Trang 13

MOV R0 , # 0F7H ; R0=F7H

MOV X A , @R0 -> A (F7H) = 8AH

Opcode E2H

Chuyển data từ ngoại vi

vào 8051 (địa chỉ 1 byte)

Trang 15

Truy xuất vùng nhớ chương trình

MOVC A , Src ; A  Src

- (Destination) (Source)

+Dùng đọc data cất trong bộ nhớ chương trình

NÊN : DÙNG DPTR để dễ quản lý hơn

Trang 16

32H 100FH

Trang 17

TABLE EQU 1340H; khai báo đầu chương trình

71H 1365H

Giá trị lúc sau

3 Lệnh MOVC (Ví dụ)

Trang 18

Hex Opcode

0000 ORG 0000H ; địa chỉ đầu chương trình

0000 90 00 30 MOV DPTR,#BANG ; nạp giá trị địa chỉ BANG

0003 75 90 FF MOV P1,#0FFH ; đặt port 1 chế độ nhập

0006 E5 90 LAP: MOV A,P1 ; đọc dữ liệu từ port 1 vào A

0008 93 MOVC A,@A+DPTR ; truy xuất dữ liệu từ bảng

0009 F5 A0 MOV P2,A ; xuất giá trị này ra port 2

000B 80 F9 SJMP LAP ; nhảy đến địa chỉ LAP để chạy lại

0030 ORG 0030H ; địa chỉ đầu bảng

0030 00 01 04 09 BANG: DB 00H,01H,04H,09H ; BANG ghi các giá trị

Tính giá trị x 2 , với x là ngõ vào port1 Giả sử x có

giá trị thập phân tương đương từ 0 đến 9

Trang 19

Vùng SFR

80H

83H 82H

19H 0035H

Giá trị lúc sau

3 Lệnh MOVC (Ví dụ)

Tính giá trị x 2 , với x là ngõ vào port1 Giả sử x có

giá trị thập phân tương đương từ 0 đến 9 Hình sau minh họa giá trị x= 5 = 05H

0030H 0031H 0032H

01H 04H

19H

P2

MOV P2,A (3)

Trang 20

Trong hay Ngoài

Trang 21

A  (direct) 1 XCH A, @Ri 1 1 0 0 0 1 1 i C6 ÷ C7 A  (Ri) 1

Hoán đổi dữ liệu giữa ô nhớ RAM nội

Mnemonic Opcode (binary) Opcode

Trang 23

15H

01H 15H

Trang 24

5 Lệnh PUSH,POP

Chú ý:

+ Mặc định, ban đầu SP=07H => STACK chiếm cùng vị trí Bank

thanh ghi 1 do đó không nên dùng các địa chỉ vùng này khi sử

dụng STACK

+ Có thể đặt lại SP ban đầu: VD: MOV SP,#30H

+ Vùng Stack dao động từ địa chỉ 08H đến 7FH

+ Các lệnh tác động Stack: PUSH, POP , CALL (Gọi chương trình

con), RET và RETI (Lệnh quay về từ chương trình con)

0

C0 Byte 2

SP  SP + 1 (SP)  (direct)

0

D0 Byte 2

Trang 25

PUSH direct; Opcode 2bytes : C0H và byte địa chỉ direct

6BH

34H

6BH 07H

0AH 09H 08H

81H

SP 07H

20H 34H

81H

SP 08H

20H 34H

R0 R1

07H

0AH 09H 08H

81H

SP 09H

20H 34H

R0 R1

07H

0AH 09H 08H

81H

SP 0AH

20H 34H

R0 R1

Trang 26

POP direct ; Opcode 2bytes : D0H và byte địa chỉ direct

81H

SP 0AH

07H

0AH 09H 08H

20H 34H

81H

SP 09H

20H 12H

6BH 00H

Sau lệnh 4 POP 20H

01H

21H

12H D4H

R0 R1

81H

SP 08H

20H 34H

34H 00H

Sau lệnh 5 POP 00H

01H

21H

12H D4H

R0 R1

81H

SP 07H

20H 34H

6BH 00H

Sau lệnh 6 POP 21H

01H

21H

12H 6BH

R0 R1

Trang 29

SP

0BH

0EH 0DH 0CH 0FH

Trang 30

SP

00H

0CH 0DH

SP

00H

0CH 0DH

57H

về đúng vị trí sau LCALL

0BH

Ngày đăng: 02/11/2022, 09:55

w