I/O của 8051 và 8255
Bài 7
Bộ môn TĐ
Khoa KTĐK
Tại sao phải có cổng I/O
Các bộ điều khiển cần nhận các tín hiệu
vào từ bên ngoài và xuất các tín hiệu ra
bên ngoài
Cổng I/O phục vụ yêu cầu đó
8051 có 4 cổng I/O
Có quá nhiều cổng sẽ làm tăng số chân và
giá thành. Nếu quá ít thì sẽ không đảm
bảo cho các ứng dụng điều khiển phức tạp
Cấu trúc bên trong của các cổng
I/O
32 chân được chia thành 4 cổng 8 bit
P0, P1, P2, P3
Khi bật nguồn tất cả các cổng được mặc
định là cổng ra.
Để định cấu hình cho một cổng bất kỳ là
cổng vào thì ghi 1(0xFF) tới cổng đó
Cổng I/O của 8051
Các cổng có thể được đọc và ghi giống như các
thanh ghi thông thường
mov A, #55H ; can use A
mov P0, A ; write A to P0
mov P1, A
mov P2, #0AAH ; can use immediate mode
xlr P1, #0FFH ; read-modify-write (ex-or)
mov P0, #0FFH ; configure P0 for input
mov A, P0 ; read from P0
Các cổng có thể được thực thi theo từng bit (có
thể địa chỉ hoá theo từng bit) sử dụng lệnh cpl
hoạc setb
cpl P1.2 ; complement bit 2 of Port1
setb P1.3 ; set bit 3 for Port1 to 1
clr P0.0 ; clear bit 0 of Port0
Chân dồn kênh
Các chân của cổng được dồn với các tín hiệu khác
P0: cũng mang A0:A7 và D0:D7
P1: chuyên dụng
P2: mang A8:A15
P3: mang tín hiệu I/O nối tiếp (TxD, RxD), dầu vào
các bộ định thời (T0, T1), Các ngắt bên ngoài (INT0,
INT1) và tín hiệu đọc, ghi (RD, WR)
Đối với 8051 hoặc DS5000 mà không có bộ nhớ ngoài
thì P0, P1, P2 được dành sẵn.
Để tăng số lượng cổng, sử dụng chip giao tiếp cổng
song song giống như 8255