86f79ad4fbafb03d41f124b0e47c9b1b.ppt
- Количество слайдов: 58
Programmable Peripheral Interface (PPI) 8255
PPI 8255 • PPI adalah modul IO paralel yang dapat digunakan untuk operasi IO dengan teknik Programmed IO dan Interrupt driven IO.
Blok diagram PPI 8255
PPI 8255 • Bagian sebelah kanan dari blok di atas adalah interface eksternal ke peripheral (saluran PA 7 -PA 0, PB 7 -PB 0, dan PC 7 -PC 0), 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 A 1 dan A 0 (pada bagian kiri blok) digunakan untuk memilih salah satu alamat.
PPI 8255 • Port A dan Port B adalah port 8 bit, artinya 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).
Mode Operasi PPI 8255 • Mode 0 • Mode 1 • Mode 2
Mode 0, ini ialah mode yang paling sederhana, dimana semua port dapat deprogram sebagai input/putput. Pada mode ini seluruh bit sebagai output atau input, tidak ada bit yang dapat dikontrol secara individual. Mode 1, pada mode ini port A dan B dapat digunakan sebagai input atau output dengan kemampuan jabat tangan. Sinyal jabat tangan disediakan oleh bit-bit port C
Mode 2, port A dapat digunakan sebagai port bi-directional I/O dengan kemampuan jabat tangan dimana sinyalnya disediakan oleh port C. Port B dapat digunakan sebagai mode I/O sederhana atau mode 1 jabat tangan. Mode BSR ( bit set/reset ). Pada mode ini, hanya bit individual port C yang dapat diprogram
Tabel Kebenaran PPI 8255
Insialisasi PPI • 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 tiap bit pada Control Word, ikuti aturan pada tabel di halaman berikutnya. • Setelah Control Word ditentukan, isikan Control Word tersebut ke Control Register.
Tabel untuk penentuan Control Word
Contoh 1: • 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 PC 3 (Port C Lower) sebagai output. – Misalkan alamat dari Control Register adalah 303 H.
Control Wordnya:
Program inisialisasinya : MOV DX, 303 H MOV AL, 10001110 B OUT DX, AL
Contoh 2: Semua port diinisialisasi sebagai port output pada mode 0 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
Contoh 3: • Dengan menggunakan address decoder seperti pada gambar di atas, tentukanlah alamat Port A, B, C dan Control Register. • Tentukanlah Control Word, diasumsikan port A dan C diset sebagai port input. • Tuliskan program untuk menginisialisasi PPI. • Tuliskan program untuk menyalakan/mematikan LED-LED seperti pada gambar di atas.
Contoh 4: • • 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.
Mode Operasi PPI 8255 • 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.
Mode Operasi PPI 8255 • Mode 1 – Jika proses transfer data membutuhkan sinyal handshaking, maka PPI diinisialisasi pada mode 1. – Jika port B diinisialisasi pada mode 1, maka saluran PC 0, PC 1, PC 2 akan berfungsi sebagai saluran handshake untuk port B. – Jika port A diinisialisasi pada mode 1 sebagai port input, maka saluran PC 3, PC 4, PC 5 akan berfungsi sebagai sinyal handshake untuk port A. Sedangkan saluran PC 6 dan PC 7 dapat digunakan sebagai saluran input atau saluran output. – Jika port A diinisialisasi pada mode 1 sebagai port output, maka saluran PC 3, PC 6, PC 7 akan berfungsi sebagai sinyal handshake untuk port A. Sedangkan port PC 4 dan PC 5 dapat digunakan sebagai saluran input atau output.
Mode Operasi PPI 8255 • 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 handshaking. – Biasanya digunakan untuk memperpanjang bus system ke mikroprosesor slave.
Metode transfer data paralel • Terdapat 4 metode transfer data paralel, yaitu: – Simple Input and Output – Simple Strobe I/O – Single handshake I/O – Double handshake I/O
Simple Input and Output • Metode transfer ini digunakan untuk operasi input atau output pada peralatan yang selalu berada dalam keadaan siap (ready) seperti sensor dan LED.
Simple Strobe I/O • 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.
Single handshake I/O • Metode transfer Simple Strobe I/O cocok digunakan untuk transfer data dengan kecepatan rendah. Jika komponen pengirim dapat mengirimkan data dengan kecepatan yang lebih tinggi dibanding yang dapat diterima oleh komponen penerima, maka metode tersebut tidak cocok digunakan. • Untuk itu harus digunakan "handshaking" atau tanya jawab antar kedua komponen.
Double handshake I/O • Jika koordinasi yang lebih baik diperlukan, maka digunakan 2 buah "handshaking“. • Pada double handshake tiap tepi sinyal memiliki arti. • 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 berarti meminta pengirim mengirim data berikutnya.
Double handshake I/O
Segmen Programnya: MOV DX, 300 H IN AL, DX AND AL, 01 H Off: On: JNZ On MOV DX, 301 H MOV AL, 00 H OUT DX, AL ……… MOV DX, 301 H MOV AL, FF H OUT DX, AL ………. ; periksa saklar, apakah on atau off ; u/ mematikan lampu ; u/ menyalakan lampu
Contoh 5: • Program ini membaca data dari sebuah sensor suhu. • Jika suhu lebih atau sama dengan 27 derajat, heater akan dimatikan. 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 mematikan heater pada port FFFA H dikirimkan data 00 H.
CODE_HERE SEGMEN 'CODE' ASSUME CS: CODE_HERE TEMP_IN: MOV DX, FFFB H ; baca data dari sensor IN AL, DX CMP AL, 27 ; uji dengan bilangan 27 JB HEATER_ON ; jika di bawah 27 JMP HEATER_OFF ; jika di atas/sama dengan 27 HEATER_ON: MOV AL, 80 H MOV DX, FFFA H OUT DX, AL JMP TEMP_IN sensor HEATER_OFF: MOV AL, 00 H MOV DX, FFFA H OUT DX, AL JMP TEMP_IN sensor CODE_HERE ENDS ; hidupkan heater ; baca lagi data dari
Men-set/reset bit-bit port C • Selain digunakan untuk menentukan konfigurasi port-port, control word juga digunakan untuk menset/reset bit-bit port C (PC 0. . PC 7). • Apabila sebelumnya pada saat control word digunakan untuk menentukan konfigurasi port, bit D 7 diisi dengan 1, pada saat control word digunakan untuk men-set/reset nilai bit-bit port C, nilai D 7 haruslah diisi dengan 0.
Contoh: • Nilai bit PC 3 akan diset. • Untuk itu ditentukan control wordnya sebagai berikut:
Contoh: • Nilai bit PC 5 akan direset. • Untuk itu ditentukan control wordnya sebagai berikut:
• Sama seperti 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, 00000111 B OUT DX, AL
PPI 8255 pada mode 1 digunakan sebagai port input • Ada 2 sinyal handshaking yang digunakan, yaitu : strobe dan IBF (input buffer full). Sinyal strobe dihasilkan oleh peripheral pengirim, sedangkan IBF dihasilkan oleh PPI.
PPI 8255 pada mode 1 digunakan sebagai port output • Ada 2 sinyal handshaking yang digunakan, yaitu: OBF (output buffer full) dan Acknowledge. Sinyal OBF dihasilkan oleh PPI, sedangkan sinyal acknowledge dihasilkan oleh peripheral penerima.
Contoh Aplikasi PPI: Pengontrolan mesin bubut oleh mikrokomputer • Pada sistem ini operasi sebuah mesin bubut akan dikontrol oleh mikrokomputer. • Mesin bubut digunakan untuk membuat berbagai jenis baut dari batang stainless steel. • Data-data pemotongan untuk tiap baut tersimpan pada sebuah metal tape. . • Tape reader berfungsi membaca data-data yang tersimpan pada metal tape. • Mikrokomputer akan membaca data tersebut dari tape reader. • Mikrokomputer juga akan selalu memantau kondisi mesin bubut untuk memastikan bahwa mesin bubut tidak kehabisan bahan, minyak pelumasnya tidak habis, dan juga memastikan mesin bubut tidak macet oleh berbagai sebab yang lain.
Pada aplikasi ini PPI terlebih dahulu diinisialisasi dengan konfigurasi berikut: • Port A harus diinisialisasi sebagai port input pada mode 1 karena pembacaan data dari tape reader membutuhkan sinkronisasi (menggunakan sinyal-sinyal handshaking). • Port B digunakan untuk mengoutputkan data pengontrolan berupa sinyal on/off ke mesin bubut dan operasi tersebut tidak membutuhkan sinyal-sinyal handshaking. Untuk itu Port B diinisialisasi sebagai port output pada mode 0. • Bit PC 0, PC 1, PC 2 digunakan untuk menginputkan data sensor dari mesin bubut dan operasi ini pun tidak membutuhkan sinyal handshaking sehingga port C lower diinisialisasi pada mode 0 sebagai port input.
• Bit PC 3, PC 4, PC 5 berfungsi sebagai sinyal handshaking yang digunakan pada proses transfer data dari tape reader ke port A. • Bit PC 6 digunakan untuk menghasilkan sinyal GO/STOP untuk menghidupkan/mematikan tape reader. Untuk itu port C upper diinisialisasi sebagai port output. • Bit PC 7 tidak digunakan.
Untuk konfigurasi tersebut control word -nya adalah sebagai berikut :
Cara Kerja Sistem : • PPI diinisialisasi • Sistem akan membaca port C bit PC 0, PC 1, PC 2 untuk mengecek apakah mesin bubut siap untuk beroperasi. Pembacaan port C dilakukan dengan melakukan input dari alamat port C. • Jika mesin bubut siap, maka mikrokomputer akan mengeluarkan perintah START (GO) berupa sinyal "low" melalui bit PC 6. • Hal ini dilakukan dengan menggunakan perintah set/reset command. Karena sinyal ini berupa sinyal low, berarti bit PC 6 harus direset. Control word yang digunakan untuk mereset PC 6: 00001100.
Cara Kerja Sistem : • Setelah tape reader menerima perintah START (GO), tape reader akan mulai membaca data dan mengirimkan datanya dalam bentuk data 8 -bit melalui saluran R 0 sampai R 7 ke port A. • Proses transfer data ini menggunakan sinyal handshaking untuk sinkronisasi sehingga tape reader hanya akan mengirimkan data berikutnya jika ada konfirmasi dari penerima bahwa data telah berhasil diterima.
Proses transfer datanya adalah sebagai berikut: • Tape reader mengirim data melalui bit R 0 sampai R 7. • Tape reader kemudian menurunkan level sinyal strobe pada PC 4 ke "low" sebagai tanda bahwa data telah dikirim. • Sebagai balasannya PPI akan menaikkan sinyal IBF (input buffer full) pada PC 5 ke "high" sebagai tanda bahwa PPI siap menerima data. • Pada saat mendeteksi perubahan level IBF ke "high", tape reader akan kembali menaikkan level sinyal strobe ke "high".
• Perubahan level sinyal strobe dari "low" ke "high" memberikan 2 efek pada PPI. Yang pertama, PPI akan mengambil data dari saluran (PA 0. . PA 7) dan menyimpannya pada buffer di port A. • Yang kedua, perubahan tersebut akan menyebabkan PPI mengirimkan sinyal interupsi ke mikrokomputer melalui saluran PC 3. • Pada saat menerima sinyal interupsi, prosesor akan mengerjakan suatu rutin interupsi yang akan membaca data dari port A. • Pada saat membaca data, mikrokomputer akan mengirimkan sinyal RD. Pada saat sinyal ini berubah ke "low" , PPI akan menghentikan pengiriman sinyal interupsi. • Pada saat sinyal RD berubah menjadi "high", PPI akan menurunkan level sinyal IBF ke "low". • Sinyal IBF berubah ke "low" merupakan tanda bagi tape reader bahwa proses transfer data telah selesai dan bahwa tape reader boleh mengirimkan data berikutnya.
Diagram waktu proses transfer data
• Data yang dibaca dari tape reader dieksekusi di prosesor. Dan sebagai hasilnya mikrokomputer akan mengoutputkan data-data pengontrolan melalui port B ke mesin bubut.
Catatan: • Instruksi AND – Penulisan: AND destination, source – Fungsi : Membentuk perkalian logika – Instruksi AND digunakan untuk mengclear bit bilangan biner, seperti contoh berikut. Nilai bit yang di -AND-kan dengan 1 tidak berubah, sedangkan nilai bit yang di-AND-kan dengan 0 berubah menjadi 0.
Contoh: MOV AL, 9 D H (1001 1101 B) AND AL, 3 C H (0011 1100 B) Hasilnya, isi AL = 1 C H (0001 1100 B
Instruksi TEST • Penulisan : TEST destination, source • Fungsi instruksi ini ialah membentuk operasi yang hampir sama dengan AND. Perbedaannya, instruksi AND mengubah operand tujuan, sedangkan instruksi TEST tidak. Instruksi TEST hanya mempengaruhi isi register flag. • Instruksi TEST memiliki fungsi yang sama dengan instruksi CMP. Perbedaannya adalah bahwa instruksi TEST biasanya mengetes bit tungggal (atau bit ganda), sedangkan instruksi CMP mengetes seluruh data byte atau word. • Biasanya instruksi TEST diikuti oleh instruksi JZ(Jump if Zero) atau JNZ (Jump if Not Zero).
Contoh program: • Berikut adalah sekumpulan instruksi untuk mengetes bit paling kiri dan paling kanan dari register AL. Di sini , 1 (1 H) dipilih untuk mengetes bit paling kanan dan 128 (80 H) untuk mengetes bit paling kiri. TEST AL, 1 H ; tes bit paling kanan JNZ RIGHT ; jika bit paling kanan (bit 0) =1, jump ke label RIGHT …………. . TEST AL, 80 H ; test bit paling kiri JNZ LEFT ; jika bit paling kiri (bit 7) =1, jump ke label LEFT
Instruksi IN • Penulisan : IN akumulator, port • Fungsi : Menginputkan data dari port ke akumulator (register AL atau register AX). • Port adalah sebuah komponen tempat peralatan input output terhubung. • Contoh port adalah port serial COM 1, COM 2 yang biasa dihubungkan dengan mouse atau keyboard; port printer LPT 1, atau port PPI yang biasa digunakan untuk eksperimen.
Instruksi OUT • Penulisan : OUT port, akumulator • Fungsi : Menyalin (mengoutputkan) data dari akumulator (Register AL atau Register AX) ke port.
Instruksi CMP • Penulisan : CMP destination, source • Fungsi : Membandingkan data pada destination dengan data pada source. • Instruksi perbandingan (CMP) adalah bentuk pengurangan yang hanya mengubah bit-bit flag, sedangkan operand destination tidak berubah.
Jump • Istilah lebih besar (greater) dan lebih kecil (less) mengacu ke bilangan bertanda, sedangkan di atas (above) dan di bawah (below) mengacu ke bilangan tak bertanda.
86f79ad4fbafb03d41f124b0e47c9b1b.ppt