Tải bản đầy đủ (.pdf) (6 trang)

Tài liệu Ứng dụng KIT 8051 dùng để chuyển đổi A/D-D/A, chương 6 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (87.57 KB, 6 trang )

Chương 6:
CẤU TRÚC CỔNG XUẤT NHẬP
Mạch bên trong của một chân port mô tả ngắn gọn
trong hình 4.3. Khi ghi lên một chân của cổng, dữ liệu được chốt
vào bộ chốt. Chốt lái một transitor thường nối với chân của
cổng. Nhờ đó có thể kéo được 4 tải LS ở các cổng Port 1, 2 , 3
và 8 tải LS ở Port. Lưu ý Port 0 có điện trở kéo lên, ngoại trừ
khi dùng nó với chức năng vừa là bus đòa chỉ, vừa là bus dữ liệu
ngoại. Tùy theo đặc tính bên trong của tải mà ta có thể thêm
vào điện trở kéo lên bên ngoài.
D
Chốt
Bus nội của 8051
Vcc
Đọc Đọc
chốt chân
Châ
n
Por
t
Ghi
Chốt
Hình 4.3 Sơ đồ mạch port
Việc đọc chốt được phân biệt làm hai, đó là đọc từ
chốt và đọc từ chân. Sự phân biệt này nhằm chống trường hợp
chập mạch do quá tải gây nên. Lệnh đọc một bit cổng (ví dụ
MOV C, P1.1) sẽ đọc chân của cổng. Trong trường hợp này,
chốt phải được giữ ở mức cao, nếu không FET sẽ dẫn và ngõ ra
xuống mức thấp. Tất cả các chốt của port đều được set khi reset
hệ thống. Như vậy các chân chốt đều được dùng như ngõ vào
mà không cần phải set chốt. Tuy nhiên, nếu đã xóa chốt (ví dụ


CLEAR P1.1) không thể đọc dữ liệu đúng từ chân port trừ khi
set chốt trở lại.
IV – TỔ CHỨC BỘ NHỚ
Hầu hết các bộ nhớ các vi xử lý đều dựa theo cấu
trúc Von Neuman về phân chia vùng nhớ cho chương trình và dữ
liệu. Điều này cho phép chương trình được lưu giữ trong đóa và
chỉ load vào bộ nhớ mỗi khi thi hành. Do đó dữ liệu và chương
trình đều nằm trong RAM. Đối với vi điều khiển thì khác, CPU
được coi là hệ thống máy tính. Nó là trung tâm của thiết bò điều
khiển. Nó bò giới hạn về bộ nhớ. Chương trình điều khiển nằm
trong ROM.
Vì lý do này mà bộ nhớ của vi điều khiển 8051 dựa
theo cấu trúc Harvard để phân chia vùng chương trình (code mã
lệnh) và dữ liệu. Như đã mô tả ở bảng 4.2 cả hai vùng mã lệnh
và dữ liệu đều nằm ở bộ nhớ nội. Tuy nhiên cả hai cũng có thể
mở rộng ra bộ nhớ ngoài, có thể lên đến 64Kb cho vùng đòa chỉ.
Bộ nhớ nội gồm có ROM nội (chỉ đối với 8051/8052)
và RAM ngoại. RAM chia thành nhiều vùng: vùng dành cho
mục đích nào đó, vùng có thể truy xuất bit, các khối (bank)
thanh ghi, và các thanh ghi đặc biệt.
Có hai điều đáng lưu ý ở đây: (a) các thanh ghi và
các cổng xuất nhập đều được phân chia đòa chỉ và có thể truy
xuất chúng như những vùng khác. (b) stack thường được phân
chia vào RAM nội hơn là vùng nhớ ngoài. Đây là một đặc điểm
của vi điều khiển.
Hình 4.4 mô tả bộ nhớ của 8031 (không có ROM nội)
Hình 4.5 mô tả chi tiết về vùng nhớ dữ liệu nội. Các
vùng nhớ được mô tả dưới đây.
Vùng tổng quát
Vùng RAM này chiếm 80 bytes từ đòa chỉ 30H đến

đòa chỉ 7FH. Vùng nhớ 32 bytes bên dưới cũng có thể được dùng
như vùng này mặc dù nó được dùng cho mục đích khác.
Bất kỳ vò trí nào trong vùng này đều có thể truy xuất
tự do bằng đòa chỉ trực tiếp hoặc gián tiếp. Ví dụ để đọc nội
dung byte nhớ nội của đòa chỉ 5FH vào thanh ghi ACC, ta dùng
lệnh sau:
MOV A, 5FH ;
Lệnh này chuyển một byte dữ liệu sử dụng đòa chỉ
trực tiếp để xác đònh đòa chỉ nguồn (5FH).
RAM nội cũng có thể được truy xuất bằng đòa chỉ
gián tiếp thông qua R0 và R1 (chỉ hai thanh ghi này mà thôi). Ví
dụ lênh sau sẽ thực hiện công việc giống như ví dụ trên
MOV R0, 5FH ;
MOV A, @R0 ;
Lệnh đầu tiên nạp giá trò 5FH cho thanh ghi R0. Lệnh
thứ hai dùng chuyển dữ liệu được chỉ ra bởi R0 và thanh ghi tích
luỹ (ACC).
FFFF FFFF
Vùng Vùng
mã lệnh dữ liệu
FF Truy xuất Truy
xuất
thông qua RD và
WR
PSEN
0000 0000
Vùng nhớ nội Vùng
nhớ ngoài
Hình : 4.4 Tóm tắt vùng nhớ 8031
Vùng nhớ có khả năng truy xuất bit:

8051 có tất cả 210 vò trí có thể truy xuất bit. Trong đó
có 128 bits (16 bytes) từ đòa chỉ 20H đến 2FH và các bit thuộc
các thanh ghi chức năng. Khả năng truy xuất bit bằng các phần
mềm là một điểm mạnh của vi điều khiển. Bits có thể được set,
clear, and, or, v.v… bằng một lệnh đơn.
Vùng nhớ này có thể truy xuất như bytes hoặc bit. Ví
dụ để set bit 67H ta dùng lệnh sau:
SETB 67H ;
So với bộ nhớ bit là bit có trọng số lớn nhất của bytes
2CH, do đó ta cũng có thể set nó bằng lệnh sau:
MOV A, 2CH ;
ORL A, #10000000B ;
MOV 2CH, A ;
Hơn thế nữa các I/O ports của 8051 có thể truy xuất
bit, làm đơn giản việc xuất nhập từng bit. Vùng nhớ này có thể
xuất nhập từng byte tùy theo lệnh.
Các ngăn thanh ghi (Register banks):
32 butyes nằm ở cuối vùng RAM nội là các ngăn
thanh ghi. Tập lệnh của 8051 chỉ truy xuất 8 thanh ghi trong
vùng này, từ R0 đến R7.
Tại một thời điểm chỉ truy xuất được một ngăn thanh
ghi mà thôi. Các thanh ghi này có đòa chỉ mặc đònh 00H đến 07H
khi reset hệ thống (bank 0). Lệnh sau đây đọc nội dung byte nhớ
có đòa chỉ 05H vào thanh ghi tích luỹ.
MOV A, R5 ;
Lệnh trên chỉ chiếm một bute sử dụng đòa chỉ thanh
ghi. Dó nhiên công việc trên có được thực hiện bằng một lệnh
hai bytes sử dụng đòa chỉ trực tiếp:

×