Vi điều khiển 8051 là một trong những vi điều khiển phổ biến nhất được sử dụng trong các hệ thống nhúng. Bài viết này sẽ tập trung vào thanh ghi DPTR (Data Pointer Register), một thành phần quan trọng trong kiến trúc của 8051, và giải thích chức năng lưu trữ của nó.
Thanh ghi DPTR là một thanh ghi 16-bit, được sử dụng để lưu trữ địa chỉ bộ nhớ. Nó đóng vai trò then chốt trong việc truy xuất dữ liệu từ bộ nhớ ngoài. Không giống như các thanh ghi khác chỉ có thể lưu trữ dữ liệu 8-bit, DPTR cho phép 8051 truy cập một không gian địa chỉ rộng hơn, lên đến 64KB.
Chức năng chính của thanh ghi DPTR
The Dptr Register Is Used To Store địa chỉ 16-bit cho các hoạt động sau:
- Truy cập bộ nhớ ngoài: DPTR thường được sử dụng với các lệnh
MOVX
vàMOVC
để đọc hoặc ghi dữ liệu từ bộ nhớ ngoài. LệnhMOVX
dùng cho việc truyền dữ liệu giữa Accumulator và bộ nhớ ngoài, trong khiMOVC
dùng cho việc đọc dữ liệu từ bộ nhớ chương trình ngoài. - Lưu trữ địa chỉ dữ liệu: DPTR có thể lưu trữ địa chỉ của một biến hoặc một mảng dữ liệu trong bộ nhớ ngoài.
- Chỉ trỏ đến bảng tra: Trong một số ứng dụng, DPTR được sử dụng để chỉ trỏ đến một bảng tra (lookup table) trong bộ nhớ chương trình.
Cấu trúc của DPTR
DPTR được chia thành hai thanh ghi 8-bit riêng biệt:
- DPH (Data Pointer High): Lưu trữ 8 bit cao của địa chỉ 16-bit.
- DPL (Data Pointer Low): Lưu trữ 8 bit thấp của địa chỉ 16-bit.
Việc chia thành hai thanh ghi 8-bit cho phép lập trình viên thao tác với từng byte của địa chỉ một cách linh hoạt.
Ví dụ về sử dụng DPTR
Một ví dụ đơn giản về việc sử dụng DPTR để đọc dữ liệu từ bộ nhớ ngoài:
MOV DPTR, #1234H ; Nạp địa chỉ 1234H vào DPTR
MOVX A, @DPTR ; Đọc dữ liệu từ địa chỉ được lưu trong DPTR vào Accumulator
Kết luận
The DPTR register is used to store địa chỉ bộ nhớ, cho phép vi điều khiển 8051 truy cập và thao tác với dữ liệu trong bộ nhớ ngoài một cách hiệu quả. Đây là một thành phần quan trọng, giúp mở rộng khả năng xử lý và lưu trữ của 8051 trong các ứng dụng nhúng. Hiểu rõ chức năng và cách sử dụng DPTR là điều cần thiết cho bất kỳ lập trình viên 8051 nào.