Tài liệu Giáo trình vi xử lý Tổ chức nhập / xuất pdf

32 460 2
Tài liệu Giáo trình vi xử lý Tổ chức nhập / xuất pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình vi xử lý Tổ chức nhập / xuất CHƯƠNG 3: TỔ CHỨC NHẬP / XUẤT Các mạch phụ trợ 8284 8288 1.1 Mạch tạo xung nhịp 8284 Mạch tạo xung nhịp dùng để cung cấp xung nhịp cho μP CSY NC VCC PCLK X1 AEN1 X2 RDY ASY NC READY EFI RD2 F/C AEN2 OSC CLK RES GND RESET 18 17 16 15 14 13 12 11 10 8284 Hình 3.1 – Mạch tạo xung nhịp 8284 CSYNC (Clock Synchronisation): ngõ vào xung đồng chung hệ thống có 8284 dùng dao động ngồi chân EFI Khi dùng mạch dao động phải nối đất PCLK (Peripheral Clock): xung nhịp f = fX/6 (fX tần số thạch anh) AEN1 , AEN (Address Enable): cho phép chọn chân RDY1, RDY2 báo hiệu trạng thái sẵn sàng nhớ hay thiết bị ngoại vi 18 17 16 15 14 13 12 11 10 CSY NC VCC PCLK X1 AEN1 X2 ASY NC RDY READY EFI RD2 F/C AEN2 OSC RES CLK RESET GND 8284 Vcc + Hình 3.2 – Mạch khởi động cho 8284 Phạm Hùng Kim Khánh Trang 77 Giáo trình vi xử lý Tổ chức nhập / xuất RDY1, RDY2 (Bus ready): tạo chu kỳ đợi CPU READY: nối đến chân READY μP CLK (Clock): xung nhịp f = fX/3, nối với chân CLK μP RESET: nối với chân RESET μP, tín hiệu khởi động lại toàn hệ thống RES (Reset Input): chân khởi động cho 8284 OSC: ngõ xung nhịp có tần số fX F/ C (Frequency / Crystal): chọn nguồn tín hiệu chuẩn cho 8284, mức cao chọn tần số xung nhịp bên ngồi, ngược lại dùng xung nhịp từ thạch anh EFI (External Frequency Input): xung nhịp từ dao động ASYNC : chọn chế độ làm việc cho tín hiệu RDY X1,X2: ngõ vào thạch anh 1.2 Mạch điều khiển bus 8288 Mạch điều khiển bus 8288 lấy số tín hiệu điều khiển μP cung cấp tín hiệu điều khiển cần thiết cho hệ vi xử lý 10 VCC IOB S0 CLK S2 S1 DT/R MCE/PDEN DEN ALE CEN AEN MRDC INTA AMWC IORC MWTC AIOWC GND IOWC 20 19 18 17 16 15 14 13 12 11 8288 Hình 3.3 – Mạch điều khiển bus 8288 IOB (Input / Output Bus Mode): điều khiển để 8288 làm việc chế độ bus khác CLK (Clock): ngõ vào lấy từ xung nhịp hệ thống S2 , S1 , S0 : tín hiệu trạng thái lấy trực tiếp từ μP Tuỳ theo giá trị nhận mà 8288 đưa tín hiệu theo bảng 3.1 Phạm Hùng Kim Khánh Trang 78 Giáo trình vi xử lý Tổ chức nhập / xuất Bảng 3.1: S2 0 0 1 1 S1 0 1 0 1 S0 1 1 Tạo tín hiệu INTA IORC IOWC , AIOWC Không MRDC MRDC MWTC , AMWC Không DT/ R (Data Transmit/Receive): μP truyền (1) hay nhận (0) liệu ALE (Address Latch Enable): tín hiệu cho phép chốt địa AEN (Address Enable): chờ thời gian trễ khoảng 150 ns tạo tín hiệu điều khiển đầu 8288 để đảm bảo địa sử dụng hợp lệ MRDC (Memory Read Command): điều khiển đọc nhớ MWTC (Memory Write Command): điều khiển ghi nhớ AMWC (Advanced MWTC),: giống MWTC hoạt động sớm chút dùng cho nhớ chậm đáp ứng kịp tốc độ μP IOWC (I/O Write Command): điều khiển ghi ngoại vi AIOWC (Advanced IOWC),: giống IOWC hoạt động sớm chút dùng cho ngoại vi chậm đáp ứng kịp tốc độ μP IORC (I/O Read Command): điều khiển đọc ngoại vi INTA (Interrupt Acknowledge): ngõ thông báo μP chấp nhận yêu cầu ngắt thiết bị ngoại vi CEN (Command Enable): cho phép đưa tín hiệu 8288 DEN (Data Enable): tín hiệu điều khiển bus liệu thành bus cục hay bus hệ thống MCE / PDEN (Master Cascade Enable / Peripheral Data Enable): định chế độ làm việc cho mạch điều khiển ngắt PIC 8259 Phạm Hùng Kim Khánh Trang 79 Giáo trình vi xử lý Tổ chức nhập / xuất Giao tiếp với thiết bị ngoại vi 2.1 Các kiểu giao tiếp nhập / xuất 2.1.1 Thiết bị ngoại vi có địa tách rời với nhớ Trong cách giao tiếp này, nhớ dùng tồn khơng gian MB Các thiết bị ngoại vi có không gian 64 KB cho loại cổng Trong kiểu giao tiếp này, ta phải dùng tín hiệu IO/ M lệnh trao đổi liệu thích hợp Bộ nhớ: Ngoại vi: IO/ M = 0, dùng lệnh MOV IO/ M = 1, dùng lệnh IN (nhập) hay OUT (xuất) 2.1.2 Thiết bị ngoại vi nhớ có chung không gian địa Trong kiểu giao tiếp này, thiết bị ngoại vi chiếm vùng không gian địa MB ta dùng lệnh MOV để thực trao đổi liệu 2.2 Giải mã địa cho thiết bị nhập / xuất Việc giải mã địa cho thiết bị ngoại vi tương tự với việc giải mã địa cho nhớ Thơng thường, cổng có địa bit A0 – A7 Tuy nhiên, số hệ vi xử lý, cổng có địa 16 bit Ta dùng mạch NAND để tạo tín hiệu chọn cổng mạch giải mã cho cổng Trong trường hợp cần nhiều tín hiệu chọn cổng, ta dùng giải mã 74LS138 để giải mã cho cổng khác A0 A1 A2 A3 - A7 IO/ M RD A B C G1 G2A G2B Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 15 14 13 12 11 10 74LS138 (a) Giải mã cho cổng vào A0 A1 A2 A3 - A7 2 IO/ M WR A B C G1 G2A G2B Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 15 14 13 12 11 10 74LS138 (b) Giải mã cho cổng Hình 3.4 – Giải mã cho cổng Phạm Hùng Kim Khánh Trang 80 Giáo trình vi xử lý 2.3 Tổ chức nhập / xuất Các mạch cổng đơn giản Các mạch cổng xây dựng từ mạch chốt bit (74LS373: kích theo mức, 74LS374: kích theo cạnh), mạch đệm bit (74LS245) Chúng dùng giao tiếp đơn giản để μP ngoại vi hoạt động tương thích với 2.4 Giao tiếp nhập / xuất song song lập trình 8255A PPI (Programmable Peripheral Interface) 2.4.1 Giới thiệu 8255A thiết bị xuất nhập song song lập trình Nó thiết bị I/O đa dụng sử dụng với μP nào, lập trình để truyền liệu, từ I/O thơng thường đến I/O interrupt 8255A chia thành Port: A, B C; port bit Port C sử dụng bit riêng hay chia thành nhóm, nhóm bit: PCH (PC7 ÷ PC4) PCL (PC3 ÷ PC0) 8255A hoạt động chế độ (mode): BSR (Bit Set/Reset) I/O Chế độ BSR: dùng để đặt hay xóa bit Port C Chế độ I/O: gồm có chế độ: - Chế độ 0: tất Port làm việc Port I/O đơn giản - Chế độ (chế độ bắt tay: handshake): Port A B dùng bit Port C làm tín hiệu bắt tay Trong chế độ này, kiểu truyền liệu I/O cài đặt, kiểm tra trạng thái ngắt - Chế độ 2: Port A dùng để truyền liệu song hướng dùng tín hiệu bắt tay từ Port C Port B thiết lập chế độ hay 34 33 32 31 30 29 28 27 36 35 D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 8255 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 D7 – D0: bus liệu PA7 – PA0: Port A PB7 – PB0: Port B PC7 – PC0: Port C A1, A0: giải mã RESET: ngõ vào Reset CS : Chip Select RD : Read WR : Write VCC: +5V GND: 0V Hình 3.5 – Sơ đồ chân 8255A Phạm Hùng Kim Khánh Trang 81 Giáo trình vi xử lý Tổ chức nhập / xuất 2.4.2 Sơ đồ khối Nhóm A: - PA (8) - PCH (4) Điều khiển nhóm A PA7 ÷PA0 PC7 ÷PC4 D7 ÷D0 Bộ đệm liệu RD WR Logic điều khiển A1 A0 Điều khiển nhóm B Nhóm B: - PB (8) - PCL (4) PB7 ÷PB0 PC3 ÷PC0 CS Hình 3.6 – Sơ đồ khối 8255A Logic điều khiển 8255A gồm có đường: - RD (Read): cho phép ĐỌC Khi chân mức THẤP cho phép đọc liệu từ Port I/O chọn - WR (Write): cho phép GHI Khi chân mức THẤP cho phép ghi liệu Port I/O chọn - RESET: chân mức cao xoá ghi điều khiển đặt Port chế độ nhập - CS (Chip Select): chân chọn chip, thông thường CS nối vào địa giải mã - A1, A0: giải mã xác định Port Phạm Hùng Kim Khánh Trang 82 Giáo trình vi xử lý Tổ chức nhập / xuất Bảng 3.2: A1 0 1 x CS 0 0 A0 1 x Chọn Port A Port B Port C Thanh ghi điều khiển 8255A không hoạt động EN Thanh ghi điều khiển (CR: Control Register) A1 A0 EN Giải mã nội Port A CS EN Port B EN Port C RD WR Hình 3.7 – Giải mã chọn Port Ví dụ: Xét sơ đồ kết nối 8255A hình vẽ trang bên: Theo bảng 3.2, để chọn Port A, ta phải có: ⎧CS = ⎪ ⎨ A1 = ⎪A = ⎩ A7 A6 A5 A4 A3 A2 34 33 32 31 30 29 28 27 36 35 IOR IOW A0 A1 RESET D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 RD WR A0 A1 RESET CS PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 8255 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 Hình 3.8 – Logic chọn chip 8255A Phạm Hùng Kim Khánh Trang 83 Giáo trình vi xử lý Tổ chức nhập / xuất Mà CS = A7 = A6 = A5 = A4 = A3 = A2 = Từ ta địa Port I/O sau: Bảng 3.3: A7 A1 A0 CS A6 A5 A4 A3 A2 A1 A0 1 1 0 1 1 Port Địa hex A B C CR FCh FDh FEh FFh Thanh ghi điều khiển: Như biết, 8255A có chế độ hoạt động Port có chức I/O khác Để xác định chức Port, 8255A có ghi điều khiển (CR: Control Register) Nội dung ghi gọi từ điều khiển (CW: Control Word) Thanh ghi điều khiển truy xuất A1 = A0 = Chú ý ta thực tác vụ Đọc ghi Nếu bit D7 = 0, Port C làm việc chế độ BSR từ điều khiển BSR không ảnh hưởng đến chức Port A, B D7 D6 D5 D4 D3 D2 D1 D0 1: Mode I/O 0: Mode BSR Nhóm A Nhóm B PCH (PC7 ÷ PC4) 1: Input 0: Output PCL (PC3 ÷ PC0) 1: Input 0: Output PA 1: Input 0: Output PB 1: Input 0: Output Mode 1x: Mode 01: Mode 00: Mode Mode 1: Mode 0: Mode Hình 3.9 – Dạng từ điều khiển cho 8255A chế độ I/O Phạm Hùng Kim Khánh Trang 84 Giáo trình vi xử lý Tổ chức nhập / xuất 2.4.3 Mode 0: Nhập / xuất đơn giản Trong chế độ này, port (hay nửa port Port C) làm việc port nhập hay xuất với tính chất sau: - Các ngõ chốt Các ngõ vào không chốt Các port khơng có khả bắt tay ngắt Để giao tiếp với ngoại vi thông qua 8255A cần phải: - Xác định địa port A, B, C CR thông qua chân chọn chip CS giải mã A1, A0 Ghi từ điều khiển vào ghi điều khiển Ghi lệnh I/O để giao tiếp với ngoại vi qua port A, B, C Phạm Hùng Kim Khánh Trang 85 VCC A15 A14 A13 A12 A11 2 2 74LS245 34 33 32 31 30 29 28 27 36 35 IOR IOW A0 A1 RESET U?A A10 2 7400 A9 A8 A7 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 RD WR A0 A1 RESET CS PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 8255 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 40 39 38 37 18 19 20 21 22 23 24 25 VCC 19 A1 A2 A3 A4 A5 A6 A7 A8 B1 B2 B3 B4 B5 B6 B7 B8 18 17 16 15 14 13 12 11 G DIR VCC 74LS245 14 15 16 17 13 12 11 10 S1 A6 Giáo trình vi xử lý Phạm Hùng Kim Khánh Ví dụ: Xét sơ đồ kết nối 8255A sau: 19 VCC A1 A2 A3 A4 A5 A6 A7 A8 B1 B2 B3 B4 B5 B6 B7 B8 18 17 16 15 14 13 12 11 G DIR S2 A5 A4 A3 2 2 S3 S4 Hình 3.10 – Giao tiếp port 8255A mode Trang 86 Tổ chức nhập / xuất A2 Giáo trình vi xử lý Tổ chức nhập / xuất WR OBF INTR ACK Output Hình 3.14 – Dạng sóng cho xuất strobe (có lấy mãu) (với bắt tay) Từ điều khiển trạng thái: D7 I/O mode D6 D5 PA: Mode D7 OBF A Từ điều khiển: D4 PA: xuất D3 1/0 PC4,5 1: nhập 0: xuất D2 PB: mode D3 INTRA D2 INTEB D1 D0 X PB: xuất Từ trạng thái: D6 INTEA D5 I/O D4 I/O D1 OBF B D0 INTRB 2.4.6 Mode 2: Truyền liệu song hướng Mode dùng chủ yếu ứng dụng truyền liệu hai máy tính hay giao tiếp điều khiển đĩa mềm Trong mode này, Port A dùng làm Port song hướng Port B làm việc Mode hay Port A sử dụng tín hiệu Port C làm tín hiệu điều khiển để truyền liệu Ba tín hiệu lại Port C dùng làm I/O đơn giản hay bắt tay cho Port B Phạm Hùng Kim Khánh Trang 94 Giáo trình vi xử lý PA7 ÷PA0 PC7 PC6 PC5 PC4 PC3 PC2 ÷ PC0 PB7 ÷PB0 Tổ chức nhập / xuất Port A OBF A ACK A IBFA Từ điều khiển: D7 I/O D6 D5 X PA: Mode D4 X D3 X STB A D2 D1 D0 1/0 PB: PB: PC2÷0: Mode Nhập 1:Nhập 0:Xuất INTRA I/O Port B (a) 8255A mode mode (nhập) PA7 ÷PA0 PC7 PC6 PC5 PC4 PC3 PB7 ÷PB0 PC1 Port A OBF A ACK A IBFA Từ điều khiển: D7 I/O D6 D5 X PA: Mode D4 X D3 X D2 PB: Mode D1 PB: xuất STB A INTRA Port B PC2 OBF B ACK B PC0 INTRB (a) 8255A mode mode (xuất) Hình 3.15 – 8255A dùng Mode 2.4.7 Các ví dụ minh họa 2.4.7.1 Giao tiếp với chuyển đổi A/D ADC0804 dùng 8255A Mode Mode BSR Ta thiết lập 8255A hoạt động sau: - Dùng Port A để đọc liệu Phạm Hùng Kim Khánh Trang 95 D0 X Giáo trình vi xử lý - Tổ chức nhập / xuất Dùng PC0, PC3 điều khiển chân RD , WR ADC0804 Xét sơ đồ mạch có logic chọn chip giống hình 4.10 Tầm địa Port từ 300h ÷ 303h - Từ điều khiển mode 0: Port A: nhập Pot B: không sử dụng Port Clow: port xuất dùng để điều khiển ngõ RD , WR ADC0804 Port Chigh: port nhập dùng để đọc trạng thái chân INTR ADC0804 D7 I/O D6 D5 0 PA: mode - D4 PA: nhập D3 PCH: xuất D2 D1 0 PB: không sử dụng D0 PCL: xuất = 90h Từ điều khiển BSR: Đặt PC0 Xoá PC0 Đặt PC3 Xoá PC3 Phạm Hùng Kim Khánh D7 0 0 D6 0 0 D5 0 0 D4 0 0 D3 0 0 D2 0 1 D1 0 1 D0 1 = 01h = 00h = 07h = 06h Trang 96 A14 A13 A12 A11 2 1 34 33 32 31 30 29 28 27 36 35 IOR IOW A0 A1 RESET 2 U?A A10 7400 A9 A8 A7 A6 A5 A4 A3 A2 2 8255 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 18 19 20 21 22 23 24 25 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 INTR +IN -IN VREF/2 CLKR CLKIN CS RD WR 19 VI+ VIVREF/2 ADC0804 14 15 16 17 13 12 11 10 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 18 17 16 15 14 13 12 11 RD WR A0 A1 RESET CS 40 39 38 37 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 D0 D1 D2 D3 D4 D5 D6 D7 Giáo trình vi xử lý Phạm Hùng Kim Khánh A15 Trang 97 Tổ chức nhập / xuất Hình 3.16 – Giao tiếp chuyển đổi A/D ADC0804 dùng 8255A Giáo trình vi xử lý - Tổ chức nhập / xuất Mơ tả chương trình: Khởi động 8255A cách đặt từ điều khiển mode vào ghi điều khiển Cấp xung vào chân RD 8255A Đọc trạng thái ADC0804 từ chân INTR Nếu INTR = cấp xung vào chân WR ADC0804 để xuất liệu Đọc liệu từ ADC0804 vào thông qua Port A - Đoạn chương trình thực hiện: adc: MOV MOV OUT MOV 1) OUT MOV OUT MOV DX,303h AL,90h DX,AL AL,01h ; ••a ch• ghi •i•u khi•n (CR) ; T• •i•u khi•n (CW) ;Ghi CW vào CR ; T• •i•u khi•n BSR •• PC0 = ( RD = DX,AL AL,07h DX,AL AL,06h ; ; ; ; ; ; ; Xu•t CR T• •i•u khi•n BSR •• PC3 = Xu•t CR T• •i•u khi•n BSR •• PC3 = 0, t•o xung WR Xu•t CR Ch• q trình chuy•n ••i th•c hi•n ; ; ; ; ; ; ; ; T• •i•u khi•n BSR •• PC3 = Xu•t CR ••a ch• Port A ••c d• li•u •ã chuy•n ••i t• ADC0804 T• •i•u khi•n BSR •• PC0 = ( RD = 1) Xu•t CR vào t• Port A c•a 8255A OUT CALL DX,AL DELAY MOV OUT MOV IN MOV AL,07h DX,AL DX,300h AL,DX AL,01h OUT RET DX,AL xong 2.4.7.2 Giao tiếp với máy in chế độ bắt tay (Mode 1) Xét mạch giao tiếp 8255A mode với Port A dùng làm Port nhập từ bàn phím với I/O interrupt Port B thiết kế làm Port xuất tới máy in với I/O kiểm tra trạng thái Ta cần thực công việc sau: - Xác định địa Port Xác định từ điều khiển để Port A nhập Port B xuất Mode Xác định từ điều khiển BSR cho phép ngắt (INTEA) Xác định byte mặt nạ để kiểm tra đường OBF B I/O kiểm tra trạng thái Viết lệnh khởi động chương trình in ký tự chứa nhớ Giả sử logic chọn chip hình 3.10, địa Port cho bảng 3.4: PA: FCh Phạm Hùng Kim Khánh Trang 98 Giáo trình vi xử lý Tổ chức nhập / xuất PB: FDh PC: FEh CR: FFh PA7 ÷ PA0 CS CS IOR PC5 A0 A0 PC3 STB PC4 A1 A1 Từ bàn phím IBF RD PC2 IOW Đến ngoại vi INTRA PC1 Từ ngoại vi Đến interrupt μP OBF B Đến máy in ACK Từ máy in WR RESET RESET PB7 ÷ PB0 Đến máy in Hình 3.17 – Giao tiếp 8255A Mode D7 I/O Từ điều khiển: Port A nhập, Port B xuất Mode D6 D5 D4 1 PA: Mode PA: nhập - D7 X Không sử dụng D2 PB: Mode D1 PB: xuất D0 = B4h Không sử dụng Từ điều khiển BSR: dùng để đặt flipflop cho phép ngắt Port A (INTEA), bit PC4 = D7 BSR mode - D3 D6 D5 D4 0 Không sử dụng D3 D2 D1 0 Bit PC4 D0 Đặt bit (Set) = 09h Từ trạng thái kiểm tra OBF B : D6 x D5 x D4 x D3 x D2 x D1 OBF B D0 X Byte mặt nạ: 0000 0010b Khởi động: MOV DX, 0FFh ; Kh•i ••ng 8255A MOV AL, 0B4h ; • Mode 1, Port A nh•p OUT DX, AL ; Port B xu•t Phạm Hùng Kim Khánh Trang 99 Giáo trình vi xử lý MOV OUT CALL Tổ chức nhập / xuất AL, 09h DX, AL print ; ••t INTEA ; cho phép INTRA Chương trình PRINT: print: LEA DX,msg ; Ch• ••n v• trí ; ch•a ký t• MOV ADD SI, DX SI,2 LODSB CMP JNE JMP AL,0 cont exit MOV MOV AH,AL DX,0FEh ; L•u ký t• v•a ••c IN AND JE AL,DX AL,02h status ; ; ; ; MOV MOV OUT JMP AL,AH DX,0FDh DX,AL next ; Xu•t ký t• •ã nh•n ; máy in (Port B) ; X• lý ký t• k• ti•p next: ; L•y ký t• t• b• nh• ; N•u khơng cịn ký t• ; k•t thúc cont: status: ••c Ch• N•u s•n vào t• Port C nh•n PC1 máy in khơng sàng ch• exit: RET Mơ tả chương trình: - Ta sử dụng 8255A phần thiết kế cho phép hoạt động: xuất máy in lấy liệu vào từ bàn phím Giao tiếp với máy in dùng kiểm tra trạng thái giao tiếp bàn phím dùng ngắt - Trong chương trình PRINT, ký tự đặt ghi tích luỹ A trạng thái đọc từ Port C Ban đầu Port B trống, bit PC1 ( OBF B ) mức cao Ta thực lệnh OUT gởi liệu Port B Tín hiệu OBF B xuống mức thấp tác động cạnh lên tín hiệu WR , xác định liệu gởi máy in Sau nhận byte liệu, máy in gởi trở lại tín hiệu ACK xác định nhận Tín hiệu ACK làm cho OBF B mức cao xác định máy in sẵn sàng nhận ký tự chương trình PRINT tiếp tục thực khơng cịn ký tự vùng nhớ - Nếu phím nhấn chương trình PRINT thực thi, byte liệu truyền tới Port A STB A xuống mức thấp, đặt IBFA lên mức cao Khi STB A trở lại mức cao tạo INTRA Tín hiệu tạo ngắt đến μP điều khiển chuyển đến chương trình phục vụ Phạm Hùng Kim Khánh Trang 100 Giáo trình vi xử lý Tổ chức nhập / xuất ngắt Chương trình đọc nội dung Port A, cho phép ngắt quay chương trình PRINT 2.4.7.3 Truyền liệu hai microprocessor xử lý phân bố dùng 8255A Mode Ta thiết kế mạch giao tiếp để truyền liệu hai chiều dạng chủ – tớ (master – slave) hai μP PA7 ÷ PA0 PC4 μP chủ Giải mã CS PC5 PC7 RD WR PC6 PC3 STB IBF OBF μP tớ ACK INTR Hình 3.18 – Thơng tin chiều μP dùng 8255A Hình 3.18 sơ đồ khối thiết lập thông tin hay chiều chủ tớ Sơ đồ khối hai data bas hai chiều – chủ tớ – nối với thông qua 8225A, 8225A làm việc thiết bị giao tiếp μP chủ Port A 8225A dùng để truyền liệu hai chiều tín hiệu từ port C dùng để bắt tay Quá trình truyền liệu tương tự Mode 8225A Khi μP chủ ghi byte liệu vào 8225A tín hiệu OBF xuống mức thấp để báo cho μP tớ biết gởi liệu vào, μP tớ báo nhận đọc byte liệu Tương tự, hai tín hiệu bắt tay khác dùng μP tớ truyền byte liệu đến μP chủ μP chủ đòi hỏi port I/O dùng để đọc ghi liệu kiểm tra trạng thái tín hiệu bắt tay Tương tự, μP tớ cần port I/O để thực Đọc Ghi Truyền liệu thực cách kiểm tra trạng thái hay dùng ngắt Tốc độ xử lý liệu μP chủ quan trọng nên thường dùng μP chủ chế độ ngắt μP tớ chế độ kiểm tra trạng thái Ở ví dụ này, ta dùng μP chế độ kiểm trạng thái Các hoạt động truyền liệu I/O kiểm tra trạng thái liệt kê sau: Phạm Hùng Kim Khánh Trang 101 Giáo trình vi xử lý Tổ chức nhập / xuất Truyền liệu từ μP chủ đến μP tớ: μP chủ đọc trạng thái OBF để kiểm tra xem μP tớ đọc liệu chưa Đây chức nhập cho μP chủ μp chủ ghi liệu vào Port A 8225A báo cho μP tớ biết cách đưa tín hiệu OBF xuống mức thấp Đây chức xuất μP chủ μP tớ kiểm tra tín hiệu OBF (từ μP chủ) để xác định tính sẵn sàng liệu Đây chức nhập μP tớ μP tớ đọc liệu từ Port A báo cho biết nhận cách đưa tín hiệu ACK xuống mức thấp Đây chức nhập μP tớ Truyền liệu từ μP tớ dến μp chủ: μP tớ kiểm tra tín hiệu bắt tay IBF để xem port A có sẵn sàng truyền liệu hay không để truyền byte Đây chức nhập μP tớ μP đặt byte liệu lên data bus báo cho 8225A biết sẵn sàng gởi liệu cách dùng tín hiệu STB Đây chức xuất đối vói μP tớ 8225A đưa IBF lên mức cao, μP chủ đọc tín hiệu để xác định liệu sẵn sàng chưa Đây chức nhập μP chủ μP chủ đọc byte liệu Đây chức nhập μP chủ Kết nối phần cứng: Hình 3.19 cho thấy sơ đồ kết nối port cần thiết logic chọn chip cho 8255A μP chủ thực giải mã chọn 8255A dùng cổng NAND ngõ vào nên 8255A chọn tất ngõ vào cổng NAND mức Từ đó, ta có địa Port 8255A μP chủ là: PA: FCh PB: FDh PC: FEh CR: FFh Phạm Hùng Kim Khánh Trang 102 36 35 IOR IOW A0 A1 A2 A3 A4 A5 A6 A7 11 12 uP-Master 74LS30 +5V D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 8255 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 Giáo trình vi xử lý Phạm Hùng Kim Khánh 34 33 32 31 30 29 28 27 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 +5V +5V 10 12 14 15 A1 A2 A3 A4 A5 A6 G1 G2 Y1 Y2 Y3 Y4 Y5 Y6 11 13 IOR IOW A0 A1 A2 A3 A4 A5 A6 A7 74LS365 uP-Slav e 3 2 10 11 12 13 14 15 Y7 G2B Y6 G2A Y5 G1 Y 74LS138 Y3 Y2 C Y1 B Y0 A Hình 3.19 – Thơng tin hai chiều μP chủ μP tớ Tổ chức nhập / xuất Trang 103 Giáo trình vi xử lý Tổ chức nhập / xuất Port A sử dụng Mode dùng tín hiệu từ Port C μP chủ kiểm tra tín hiệu ACK STB cách đọc bit trạng thái OBF IBF Port C Hai tín hiệu bắt tay khác - OBF IBF – nối tương ứng với bit D7 D0 data bus μP tớ thông qua đệm trạng thái 74LS365 Logic giải mã cho đường tín hiệu Port C giải mã sang 74LS138 Giả sử đường logic không sử dụng (A3 A4) mức 0, đường giải mã cho phép vùng địa 80h ÷ 87h (Bảng 3.6) Hai đường giải mã kết hợp với tín hiệu điều khiển IOR để tạo xung chọn thiết bị nhận (85h 87h) Xung chọn thiết bị nhập 87h dùng để đọc trạng thái đường liệu D7 D0 Đường giải mã có địa 80h kết hợp với IOW để tạo tín hiệu STB Bảng 3.7: A7 A6 A5 A4 A3 A2 0 0 1 1 A1 0 1 0 1 A0 1 1 Chân giải mã Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Địa hex 80h 81h 82h 83h 84h 85h 86h 87h Từ điều khiển mode 2: D7 I/O D6 D5 Mode D4 D3 D2 D1 0 Không sử dụng D0 = C0h Từ trạng thái mode 2: Trạng thái hoạt động I/O Mode kiểm rta cách đọc nội dung Port C D7 OBF A D6 INTE1 D5 IBFA D4 INTE2 D3 INTRA D2 X D1 X D0 X Trạng thái tín hiệu OBF kiểm tra cách đọc bit D7 trang thái IBF kiểm tra bit D0 Phạm Hùng Kim Khánh Trang 104 Giáo trình vi xử lý Tổ chức nhập / xuất Các tác vụ Đọc Ghi μP tớ: Một byte liệu đọc μP tớ từ Port A cách gởi xung chọn thiết bị tác động mức thấp đến tín hiệu ACK , khơng cần xây dựng Port nhập Tương tự, byte liệu ghi vào μP cách đưa tín hiệu STB xuống thấp Lưu đồ giải thuật: Chương trình chủ Chương trình tớ Begin Begin Khởi động 8255A Xác định vị trí nhớ Khởi động 8255A Xác định vị trí ô nhớ Đọc Port C xác định OBF Đọc Port C xác định OBF N OBF cao? N OBF thấp? Y Y Đọc byte Đọc byte Xuất byte Cất byte Đã truyền hết? Y End Phạm Hùng Kim Khánh N Đã nhận hết? N Y End Trang 105 Giáo trình vi xử lý Tổ chức nhập / xuất Chương trình: Đoạn chương trình chủ: (Master program) MOV MOV SP,stack1 SI,master MOV MOV MOV CX,byte_no AL,0C0h DX,0FFh OUT DX,AL MOV DX,0FEh ; ••a ch• Port C IN AND JNE LODSB MOV OUT LOOP AL,DX AL,80h wait ; ; ; ; ; ; ; ; ; ; ; ; ; ; ••a ch• byte c•n xu•t S• byte c•n xu•t T• •i•u khi•n ••a ch• ghi •i•u khi•n next: wait: DX,0FCh DX,AL next ••c vào t• Port C Ki•m tra OBF Ch• ••n OBF = ••c byte Xu•t byte v•a ••c Port A N•u cịn byte truy•n ti•p t•c Đoạn chương trình tớ: (Slave program) MOV MOV MOV ES,stack2 DI,slave CX,byte_no MOV DX,87h IN AND JE MOV IN STOSB LOOP AL,DX AL,80h wait DX,85h AL,DX ; ••a ch• byte s• l•u ; S• byte c•n nh•n next: wait: next ; ••c OBF ; Ki•m tra OBF ; Ch• ••n OBF = ; ; ; ; ••c C•t N•u d• li•u vào nh• cịn byte truy•n ti•p t•c - Ta thấy hai chương trình kiểm tra trạng thái OBF Chương trình chủ đợi OBF lên mức cao ghi byte vào Port A Ngược lại, chương trình tớ đợi OBF xuống mức thấp đọc liệu - Khi μP chủ ghi byte liệu, chốt Port A byte liệu đặt data bus μP tớ ACK xuống mức thấp Phạm Hùng Kim Khánh Trang 106 Giáo trình vi xử lý Tổ chức nhập / xuất - Hai chương trình cho phép truyền khối liệu từ μP chủ đến μP tớ truyền ngược lại Để chuyển khối liệu từ μP tớ đến μP chủ, cần phải đọc tín hiệu IBF μP chủ đợi IBF = đọc byte liệu μP tớ đợi IBF = ghi byte liệu - Giản đồ thời gian hình 3.20 cho thấy tín hiệu INTR dùng để truyền liệu ngắt Trong ví dụ này, ta khơng sử dụng ngắt WR OBF INTR ACK STB IBF Bus ngoại vi RD Data từ ngoại vi đến 8255A Data từ 8255A đến ngoại vi Data từ 8255A đến μP Hình 3.20 – Giản đồ thời gian Mode Phạm Hùng Kim Khánh Trang 107 Giáo trình vi xử lý Tổ chức nhập / xuất BÀI TẬP CHƯƠNG Xác định nội dung từ điều khiển 8255 để: a Port A: nhập, Port B: xuất, PCH: nhập, PCL: xuất hoạt động chế độ b Port A: xuất, Port B: nhập hoạt động chế độ c Nhóm A: chế độ 2, nhóm B: chế độ 1, Port B: nhập Xác định địa Port A, Port B, Port C ghi điều khiển A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 +5V 12 13 2 10 11 12 13 14 15 A2 A3 A4 A B C G1 G2A G2B Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 74LS138 15 14 13 12 11 10 D0 D1 D2 D3 D4 D5 D6 D7 /RD /WR A0 A1 RESET 34 33 32 31 30 29 28 27 36 35 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 RD WR A0 A1 RESET CS PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 8255 Viết chương trình hợp ngữ thực đọc nội dung Port B 8255 xuất nối tiếp giá trị vừa đọc PC2 theo thứ tự từ LSB MSB Viết chương trình hợp ngữ thực đọc 10 giá trị từ Port A 8255, sau xuất giá trị lớn Port B Phạm Hùng Kim Khánh Trang 108 ... D7 Giáo trình vi xử lý Phạm Hùng Kim Khánh A15 Trang 97 Tổ chức nhập / xuất Hình 3.16 – Giao tiếp chuyển đổi A/D ADC0804 dùng 8255A Giáo trình vi xử lý - Tổ chức nhập / xuất Mô tả chương trình: ... chế độ I/O Phạm Hùng Kim Khánh Trang 84 Giáo trình vi xử lý Tổ chức nhập / xuất 2.4.3 Mode 0: Nhập / xuất đơn giản Trong chế độ này, port (hay nửa port Port C) làm vi? ??c port nhập hay xuất với... A5 A4 A3 2 2 S3 S4 Hình 3.10 – Giao tiếp port 8255A mode Trang 86 Tổ chức nhập / xuất A2 Giáo trình vi xử lý - Tổ chức nhập / xuất Xác định địa port: Bảng 3.4: A1 A0 Port CS A15 A14 A13 A12 A11

Ngày đăng: 20/01/2014, 17:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan