Sơ đồ tổ chức bộ nhớ RAM của vi điều khiển 8051 với các thanh ghi chức năng đặc biệt
Sơ đồ tổ chức bộ nhớ RAM của vi điều khiển 8051 với các thanh ghi chức năng đặc biệt

Special Function Registers in 8051

Vi điều khiển 8051 sở hữu một tập hợp các thanh ghi chức năng đặc biệt (Special Function Registers – SFRs) điều khiển các chức năng và thiết bị ngoại vi khác nhau. Các thanh ghi này rất cần thiết để lập trình hoạt động của vi điều khiển.

SFRs trong vi điều khiển 8051 được sử dụng để lập trình và điều khiển các thiết bị ngoại vi phần cứng khác nhau như Timer, Cổng nối tiếp, Cổng I/O, v.v. Bằng cách thao tác với SFR trong vi điều khiển 8051, bạn có thể đánh giá hoặc thay đổi chế độ hoạt động của vi điều khiển.

Hình ảnh dưới đây cho thấy cấu trúc cơ bản của RAM nội bộ của vi điều khiển 8051.

Thanh ghi chức năng đặc biệt trong vi điều khiển 8051 hoạt động như một bảng điều khiển giám sát và điều khiển hoạt động của vi điều khiển. Không gian địa chỉ từ 80H đến FFH được phân bổ cho SFRs trong cấu trúc RAM nội bộ.

Trong số 128 vị trí bộ nhớ này (80H đến FFH), chỉ có 21 vị trí thực sự được gán cho SFRs. Mỗi SFR có một địa chỉ byte và một tên duy nhất xác định mục đích của nó.

Vì SFRs là một phần của cấu trúc RAM nội bộ, bạn có thể truy cập SFRs như khi truy cập RAM nội bộ. Sự khác biệt chính là không gian địa chỉ: 128 byte đầu tiên (00H đến 7FH) dành cho RAM nội bộ thông thường và 128 byte tiếp theo (80H đến FFH) dành cho SFRs.

Danh sách Special Function Registers trong vi điều khiển 8051

  • Accumulator (A)
  • Thanh ghi B (B)
  • Program Status Word (PSW)
  • Data Pointer (DPTR)
  • Stack Pointer (SP)
  • DPL (Data Pointer Low)
  • DPH (Data Pointer High)
  • Interrupt Enable Register (IE)
  • Interrupt Priority Register (IP)
  • I/O Port Registers (P0, P1, P2, P3)
  • Power Control Register (PCON)
  • Serial Control Register (SCON)
  • SBUF (Serial Buffer Register)
  • Timer/Counter Registers (TMOD, TH0, TL0, TH1, TL1)

Tất cả 21 thanh ghi chức năng đặc biệt của vi điều khiển 8051 cùng với chức năng và địa chỉ RAM nội bộ của chúng được đưa ra trong bảng sau.

Có nhiều cách để phân loại 21 thanh ghi chức năng đặc biệt này. 21 SFR của vi điều khiển 8051 được phân loại thành bảy nhóm:

Các loại SFR khác nhau trong vi điều khiển 8051:

  • Math or CPU Registers: A và B
  • Status Register: PSW (Program Status Word)
  • Pointer Registers: DPTR (Data Pointer – DPL, DPH) và SP (Stack Pointer)
  • I/O Port Latches: P0 (Port 0), P1 (Port 1), P2 (Port 2) và P3 (Port 3)
  • Peripheral Control Registers: PCON, SCON, TCON, TMOD, IE và IP
  • Peripheral Data Registers: TL0, TH0, TL1, TH1 và SBUF

Thanh ghi Accumulator hoặc Register A là SFR quan trọng nhất và được sử dụng nhiều nhất trong vi điều khiển 8051. Register A nằm tại địa chỉ E0H trong không gian bộ nhớ SFR. Accumulator được sử dụng để lưu trữ dữ liệu cho hầu hết tất cả các hoạt động ALU.

Thanh ghi B được sử dụng cùng với ACC trong các phép toán Nhân và Chia. Register B nằm tại địa chỉ F0H của không gian địa chỉ SFR.

PSW (Program Status Word) hay còn gọi là Flag Register, là một trong những SFR quan trọng. Thanh ghi PSW bao gồm các Flag Bits, giúp lập trình viên kiểm tra điều kiện của kết quả và đưa ra quyết định.

Data Pointer là một thanh ghi 16 bit và là sự kết hợp vật lý của SFR DPL (Data Pointer Low) và DPH (Data Pointer High). DPTR không có địa chỉ bộ nhớ vật lý nhưng DPL (Byte thấp của DPTR) và DPH (Byte cao của DPTR) có địa chỉ riêng biệt trong không gian bộ nhớ SFR. DPL = 82H và DPH = 83H.

Vi điều khiển 8051 có bốn cổng có thể được sử dụng làm Input và/hoặc Output. Bốn cổng này là P0, P1, P2 và P3. Mỗi cổng có một thanh ghi tương ứng với cùng tên. Địa chỉ của các thanh ghi cổng như sau: P0 – 80H, P1 – 90H, P2 – A0H và P3 – B0H.

Cấu trúc cổng và SFR được sử dụng trong lập trình:

Thanh ghi PCON (Power Control) được sử dụng để điều khiển chế độ nguồn của vi điều khiển 8051 và nằm ở địa chỉ 87H của không gian bộ nhớ SFR.

SFR SCON (Serial Control) được sử dụng để điều khiển cổng nối tiếp của vi điều khiển 8051. Nó nằm ở địa chỉ 98H.

Thanh ghi TCON (Timer Control) trong vi điều khiển 8051 được sử dụng để bắt đầu hoặc dừng Timer.

Thanh ghi TMOD (Timer Mode) được sử dụng để đặt Chế độ hoạt động của Timer T0 và T1.

Thanh ghi IE (Interrupt Enable) được sử dụng để kích hoạt hoặc vô hiệu hóa các ngắt riêng lẻ.

Thanh ghi IP (Interrupt Priority) được sử dụng để đặt độ ưu tiên của ngắt là Cao hoặc Thấp.

Thanh ghi SBUF (Serial Data Buffer) được sử dụng để giữ dữ liệu nối tiếp trong khi truyền hoặc nhận.

Timer 0 bao gồm hai SFR: TL0 và TH0. TL0 là byte thấp hơn và TH0 là byte cao hơn và chúng cùng nhau tạo thành Thanh ghi Timer0 16 bit.

TL1 và TH1 là byte thấp hơn và cao hơn của Timer 1.

Comments

No comments yet. Why don’t you start the discussion?

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *