Interface Ppi 8255

download Interface Ppi 8255

of 28

  • date post

    11-Nov-2015
  • Category

    Documents

  • view

    51
  • download

    8

Embed Size (px)

description

proteus

Transcript of Interface Ppi 8255

Menghubungkan 8031/51 dengan 8255

INCLUDEPICTURE "http://www.musbikhin.com/wp-content/themes/MyProject/images/date.png" \* MERGEFORMATINET

February 28th, 2011 Musbikhin

BAB 15SasaranSetelah anda menamatkan bab ini , diharapkan anda dapat : Memaparkan alasan bahwa LCD dapat menggantikan peran LED secara luas Menjelaskan fungsi-fungsi pin-pin LCD yang umum Memaparkan kode-kode perintah untuk memprogram LCD

Menghubungkan LCD dengan 8051 Memprogram LCD dengan mengirim Data atau Command padanya dari 8051 Menghubungkan Chip ADC pada 8051

Menghubungkan sensor suhu pada 8051 Menjelaskan proses pencuplikan data menggunakan chip ADC Menjelaskan fungsi pin-pin pada chip ADC yang umum Menjelaskan fungsi dari IC sensor suhu presisi Menjelaskan kondisi sinyal dan pengaruhnya pada pencuplikan dataSeperti yang sudah didemontrasikan pada bab 14 dalam hal menghubungkan 8031/51 ke memory eksternal, 2 port, yakni P0 dan P2, digunakan untuk tugas ini. Dan di bab ini kita ditunjukkan bagaimana mengembangkan port I/O pada 8031/51 dengan menghubungkan chip 8255 Di bagian pertama cara mengubungkan 8031/51 dengan 8255 ditunjukkan, sedang di bagian ke dua, memprogram 8255 sebagai port I/O sederhana untuk menghubungkan peralatan lain semacam LCD, Motor Stepper, dan ADC. Sedang di bagian ke tiga dijelaskan lebih lanjut tentang beberapa mode I/O pada 8255 , termasuk kemampuan jabat-tangannya (hand-shaking).

SubBAB 15.1: PROGRAMMING THE 8255Dalam bagian ini kita akan belajar tentang chip 8255, salah satu dari yang paling sering digunakan sebagai chip I/O. Pertama kita akan menggali kemampuan dari chip 8255 ini dan kemudian memperlihatkan cara menghubungan antara 8031/51 dengan chip 8255.Kemampuan 8255Chip 40-pin 8255 ini (lihat gambar 15-1), adalah memiliki 3 buah port yang dapat diakses secara mandiri. Masing-masing port memiliki 8-bit yang kemudian port itu disebut dengan port A, B, dan C. Port-port ini dapat diprogram secara mandiri untuk digunakan sebagai input maupun sebagai output, yang dapat diubah-ubah secara dinamis. Disampig itu port 8255 memiliki kemampuan jabat-tangan, sehingga memenuhi idaman jika dihubungkan dengan peralatan yang juga memiliki kemampuan jabat-tangan, misalnya seperti printer. Kemampuan jabat-tangan pada 8255 akan dibahas pada bagian akhir dalam bab ini.

gambar 15-1: Chip 8255PA0-PA7 Port A memiliki 8-bit yang dapat diprogram semuanya menjadi input, atau digunakan sebagai output, ataupun digunakan sebagai input/output 2 arah (bidirectional).PB0-PB7 Port B memiliki 8-bit yang dapat diprogram semuanya menjadi input, atau digunakan sebagai output. Namun port ini bukan bidirectional, alias tidak bisa 2 arah seperti Port A.PC0-PC7 Port C memiliki 8-bit yang dapat diprogram semuanya menjadi input, atau digunakan sebagai output, dan hebatnya lagi dapat dibagi menjadi 2. Yakni PCU (PC4-PC7) dan PCL (PC0-PC3). Ke dua bagian inipun dapat diprogram terpisah menjadi input maupun sebagai output. Selebihnya lagi masing-masing bit dalam port C ini dapat diprogram tersendiri / terpisah. RD dan WR2 pin ini adalah input bagi 8255, yang merupakan aktif rendah. Sinyal RD dan WR milik 8051/31 harus dihubungkan dengan sinyal yang sama milik 8255 ini.

Gambar 15-2: Diagram Blok 8255Table 15-1: Seleksi Port untuk 8255CS A1 A0 Seleksi/Pilihan Port0 0 0 Port A0 0 1 Port B0 1 0 Port C0 1 1 Register Control1 x x 8255 tidak dipilihPin-pin Data D0-D7

pin-pin data ini merupakan tempat lalu lintas data dari dan ke 8255. Dan umumnya terhubung dengan pin-pin data milik 8051/31.

RESET

Ini adalah sinyal aktif tinggi bagi 8255, yang digunakan untuk meng-clear semua isi dari register-register 8255. Pin ini harusnya tidak boleh tidak dihubungkan. Dan untuk operasi normal, pin ini harusnya terhbung pada GND.

A0, A1, dan CS

Jika CS (Chip Select) digunakan agar CPU dapat meng-akses 8255, maka A0 dan A1 digunakan untuk memilih register yang mana yang sedang diakses. Dari 3 pin inilah CPU akan menentukan untuk memilih salah satu dari register-register port A, B, C, dan register control seperti pada tabel 15-1. Catatan bahwa CS adalah aktif rendah.

Pemilihan Mode pada 8255

Saat port A, B, dan C hendak digunakan sebagai input ataupun sebagai output data, maka register control harus diprogram untuk dapat memilih/menentukan port yang mana yang hendak digunakan. Port-port 8255 dapat diprogram seperti di bawah ini. - Mode 0, adalah mode I/O sederhana. Dalam mode ini, masing-masing port A, B, CL dan CU dapat diprogram masing-masing sebagai input maupun sebagai output. Dalam mode ini, semua bit-bit pada masig-masing port adalah sebagai output ataupun sebagai input. Atau dengan kata lain, tidak ada operasi untuk pengaturan bit tunggal, seperti yang biasa kita temui saat menggunakan port P0-P3 milik 8051. Mengingat umumnya aplikasi menggunakan 8255 dala mode I/O sederhana, maka kita akan berkonsentrasi pada mode ini.

- Mode 1. Dalam mode ini, Port A dan B dapat digunakan sebagai input dan output dengan kemampuan jabat-tangan. Sinyal-sinyal jabat-tangan ditempatkan pada port C. Untuk lebih jelas tentang mode ini akan dibicarakan pada bagian ke 3 dari bab ini. - Mode 2. Dalam mode ini, port A digunakan sebagai port I/O (bidirectional) dengan kemampuan jabat-tangan yang kesemua sinyalnya diberikan kepada port C. Sedang port B digunakan sebagai port I/O standar atau digunakan dalam mode jabat-tangan (mode 1). Mode ini tidak akan dibahas lebih lanjut dalam buku ini. - BSR (Bit Set/Reset). Dalam mode ini, bit-bit dalam port C dapat diakses dan dikendalikan secara bit tunggal. Untuk mode ini akan dijelaskan pada bagian ke tiga dalam bab ini.

Gambar 15-3 : format Control Word 98255 (Mode I/O)

Simple I/O programming

Intel menyebut mode 0 ini sebagai basic input/output mode (mode input/output dasar). Umumnya digunakan sebagai port I/O sederhana. Dalam mode ini, masing-masing port A, B, dan C dapat diprogram sebagai input ataupun sebagai output. namun harap diingat, masing-masing port tersebut tidak dapat digunakan sebagai input dan sebagai output dalam waktu yang sama.Contoh 15-1

Cari Control Word bagi 8255 untuk konfigurasi berikut ini.(a) Semua port A, B dan C adalah sebagai port output (mode 0)(b) PA = in, PB = Out, PCL = out, dan PCH = outJawaban:

Dari gambar 15-3 kita dapatkan :(a) 1000 0000 = 80h (b) 1001 0000 = 90h

Menghubungkan 8031/51 pada 8255

Chip ini diprogram untuk berada pada salah satu dari 4 mode yang mungkin digunakan oleh 8255 dengan cara mengirimkan byte (Intel menyebut byte ini sebagai Control Word) kepada register control 8255. Kita harus mencari alamat port yang kita tentukan sebelumnya untuk masing-masing port A, B, C, dan register control. Hal ini biasa disebut dengan mapping port I/O.

Kemudian kita dapatmelihat pada gambar 15-4, 8255 terhubung pada 8031/51 seperti dia terhubung dengan memory RAM. Perhatikan penggunaan sinyal RD dan WR. Metode menghubungkan chip I/O dengan cara seperti ini adalah disebut dengan memory mapped I/O. Hal ini kerena I/O diakses berdasarkan space memory. Dengan kata lain, kita menggunakan space memory untuk mengakses peralatan I/O. Untuk alasan ini kita menggunakan instruksi yang sama, yakni MOVX untuk mengakses 8255. Dalam bab 14 kita menggunakan instruksi MOVX untuk mengakses RAM dan ROM. Untuk 8255 yang terhubung dengan 8031/51 kita juga harus menggunakan isntruksi yang sama MOVX untuk berhubungan dengannya. Hal ini ditunjukkan pada contoh 15-2.

Contoh 15-2

Untuk gambar 15-4,(a) Cari alamat port I/O yang dirancang untu Port A, B, C, dan register kontrol.(b) Programlah 8255 untuk Port A, B dan C sebagai port output.(c) Tulis program untuk mengirimkan 55h dan AAh pada semua secara terus menerus.Jawaban:

(a) alamat dasar dari 8255 adalah sebagai berikut :

(b) Control Byte (Word) untuk semua port sebagai output adalah 80h seperti contoh 15-1(c) MOV A,#80h ;Control Word (Ports output) MOV DPTR,#40003h ;load control reg port addr MOVX @DPTR,A ;issue control word MOV A,#55h ;A=55hAGAIN: MOV DPTR,#4000h ;PA address MOVX @DPTR,A ;toggle PA bits INC DPTR ;PB address MOVX @DPTR,A ;toggle PB bits INC DPTR ;PC address MOVX @DPTR,A ;toggle PC bits CPL A ;toggle bits in reg A ACALL DEKLAY ;wait; SJMP AGAIN ;continue

Gambar 15-4 : koneksi 8051 dengan 8255 untuk contoh 15-2Contoh 15-3

Lihat gambar 15-5.(a) Cari alamat port I/O yang dipasangkan bagi Port A, B, C, dan register control.(b) Cari kontrol byte untuk PA = in, PB = out, PC = out.(c) Tulis program untuk mendapat data dari PA dan kirim balik ke port B dan C.Jawaban:

(a) Dengan menganggap semua bit yang tidak digunakan adalah 0z, maka dasar (base) dari port alamat untuk 8255 adalah 1000h.Sehingga kita memiliki : 1000h PA 1001h PB 1002h PC 1003h Register Control(b) kontrol word untuk 8255 itu adalah 10010000 (90h)(c) MOV A,#90h ;PA=in, PB=out, PC=out MOV DPTR,#1003h ;load control reg port addr MOVX @DPTR,A ;issue control word MOV DPTR,#1000h ;PA address MOVX A,@DPTR ;Get data from PA INC DPTR ;PB address MOVX @DPTR,A ;Send the data to PB INC DPTR ;PC address MOVX @DPTR,A ;Send the data to PB

gambar 15-5 : koneksi 8051 dengan 8255 untuk contoh 15-3untuk memprogram seperti dalam contoh 15-3. Dapat direkomendasikan bahwa kita menggunakan direktive EQU untuk port yang dialamatkan sebagaimana berikut ini.APORT EQU 1000hBPORT EQU 1001hCPORT EQU 1002hCNTPORT EQU 1003h MOV A,#90H ;(PA=IN, PB=OUT, PC=OUT) MOV DPTR,#CNTPORT ;load cntr reg port adddr MOVX @DPTR,A ;issue ontrol word MOV DPTR,#APRT ;alamat PA MOVX A,@DPTR ;ambil data dari PA INC DPTR ;alamat PB MOVX @DPTR,A ;Kirim data kembali ke PB INC A ;alamat PC MOVX @DPTR,A ;Kirim lagi untuk PCatau, lihat berikut ini, juga mengunakan EQUCONTBYT EQU 90h ;(PA=IN, PB=OUT, PC=OUT) BAS8255P EQU 1000h ;dasar alamat untuk chip 8255 MOV A