Hệ thống nhúng - Thanh ghi SFR
Thanh ghi Chức năng Đặc biệt (hoặc Thanh ghi Mục đích Đặc biệt, hoặc đơn giản là Thanh ghi Đặc biệt) là một thanh ghi bên trong một bộ vi xử lý để điều khiển hoặc giám sát các chức năng khác nhau của một bộ vi xử lý. Vì các thanh ghi đặc biệt được gắn chặt với một số chức năng hoặc trạng thái đặc biệt của bộ xử lý, chúng có thể không được ghi trực tiếp bằng các lệnh thông thường (như thêm, di chuyển, v.v.). Thay vào đó, một số thanh ghi đặc biệt trong một số kiến trúc bộ xử lý yêu cầu các hướng dẫn đặc biệt để sửa đổi chúng.
Trong 8051, thanh ghi A, B, DPTR và PSW là một phần của nhóm thanh ghi thường được gọi là SFR (thanh ghi chức năng đặc biệt). SFR có thể được truy cập theo tên hoặc địa chỉ của nó.
Bảng sau đây hiển thị danh sách các SFR và địa chỉ của chúng.
Địa chỉ Byte | Địa chỉ bit | ||||||||
---|---|---|---|---|---|---|---|---|---|
FF | |||||||||
F0 | F7 | F6 | F5 | F4 | F3 | F2 | F1 | F0 | B |
E0 | E7 | E6 | E5 | E 4 | E3 | E2 | E1 | E0 | ACC |
D0 | D7 | D6 | D5 | D4 | D3 | D2 | - | D0 | PSW |
B8 | - | - | - | BC | BB | ba | B9 | B8 | IP |
B0 | B7 | B6 | B5 | B 4 | B3 | B2 | B1 | B0 | P3 |
A2 | AF | - | - | AC | AB | AA | A9 | A8 | I E |
A0 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | P2 |
99 | Không thể địa chỉ bit | SBUF | |||||||
98 | 9F | 9E | 9D | 9C | 9B | 9A | 99 | 98 | SCON |
90 | 97 | 96 | 95 | 94 | 93 | 92 | 91 | 90 | P1 |
8D | Không thể địa chỉ bit | TH1 | |||||||
8C | Không thể địa chỉ bit | TH0 | |||||||
8B | Không thể địa chỉ bit | TL1 | |||||||
8A | Không thể địa chỉ bit | TL0 | |||||||
89 | Không thể địa chỉ bit | TMOD | |||||||
88 | 8F | 8E | 8D | 8C | 8B | 8A | 89 | 88 | TCON |
87 | Không thể địa chỉ bit | PCON | |||||||
83 | Không thể địa chỉ bit | DPH | |||||||
82 | Không thể địa chỉ bit | DPL | |||||||
81 | Không thể địa chỉ bit | SP | |||||||
80 | 87 | 87 | 85 | 84 | 83 | 82 | 81 | 80 | P0 |
Hãy xem xét hai điểm sau đây về địa chỉ SFR.
Một thanh ghi chức năng đặc biệt có thể có địa chỉ từ 80H đến FFH. Các địa chỉ này trên 80H, vì các địa chỉ từ 00 đến 7FH là địa chỉ của bộ nhớ RAM bên trong 8051.
Không phải tất cả không gian địa chỉ từ 80 đến FF đều được SFR sử dụng. Các vị trí không sử dụng, 80H đến FFH, được dành riêng và không được sử dụng bởi lập trình viên 8051.
C Y | PSW.7 | Mang cờ |
AC | PSW.6 | Cờ mang phụ trợ |
F0 | PSW.5 | Cờ 0 có sẵn cho người dùng cho mục đích chung. |
RS1 | PSW.4 | Đăng ký bộ chọn ngân hàng bit 1 |
RS0 | PSW.3 | Đăng ký bộ chọn ngân hàng bit 0 |
OV | PSW.2 | Cờ tràn |
- | PSW.1 | CỜ người dùng định nghĩa |
P | PSW.0 | CỜ Chẵn lẻ. Đặt / xóa bởi phần cứng trong chu kỳ lệnh để chỉ ra số chẵn / lẻ của 1 bit trong bộ tích lũy. |
Trong ví dụ sau, tên của thanh ghi SFR được thay thế bằng địa chỉ của chúng.
C Y | AC | F0 | RS1 | RS0 | OV | - | P |
---|
Chúng ta có thể chọn bit Ngân hàng thanh ghi tương ứng bằng cách sử dụng bit RS0 và RS1.
RS1 | RS2 | Đăng ký ngân hàng | Địa chỉ |
---|---|---|---|
0 | 0 | 0 | 00H-07H |
0 | 1 | 1 | 08H-0FH |
1 | 0 | 2 | 10 giờ-17 giờ |
1 | 1 | 3 | 18H-1FH |
Chương trình Trạng thái Word (PSW) chứa các bit trạng thái để phản ánh trạng thái hiện tại của CPU. Các biến thể của 8051 cung cấp một thanh ghi chức năng đặc biệt, PSW, với thông tin trạng thái này. 8251 cung cấp hai cờ trạng thái bổ sung, Z và N, có sẵn trong một thanh ghi chức năng đặc biệt thứ hai được gọi là PSW1.