
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

