Danh mục

Các mode định địa chỉ

Số trang: 14      Loại file: pdf      Dung lượng: 242.99 KB      Lượt xem: 23      Lượt tải: 0    
10.10.2023

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Dùng truy xuất các biến nhớ hoặc các thanh ghi trên chipMặc dầu có thể truy cập cả 128 bytes RAM nội sử dụng kiểu định địa chỉ trực tiếp, song thông thường ta chỉ dùng cho vùng RAM nội đa mục đích (có địa chỉ từ 30 – 7FH)
Nội dung trích xuất từ tài liệu:
Các mode định địa chỉ NỘI DUNG1. Giới thiệu 7. Các mode địịnh địịa chỉỉ 7. Các mode đ nh đ a ch2. Sơ đồ khối và chân 8. Lập trình IO3. Tổ chức bộ nhớ 9. Tạo trễ4. Các thanh ghi chức năng đặc biệt 10. Lập trình Timer/Counter5. Dao động và hoạt động reset 11. Giao tiếp nối tiếp6. Tập lệnh 12. Lập trình ngắt 13. Lập trình hợp ngữ 17. Các mode định địa chỉ Addressing Modes Các mode định địa chỉ• Dữ liệu chứa ở đâu khi thực thi 1 lệnh? Nhiều lời giải tương ứng các kiểu định địa chỉ khác nhau• Các kiểu định địa chỉ cho phép xác định nguồn và đích của dữ liệu theo nhiều cách khác nhau tùy tình huống lập trình. – Tức thời – Thanh ghi – Trực tiếp – Gián tiếp – Chỉ số 3 Định địa chỉ tức thờiMOV A,#65HMOV R6,#65HMOV DPTR,#2343HMOV P1,#65HVD : Num EQU 30 … MOV R0,#Num MOV DPTR,#data1 … ORG 100H data1: db “BACHKHOA” 4 Định địa chỉ thanh ghiMOV Rn, A ;n=0,..,7ADD A, RnMOV DPL, R6 MOV DPTR, A MOV Rm, Rn 5 Định địa chỉ trực tiếp•Dùng truy xuất các biến nhớ hoặc các thanh ghi trên chip•Mặc dầu có thể truy cập cả 128 bytes RAM nội sử dụng kiểu định *địa chỉ trực tiếp, song thông thường ta chỉ dùng cho vùng RAMnội đa mục đích (có địa chỉ từ 30 – 7FH)MOV R0, 40HMOV 56H, AMOV A, 4 ; ≡ MOV A, R4MOV 6, 2 ; copy R2 to R6; MOV R6,R2 !Thanh ghi chức năng đặc biệt & địa chỉ:MOV 0E0H, #66H ; ≡ MOV A,#66HMOV 0F0H, R2 ; ≡ MOV B, R2MOV 80H,A ; ≡ MOV P1,A 6 Định địa chỉ gián tiếp• Làm thế nào nhận biết 1 biến khi địa chỉ biến đã được xác định, tính toán hoặc sửa đổi trong khi 1 chương trình đang chạy?• khi quản lý các vị trí nhớ liên tiếp. Các điểm nhập được định chỉ số trong các bảng chứa trong RAM (các dãy số hay các chuỗi ký tự)• Giải pháp là kiểu định địa chỉ gián tiếp 7•Khi này, thanh ghi được sử dụng như 1 con trỏ (pointer) đến dữ liệuMOV A,@Ri ; copy dữ liệu trỏ bởi Ri vào A (i=0 hay 1)MOV @R1,B•Nói cách khác, nội dung của các thanh ghi R0 hay R1 có thể lànguồn hoặc đích trong các lệnh MOV, ADD & SUBB Viết chương trình copy 10 bytes từ vùng RAM có địa chỉ bắt đầulà 37H tới vùng RAM có địa chỉ bắt đầu là 59HGiải đáp: MOV R0,37h ; Con trỏ nguồn MOV R1,59h ; Con trỏ đích MOV R2,10 ; Bộ đếmL1: MOV A,@R0 MOV @R1,A INC R0 INC R1 DJNZ R2,L1 8 Viết chương trình xóa RAM nội từ 60H 7FHTrả lời: MOV R0,#60HLOOP: MOV @R0,#0 INC R0 CJNE R0,#80H,LOOP 9Định địa chỉ chỉ số & truy cập ROM nội• Được sử dụng khi truy cập các thành phần dữ liệu của bảng nhảy hoặc bảng tìm kiếm MOVC A,@A+DPTR A= nội dung tại địa chỉ A +DPTR trong ROMChú ý:• Các thành phần dữ liệu được lưu trong không gian bộ nhớ chương trình ROM của 8051, nên sử dụng MOVC thay vì MOV. “C” nghĩa là code. Thanh ghi nền Offset Địa chỉ tác động PC (or DPTR) + A = PC (or DPTR) 10•VD: Giả sử không gian bộ nhớ ROM bắt đầu tại địa chỉ 250Hchứa “TRANSMISSION.”, viết chương trình truyền các bytestrên vào vùng nhớ RAM bắt đầu tại địa chỉ 40H Giải đáp: ORG 0 MOV DPTR,#MYDATA MOV R0,#40H L1: CLR A MOVC A,@A+DPTR JZ L2 MOV @R0,A INC DPTR INC R0 SJMP L1 L2: SJMP L2 ;------------------------------------- ORG 250H MYDATA: DB “TRANSMISSION”,0 END 11•VD: Viết chương trình đọc giá trị x từ port 1 & xuất x2 raport 2 một cách liên tụcGiải đáp: ORG ...

Tài liệu được xem nhiều: