Mikroprosessor 2014 Telkom University
» PPI adalah modul IO paralel yang dapat digunakan untuk operasi IO dengan teknik Programmed IO dan Interrupt driven 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) digunakan untuk memilih salah satu alamat.
» 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) 6
» 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 D7 D6 D5 D4 D3 D2 D1 D0 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 Control Group A 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 8
» Terdapat 4 metode transfer data paralel, yaitu: Simple Input and Output Simple Strobe I/O Single handshake I/O Double 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 antar kedua komponen.
» 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 data berikutnya.
» Mode 0» Mode 1» Mode 2
» 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 dan C lower) yang berdiri sendiri.
» PPI 8255 Mode 0:» Tidak ada fasilitas handshaking» Masing- masing port hanya dapat dioperasikan sebagai input atau output saja» Tersedia latch untuk output 17
» 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 bus system ke mikroprosesor slave.
» 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 Word tersebut ke Control Register.
» 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 FF13H.
MOV DX, FF13 H MOV AL, 10001110 MOV AL,8E OUT DX, AL
Control Wordnya adalah sebagai berikut:
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 LED- LED sepero pada gambar di atas.
» 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.
Off: On: MOV DX, 300 H IN AL,DX AND AL,01 H ; periksa saklar, apakah on atau off JNZ On MOV DX,301 H MOV AL,00 H ; u/ memaokan lampu OUT DX,AL 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 dikirimkan data 00 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 32
» Nilai bit PC3 akan diset.» Untuk itu ditentukan control wordnya sebagai berikut:
» Nilai bit PC5 akan direset.» Untuk itu ditentukan control wordnya sebagai berikut:
» 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» *= mao ; 0 = nyala
» 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» Buat Flowchart dulu untuk mempermudah pengerjaan