Bài giảng Vi điều khiển - Chương 6: Vào ra với 8051 và 8255

pdf 17 trang phuongnguyen 2770
Bạn đang xem tài liệu "Bài giảng Vi điều khiển - Chương 6: Vào ra với 8051 và 8255", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_vi_dieu_khien_chuong_6_vao_ra_voi_8051_va_8255.pdf

Nội dung text: Bài giảng Vi điều khiển - Chương 6: Vào ra với 8051 và 8255

  1. VÀO RA VỚI 8051 VÀ 8255 Microcontroller Chapter 6 Ngo Nhu Khoa Department of Computer Engineering DCE ThaiNguyen University of Technology
  2. 1. Why I/O Ports z Các bộđiềukhiểncầnnhậncáctínhiệuvàotừ bên ngoài và tạoracáctínhiệu điềukhiểnchothiếtbị ngoài. – Các cổng I/O phụcvụ cho mục đích này z 8051 đượcthiếtkế sẵnvới4 cổng I/O z Có quá nhiềucổng sẽ làm tăng số chân ra và tăng giá thành củachip. Nếu quá ít cổng thì nó lại không thích hợpvớicácnhucầu điềukhiểnphứctạp z Nhìn chung, số lượng cổng I/O hạnchế so vớiyêucầu thựctế, do vậyviệc phân phốivàsử dụng hợplýcác cổng I/O là 1 vấn đề quan trọng đốivớingườithiếtkế. 10/1/2005 2 DCE
  3. 2. Cấutrúccáccổng I/O của8051 z 32 chân đượcsử dụng cho 4 cổng I/O, mỗicổng 8 bit – P0, P1, P2, P3 z Khi bật nguồn, tấtcả các cổng được đặtlàcáccổng ra 1 cách ngầm định. z Để cấuhìnhbấtkỳ cổng nào làm cổng vào, viết1 ratrên các chân củacổng (0xFF) – Q=1, QB=0, M1=OFF, khi đó Read_Pin (chân điềukhiển đệm đọc) đượclậpbởi1 lệnh đọccổng 10/1/2005 3 DCE
  4. 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ểđượctruyxuấ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 4 DCE
  5. 3. Các cổng I/O đahợpcủa8051 z Là các cổng mà các chân ra củanócóthểđượcsử dụng vớicácdạng tín hiệukhác – P0 : Còn có thể dùng làm bus địachỉ A0:A7 và dữ liệuD0:D7 – P1 : chuyên biệtchomục đích vào/ra – P2 : Còn đượcsử dụng làm bus địachỉ A8:A15 – P3 : Còn đượcsử dụng làm các cổng truyền thông nốitiếp (TxD, RxD), đầuvàobộđịnh thời (T0, T1), các ngắt ngoài (INT0, INT1) và các tín hiệu điềukhiển đọc/ghi bộ nhớ ngoài (RD,WR) z Đốivới 8051 hay DS5000, khi không ghép nốivớibộ nhớ ngoài, thì P0, P1 và P2 dùng làm cổng I/O. Đốivớ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ếpcáccổng I/O song song, như 8255 10/1/2005 5 DCE
  6. 4. Đặctrưng phầncứng các cổng 8051 z P0 là cổng cực nguồnmở. – Phải có thêm các điệntrở 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ầncóđiệntrở này, nếu P0 đượcsử dụng làm các đường địachỉ z P1, P2, P3 có sẵn điệntrở kéo lên (pull-ups) z Hệ số phân đầuracủacổng (số lượng các thiếtbị mà nó có thểđiềukhiển) bị hạnchế. – Sử dụng các bộđệm (74LS244, 74LS245, vv) để tăng dòng điềukhiển. – P1, P2, P3 có thểđiềukhiểntới4 đầuvàođệmchốthọ LS-TTL –Hệ số phân đầuracủa P0 phụ thuộc vào giá trị của điệntrở kéo lên, nó bị giớihạnbởi dòng lớnnhấtmànócóthể nuốtkhi đưaraở mứcthấp. 10/1/2005 6 DCE
  7. 5. 8051 I/O Ports : Input Quirks z Các lệnh đọccổng có thể là: – Đọctừ các chân của 8051 (các mức “điện áp” trên các chân) – Đọctừ 1 cổng chốt trong củacáccổng z Ghi 1 ra bộ chốt – Q=1, QB=0; M1 ngắt – P1.x có thể dùng như 1 bộđệm3 trạng thái z Ghi 0 ra chốt – Q=0, QB=1; M1 dẫn – Đầu vào luôn nhận đượclà0 –Cóthể gây nguy hiểm cho (M1) nếu P1.x nốivớiVcc –Sử dụng điệntrở 10K giữa chuyển mạch (switch) trên P1.x và Vcc –Hoặcsử dụng 1 chuyểnmạch SPST nốivớiGND 10/1/2005 7 DCE
  8. Input Quirks (contd.) z Các lệnh đọc các chân của1 cổng I/O (READ_PIN được xác lập) – mov A, Px – jnb Px.y –jbPx.y – mov C, Px.y z Các lệnh đọctừ bộ chốt trong (READ_LATCH đượclập) –Cáclệnh này đọcgiátrịđầuracuối cùng và không phảilàgiá trị trên các chân củacổng – [anl, orl, xrl] Px – [jbc, djnz] Px.y, target – [cpl, clr, setb] Px.y – [inc, dec] Px 10/1/2005 8 DCE
  9. 6. 8051 - Switch On IO Ports z Trường hợp1 : – Nhậnmức logic 0 khi SW đóng – Dòng là 0.5ma khi SW đóng – Điệntrở Pull-up là cầnthiết nếulàcổng P0 z Trường hợp2: –Nhậnmức logic 1 khi SW đóng – Dòng cao khi SW đóng z Trường hợp3: –Cóthể nguy hiểmchocổng nếughi0 racổng 10/1/2005 9 DCE
  10. 7. DIP Switches on IO port z Các chuyểnmạch DIP thường có 8 công tắc z Cách nốinhư trong trường hợp1 ở phầntrước z Có thể dùng 1 trở dãy, thay cho các điệntrở rời 10/1/2005 10 DCE
  11. 8. LED on IO Port z Cố gắng dùng theo chếđộnuốt dòng z Trường hợp1 – LED sáng khi đầuralà0 –Phầnlớn điệnáprơ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ệntrở hạn dòng là 470 Ohm z Trường hợp2 – Dòng sẽ quá lớn –Làmhỏng cổng hoặcled z Trường hợp3 – 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ợp1 cóthể cho độ sáng các led là khác nhau 10/1/2005 11 DCE
  12. 9. 8051 giao tiếpvới 8255 z 8255 - Đượcsử dụng rộng rãi trong các chip I/O – 40 chân – Cung cấp3 cổng 8 bit: PA, PB và PC –Cổng PC có thểđượcsử dụng như là 2 cổng 4 bit, là PCL và PCU –Cáccổng có khả năng bắttay –Haiđường địachỉ A0,A1 và 1 chân chọn chip CS z Không gian địachỉ là 4 bytes z 00b chọncổng A z 01b chọncổng B z 10b chọncổng C z 11b chọn thanh ghi điềukhiển 10/1/2005 12 DCE
  13. 10. Sơđồchứcnăng của8255 z CS đượcsử dụng để giao tiếp với 8051 z NếuCS được phát sinh từ tổ hợpcácđường địachỉ A15:A12 như sau, A15:A12 = 1000 z Địachỉ cơ sở của 8255 là – 1000 xxxx xxxx xx00b – 8000H z Địachỉủa các thanh ghi là: – PA = 8000H – PB = 8001H – PC = 8002H – CR = 8003H 10/1/2005 13 DCE
  14. 11. Các chếđộhoạt động của8255 z Mode 0 : Vào/ra đơngiản –Bấtkỳ cổng nào trong số A, B, CL và CU có thểđượclậptrình như 1 cổng vào hoặcra z Mode 1: Vào/ra có bắttay – A và B có thểđược dùn làm các cổng I/O – C cung cấpcáctínhiệubắttay z Mode 2: Vào/ra 2 chiềucóbắttay –A làcổng hai chiềuvớiC cungcấpcáctínhiệubắttay –B cóthể là cổng vao/ra đơngiản (mode-0) hay ở chếđộbắttay (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 14 DCE
  15. 12. Cấu hình cho 8255 z 8255 đượccấuhìnhbằng cách viết1 từđiềukhiển vào thanh ghi điềukhiểnCR z Định nghĩachoCR – D7 : 1 I/O mode, 0 BSR – D6,D5 : Lựachọnchếđộ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 15 DCE
  16. 12. Ứng dụng 8255 : Ví dụ z 8255 được ánh xạ bộ nhớ bởi 8051 ở địachỉ cơ sở 8000H – PA = 8000H, PB = 8001H, PC = 8002H, CR = 8003H z Từđiềukhiểnchotấtcả các cổng là đầuraở mode 0 – CR : 1000 0000b = 80H z Trích đoạnmã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 16 DCE
  17. Next Class z Interfacing a keypad z Interfacing a character LCD z Scanned LED displays 10/1/2005 17 DCE