Xem mẫu

  1. I/O của 8051 và 8255 Bài 7 Bộ môn TĐ Khoa KTĐK
  2. 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á í thì sẽ không đảm bảo á à ế á ít ì ô ả ả cho các ứng dụng điều khiển phức tạp
  3. 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 đó
  4. 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
  5. 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 g ợ ệ – 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 P0 P1 sẵn. • Để tăng số lượng cổng, sử dụng chip giao tiếp cổng song song giống như 8255
  6. Các thông số phần cứng • P0 là cực máng hở ự g – Phải có điện trở kéo 10KΩ bên ngoài – Không cần thiết nếu P0 được sử dụng làm các đường địa chỉ • P1, P2, P3 có các điện trở kéo bên trong • Hệ số đầu ra của cổng bị giới hạn (số các thiết bị nó có thể điề khiể ) ó ó điều khiển). – Sử dụng các bộ đệm để tăng khả năng điều khiển (74LS244, 74LS245 …) – Hệ số đầu ra của P0 phụ thuộc vào giá trị của điện trở ố ầ kéo, bị giới hạn bởi dòng lớn nhất mà nó có thể bị suy giảm trên các đầu ra
  7. Chuyển mạch trên các cổng IO • Trường hợp 1 g ợp – Có mức lôgic 0 khi chuyển mạch đóng – Dòng địên là 0,5ma khi chuyển mạch đóng • Trường hợp 2: – Có mức lôgic 1 khi chuyển mạch đóng – Dòng lớn khi chuyển mạch đóng • Trường hợp 3: – Có thể làm hỏng cổng nếu ở đầ ra có mức 0 ế đầu ó ứ
  8. Các công tắc DIP trên cổng IO • Các công tắc DIP thường có 8 công tắc • Sử dụng trường hợp 1 ở trang trước • Có thể sử dụng một băng trở thay cho các điện trở rời rạc
  9. LED trên cổng IO • Trường hợp 1 – LED bật khi đầu ra =0 0 – Hầu hết điện áp rơi trên các LED từ 1,7 tới 2,5V và cần dòng khoảng 10ma – Dòng điện là (5-2)/470 (5 2)/470 • Trường hợp 2 – Dòng quá lớn – Gây hỏng cổng hoặc LED • Trường hợp 3 – Không dủ để điều khiển (1ma) – LED quá tối • Các LED 7 đoạn – Anôt/Catôt chung – Đưa vào CA – Trường hợp 1 các LED có thể có độ sáng khác nhau
  10. 8051 giao tiếp với 8255 • Thường được sử dụng làm chip điều khiển vào / g ợ ụ g p ra – 40 chân – Có 3 cổng 8 bit PA, PB và PC PA – Cổng PC có thể được sử dụng như 2 cổng 4 bit PCL và PCU – Các cổng có khả năng bắt tay – 2 đường địa chỉ A0, A1 và 1 đường CS • Không gian địa chỉ 4 byte • 00b chọn cổng A • 01b chọn cổng B • 10b chọn cổng C • 11b chọn thanh ghi điều khiển
  11. Sơ đồ chức năng của 8255 • CS được sử dụng để giao g g tiếp với 8051 • Nếu CS được tạo từ các đường đại chỉ A15:A12 như sau: A15-A12 = 1000 • Địa chỉ cơ sở của 8255 là: – 1000 xxxx xxxx xx00b – 8000H • Đại chỉ của thanh ghi là – PA = 8000H – PB = 8001H – PC = 8002H – CR = 8003H
  12. Các chế độ làm việc của 8255 • Mode 0: Vào ra đơn giản g – Bất kỳ cổng A, B, CL và CU có thể đựơc lập trình thành cổng vào hoặc cổng ra • Mode 1: Vào ra với khả năng bắt tay g y – A, B có thể được sử dụng làm cổng I/O – C cung cấp các tín hiệu bắt tay • Mode 2: Vào ra 2 chiều với khả năng bắt tay – A là cổng vào ra 2 chiều với các tín hiệu bắt tay trên cổng C – B là cổng I/O đơn giản (mode 0) hoặc I/O với khả năng bắt tay (mode 1) • Chế độ lập xoá bit BSR (Bit Set Reset) – Có thể lập trình cho từng bit trên cổng C
  13. Cấu hình của 8255 • Định cấu hình bằng cách ghi từ điều khiển vào thanh ghi điều khiển CR • CR xác định Tõ ®iÒu khiÓn D7 D6 D5 D4 D3 D2 D1 D0 Nh A ãm Nhãm B 1=ChÕ ®é I/O 0 ChÕ 0=ChÕ ®é BSR Nöa thÊp cæn 1= Input 1 I t Chän chÕ ®é 0= Output 00=ChÕ ®é 0 01 ChÕ ®é = 1 Cæng B 1X=ChÕ ®é 2 1= Input 0= Output Cæng A 1= Input Chän chÕ ®é 0= Output 0=ChÕ ®é 0 1= ChÕ ®é1 Nöa cao cæng C 1= Input 1 I 0= Output
  14. Sử dụng 8051: Ví dụ đơn giản • 8255 quản lý bộ nhớ của 8051 từ địa chỉ cơ sở 8000H • Từ điều khiển để tất cả các cổng là cổng ra ở chế độ 0 • Đoạn mã 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 @DPTR, ; write 55H t PC it to cpl A ; toggle A (55 -> AA, AA ->55) acall MY_DELAY ; small delay subroutine sjmp repeat ; for (1)
  15. Chuẩn bị thí nghiệm • Bài 1: Lập trình cho 8051 hiển thị 1234 trên LED 7 đoạn. • Bài 2: Dùng 8051 xây dựng bộ điều khiển đèn giao thông có đồng hồ đếm lùi thời gian sáng của đèn xanh đèn đỏ xanh, đỏ.
nguon tai.lieu . vn