- 82 -
- Từ ngăn nhớ 00h đến 1Fh, tổng cộng 32 byte, được dành làm các băng
thanh ghi và ngăn xếp.
- Từ ngăn nhớ 20h đến 2Fh, tổng cộng có 16 byte, được làm bộ nhớ đọc/ghi
định địa chỉ được theo bit.
- Từ ngăn nhớ 30h đến 7Fh, tổng cộng 80 byte được dùng để lưu thông tin
khi đọc và khi ghi.
* Các thanh ghi chức năng đặc biệt
Là các thanh ghi đảm nhận các chức năng khác nhau trong bộ vi điều khiển,
chúng nằm bên trong vi xử lí chiếm vùng không gian nhớ là 128byte có địa chỉ
từ 80h ÷ FFh.
+ Thanh ghi tích luỹ(thanh ghi chứa ACC)
Trong lập trình nó được viết tắt là thanh ghi A, đây là thanh ghi quan trọng
nhất trong bộ vi điều khiển dùng để lưu trữ các toán hạng thực hiện các phép
toán, đồng thời nó còn lưu trữ kết quả phép toán. Thanh ghi này có địa chỉ 0E0h
và có kích thước 8bit.
+ Thanh ghi B
Thường được sử
dụng khi thực hiện các phép toán nhân, chia. Đối với các
lệnh khác có thể xem thanh ghi B là thanh ghi tạm thời có địa chỉ 0F0h.
+ Thanh ghi con trỏ ngăn xếp SP
Khi bắt đầu thực hiện lệnh con trỏ SP trỏ đến đỉnh Stack, giá trị của nó sẽ
thay đổi tự động khi thực hiện các lệnh PUSH và POP. Khác với bộ vi xử lí đa
năng, ở bộ vi điều khiển khi ta thực hiện lệnh PUSH dữ liệu vào ngă
n xếp thì giá
trị của con trỏ ngăn xếp tăng lên và ngược lại khi ta thực hiện lệnh POP giá trị
của con trỏ ngăn xếp sẽ giảm đi.
Ngăn xếp có thể đặt ở bất kỳ vị trí nào trong RAM, nhưng thông thường sau
khi ta khởi động lại hệ thống, con trỏ ngăn xếp sẽ mặc định trỏ đến địa chỉ khởi
- 83 -
- 84 -
ghi. Có 4 băng thanh ghi được đánh số từ 0→ 3 trong mỗi băng thanh ghi lại có
8 thanh ghi đều được gọi tên từ R0→ R7. Trong lập trình có thể sử dụng tên
R0→R7 để truy cập đến vùng nhớ đó.
+ Các thanh ghi Port: Các Port xuất nhập của 89C51 bao gồm Port 0 tại địa
chỉ 80H, Port 1, 2, 3 tương ứng tại các địa chỉ là 90H, A0H và B0H. Các Port 0,
2, 3 không được dùng để xuất nhập nếu ta sử dụng bộ nhớ ngoài hoặc có một số
đặc tính đặc biệt của 89C51 được sử dụng. Tất cả các Port đều định địa chỉ từng
bit nhằm cung cấp các khả năng giao tiếp mạnh.
+ Các thanh ghi định thời: AT89C51 có hai bộ đếm/định thời (timer/counter)
16bit để định các khoảng thời gian hoặc để đếm các sự kiện.
Bảng 5.2. Các thanh ghi chức năng đặc biệt của bộ định thời
SFR của bộ định
thời
Mục đích Địa chỉ
Định địa chỉ
bit
TCON Điều khiển 88H Có
TMOD Chọn chế độ 89H Không
TL0 Byte thấp của bộ định thời 0 8AH Không
TL1 Byte thấp của bộ định thời 1 8BH Không
TH0 Byte cao của bộ định thời 0 8CH Không
TH1 Byte cao của bộ định thời 1 8DH Không
Thanh ghi chế độ định thời TMOD (Timer Mode register): nằm tại địa chỉ
89H. TMOD chứa hai nhóm 4bit dùng để thiết lập chế độ hoạt động cho bộ định
thời 0 và bộ định thời 1. TMOD không được định địa chỉ từng bit. TMOD được
nạp một lần bởi phần mềm ở thời điểm bắt đầu của một chương trình để khởi
động chế độ hoạ
t động của bộ định thời.
- 86 -
Bảng 5.4. Chức năng các bit trong thanh ghi TCON
Bit
Ký
hiệu
Địa chỉ
bit
Mô tả
TCON.7 TF1 8FH
Cờ tràn của bộ định thời 1. Cờ này được set bởi
phần cứng khi có tràn, được xoá bởi phần mềm
hoặc bởi phần cứng khi bộ vi xử lý trỏ đến
trình phục vụ ngắt
TCON.6 TR1 8EH
Bit điều khiển của bộ định thời 1. Bit này được
set hoặc được xoá bởi phần mềm để điều khiển
bộ định thời hoạt động hay ngưng hoạt động
TCON.5 TF0 8DH Cờ tràn của bộ định thời 0
TCON.4 TR0 8CH Bit điều khiển hoạt động của bộ định thời 0
TCON.3 IE1 8BH
Cờ ngắt bên ngoài 1 (kích khởi cạnh). Cờ này
được set bởi phần cứng khi có cạnh âm (xuống)
xuất hiện trên chân INT1, được xoá bởi phần
mềm, hoặc phần cứng khi CPU trỏ đến trình
phục vụ ngắt
TCON.2 IT1 8AH
Cờ ngắt bên ngoài 1(kích khởi cạnh hoặc mức)
Cờ này được set hoặc xoá bởi phần mềm khi
xảy ra cạnh âm (xuống) hoặc mức thấp tại chân
Bit phát 8. Bit thứ 9 được phát ở các chế độ 2 và 3;
được set và xoá bởi phần mềm
SCON.2 RB8 9AH Bit thứ 8. Bit thứ 9 nhận được
SCON.1 TI 99H
Cờ ngắt phát. Cờ này được set ngay khi kết thúc
việc phát một ký tự; được xoá bởi phần mềm
SCON.0 RI 98H
Cờ ngắt thu. Cờ này được set ngay khi kết thúc việc
thu một ký tự; được xoá bởi phần mềm
+ Các thanh ghi ngắt: Ngắt là sự xảy ra của một điều kiện – một sự kiện -
làm cho chương trình hiện hành bị tạm ngưng trong khi điều kiện được phục vụ
bởi một chương trình khác. Các ngắt đóng vai trò quan trọng trong việc thiết kế
- 88 -
và thực hiện các ứng dụng của bộ vi điều khiển. AT89C51 có một cấu trúc ngắt
với 2 mức ưu tiên và 5 nguyên nhân ngắt. Các ngắt bị vô hiệu hoá sau khi reset
hệ thống và sau đó được cho phép bằng cách ghi vào thanh ghi cho phép ngắt IE
(Interrupt Enable register) ở địa chỉ A8H. Mỗi bit của thanh ghi này cho phép
hoặc không cho phép từng nguyên nhân ngắt riêng rẽ, ngoài ra nó còn có một bit
toàn cục cho phép hoặc không cho phép tất cả các ngắt. Chi tiết thanh ghi này
được mô tả như sau:
Bảng 5.6. Chức năng các bit trong thanh ghi IE
Bit Ký hiệu Địa chỉ bit Mô tả (0: không cho phép; 1: cho phép)
IE.7 EA AFH Cho phép/ không cho phép toàn cục.
IE.6 - AEH Không sử dụng.
IE.5 ET2 ADH Cho phép ngắt do bộ định thời 2
IE.4 ES ACH Cho phép ngắt do Port nối tiếp.
IE.3 ET1 ABH Cho phép ngắt do bộ định thời 1
IE.2 EX1 AAH Cho phép ngắt từ bên ngoài (ngắt ngoài 1).
IE.1 ET0 A9H Cho phép ngắt do bộ định thời 0
IE.0 EX0 A8H Cho phép ngắt từ bên ngoài (ngắt ngoài 0).
- 90 -
Bảng 5.8. Chức năng các bit trong thanh ghi PCON
Bit
Ký
hiệu
Mô tả
7
SMO
D
Bit tăng gấp đôi tốc độ baud, bit này khi set làm cho tốc độ
baud tăng 2 lần ở các chế độ 1, 2 và 3 của Port nối tiếp.
6 - Không định nghĩa.
5 - Không định nghĩa.
4 - Không định nghĩa.
3 GF1 Bit cờ đa mục đích.
2 GF0 Bit cờ đa mục đích.
1 PD
Nguồn giảm; thiết lập để tích cực chế độ nguồn giảm, chỉ ra
khỏi chế độ bằng reset.
0 IDL
Chế độ nghỉ; thiết lập để tích cực chế độ nghỉ, chỉ ra khỏi chế
độ bằng một ngắt hoặc reset hệ thống.
PCON không được định địa chỉ bit.
Chế độ nguồn giảm: Lệnh thiết lập bit PD bằng 1 sẽ là lệnh sau cùng được
thực thi trước khi đi vào chế độ nguồn giảm. Ở chế độ nguồn giảm:
- Mạch dao động trên chip ngừng hoạt động.
- Mọi chức năng ngừng hoạt động.
SW1
1 2
SW2
1 2
SW3
1 2
SW4
1 2
R1 8.2K R2
8.2K
R3
8.2K
R4
8.2K
C1
104
C2
104
C3
104
C4
104
RESET
P2.7
P2.5
P2.6
Hình 5.5. Sơ đồ nối ghép bàn phím