banner_2__resize
Giỏ hàng

Điện thoại cố định028.6264.1482
Bán hàng
: 0965.605.840 - 0868.532.813

Địa chỉ: 565/19 Bình Thới, P.10, Q.11, TP.HCM

+ Bán hàng trực tiếp: Từ Thứ 2 - Thứ 7: 8h00' sáng - 6h00' tối
                                    Riêng Chủ nhật: 8h00' sáng - 2h00' chiều
+ Bán hàng online: từ Thứ 2 - Thứ 7: 8h00' sáng - 5h00' chiều
+ Hỗ trợ kỹ thuật: từ Thứ 2 - Thứ 7: 8h00' sáng - 5h00' chiều

DANH MỤC SẢN PHẨM
Thống kê truy cập
Đang truy cập: 496
Trong ngày: 1309
Trong tuần: 1309
Lượt truy cập: 2647002

[LT]: CÁC VÙNG NHỚ CỦA 8051

 

 

8051 memory spaces

 

 

1/Vùng nhớ Data
Trong CPU 8051 vùng nhớ đầu tiên là "DATA". Đó là vùng nhớ RAM on-chip. Bắt đầu từ D:0x00 đến D:0x7F (D chỉ rằng đây là vùng nhớ Data). Vùng RAM này có thể được dùng cho các biến chương trình. Đó là vùng nhớ có thể định được địa chỉ trực tiếp, vì thế có thể dùng các lệnh dạng như: "MOV A,x".

D:00 đến D:1F là 4 bank (bank 0 đến bank 3). Mỗi bank gồm 8 byte là địa chỉ của các thanh ghi R0 đến R7. Muốn sử dụng vùng nhớ này thì khai báo với từ khóa data


D:20 đến D:2F là vùng không gian có thể định địa chỉ bít được (bit addressable). Đó là sự khác biệt so với C chuẩn. Ví dụ một biến P ở địa chỉ D:0x21 thì bạn có thể truy nhập vào từng bít của nó như: P.0, P.1, P.3 , P.4,... trong ASM thì phải . Còn trong C bạn phải định nghĩa với từ khóa sbit. ví dụ:

Code:
char bdata test;   // khai báo biến test nằm trong vùng nhớ định được địa chỉ bit
sbit  sign = test^7; // biến dấu của test khai báo là bit thứ 7

Từ đó bạn có thể thấy rằng muốn khai báo một biến trong vùng RAM định địa chỉ bít thì các bạn thêm từ khóabdata.

Vùng nhớ trên 0x80 là vùng nhớ dành cho các thanh ghi đặc biệt (SFR). Đây là vùng nhớ thường định địa chỉ bằng tên như SYSCON. Các tên này bạn có thể thấy là nó khởi tạo bởi các thanh ghi trong header file (thử mở file regx51.h ra xem nó viết kí rì ). Nó không định nghĩa hết mà các địa chỉ không định nghĩa dùng cho các mục đích khác trong tương lai. Các bạn sẽ thấy là nó định nghĩa các thanh ghi với từ khóa sfr.

Ví dụ: 

Code:
sfr P1=0x90; // định nghĩa tên P1 là địa chỉ của port1

2/ Vùng nhớ thứ 2 là vùng nhớ tồn tại giữa địa chỉ 80H đến FFh. Đây là vùng nhớ IDATA : vùng nhớ không định địa chỉ trực tiếp (indirectly addressable) thường dùng với các lệnh thao tác với địa chỉ tương đối trong ASM (như MOV A,@Ri), vùng nhớ này có tiền tố I và kí hiệu với tên là IDATA. 

Đây chính là vùng nhớ tiếp theo của RAM nội với 8051 hay nói cách khác khi gắn thêm RAM thì vùng nhớ này chính là vùng RAM ngoài. Còn với 8052 với 256 byte RAM nội thì vùng nhớ này chính là vùng RAM nội.

Đây là vùng nhớ rất thích hợp dùng cho stack SP.

3/ Thứ 3 là vùng nhớ CODE segment là vùng nhớ trong ROM, bắt đầu từ địa chỉ 0 và nó được dành cho CODE chương trình. Nó bắt đầu từ C:0000 đến C:0FFFFh (65536 bytes). Vùng nhớ này được truy nhập qua bộ đếm chương trình (PC) đối với opcode và bởi DPRT cho dữ liệu (cả 2 thanh ghi này là các thanh ghi 16 bit).

Trong ROM chỉ có biến constant mới được đặt tại đây. Tuy nhiên, một vài bộ nhớ Flash có khả năng thay đổi dữ liệu trong CODE space. Một số loại mới cho phép ứng dụng có thể load các blocks của code thông qua giao diện ISP. Cái này có thể thấy ở dòng 89S hay ở PIC đó.

 

In bài viết
LIÊN HỆ

Địa chỉ: 565/19 Bình Thới, P.10, Q.11, TP.HCM

Giờ làm việc:
+ Bán hàng trực tiếp: Từ Thứ 2 - Thứ 7 (8h00' sáng - 6h00' tối) - Chủ nhật (8h00' sáng - 2h00' chiều)
+ Bán hàng online: từ Thứ 2 - Thứ 7 (8h00' sáng - 5h00' chiều)

☎ Điện thoại cố định: 028.6264.1482
☎ 
Bán hàng:
0965.605.840 (Zalo) - 0868.532.813 (Zalo)

✉ Email: sale@chipn24.com

Design by Thiết kế WEB