PPI 8255 Untuk mengirimkan data ke perangkat luar, µp8088 dapat menggunakan latch (Flip- Flop) untuk menyimpan data tersebut sampai ada data baru yang ingin dikirim µp 8088. Sedangkan untuk menerima data, diperlukan pula suatu latch untuk menyimpan data, sampai µp 8088 memiliki waktu untuk mengambil data tersebut. Sebuah latch hanya dapat digunakan untuk satu arah saja : output atau input. Untuk sistem yang kompleks, implementasi dengan PPI 8255 (Programmable Peripheral Interface) akan sangat memudahkan dan menyederhanakan sistem. Hal ini disebabkan karena PPI 8255 memiliki 3 latch yang dapat diprogram sesuka kita, apakah ingin dibuat sebagao input latch atau sebagai output latch. Skema konektor dari IC PPI 8255 adalah sebagai berikut : PA3 PA2 PA1 PA0 read CS ground A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 8255 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21 PA4 PA5 PA6 PA7 reset D0 D1 D2 D3 D4 D5 D6 D7 Vcc PB7 PB6 PB5 PB4 PB3 write Terlihat pada skema diatas, PPI 8255 : 1. memiliki 3 port : port A (pin 1-4 dan 37-40), port B (pin 18-25), port C (pin 10-17) 2. masing-masing port tersebut dapat diprogram menjadi port input maupun sebagai port output atau keduanya. Dan jika dibutuhkan, port C dapat diprogram sebagai port kontrol 3. address line A0 (pin 8) dan A1 (pin 9) digunakan untuk memilih salah satu port yg ingin diakses.
Skema blok diagram didalam PPI 8255 adalah sebagai berikut : D0 - D7 BUS BUFFER A PA0 - PA7 Group A A0 A1 2 TO 4 DECODER C PC0 - PC3 PC4 - PC7 CONTROL Group B RD WR READ/WRITE CONTROL LOGIC B PB0 - PB7 Terlihat bahwa PPI 8255 memiliki 3 port (setiap port memiliki lebar 8 bit). Ketiga port tersebut diberi nama port A, port B, dan port C. Register 8255 8255 menyediakan 4 buah register 8-bit : diakses saat A0 A1 keterangan Register data A 0 0 register ini menyimpan data dari/untuk port A Register data B 0 1 register ini menyimpan data dari/untuk port B Register data C 1 0 register ini menyimpan data dari/untuk port C Register kontrol 1 1 register untuk mengontrol kerja 3 register lainnya
Register data A, register data B, dan register kontrol hanya dapat diakses dalam format 8- bit. Register data C dapat diakses dalam 2 nibble (2 x 4 bit) yaitu Lower C (C 0 C 3 ) dan Upper C (C 4 C 7 ) Programming 8255 Dengan mengirim suatu informasi selebar 1 byte ke register kontrol, kita dapat memprogram kerja dari port A, B, dan C. Informasi ini disebut juga dengan Control Word. Control Word A berfungsi untuk memprogram kerja setiap port, sedangkan Control Word B berfungsi untuk menset atau mereset salah satu bit di Port C. Control Word A : untuk memprogram kerja port 1 D 6 D 5 D 4 D 3 D 2 D 1 D 0 Group B Tipe Port C Lower (PC0-PC3) Tipe Port B Mode Selector 0 mode 0 1 mode 1 Group A Tipe Port C Upper (PC4-PC7) Tipe Port A Mode Selector 00 mode 0 01 mode 1 1X mode 2
Control Word B : menset/reset salah satu bit di Port C saat 8255 bekerja pada mode 0 X X X D 3 D 2 D 1 D 0 Set / Reset selected bit in Port C below 0 reset 1 set Select a specific bit in Port C 000 select Port C bit 0 001 select Port C bit 1 010 select Port C bit 2 011 select Port C bit 3 100 select Port C bit 4 101 select Port C bit 5 110 select Port C bit 6 111 select Port C bit 7 Karena masing-masing port dapat diprogram sebagai buffer input maupun output, maka untuk memudahkan, 8255 didesain khusus untuk menerima 3 mode kerja : 1. mode 0 : Basic pada mode ini setiap port bekerja secara independen. masing-masing dapat bekerja sebagai input atau output. MODE 0-8255 Port B Port C Port A 4 lines 4 lines PB7 - PB0 PC7 - PC4 PC3 - PC0 PA7 - PA0 Control Word A : 1 0 0 A CU 0 B CL
A = 0 (port A sbg Output); B = 0 (port B sbg Output); CU = 0 (Port C Upper sbg output); CL = 0 (Port C Lower sbg Output) 2. mode 1 : Strobe MODE 1-8255 Port B Port C Port A Control atau PB7 - PB0 Control Word A : PC7 - PC4 PC3 - PC0 PA7 - PA0 1 0 1 A CU 1 B CL A = 0 (port A sbg Output); B = 0 (port B sbg Output); CU = 0 (Port C Upper sbg output); CL = 0 (Port C Lower sbg Output) Control Word B : 1 don t care a b c 0/1 a b c bit di register C yg diakses 0 0 0 C 0 0 0 1 C 1 0 1 0 C 2 0 1 1 C 3 1 0 0 C 4 1 0 1 C 5 1 1 0 C 6 1 1 1 C 7
3. mode 2 : Bidirectional MODE 2-8255 Port B Port C Port A Bidirectional Control Bidirectional PB7 - PB0 PC7 - PC5 PC4 - PC0 PA7 - PA0 Control Word A : 1 1 X A CU 1 B CL A = 0 (port A sbg Output); B = 0 (port B sbg Output); CU = 0 (Port C Upper sbg output); CL = 0 (Port C Lower sbg Output) Control Word B : 1 don t care a b c 0/1 a b c bit di register C yg diakses 0 0 0 C 0 0 0 1 C 1 0 1 0 C 2 0 1 1 C 3 1 0 0 C 4 1 0 1 C 5 1 1 0 C 6 1 1 1 C 7