Anda di halaman 1dari 49

Non-programmable I/O, PPI 8255 dan

ISA CARD
Tujuan:
1. Mampu menjelaskan cara kerja port input/output
non-programmable
2. Mampu menjelaskan cara kerja PPI 8255 dalam
mode 0, 1, 2 dan set/reset
3. Mampu memprogram PPI dengan bahasa C
4. Mampu membuat aplikasi PPI 8255 dalam mode 0
5. Memahami konfigurasi slot ISA
6. Mampu merancang rangkaian ISA card PPI 8255
DISAIN
PORT INPUT OUTPUT
NON-PROGRAMMABLE
A19
Aplikasi Output dengan LED
A18
: LED 8x
A0

D7
D6
D5
D4
Assembly:
D3
D2 mov al, 55
uP8088 D1
Minimum D0 out dx, al
Mode

IOR
IOW
?
outportb(alamat_port,0x55)

Gambar-1 Port Output


OCTAL BUS TRANSCEIVERS WITH 3-STATE
OUTPUTS

Fungsi logika

Diagram logika 74LS245


Menggunakan 74LS245 dan Dekoder Alamat
A19
A18
: LED 8x
A0

D7 A0 B0
D6 A1 B1
D5

?
A2 B2
D4 A3 B3
D3 A4 B4
D2 A5
74LS245 B5
uP8088 D1 A6 B6
Minimum D0 A7 B7
Mode
E DIR 5V

IOR
IOW

A A A A A A A A A A A A A A A A IOW
outportb(0xf000,0x55)
1111119876543210
543210
Gambar-2 Port Output
Membuat Port Output sederhana
Analisis Port Output Gambar-2:
• Asumsi Bebannya 8 LED
• Kehilangan data ketika mengerjakan
instruksinya berikutnya (LED OFF)
Solusi:
• Gunakan dekoder alamat dan chip
yang tidak hanya merespon saat
dikirim instruksi out, tetapi akan
menahan data yang dituliskan ke
output.
OCTAL D-TYPE TRANSPARENT LATCHES

Diagram logika Fungsi logika

74LS373
Peggunaan 74LS373 dan Dekoder alamat
A19
A18
: LED 8x
A0

D7 D0 Q0
D6
D5
D1
D2 Q2
Q1 74LS373
D4 D3 Q3 berfungsi
D3 D4 Q4
D2 D5
74LS373 Q5 sebagai
8088 D1
“LATCH”
D6 Q6
Minimum D0 D7 Q7
Mode
LE OE

IOR
IOW

outportb(0xf000,0x50)
A A A A A A A A A A A A A A A A IOW
1111119876543210
543210
Gambar-3 Port Output
Operasi Input dengan Saklar
• gunakan 8 saklar push-on
• gunakan chip dan dekoder alamat, saklar
akan dibaca saat perintah in dengan
alamat tertentu (asumsikan alamatnya
adalah F000H)
• bagaimana mengantarmukakan switch ke
komputer ?
• Bagaimana cara mengetahui saklar itu
ditekan ? (polling atau interupsi)
• faktor lain yang menggangu ? Dan cara
mengeliminasinya ?
Pemakaian 74LS245 dan dekoder alamat untuk
port input
A19 5V
A18
:
A0

D7 A0 B0
D6 A1 B1
D5 A2 B2
D4 A3 B3
D3 A4 B4
D2 A5
74LS245 B5
8088 D1 A6 B6
Minimum D0 A7 B7
Mode
E DIR

IOR
IOW

din=inportb(0xf000)

A A A A A A A A A A A A A A A A IOR
1111119876543210
543210
Input/output alamatnya sama ?
DISAIN
PORT INPUT OUTPUT
PROGRAMMABLE
PA3 1 40 PA4
PA2 2 39 PA5
PA1 3 38 PA6
PA0 4 37 PA7
RD 5 36 WR
CS 6 35 RESET
GND 7 34 D0
A1 8 33 D1
A0 9 32 D2
PC7 10 31 D3
8255
PC6 11 30 D4
PC5 12 29 D5
PC4 13 28 D6
PC0 14 27 D7
PC1 15 26 VCC
PC2 16 25 PB7
Konfigurasi Pin PPI 8255

PC3 17 24 PB6
PB0 18 23 PB5
PB1 19 22 PB4
PB2 20 21 PB3
Diagram Blok PPI 8255
+5V
GND
GRUP A GRUP A PA0-PA7
CONTROL PORT A
(8)

GRUP A
PORT C PC4-PC7
DATA ATAS
D7-D0 BUS (4)
BUFFER
DATA BUS
BUS DATA
INTERNAL GRUP B
2 ARAH PC0-PC3
8 BIT PORT C
BAWAH
(4)

RD
WR READ PB0-PB7
GRUP B
WRITE GRUP B
A1 PORT B
CONTROL CONTROL
(8)
A0 LOGIK
RESET

CS
Fungsi Pin (1)
• Buffer data bus 8 bit dua-arah yang tri state digunakan
sebagai interface antara PPI-8255 dengan bus data
sistem mikrokomputer. Data dikirim atau diterima oleh
buffer, baik pada saat CPU mengeksekusi intruksi input
maupun output.
• Control Word (CW) dan informasi status juga ditransfer
melalui buffer bus data ini.
• (CS) Chip Select. Jika pin input ini berlogika rendah
maka memungkinkan komunikasi antara PPI 8255 dan
CPU.
• (RD) Read. Logika rendah pada pin ini memungkinkan
PPI 8255 mengirimkan data atau informasi status ke
CPU via data bus. Intinya, memungkinkan CPU
”membaca” dari PPI 8255 ini.
Fungsi Pin (2)
• (WR) Write. Nilai logika rendah pada pin ini
memungkinkan CPU menulis data atau control word ke
PPI 8255.
• (A0 dan A1) Port select 0 dan Port select 1. Pin input ini ,
dalam hubungannya dengan input RD dan WR akan
mengontrol pemilihan register yang akan digunakan
secara aktif, atau register control word sebagaimana
tampak pada tabel 1. Port select umumnya dihubungkan
dengan LSB dan bus alamat (A0 dan A1).
• RESET, Nilai logika tinggi di pin input ini akan
menginilisasi register control ke 9B (Hex) dan semua
port (A,B,C) diset ke mode input.
• “Bus Hold” akan menahan input port I/O pada logika “1”
dengan arus maksimum 0.4 mA.
Operasi Dasar PPI 8255 (Tabel 1)
A1 A0 RD WR CS Operasi
0 0 0 1 0 Port A→data Bus
0 1 0 1 0 Port B→data Bus
1 0 0 1 0 Port C→data Bus
0 0 1 0 0 Data Bus →Port A
0 1 1 0 0 Data Bus →Port B
1 0 1 0 0 Data Bus →Port C
1 1 1 0 0 Data Bus →Control
X X X X 1 Data Bus →3-state
1 1 0 1 0 Kondisi Ilegal
X X 1 1 0 Data Bus →3-state
Mode Operasi PPI 8255
PPI 8255, dapat beroperasi pada 3 mode, yaitu :
• Mode 0 : Dalam mode ini, ke-24 line tersebut dikelompokkan atas 2
grup 8 line (port A dan port B) dan 2 grup 4 line (port C). Tiap grup
dapat diprogram untuk operasi dasar I/P atau O/P dimana setiap
port O/P di-latch sedangkan I/P port tidak di-latch, tetapi bekerja
sebagai 3-state I/P buffer.
• Mode 1 : PPI dalam mode ini, memakai 2 buah port 8 bit (port A dan
portB) sebagai unidirectional I/P atau O/P port. Tiap port
mentransfer data ketika ada strobe atau handshaking signal. Port C
digunakan oleh Port A dan Port B untuk membangkitkan atau
menerima signal handshaking tersebut. Data di latch baik untuk I/P
atau O/P pada port A dan port B.
• Mode 2 : (port A) digunakan sebagai bidirectional I/O port. Seperti
dalam mode 1, signal strobes atau handshaking juga digunakan
untuk mengontrol aliran data ke dan dari CPU, dan digunakan lima
bit.
PPI 8255 Control Word
D7 D6 D5 D4 D3 D2 D1 D0
1
GROUP B
Port C (lower)
1 = input
0 = output

Port B
1 = input
0 = output

Mode Selection
0 = mode 0
1 = mode 1

GROUP A
Port C (upper)
1 = input
0 = output

Port A
1 = input
0 = output

Mode selection
00 = mode 0
01 = mode1
1X = mode 2

MODE SET FLAG


1 = AKTIF
Pemrograman PPI (1)
Langkah pemrograman PPI-
8255:
- Tentukan mode operasi Port-A
8 bit
yang di inginkan (mode 0, 1
atau 2)
- Tentukan fungsi masing- Port-C atas
masing port (sebagai input
PPI
atau output) 8255
- Isikan data-data itu ke Port-C bawah
control word
- Tuliskan CW itu ke PPI
dengan instruksi: Port-B
8 bit
Outportb(port_control,CW)
1 0 0 0 0 0 1 1
Pemrograman PPI (2)
Contoh:
Mode 0, Port-A dan port C-atas sebagai Output, Port-B
dan port C-bawah sebagai input.
Control Word-nya adalah:
1 00 00 011 atau 83H, Instruksinya adalah:
Outportb(port_control,0x83) ; Inisialisasi
Mengirimkan data 05H ke port_A:
Outportb(port_A,0x05) ; data 05H ditulis ke port_A
Membaca data dari port_B:
dat_in=inportb(port_B) ; data dari port_B disimpan di
; variable dat_in
Pemrograman I/O dengan
Assembly, C dan BASIC
Assembly Microsoft C Borland C BASIC

OUT port#, AL outp (port#, byte) ouportb(port#, Out port#, byte


byte)
IN AL, port# var=inp(port#) var=inportb(port#) Var = INP
(port#)
OUT DX, AX Outpw(port#, Outport(port#, Out port#, word
word) word) ?
IN AX, DX word=inpw(port#) word=inport(port#) Var = INP
(port#)??
Polling vs. Interupsi (1/2)
instruksi

Sambil belajar, setiap 5 Input Memory


menit memeriksa ember Device
untuk melihat apakah
sudah penuh, jika Ya
saya dapat memindahkan
isi ember ke drum.

P

POLLING
Polling dan Interupsi (1/2)
Instruksi

Saya akan belajar. Jika Piranti Memori


speaker mulai bunyi, masukan
saat air pada ember
penuh. Saya akan
memindahkan air dari
ember ke drum.

Permintaan
Interupsi
P
Interupsi
82C55: Mode 0, Scan Display
82C55: Mode 1 Strobed Input
• ~STB : Transisi 1 ke 0, input strobe memuatkan data
ke port latch.
• IBF : berlogik 1 menunjukkan data telah masuk di
port latch.
• INTR : sinyal akan tinggi saat IBF berlogik 1, yang
dapat digunakan untuk menginterupsi CPU.
• INTE : bit ini di set melalui instruksi apabila ingin INT-
nya aktif, yaitu melalui: PC4 (port A) or PC2 (port B)
bits.
• PC7,PC6 : Pin 7 dan 6 port C merupakan pin I/O
fungsi serba guna.
82C55: Mode 1 Strobed Input

Signal definitions for Mode 1 Strobe Input


82C55: Contoh Mode 1
• Encoder Keyboard dan debounces saklar,
sinyal strobe dibangkitkan apabila ada saklar
yang ditekan.
• DAV dibangkitkan saat salah satu saklar
ditekan, kode saklar terkodekan ASCII
dikirimkan via Port_A
82C55 : Mode 1 Output
• ~OBF : Output Buffer Full akan rendah bila data telah
di latch pada port_A atau port_B. Sinyal kembali
tinggi oleh sinyal ~ACK.
• ~ACK : Sinyal ini menyebakan OBF kembali tinggi,
ACK merupakan respon dari peripheral
• INTR : merupakan sinyal keluaran yang dapat
digunkan untuk menginterupsi CPU
• INTE : bit ini di set melalui instruksi, apabila ingin
INT-nya aktif yaitu melalui: PC6(Port A) or PC2(port
B) bits.
• PC5,PC4 : Pin 5 dan 4 port C merupakan pin I/O
dengan fungsi serba guna.
82C55 : Mode 1 Output
82C55: Operasi Mode 2 Bi-directional

• IBF : Merupakan sinyal output yang


menandakan input latch telah berisi informasi
untuk bus luar dua-arah.
• INTE : Bit internal yang di set apabila
interupsinya akan di aktifkan.. BIT
PC6(INTE1) and PC4(INTE2).
• PC2,PC1,PC0 : Bit-bit ini merupakan I/O
serbaguna.
82C55: Operasi Mode 2 “Bi-directional”

•Diagram waktunya merupakan kombinasi antara mode 1input dan mode


1 output.
Timing Diagram pada Mode 2
DISAIN
INPUT OUTPUT DENGAN
ISA CARD
3 ISA
slots

6 SIMM 2 DIMM
5 PCI slots Pentium CPU
slots slots
Identifikasi slot ISA, PCI, & AGP

– Berikut ini gambar untuk membantu


mengidentifikasi slot

Back of AGP slot


computer
PCI slot

ISA slot
ISA (1/3)
• Industry Standard Architecture
– Pengucapan “eye-es-eh”
• Sejarah
– Dikenalkan oleh IBM PC (1981) sebagai 8 bit slot
ekspansi
• Kerja pada 8.3 MHz dengan kecepatan transfer 7.9
Mbytes/s
– Versi 16-bit diperkenalkanpada IBM PC/AT
• Kerja pada 15.9 MHz dengan kecepatan transfer 15.9
Mbytes/s (?)
• Dikenal dengan nama “AT bus”
– Sekarang (1988), semua slot ISA adalah16 bit
• Konfigurasi
– Parallel, multi-drop
ISA (2/3)
• Digunakan untuk…
– Beberapa peripheral (sound cards, disk drives,
dll.)
• PnP ISA
– Tahun 1993, Intel dan Microsoft memperkenalkan
“PnP ISA”, untuk plug-and-play ISA
– Terkonfigurasi secara otomatis dengan sistem
operasinya
• Form factor
– Large connector in two segments
– Smaller segment is the 8-bit interface (36 signals)
– Larger segment is for the 16-bit expansion (62
signals)
– 8-bit cards only use the smaller segment
ISA (3/3)
• Advancements
– EISA
• Extended ISA
• Dirancang oleh 9 kompetitor IBM (AST, Compaq, Epson,
HP, NEC, Olivetti, Tandy, WYSE, Zenith)
• Untuk menyaingi IBM’s MCA
• Perangkat kera EISA compatible dengan ISA
– MCA
• Micro Channel Architecture
• Diperkenalkan oleh IBM tahun 1987 sebagai pengganti
bus AT/ISA
– EISA dan MCA ternyata tidak sukses
ISA Bus expansion slot

• Only 16-bit
(even 32-bit or
higher data
bus)
• Speed dibatasi
sampai 8MHz
Fungsi Pin ISA (1/2)

• A0-A19, Bit Alamat 0:19, digunakan untuk


mengalamati piranti memori dan I/O. Hanya
16 bit alamat rendah yang digunakan pada
operasi I/O untuk mengalamti 64K lokasai
I/O.

• AEN, Address Enable digunakan untuk


‘degate’ sistem mikroprosesor dan piranti
lainnya dari sistem bus selam operasi DMA.
Bila sinyal ini aktif sistem DMA yang
mengontrol alamat, data dan sinyal
read/write.
• Signal ini sebaiknya disertakan dalam ISA
card untuk melindungi pemilihan card yang
salah saat siklus DMA.
Fungsi Pin ISA (2/2)
• D0 to D7, saluran data bus D0-D7, digunakan untuk
transfortasi data antara CPU dengan I/O dan CPU
dengan memori atau sebaliknya

• -IOR, I/O Read menginstruksikan ke piranti I/O terpilih


supaya meletakan datanya ke data bus.

• -IOW
I/O Write menginstruksikan ke piranti I/O terpilih supaya
mengambil datanya dari data bus.
Mendisain ISA CARD

• Umumnya berfungsinya untuk perluasan I/O


(PPI-8255)

• Sinyal-sinyal yang perlu diperhatikan adalah:


- Saluran alamat A0 – A9
- Saluran data D0 – D7
- Saluran kontrol seperti (-IOR, -IOW, Reset
DRV dan AEN)
Peta I/O dalam IBM PC
• Peta pembagian port dan
pengalamatan port I/O
– Berguna membangkitkan
sinyal yang tepat dalam
pemilihan chip
• Dalam IBM PC
– Digunakan A0 ~ A9
• 1024 Port Addresses
– 0 ~ 01FFH
» System Mother Board
– 200 ~ 03FFH
» Boards in five card Slot
– For Prototype Board
• 0300 ~ 031FH
– 32 port addresses
Diagram Blok PPI Card

Data bus (d0-d7)

A0
A1
SLOT ISA

RD PPI-8255

WR
ResetDRV

CS
Dekoder
A2-A9
Alamat
Contoh I/O
• Port A
– 8 bit DIP switch
• Port C-Lower
– 4 bit LED
• Peta Alamat
– Port A : 300H
– Port B : 301H
– Port C : 302H
– Control Reg. 303H
Program bahasa C untuk Port I/O
Aplikasi PPI dalam mode 0
Tugas 1:
Buat rangkaian dekoder alamat untuk gambar PPI antar muka DIP
switch dan LED
Tugas 2:
Buat program dengan Bahasa C untuk mengontrol 8 buah led yang
terhubung ke port_A. Setiap LED ON bergantian selama 1 detik.
Gambarkan pula perangkat kerasnya
Tugas 3:
Tulis program untuk menampilkan nomor absen Saudara untuk
gambar antarmuka SSG pada 2 digit terbawah.
Tugas 4:
Disain perangkat keras dan program untuk mengontrol ADC 8 bit 1
kanal dan 4 digit seven segment, alamat dasar PPI adalah 308H
(dengan Bahasa C)
Antarmuka 8 LED
#include<stdio.h>
#include<stdlib.h>
#include<dos.h> /* instruksi inportb dan outportb */
#include<conio.h>
#define PORT_DATA 0x300 //Alamat port A
#define PORT_CONTROL 0x303 //Alamat port B
#define CW 0x80 //Control word semua port sebagai output
main ()
{
int d_led, i;
d_led = 0x01;
outprtb(PORT_CONTROL,CW); //Inisialisasi
for (i = 0; i <= 7;i++)
{
outportb(PORT_DATA,d_led); //kirimkan data ke port A
delay (1000);
d_led = d_led << 1; //geser kiri 1 bit
}
}
Antarmuka 8 LED
#include<stdio.h>
#include<stdlib.h>
#include<dos.h> /* instruksi inportb dan outportb */
#include<conio.h>
#define PORT_DATA 0x300
#define PORT_CONTROL 0x303
main ()
{
int i;
static int data [4] = {0x81, 0x42, 0x24, 0x18};
Outportb(PORT_CONTROL,0X80);
for (i = 0; i <= 3;i++)
{
printf(“Data = %x \n”,data[i]); //simulasi output
outportb(PORT_DATA,data[i]);
delay (1000);
}
}

Anda mungkin juga menyukai