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

Tài liệu luận văn Điện năng kế điện tử giao tiếp máy tính, chương 2 docx

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 (112.81 KB, 10 trang )

Chương 2:
Các thanh ghi port xuất nhập
Các port của 8951 bao gồm Port 0 ở đòa chỉ 80H, Port 1 ở đòa
chỉ 90H, Port 2 ở đòa chỉ A0H và Port 3 ở đòa chỉ B0H.
Tất cả các port đều được đòa chỉ hóa từng bit. Điều đó cung
cấp một khả năng giao tiếp thuận lợi.
Ví dụ, nếu một motor được nối qua một cuộn dây có
transistor lái đến bit 7 của Port 1, nó có thể được bật và tắt
bằng một lệnh đơn:
SETB P1.7 ; bật motor
CLR P1.7 ; tắt motor
Các lệnh trên dùng dấu chấm để xác đònh một bit trong một
byte. Trình hợp dòch sẽ thi hành sự chuyển đổi cần thiết, vì
vậy hai lệnh sau đây là như nhau:
CLR P1.7
CLR 97H
Trong một ví dụ khác, xem xét giao tiếp đến một thiết bò với
một bit trạng thái gọi là BUSY, được set khi thiết bò đang bận
và được xóa khi thiết bò đã sẵn sàng. Nếu BUSY được nối tới
P1.5, vòng lặp sau sẽ được dùng để chờ thiết bò trở lại trạng
thái sẵn sàng:
WAIT : JB P1.5, WAIT
Lệnh này có nghóa là “nếu bit P1.5 được set thì nhảy tới nhãn
WAIT”.
Nói cách khác “nhảy trở lại và kiểm tra lần nữa”.
f/ Các thanh ghi timer:
C 8951 chứa hai bộ đònh thời/đếm 16 bits được dùng cho
việc đònh thời hoặc đếm sự kiện.
Timer 0 ở đòa chỉ 8AH (TL0: byte thấp) và 8CH (TH0 : byte
cao).
Timer 1 ở đòa chỉ 8BH (TL1: byte thấp) và 8DH (TH1 : byte


cao).
Việc vận hành timer được set bởi thanh ghi Timer Mode
(TMOD) ở đòa chỉ 89H và thanh ghi điều khiển timer (TCON)
ở đòa chỉ 88H.
Chỉ có TCON được đòa chỉ từng bit.
g/ Các thanh ghi port nối tiếp:
C8951 chứa một port nối tiếp trên chip dành cho việc trao
đổi thông tin với các thiết bò nối tiếp như máy tính, modem
hoặc cho việc giao tiếp với các IC khác có giao tiếp nối tiếp
(các bộ chuyển đổi A/D, các thanh ghi dòch … ).
Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở đòa
chỉ 99H sẽ giữ cả hai dữ liệu truyền và nhận.
Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc
SBUF.
Các mode vận hành khác nhau được lập trình qua thanh ghi
điều khiển port nối tiếp (SCON) (được đòa chỉ hóa từng bit) ở
đòa chỉ 98H.
h/ Các thanh ghi ngắt:
C 8951 có cấu trúc 5 nguồn ngắt (2 mức ưu tiên).
Các ngắt bò cấm sau khi reset hệ thống và sẽ được cho phép
bằng việc ghi thanh ghi cho phép ngắt (IE) ở đòa chỉ A8H.
Cả hai thanh ghi được đòa chỉ hóa từng bit.
i/ Thanh ghi điều khiển công suất:
Thanh ghi điều khiển công suất (PCON) ở đòa chỉ 87H chứa
nhiều bit điều khiển. Chúng được tóm tắt trong bảng sau:
Bi
t

hiệu
Ý nghóa

7 SMO
D
Bit gấp đôi tốc độ baud, nếu được set thì tốc độ
baud sẽ tăng gấp đôi trong các
mode1, 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 dụng 1
2 GF0 Bit cờ đa dụng 0
1 PD Giảm công suất, được set để kích hoạt mode
giảm công suất, chỉ thoát khi
reset.
0 IDL Mode chờ, set để kích hoạt mode chờ, chỉ thoát
khi có ngắt hoặc reset hệ thống.
5/ Bộ nhớ ngoài:
C 8951 có khả năng mở rộng bộ nhớ lên đến 64K bộ nhớ
chương trình và 64K bộ nhớ dữ liệu ngoài. Do đó, có thể
dùng thêm ROM và RAM bên ngoài nếu cần.
Khi dùng bộ nhớ ngoài, Port 0 không còn là một port I/O
thuần túy nữa. Nó được hợp kênh giữa bus đòa chỉ (A0 – A7)
và bus dữ liệu (D0 – D7) với tín hiệu ALE để chốt byte thấp
của đòa chỉ khi bắt đầu mỗi chu kì bộ nhớ. Port 2 thông thường
được dùng cho byte cao của bus đòa chỉ.
Trong nửa đầu của mỗi chu kì bộ nhớ, byte thấp của đòa chỉ
được cấp trong Port 0 và được chốt bằng xung ALE. Một IC
chốt 74HC373 (hoặc tương đương) sẽ giữ byte đòa chỉ thấp
trong phần còn lại của chu kì bộ nhớ. Trong nửa sau của chu
kì bộ nhớ Port 0 được dùng như bus dữ liệu và được đọc hoặc
ghi tùy theo lệnh.

a/ Truy xuất bộ nhớ chương trình ngoài:
Bộ nhớ chương trình ngoài là một IC ROM được cho phép
bởi tín hiệu
PSEN\.
Hình sau mô tả cách nối một EPROM vào 8951:
Giao tiếp giữa
8951 và EPROM.
Một chu kì máy của 8951 có 12 chu kì xung nhòp. Nếu bộ dao
động trên chip được lái bởi một thạch anh 12 Mhz thì một chu
kì máy kéo dài 1
s.
Trong một chu kì máy, sẽ có hai xung ALE và hai byte được
đọc từ bộ nhớ chương trình (nếu lệnh hiện hành là lệnh 2
bytes thì byte thứ hai sẽ được loại bỏ). Giản đồ thời gian của
một lần lấy lệnh được vẽ ở hình sau:
Giản đồ thời gian đọc bộ nhớ chương trình ngoài.
b/ Truy xuất bộ nhớ dữ liệu ngoài:

×