Chương III. KHẢO SÁT CÁC KHỐI BÊN TRONG 8031
TỔ CHỨC BỘ NHỚ:
Bộ nhớ trong 8031 ba gồm ROM và RAM. RAM trong
8031 bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu
trữ đòa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi
chức năng đặc biệt. 8031 có cấu trúc bộ nhớ theo kiểu Harvard:
có những vùng nhớ riêng biệt cho chương trình và dữ liệu.
Chương trình và dữ liệu có thể chứa bên trong 8051, nhưng 8051
vẫn có thể kết nối với 64c byte chương trình và 64k byte dữ
liệu.
Hai đặc tính cần chú ý khi dùng
C8031/8051 là:
Các thanh ghi và các port xuất nhập đã được đònh vò
(được đònh vò có nghóa là xác đònh) trong bộ nhớ và có thể truy
xuất trực tiếp giống như các bộ nhớ đòa chỉ khác.
Ngăn xếp bên trong RAM nội nhỏ hơn so với ROM
ngoại như các bộ vi xử lý khác.
RAM bên trong 8031 được phân chia như sau:
Các Bank thanh ghi có đòa chỉ 00H 1FH.
RAM đòa chỉ hóa từng bit có đòa chỉ 20H 2FH.
RAM đa dụng có đòa chỉ 30H 7FH.
Các thanh ghi có chức năng đặc biệt 80H FFH.
Byte address
Bit address
GENERAL
PURPOSE
RAM
7F 7E 7D 7C 7B 7A 79 78
77 76 75 74 73 72 71 70
6F 6E 6D 6C 6B 6A 69 68
67 66 65 64 63 62 61 60
ACC
PSW
IP
P3
IE
P2
a.RAM đa dụng:
Mặc dù trên hình vẽ cho thấy 80 byte đa dụng chiếm các
đòa chỉ từ 30H
7FH, 32 đòa chỉ dưới từ 00H1FH cũng có thể
được dùng với mục đích tương tự (mặc dù các đòa chỉ này cũng
đã đònh với mục đích khác).
Mọi đòa chỉ trong vùng RAM đa dụng đều có thể truy
xuất tự do dùng kiểu đòa chỉ gián tiếp hoặc trực tiếp. Ví dụ: để
đọc nội dung ở đòc chỉ 5FH của RAM nội vào thanh ghi tích lũy
A, có thể dùng một trong hai cách sau:
- Cách 1: MOV A, #5FH
- Cách 2: Ngoài cách trên RAM bên trong cũng có thể
được truy xuất bằng cách dùng đòa chỉ gián tiếp hoặc trực tiếp
qua R0 hay R1:
MOV R0, #5FH
MOV A, @R0
Lệnh đầu tiên dùng để nạp đòa chỉ tức thời #5FH vào
thanh ghi R0, lệnh thứ 2 dùng để chuyển nội dung của ô nhớ có
đòa chỉ mà R0 đang chỉ tới vào thanh ghi tích lũy A.
b. RAM đòa chỉ hóa từng bit:
8031 chứa 210 bit được đòa chỉ hóa, trong đó có 128bit chứa
các byte có đòa chỉ từ 20H
2FH và các bit còn lại chức trong
nhóm thanh ghi có chứa năng đặc biệt.
thanh ghi R0
R7. Để chuyển đổi việc truy xuất các bank thanh
ghi ta phải thay đổi các bit chọn bank trong thanh ghi trong
thanh ghi trạng thái. Giả sử bank thanh ghi thứ 3 đang được truy
xuất lệnh sau đây sẽ chuyển nội dung của thanh ghi A vào ô
nhớ RAM có đòa chỉ 18H:
MOV R0, A
Tóm lại ý tưởng dùng các bank thanh ghi cho phép ta
chuyển hướng chương trình nhanh và hiệu quả hơn.
B. HOẠT ĐỘNG CỦA BỘ ĐỊNH THÌ TIMER:
I. GIỚI THIỆU:
Một đònh nghóa đơn giản của timer là một chuỗi các flip-
flop chia đôi tần sồ nối tiếp với nhau, chúng nhận tín hiệu vào
làm nguồn xung nhòp. Ngõ ra của tầng cuối làm xung nhòp cho
flip - flop báo tràn của timer (flip - flop cờ). Giá trò nhò phân
trong các flip - flop của timer có tể xem như đếm số xung nhòp
(hoặc các sự kiện) từ khởi động timer. Ví dụ timer 16 bit sẽ đếm
từ 0000H đến FFFFH. Cờ báo tràn sẽ lên 1 khi số đếm tràn từ
FFFFH đến 0000H.
C8031/8051 có hai timer 16 bit, mỗi timer có 4 cách làm
việc. Người ta sử dụng các timer để:
a. Đònh khoảng thời gian.
b. Đếm sự kiện.
c. Tạo tốc độ baud cho port nối tiếp trong
C8051/8031.
Trong các ứng dụng đònh nghóa khoảng thời gian, người ta
sử dụng lập trình timer ở một khoảng đều đặn và đặt cờ tràn
timer. Cờ được sử dụng để đồng bộ hóa chương trình để thực
`iện một tác động như kiểm tra trạng thái của các ngõ vào hoặc
gởi sự kiện ra các ngõ ra. Các ứng dụng khác có thể sử dụng