Các cổng I/O đa hợp của 8051
z Là các cổng mà các chân ra của nó có thể được sử
dụng với các dạng tín hiệu khác
– P0 : Còn có thể dùng làm bus địa chỉ A0:A7 và dữ liệu D0:D7
– P1 : chuyên biệt cho mục đích vào/ra
– P2 : Còn được sử dụng làm bus địa chỉ A8:A15
– P3 : Còn được sử dụng làm các cổng truyền thông nối tiếp
(TxD, RxD), đầu vào bộ định thời (T0, T1), các ngắt ngoài
(INT0, INT1) và các tín hiệu điều khiển đọc/ghi bộ nhớ
ngoài (RD,WR)
z Đối với 8051 hay DS5000, khi không ghép nối với bộ
nhớ ngoài, thì P0, P1 và P2 dùng làm cổng I/O. Đối với
8031, chỉ có P2 là có thể sử dụng.
z Để tăng số lượng các cổng I/O, ta có thể sử dụng 1
chip giao tiếp các cổng I/O song song, như 825
Đặc trưng phần cứng các cổng 8051
z P0 là cổng cực nguồn mở.
– Phải có thêm các điện trở 10K ngoài nối lên 5V để xác lập
mức 1 cho các chân ra của P0.
– Không cần có điện trở này, nếu P0 được sử dụng làm các
đường địa chỉ
z P1, P2, P3 có sẵn điện trở kéo lên (pull-ups)
z Hệ số phân đầu ra của cổng (số lượng các thiết bị mà
nó có thể điều khiển) bị hạn chế.
– Sử dụng các bộ đệm (74LS244, 74LS245, vv) để tăng dòng
điều khiển.
– P1, P2, P3 có thể điều khiển tới 4 đầu vào đệm chốt họ LS-TTL
– Hệ số phân đầu ra của P0 phụ thuộc vào giá trị của điện trở
kéo lên, nó bị giới hạn bởi dòng lớn nhất mà nó có thể nuốt khi
đưa ra ở mức thấp
17 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 510 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng Microcontroller - Chương 6: Vào ra với 8051 và 8255, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
DCE
VÀO RA VỚI 8051 VÀ 8255
Microcontroller
Chapter 6
Ngo Nhu Khoa
Department of Computer Engineering
ThaiNguyen University of Technology
10/1/2005 2 DCE
1. Why I/O Ports
z 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à tạo ra các tín hiệu điều khiển cho thiết bị
ngoài.
– Các cổng I/O phục vụ cho mục đích này
z 8051 được thiết kế sẵn với 4 cổng I/O
z Có quá nhiều cổng sẽ làm tăng số chân ra và tăng giá
thành của chip. Nếu quá ít cổng thì nó lại không thích
hợp với các nhu cầu điều khiển phức tạp
z Nhìn chung, số lượng cổng I/O hạn chế so với yêu cầu
thực tế, do vậy việc phân phối và sử dụng hợp lý các
cổng I/O là 1 vấn đề quan trọng đối với người thiết kế.
10/1/2005 3 DCE
2. Cấu trúc các cổng I/O của 8051
z 32 chân được sử dụng cho 4
cổng I/O, mỗi cổng 8 bit
– P0, P1, P2, P3
z Khi bật nguồn, tất cả các
cổng được đặt là các cổng ra
1 cách ngầm định.
z Để cấu hình bất kỳ cổng nào
làm cổng vào, viết 1 ra trên
các chân của cổng (0xFF)
– Q=1, QB=0, M1=OFF, khi đó
Read_Pin (chân điều khiển
đệm đọc) được lập bởi 1
lệnh đọc cổng
10/1/2005 4 DCE
3. Đọc- ghi các cổng I/O của 8051
z Các cổng có thể được đọc và ghi 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
z Các cổng có thể được truy xuất đến từng bit (cpl và 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
10/1/2005 5 DCE
3. Các cổng I/O đa hợp của 8051
z Là các cổng mà các chân ra của nó có thể được sử
dụng với các dạng tín hiệu khác
– P0 : Còn có thể dùng làm bus địa chỉ A0:A7 và dữ liệu D0:D7
– P1 : chuyên biệt cho mục đích vào/ra
– P2 : Còn được sử dụng làm bus địa chỉ A8:A15
– P3 : Còn được sử dụng làm các cổng truyền thông nối tiếp
(TxD, RxD), đầu vào bộ định thời (T0, T1), các ngắt ngoài
(INT0, INT1) và các tín hiệu điều khiển đọc/ghi bộ nhớ
ngoài (RD,WR)
z Đối với 8051 hay DS5000, khi không ghép nối với bộ
nhớ ngoài, thì P0, P1 và P2 dùng làm cổng I/O. Đối với
8031, chỉ có P2 là có thể sử dụng.
z Để tăng số lượng các cổng I/O, ta có thể sử dụng 1
chip giao tiếp các cổng I/O song song, như 8255
10/1/2005 6 DCE
4. Đặc trưng phần cứng các cổng 8051
z P0 là cổng cực nguồn mở.
– Phải có thêm các điện trở 10K ngoài nối lên 5V để xác lập
mức 1 cho các chân ra của P0.
– Không cần có điện trở này, nếu P0 được sử dụng làm các
đường địa chỉ
z P1, P2, P3 có sẵn điện trở kéo lên (pull-ups)
z Hệ số phân đầu ra của cổng (số lượng các thiết bị mà
nó có thể điều khiển) bị hạn chế.
– Sử dụng các bộ đệm (74LS244, 74LS245, vv) để tăng dòng
điều khiển.
– P1, P2, P3 có thể điều khiển tới 4 đầu vào đệm chốt họ LS-TTL
– Hệ số phân đầu ra của P0 phụ thuộc vào giá trị của điện trở
kéo lên, nó bị giới hạn bởi dòng lớn nhất mà nó có thể nuốt khi
đưa ra ở mức thấp.
10/1/2005 7 DCE
5. 8051 I/O Ports : Input Quirks
z Các lệnh đọc cổng có thể là:
– Đọc từ các chân của 8051 (các mức
“điện áp” trên các chân)
– Đọc từ 1 cổng chốt trong của các cổng
z Ghi 1 ra bộ chốt
– Q=1, QB=0; M1 ngắt
– P1.x có thể dùng như 1 bộ đệm 3
trạng thái
z Ghi 0 ra chốt
– Q=0, QB=1; M1 dẫn
– Đầu vào luôn nhận được là 0
– Có thể gây nguy hiểm cho (M1) nếu
P1.x nối với Vcc
– Sử dụng điện trở 10K giữa chuyển
mạch (switch) trên P1.x và Vcc
– Hoặc sử dụng 1 chuyển mạch SPST
nối với GND
10/1/2005 8 DCE
Input Quirks (contd.)
z Các lệnh đọc các chân của 1 cổng I/O (READ_PIN được
xác lập)
– mov A, Px
– jnb Px.y
– jb Px.y
– mov C, Px.y
z Các lệnh đọc từ bộ chốt trong (READ_LATCH được lập)
– Các lệnh này đọc giá trị đầu ra cuối cùng và không phải là giá
trị trên các chân của cổng
– [anl, orl, xrl] Px
– [jbc, djnz] Px.y, target
– [cpl, clr, setb] Px.y
– [inc, dec] Px
10/1/2005 9 DCE
6. 8051 - Switch On IO Ports
z Trường hợp 1 :
– Nhận mức logic 0 khi SW
đóng
– Dòng là 0.5ma khi SW đóng
– Điện trở Pull-up là cần thiết
nếu là cổng P0
z Trường hợp 2:
– Nhận mức logic 1 khi SW
đóng
– Dòng cao khi SW đóng
z Trường hợp 3:
– Có thể nguy hiểm cho cổng
nếu ghi 0 ra cổng
10/1/2005 10 DCE
7. DIP Switches on IO port
z Các chuyển mạch
DIP thường có 8
công tắc
z Cách nối như trong
trường hợp 1 ở
phần trước
z Có thể dùng 1 trở
dãy, thay cho các
điện trở rời
10/1/2005 11 DCE
8. LED on IO Port
z Cố gắng dùng theo chế độ nuốt dòng
z Trường hợp 1
– LED sáng khi đầu ra là 0
– Phần lớn điện áp rơi trên led là từ 1.7 đến
2.5 volts và cần nguồn dòng khoảng 10ma
– Do vậy, điện trở hạn dòng là 470 Ohm
z Trường hợp 2
– Dòng sẽ quá lớn
– Làm hỏng cổng hoặc led
z Trường hợp 3
– Không đủ dòng để sáng led (1ma)
– LED quá tối (với led 7 đoạn)
– Cực chung Anode/ Cathode, thường là
cathode chung
– Trường hợp 1 có thể cho độ sáng các led
là khác nhau
10/1/2005 12 DCE
9. 8051 giao tiếp với 8255
z 8255 - Được sử dụng rộng rãi trong các chip I/O
– 40 chân
– Cung cấp 3 cổng 8 bit: PA, PB và PC
– Cổng PC có thể được sử dụng như là 2 cổng 4 bit, là PCL và
PCU
– Các cổng có khả năng bắt tay
– Hai đường địa chỉ A0,A1 và 1 chân chọn chip CS
z Không gian địa chỉ là 4 bytes
z 00b chọn cổng A
z 01b chọn cổng B
z 10b chọn cổng C
z 11b chọn thanh ghi điều khiển
10/1/2005 13 DCE
10. Sơ đồ chức năng của 8255
z CS được sử dụng để giao tiếp
với 8051
z Nếu CS được phát sinh từ tổ
hợp các đường địa chỉ A15:A12
như sau, A15:A12 = 1000
z Địa chỉ cơ sở của 8255 là
– 1000 xxxx xxxx xx00b
– 8000H
z Địa chỉ ủa các thanh ghi là:
– PA = 8000H
– PB = 8001H
– PC = 8002H
– CR = 8003H
10/1/2005 14 DCE
11. Các chế độ hoạt động của 8255
z Mode 0 : Vào/ra đơn giản
– Bất kỳ cổng nào trong số A, B, CL và CU có thể được lập trình
như 1 cổng vào hoặc ra
z Mode 1: Vào/ra có bắt tay
– A và B có thể được dùn làm các cổng I/O
– C cung cấp các tín hiệu bắt tay
z Mode 2: Vào/ra 2 chiều có bắt tay
– A là cổng hai chiều với C cung cấp các tín hiệu bắt tay
– B có thể là cổng vao/ra đơn giản (mode-0) hay ở chế độ bắt tay
(mode-1)
z BSR (Bit Set Reset) Mode
– Chỉ cổng C có thể sử dụng ở chế độ truy xuất theo từng bit
10/1/2005 15 DCE
12. Cấu hình cho 8255
z 8255 được cấu hình bằng cách viết 1 từ điều khiển
vào thanh ghi điều khiển CR
z Định nghĩa cho CR
– D7 : 1 I/O mode, 0 BSR
– D6,D5 : Lựa chọn chế độ cho A và CU 00 Mode0, 01 Mode1,
1x Mode2
– D4 : Port A control 1 A input, 0 A output
– D3 : Port CU control 1 CU input, 0 CU output
– D2 : Port B Mode selection 0 B is in mode 0, 1 B is in mode 1
– D1 : Port B control 1 B input, 0 B output
– D0 : Port CL control 1 CL input, 0 CL output
z Tham khảo thêm tài liệu datasheet của 8255 để có
thông tin chi tiết
10/1/2005 16 DCE
12. Ứng dụng 8255 : Ví dụ
z 8255 được ánh xạ bộ nhớ bởi 8051 ở địa chỉ cơ sở 8000H
– PA = 8000H, PB = 8001H, PC = 8002H, CR = 8003H
z Từ điều khiển cho tất cả các cổng là đầu ra ở mode 0
– CR : 1000 0000b = 80H
z Trích đoạn mã lệnh:
test: mov A, #80H ; control word
mov DPTR, #8003H ; address of CR
movx @DPTR, A ; write control word
mov A, #55h ; will try to write 55 and AA alternatively
repeat: mov DPTR, #8000H ; address of PA
movx @DPTR, A ; write 55H to PA
inc DPTR ; now DPTR points to PB
movx @DPTR, A ; write 55H to PB
inc DPTR ; now DPTR points to PC
movx @DPTR, A ; write 55H to PC
cpl A ; toggle A (55 AA, AA 55)
acall MY_DELAY ; small delay subroutine
sjmp repeat ; for (1)
10/1/2005 17 DCE
Next Class
z Interfacing a keypad
z Interfacing a character LCD
z Scanned LED displays
Các file đính kèm theo tài liệu này:
- bai_giang_microcontroller_chuong_6_vao_ra_voi_8051_va_8255.pdf