Mikroprosessor 2014
»
PPI adalah modul IO paralel yang
dapat digunakan untuk operasi
IO dengan teknik Programmed IO
» Bagian sebelah kanan dari blok di atas adalah
interface eksternal ke peripheral (saluran PA7-‐PA0, PB7-‐PB0, dan PC7-‐PC0), sedangkan bagian sebelah kiri adalah interface internal ke mikroprosesor.
» PPI memiliki 3 buah port, yaitu Port A, Port B, dan
Port C. Selain itu PPI juga memiliki sebuah Control Register.
» Masing-‐masing port dan Control Register
membutuhkan satu alamat, sehingga PPI membutuhkan 4 buah alamat.
» Saluran masukan A1 dan A0 (pada bagian kiri blok)
»
Port A dan Port B adalah port 8 bit,
arOnya dapat digunakan untuk input
output data 8 bit.
»
Sedangkan Port C, selain dapat
digunakan sebagai port 8 bit juga
dapat digunakan sebagai 2 buah port
4 bit (Port C upper dan Port C lower).
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.
» PPI 8255
» Programmable I/O Device
» Spesifikasi:
˃ Memiliki 3 Port 8-‐bit
+ Port A
+ Port B
+ Port C
˃ Memiliki 3 Mode Operasi
+ Mode 0 (Basic I/O)
+ Mode 1 (Strobed I/O)
+ Mode 2 (BidirecOonal I/O)
» Blok Diagram ˃ Group A + Port A[7:0] + Port C[7:4] ˃ Group B + Port B[7:0] + Port C[3:0] 7
» Control Word untuk mode operasi
8
Control Group A Control Group B Port C ( low order 4 bit )
1 = input 0 = output Port B 1 = Input 0 = Output Select Mode 0 = mode 0 1 = mode 1
Port C ( high order 4 bit ) 1 = input 0 = output Port A 1 = Input 0 = Output Select Mode 00 = mode 0 01 = mode 1 10 = mode 2 1x = mode 3 Mode flag setting
1 = enable
»
Terdapat 4 metode transfer data
paralel, yaitu:
˃
Simple Input and Output
˃
Simple Strobe I/O
˃
Single handshake I/O
» Metode transfer ini digunakan untuk operasi
input atau output pada peralatan yang selalu berada dalam keadaan siap (ready) seperO sensor dan LED.
» Pada periperal tertentu, data hanya tersedia pada waktu
tertentu saja. Untuk memperoleh data yang valid, pembacaan harus dilakukan pada saat tersebut.
» Contoh peralatan yang menggunakan metode ini adalah
keyboard.
» Data dari keyboard ada hanya pada saat-‐saat tertentu, yaitu
pada saat tombol ditekan dan pada saat tersebut data valid. Untuk memberitahu komponen lain bahwa ada data valid, keyboard menghasilkan sinyal strobe.
» Metode transfer Simple Strobe I/O cocok digunakan untuk
transfer data dengan kecepatan rendah. Jika komponen pengirim dapat mengirimkan data dengan kecepatan yang lebih Onggi dibanding yang dapat diterima oleh komponen penerima, maka metode tersebut Odak cocok digunakan. » Untuk itu harus digunakan "handshaking" atau tanya jawab
» Jika koordinasi yang lebih baik diperlukan, maka digunakan 2 buah
"handshaking“.
» Pada double handshake Oap tepi sinyal memiliki arO.
» Sebelum mengirimkan data pengirim terlebih dahulu menanyakan
kesiapan penerima dengan menurunkan sinyal Strobe.
» Jika siap, penerima akan memberitahu pengirim dengan cara
menaikkan sinyal Acknowledge.
» Selanjutnya pengirim mengirimkan data, dan memberitahu penerima
bahwa data telah dikirim dengan cara menaikkan sinyal Strobe.
» Dan apabila data tersebut telah diterima, penerima menurunkan sinyal
Acknowledge dan ini sekaligus berarO meminta pengirim mengirim
»
Mode 0
»
Mode 1
» Mode O
˃ Operasi I/O dengan simple input output
tanpa menggunakan sinyal handshaking.
˃ Jika port A dan port B diinisialisasi pada mode
0, maka port C dapat digunakan sebagai port 8 bit atau sebagai 2 buah port 4 bit (C upper
» PPI 8255 Mode 0:
» Tidak ada fasilitas handshaking
» Masing-‐masing port hanya dapat dioperasikan
sebagai input atau output saja » Tersedia latch untuk output
» Mode 1
˃ Jika proses transfer data membutuhkan sinyal handshaking, maka PPI
diinisialisasi pada mode 1.
˃ Jika port B diinisialisasi pada mode 1, maka saluran PC0, PC1, PC2 akan
berfungsi sebagai saluran handshake untuk port B.
˃ Jika port A diinisialisasi pada mode 1 sebagai port input, maka saluran
PC3, PC4, PC5 akan berfungsi sebagai sinyal handshake untuk port A. Sedangkan saluran PC6 dan PC7 dapat digunakan sebagai saluran input atau saluran output.
˃ Jika port A diinisialisasi pada mode 1 sebagai port output, maka saluran
PC3, PC6, PC7 akan berfungsi sebagai sinyal handshake untuk port A. Sedangkan port PC4 dan PC5 dapat digunakan sebagai saluran input atau output.
» Mode 2
˃ Hanya port A yang dapat diiinisialisasi pada
mode 2.
˃ Pada mode 2, port A dapat digunakan untuk
transfer data 2 arah (port A berfungsi sebagai port input sekaligus port output) dan
menggunakan sinyal-‐sinyal handshaking.
˃ Biasanya digunakan untuk memperpanjang
» Sebelum dapat digunakan sebagai port input
atau port output PPI terlebih dahulu harus diinisialisasi. Berikut ini dijelaskan cara
mengiinisialisasi PPI.
» Tentukan Control Word atau data pengontrolan
berdasarkan sifat port-‐port yang telah ditentukan sebelumnya.
» Untuk menentukan nilai Oap bit pada Control
Word, ikuO aturan pada tabel di halaman berikutnya.
» Setelah Control Word ditentukan, isikan Control
» Misalkan PPI akan diprogram agar berfungsi
sebagai berikut:
˃ Port B : sebagai port input pada mode 1.
˃ Port A : sebagai port output pada mode 0.
˃ Port C upper sebagai port input
˃ Bit PC3 (Port C Lower) sebagai output.
˃ Misalkan alamat dari Control Register adalah
MOV DX, FF13 H
MOV AL, 10001110 | MOV AL,8E
Program inisialisasinya : MOV DX, 303 H
MOV AL, 10000000 B OUT DX, AL
Program output data (port A): MOV DX, 300 H
MOV AL, 00001111 B OUT DX, AL
» Tentukanlah Control Word
» Tuliskan program untuk menginisialisasi PPI.
» Tuliskan program untuk menyalakan/memaOkan
» Program ini membaca data dari
saklar yang terhubung ke port 300 H.
» Jika saklar off (0) maka lampu-‐
lampu yang terhubung ke port 301 H akan padam. Jika saklar on (1) maka lampu-‐lampu yang terhubung ke port 301 H akan menyala. Kedua port tersebut adalah port 8-‐bit.
MOV DX, 300 H
IN AL,DX
AND AL,01 H ; periksa saklar, apakah on atau off
JNZ On
Off: MOV DX,301 H
MOV AL,00 H ; u/ memaOkan lampu
OUT DX,AL
………
On: MOV DX,301 H
MOV AL,FF H ; u/ menyalakan lampu
OUT DX,AL
» Program ini membaca data dari sebuah sensor suhu.
» Jika suhu lebih atau sama dengan 27 derajat, heater akan
dimaOkan. Sebaliknya jika suhu kurang dari 27 derajat, maka heater akan dinyalakan.
» Dimisalkan sensor suhu terhubung ke port dengan alamat FFFB
H, sedangkan heater terhubung ke port dengan alamat FFFA H.
» Untuk menghidupkan heater pada port FFFA H dikirimkan data
80 H, sedangkan untuk memaOkan heater pada port FFFA H
» Selain digunakan untuk menentukan konfigurasi
port-‐port, control word juga digunakan untuk men-‐set/reset bit-‐bit port C (PC0 .. PC7).
» Apabila sebelumnya pada saat control word
digunakan untuk menentukan konfigurasi port, bit D7 diisi dengan 1, pada saat control word digunakan untuk men-‐set/reset nilai bit-‐bit port C, nilai D7 haruslah diisi dengan 0.
» Control Word untuk set/reset port C
» Nilai bit PC3 akan diset.
» Untuk itu ditentukan control wordnya sebagai
» Nilai bit PC5 akan direset.
» Untuk itu ditentukan control wordnya sebagai
» Sama seperO control word untuk mengkonfigurasi
port, control word ini juga harus dikirimkan ke control register. Jika alamat control register adalah 303 H,
maka program inisialisasinya adalah:
MOV DX, 303 H MOV AL,80 H OUT DX,AL
MOV AL, 00000111 B OUT DX, AL
» Port A Output
» Port B & Port C Input, LED AcOve Low
» LED à 0000**** saat PB=80
» LED à ****0000 saat PC=01
» LED à 00000000 lainnya
» Port A Output, Port B Output Port C Input
» Port C7 dan Port C1 terhubung ke sebuah saklar
» Jika Port C7 ditekan (logika 1) maka akan membuat 8
buah LED yang terhubung ke Port A menyala sebagai Running LED dari PA0 ke PA7
» Jika Port C1 ditekan (logika 1) maka akan membuat 8
buah LED yang terhubung ke Port B menyala seperO ini
****0000 à 0000****
* = LED menyala
0 = LED maO
» Jika Port C7 dan Port C1 ditekan maka seluruh LED yang
ada di port A dan port B akan menyala
» Buatlah program untuk PPI 8255 mulai dari inisialisasi s/
d seluruh kondisi terpenuhi