• Tidak ada hasil yang ditemukan

TUGAS AKHIR. Komunikasi Antar IC dengan Teknik I 2 C Bus Menggunakan PCF8574 pada Sistem Mikrokontroller AT89C2051

N/A
N/A
Protected

Academic year: 2021

Membagikan "TUGAS AKHIR. Komunikasi Antar IC dengan Teknik I 2 C Bus Menggunakan PCF8574 pada Sistem Mikrokontroller AT89C2051"

Copied!
51
0
0

Teks penuh

(1)

Menggunakan PCF8574 pada Sistem Mikrokontroller

AT89C2051

Diajukan Guna Melengkapi Sebagian Syarat Dalam mencapai gelar Sarjana Strata Satu (S1)

Disusun Oleh :

Nama : Derrie Hardianto

NIM : 4140412-062

Jurusan : Teknik Elektro Peminatan : Teknik Elektronika

Pembimbing : Ir. Eko Ihsanto, M.Eng

PROGRAM STUDI TEKNIK ELEKTRO

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS MERCU BUANA

JAKARTA

(2)

iii

LEMBAR PENGESAHAN

Komunikasi Antar IC dengan Teknik I

2

C Bus

Menggunakan PCF8574 pada Sistem Mikrokontroller

AT89C2051

Disusun Oleh :

Nama : Derrie Hardianto

NIM : 4140412-062

Program Studi : Teknik Elektro

Peminatan : Teknik Elektronika

Menyetujui,

Pembimbing Koordinator TA

( Ir. Eko Ihsanto, M. Eng ) ( Ir. Yudhi Gunardi, MT )

Mengetahui,

Ketua Program Studi Teknik Elektro

(3)

iv

Menggunakan PCF8574 pada Sistem Mikrokontroller

AT89C2051

Pada saat ini desain elektronik dituntut untuk semakin ringkas dan fleksibel, dimana ukuran fisikIC semakin diperkecil dan jumlah pin diminimalkan dengan tetap menjaga fleksibilitas dan kompatibilitas IC sehingga mudah untuk digunakan dalam berbagai keperluan desain yang berbeda.

Untuk mengatasi hal itu teknik komunikasi data yang digunakan yaitu teknik transfer data secara seri. Teknik transfer data secara seri dikembangkan oleh 3 perusahaan IC salah satunya oleh Philips yang dikenal dengan teknik I2C ( Inter Integrated Circuit).

Berdasarkan latar belakang diatas, maka tujuan penulisan Laporan Akhir ini, adalah merancang dan membuat program yang standart untuk I2C bus sehingga dapat dihubungkan dengan sistem lain yang juga menggunakan I2C bus serta meneliti model sistem komunikasi serial dengan teknik I2C bus pada mikrokontroller AT89C2051 .

Sebagai aplikasi dari teknik transfer data ini, mikrokontroller AT89C2051 akan mengendalikan 2 buah pheriperal yaitu LCD dan Keypad matrik. Dimana LCD akan menampilkan data yang dikeluarkan oleh mikrokontroller. Keypad matrik yang digunakan di system ini berfungsi untuk memasukkan data ke mikrokontroller sedangkan output dari keypad matrik ini berupa tampilan pada LCD.

Terdapat 2 jenis komunikasi dasar I2C bus yang digunakan dalam pembuatan alat ini, yaitu Master-transmitter menulis data ke slave-receiver yang teralamati, AT89C2051 sebagai master mengirimkan data dari internal RAM-nya kepada PCF8574 untuk ditampilkan di LCD secara serial menggunakan I2C bus. Master-receiver membaca data dari slave-transmitter yang teralamati, PCF8574 menerima data dari keypad encoder MM74C922 kemudian mengirimkan data kepada AT89C2051 secara serial menggunakan I2C bus.

Setelah dijelaskan dalam latar belakang pemilihan judul alat ini dan selanjutnya pada tahap perencanaan sampai pembuatan alat dan pengujiannya dapat disimpulkan sebagai berikut : Komunikasi I2C bus dapat memenuhi target desain elektronika saat ini, dengan karakter hardware dan master / slave protocol yang sederhana tetapi tangguh. Teknik komunikasi data I2C bus dapat digunakan untuk menghubungkan keypad dan LCD secara serial dengan mikrokontroller MCS-51 sebagai masternya, sedangkan slave menggunakan komponen bantu PCF8574 yang telah dilengkapi dengan kemampuan I2C secara built-in.

(4)

vii

DAFTAR ISI

Halaman Judul ………... i

Halaman Pernyataan ………...………… ii

Halaman Pengesahan ……….. iii

Abstraksi ………. iv

Kata Pengantar ………... v

Daftar Isi ………. vii

Daftar Tabel ………... ix

Daftar Gambar ……… viii

BAB I PENDAHULUAN ………... 1

1.1 Latar Belakang Masalah ……… 1

1.2 Rumusan Masalah ………. 1

1.3 Batasan Masalah ………... 2

1.4 Tujuan ………….………... 2

1.5 Sistematika Penulisan ……….... 3

BAB II DASAR TEORI ... 4

2.1 Gambaran Umum ... 4

2.2 Mikrokontroller AT89C2051 ... 2.2.1 Arsitektur Mikrokontroller AT89C2051 ... 2.2.2 Konfigurasi Pin-pin AT89C2051 ... 2.2.3 Spesial Function Register (SFR) ... 2.2.4 Rangkaian Osilator ... 4 4 5 7 9 2.3 I2C Bus ………... 2.3.1 Karakteristik Transfer Data Bit ………. 2.3.2 Sinyal Dasar I2C Bus ……… 2.3.2.1 Kondisi START dan STOP ………... 2.3.2.2 Kondisi ACK dan NACK ……….. 10 10 11 11 12 2.4 PCF8574 ………... 2.4.1 Pengalamatan PCF8574 ... 12 14 2.5 Keypad 4X4 Encoders ... 15 2.6 Display LCD ………. 16

BAB III PERENCANAAN DAN PEMBUATAN ALAT ……… 22

3.1 Blok Diagram ……… 22 3.2 Perencanaan Perangkat Keras (Hardware) ………...

3.2.1 Perencanaan Rangkaian Mikrokontroller AT89C2051 ... 3.2.2 Perencanaan Rangkaian Keypad ………. 3.2.3 Perencanaan Rangkaian LCD ……….

23 23 24 25 3.3 Perencanaan Perangkat Lunak (Software) ...

3.3.1 Perencanaan Software untuk Program Utama ………... 26 26

(5)

viii

BAB IV PRINSIP KERJA DAN PENGUJIAN ALAT ... 30 4.1 Prinsip Kerja Alat ………..

4.1.1 Prinsip Kerja AT89C2051 sebagai Master………. 4.1.2 Prinsip Kerja PCF8574 sebagai Slave

4.1.2.1 Prinsip Kerja PCF8574 sebagai Pengendali LCD 4.1.2.2 Prinsip Kerja PCF8574 sebagai Pengendali

Keypad ... 30 30 32 32 32 4.2 Pengujian Alat ………...

4.2.1 Pengiriman Sinyal Start dan Stop oleh Master ………… 4.2.2 Pengiriman Sinyal Acknowledge (ACK) ……… 4.2.3 Pengiriman Alamat (Address Byte) Device melalui I2C

Bus ……….. 4.2.3.1 Pengiriman Alamat untuk PCF8574 Pengendali

LCD ... 4.2.3.2 Pengiriman Alamat untuk PCF8574 Pengendali

Keypad ... 4.2.4 Pengiriman Data (Data Byte) melalui I2C Bus …………

4.2.4.1 Pengiriman Data (Data Byte) untuk PCF8574 Pengendali LCD ……… 4.2.4.2 Pengambilan Data (Data Byte) dari PCF8574

Pengendali Keypad ... 4.2.5 Transfer Data Lengkap melalui I2

C Bus ………. 33 33 35 36 36 37 37 38 39 39 BAB V PENUTUP ... 5.1 Kesimpulan ... 42 42 Daftar Pustaka ……… Lampiran ……… 43 44

(6)

ix

DAFTAR TABEL

Halaman Tabel 2.1 Fungsi Alternatif Port 3 6 Tabel 2.2 Pembagian Alamat pada SFR 8 Tabel 2.3 Referensi Alamat PCF8574 14 Tabel 2.4 Tabel Konfigurasi Pin-pin LCD 17 Tabel 2.5 Fungsi-fungsi Terminal pada LCD 18 Tabel 2.6 Tabel Instruksi-instruksi pada LCD 20

(7)

Gambar 2.1 Konfigurasi Pin AT89C2051 5 Gambar 2.2 Peta Data Memori (RAM) 8

Gambar 2.3 Rangkaian Oscilator 13

Gambar 2.4 Pengiriman Data Serial 35 Gambar 2.5 Contoh Bentuk Pulsa Data Serial 30 Gambar 2.6 Start Bit jika Data Pertama yang Dipancarkan ‘1’ 32 Gambar 2.7 Start Bit jika Data Pertama yang Dipancarkan ‘0’ 33 Gambar 2.8 Bentuk Pulsa Aliran Data Serial Lengkap

Gambar 2.9 Mode Transisi Serial

Gambar 2.10 Contoh Konfigurasi I2C Bus Gambar 2.11 Pengirimin Bit pada I2C Bus

Gambar 2.12 Clock Synchronization pada I2C Bus Gambar 2.13 Arbitration pada I2C Bus

Gambar 2.14 Konfigurasi Pin PCF8574 Gambar 2.15 Operasi Tulis pada I2C Bus Gambar 2.16 Operasi Baca pada I2C Bus Gambar 2.17 Konfigurasi Pin MM74C922 Gambar 2.18 Diagram Block LCD

Gambar 3.1 Blok Diagram Perencanaan Gambar 3.2 Rangkaian Mikrokontroller Gambar 3.3 Rangkaian Keypad 4x4

Gambar 3.4 Rangkaian Pengontrol Keypad Gambar 3.5 Rangkaian Pengontrol LCD Gambar 3.6 Kondisi Start dan Stop Gambar 3.7 Acknowledge pada I2C Bus Gambar 3.8 Transmisi Data I2C Bus Gambar 4.1 Bentuk Sinyal Start dari Alat Gambar 4.2 Bentuk Sinyal Stop dari Alat

(8)

Gambar 4.3 Bentuk Sinyal Transmisi Data untuk Keypad Gambar 4.4 Bentuk Sinyal Transmisi Data untuk LCD Gambar 4.5 Pengiriman Alamat untuk Keypad

Gambar 4.6 Pengambilan Data 8 bit dari Keypad Gambar 4.7 Pengiriman Alamat untuk LCD Gambar 4.8 Pengiriman Data 8 bit untuk LCD

(9)

1

Pada saat ini desain elektronik dituntut untuk semakin ringkas dan fleksibel, dimana ukuran fisik IC semakin diperkecil dan jumlah pin diminimalkan dengan tetap menjaga fleksibilitas dan kompatibilitas IC sehingga mudah untuk digunakan dalam berbagai keperluan desain yang berbeda. Oleh karena itu, banyak perusahaan semikonduktor yang berusaha mengembangkan cara baru komunikasi antar IC yang lebih akomodatif terhadap tuntutan diatas sebagai alternatif dari hubungan antar IC secara paralel yang sudah kita kenal luas.

Salah satu metode yang telah matang dan dipakai secara luas adalah IIC (sering ditulis juga I2C) singkatan dari Inter integrated Circuit bus yang dikembangkan oleh Philips Semiconductor sejak tahun 1992, dengan konsep dasar komunikasi 2 arah antar IC atau antar sistem secara serial menggunakan 2 kabel yaitu serial data line (selanjutnya disebut SDA) dan

serial clock line (selanjutnya disebut SCL).

I2C merupakan serial bus dengan orientasi data 8 bit, komunikasi 2 arah dengan kecepatan transfer data sampai 100 Kbit/s pada mode standart dan 3,4 Mbit/s pada mode kecepatan tinggi. Keuntungan yang didapat dengan menggunakan I2C adalah membuat sistem yang didesain menjadi standart sehingga dapat dihubungkan dengan sistem lain yang juga menggunakan I2C, membuat sistem yang didesain berorientasi pada software (mudah diekspan dan diupgrade), menghemat luasan PCB yang dibutuhkan dan meminimalkan jalur hubungan antar IC apabila dibandingkan dengan parallel bus.

1.2. Rumusan Masalah

Mengacu pada permasalahan yang ada, maka dalam perencanaan dan pembuatan alat ini diutamakan pada hal-hal sebagai berikut :

(10)

2

1) Merencanakan dan membuat minimum sistem untuk I2C bus baik secara software dan hardware.

2) Membuat rangkaian pengembangan port dengan AT89C2051 sebagai masternya dan menggunakan komponen bantu PCF8574 sebagai slave serta bagaimana menghubungkannya secara software dengan menggunakan I2C bus.

3) Membuat rangkaian kontrol dan program untuk Keypad dan LCD.

1.3. Batasan Masalah

Dalam Laporan Akhir “Komunikasi Antar IC Dengan Teknik I2C Bus Menggunakan PCF8574 Pada Sistem Mikrokontroller AT89C2051“, penulis akan memberikan batasan-batasan masalah, agar tidak terjadi penyimpangan maksud dan tujuan utama penyusunan Laporan Akhir ini. Adapun batasan-batasan masalah tersebut adalah sebagai berikut:

1) PCF8574 (Remote 8-bit I/O expander for I2C Bus) digunakan

sebanyak 2 buah sebagai pengembangan dari port MCU AT89C2051.

2) Menggunakan MCU AT89C2051 sebagai MCU master.

3) Teknik transfer data yang digunakan yaitu teknik I2C (Inter Integrated Circuit).

4) Tidak membahas catu daya yang digunakan dalam sistem.

1.4. Tujuan

Berdasarkan latar belakang diatas, maka tujuan penulisan Laporan Akhir ini, adalah :

1) Merancang dan membuat program yang standart untuk I2C bus, sehingga dapat dihubungkan dengan sistem lain yang juga menggunakan I2C bus.

(11)

2) Meneliti model sistem komunikasi serial dengan teknik I2C bus pada mikrokontroller AT89C2051 .

3) Melatih pengembangan pembuatan program dengan mikrokontroller MCS-51.

1.5. Sistematika Penulisan

Sistematika penulisan Laporan Akhir ini adalah sebagai berikut:

1) Latar belakang, rumusan masalah, batasan masalah, tujuan, sistematika penulisan dan penjelasan istilah dibahas dalam bab 1. 2) Dasar teori sebagai penunjang dari permasalahan yang diambil

dibahas dalam bab 2.

3) Pembahasan tentang blok diagram sistem, perencanaan rangkaian hardware dan software yang berhubungan dengan alat yang dibuat dibahas dalam bab 3.

4) Pembahasan tentang cara kerja, hasil pengujian alat beserta spesifikasi alat dibahas dalam bab 4.

5) Kesimpulan dan saran untuk pengembangan alat yang dibuat dibahas dalam bab 5.

(12)

4

BAB II. DASAR TEORI

2.1. Gambaran Umum

Sebagai aplikasi dari teknik transfer data ini, mikrokontroller AT89C2051 akan mengendalikan 2 buah pheriperal yaitu LCD dan Keypad matrik. Dimana LCD akan menampilkan data yang dikeluarkan oleh mikrokontroller. Keypad matrik yang digunakan di system ini berfungsi untuk memasukkan data ke mikrokontroller sedangkan output dari keypad matrik ini berupa tampilan pada LCD. Pada sistem ini kita juga bisa mengendalikan pheriperal lainnya selain yang telah disebutkan diatas misalnya motor stepper, motor DC, dan lain sebagainya.

2.2. Mikrokontroller AT89C2051

AT89C2051 mempunyai jumlah pin sebanyak 20, dan mempunyai jumlah port sebanyak 2. Agar port yang ada pada AT89C2051 dapat ditambahkan / dikembangkan, maka kita gunakan teknik I2C Bus dengan PCF8574

sebagai komponen bantunya.

2.2.1. Arsitektur Mikrokontroller AT89C2051

Mikrokontroller ini digunakan pada tegangan yang rendah, dengan teknologi mikrokomputer CMOS 8 bit dengan sebesar 2K Byte flash

programmable dan Erasable Read Only Memory (EPROM).

Mikrokontroller AT89C2051 mempunyai kelebihan sebagai berikut: 1) Cocok (compatible) dengan produk MCS-51

2) Memori Flash sebesar 2K Byte

3) Beroperasi pada 2.7V sampai dengan 6V 4) Operasi Statik Penuh: 0 Hz sampai 24 Mhz 5) Kunci Program Memori Dua-Tingkat 6) RAM Internal 128 x 8 bit

7) Jalur I/O sebanyak 15

(13)

9) 6 sumber interrupt

10) Saluran UART untuk program serial

11) Penggerak (driver) keluaran secara langsung 12) Penguat analog On-Chip

13) Mode daya rendah dan Daya rendah idle

2.2.2. Konfigurasi Pin-pin AT89C2051

Mikrokontroller AT89C2051 memiliki pin sebanyak 20, seperti ditunjukkan pada gambar :

Gambar 2.1. Konfigurasi Pin AT89C2051 *)

*) Atmel, “8-Bit Microcontroller With 2-K Bytes Flash AT89C2051,”

Datasheet, Atmel, 1997, hlm 4-15.

Fungsi dari pin-pin MCU AT89C2051 yaitu: 1) Vcc

Pin ini dihubungkan dengan sumber tegangan 5 Volt DC. 2) GND

Pin ini dihubungkan dengan ground rangkaian. 3) Port 1

Port 1 merupakan port I/O 8 bit secara dua arah. Pin P1.2 sampai dengan P1.7 menyediakan rangkaian dalam pull-up. P1.0 dan P1.1

(14)

6

membutuhkan rangkaian luar pull-up. P1.0 dan P1.1 juga bisa sebagai masukan positif (AIN0) dan masukan negatif (AIN1).

4) Port 3

Port 3 memiliki 7 pin yaitu P3.0 sampai P3.5, P3.7. Ketujuh pin tersebut adalah pin I/O parallel dengan rangkaian dalam pull-up. Khusus pada pin P3.6 sebagai output dari komparator dan bukan sebagai pengakses seperti pada fungsi pin I/O general purpose.

Tabel 2.1. Fungsi Alternatif Port 3 *) Pin Port Fungsi alternatif

P3.0 RXD (port masukan serial) P3.1 TXD (port keluaran serial) P3.2 INT0 (external interrupt 0) P3.3 INT1 (external interrupt 1) P3.4 T0 (timer 0 external input) P3.5 T1 (timer 1 external input)

*) Atmel, “8-Bit Microcontroller With 2-K Bytes Flash

AT89C2051,” Datasheet, Atmel, 1997, hlm 4-17.

5) RST

Reset input (masukan reset). Semua pin-pin I/O di-reset terlebih dahulu selama 1 detik ketika pin ini menuju tinggi. Menahan pin RST menjadi tinggi selama dua mesin siklus akan meyebabkan device ini reset. Tiap mesin siklus mengambil 12 osilator atau siklus clock.

6) XTAL1

Pin ini merupakan masukan ke inverting amplifier osilator dan masukan ke rangkaian dalam operasi clock.

7) XTAL2

(15)

2.2.3. Special Function Register (SFR)

Register dengan fungsi khusus (Special Function Register) terletak pada 128 byte bagian atas memori data internal. Wilayah SFR ini terletak pada alamat 80H-FFH. Register-register khusus dalam mikrokontroller AT89C2051 yaitu:

1) Accumulator

Merupakan register penyimpan hasil suatu operasi ALU. 2) Register B

Register ini digunakan untuk proses perkalian dan pembagian. 3) Program Status Word (PSW)

Register ini berisi informasi status program seperti ditunjukkan berikut:

PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 CY AC F0 RS1 RS0 OV - P Keterangan:

CY = Carry Flag

AC = Auxilliary Carry Falg untuk operasi BCD FO = Flag 0 (untuk segala keperluan)

RS1 = Selektor bank register bit 1. Set / clear dibawah komando software untuk menentukan bank register kerja

RS0 = Selektor bank register bit 0. Set / clear dibawah komando software untuk menentukan bank register kerja.

Ada 4 bank yang dapat dipilh untuk digunakan, semuanya bersifat addressable, yaitu:

RS1 RS0 Register

0 0 Bank 0

0 1 Bank 1

1 0 Bank 2

(16)

8

OV = Over flow flag - = Reserve

P = Parity flag 4) Stack Pointer (SP)

Merupakan register yang mempunyai lebar 8 bit. Isi register ini ditambah sebelum data disimpan, selama instruksi PUSH dan CALL. Pada kondisi reset register SP berada pada posisi alamat 07H sehingga stack akan dimulai pada alamat 08H.

5) Data Pointer Register (DPTR)

Terdiri dari dua buah register, yaitu register byte tinggi (Data

Pointer High, DPH) dan register byte rendah (Data Pointer Low,

DPL). DPTR digunakan untuk pengalamatan tidak langsung untuk memindahkan data dari atau ke memori eksternal (RAM).

6) Register Port 1 dan Port 3

Register-register P1 dan P3 merupakan SFR yang berfungsi sebagai

latch dari Port 1 dan Port 3.

7) Control Register

Register ini terdiri dari IP, IE, TMOD, TCON, SCON dan PCON yang berisi kontrol dan status bit untuk sistem interupsi, timer/counter dan serial port.

Tabel 2.2. Pembagian Alamat Pada SFR *)

SYMBOL NAME ADDRESS

*ACC Accumulator 0E0H

*B Register B 0F0H

*PSW Program Stack Pointer 0D0H SP Stack Pointer 81H DPL Data Pointer Low Byte 82H DPH Data Pointer High Byte 83H

(17)

*P3 Port 3 0B0H *IP Interrupt Priority Control 0B8H *IE Interrupt Enable Control 0A8H TMOD T/C Mode Control 89H TCON T/C Control 88H TH0 T/C 0 High Control 8CH TL0 T/C 0 Low Control 8AH TH1 T/C 1 High Control 8DH TL1 T/C 1 Low Control 8BH *SCON Serial Control 98H

SBUF Serial Buffer 99H

PCON Power Control 97H

*) Afri, “Perencanaan Dan Pembuatan Display Informasi YangDapat

Diubah Pada Swalayan Dengan Remote Kontrol,” Laporan Akhir,

Politeknik Negeri Malang, Malang, 2003, hlm 25.

2.2.4. Rangkaian Osilator

Jantung dari mikrokontroller AT89C2051 terletak pada rangkaian yang membangkitkan pulsa clock. Pin XTAL1 dan XTAL2 disediakan untuk disambungkan dengan jaringan resonan untuk membentuk sebuah osilator. Penambahan rangkaian eksternal dari osilator ditunjukkan seperti pada gambar 2.4. berikut ini.

Gambar 2.2. Rangkaian Osilator *)

*) Atmel, “8-Bit Microcontroller With 2-K Bytes Flash AT89C2051,”

(18)

10

2.3. I2C Bus

I2C Bus diperkenalkan oleh Philips Semikonduktor pada tahun 1980. I2C bus digunakan untuk memudahkan hubungan pada CPU ke IC di dalam TV. I2C adalah singkatan dari Inter-Integrated Circuit. Maka, I2C digunakan untuk menyediakan sebuah komunikasi link dengan IC.

Kelebihan dari I2C bus adalah:

1) Hanya melibatkan dua kabel yaitu serial data line (selanjutnya disebut SDA) dan serial clock line (selanjutnya disebut SCL).

2) Membuat system yang didesain berorientasi pada software ( mudah diekspan dan diupgrade ).

3) Setiap IC yang terhubung dalam I2C memiliki alamat yang unik yang dapat diakses secara software dengan master/slave protocol yang sederhana, dan mampu mengakomodasikan multi master.

4) Rating pengiriman data lebih dari 1.25 Mbit/s.

5) Membuat system yang didesain menjadi standart, sehingga dapat dihubungkan dengan system lain yang juga menggunakan I2C bus. 6) Menghemat luasan PCB yang dibutuhkan.

Gambar 2.3. Contoh Konfigurasi I2C Bus *)

*) Micronas, “CDC 32XXG I2

C Port Expander Interfacing,” Application

Note, Micronas, Frelburg, 06-02-2003, hlm 1.

2.3.1. Karakteristik Transfer Data Bit

Data bit dikirim/diterima melalui SDA, sedangkan sinyal clock dikirim/diterima melalui SCL, dimana dalam setiap transfer data bit satu

(19)

sinyal clock dihasilkan, transfer data bit dianggap valid jika data bit pada SDA tetap stabil selama sinyal clock high, data bit hanya boleh berubah jika sinyal clock dalam konsisi low.

Gambar 2.4. Pengiriman Bit Pada I2C Bus *)

*) Philips Semiconductors, “The I2

C Bus And How To Use It,” Datasheet,

Philips Semiconductor, April 1995, hlm 3-8.

2.3.2. Sinyal Dasar I2C Bus

Mengingat hanya 2 saluran saja yang dipakai I2C Bus, padahal I2C Bus diharapkan bisa dipakai membentuk jaringan kecil dengan banyak peralatan I2C, maka dalam konsep I2C ditentukan sinyal dan tatacara dasar

untuk memperlancar komunikasi antar peralatan I2C tersebut. Sinyal dasar I2C meliputi sinyal START, STOP dan ACK.

2.3.2.1. Kondisi START dan STOP

Apabila pada SDA terjadi transisi dari kondisi high ke kondisi low pada saat SCL berkondisi high, maka terjadilah kondisi START. Apabila pada SDA terjadi transisi dari kondisi low ke kondisi high pada saat SCL berkondisi high, maka terjadilah kondisi STOP. Kondisi START dan STOP selalu dibangkitkan oleh Master, dan bus dikatakan sibuk setelah START dan dikatakan bebas setelah STOP.

(20)

12

Gambar 2.5. Kondisi START Dan STOP *) *) Philips Semiconductors, “The I2

C Bus And How To Use It,” Datasheet,

Philips Semiconductor, April 1995, hlm 3-8.

2.3.2.2. Kondisi ACK dan NACK

Kondisi ACK terjadi apabila receiver “menarik” SDA pada kondisi low selama 1 sinyal clock. Kondisi NACK terjadi apabila receiver “membebaskan” SDA pada kondisi high selama 1 sinyal clock.

Gambar 2.6. Acknowledge Pada I2C Bus *) *) Philips Semiconductors, “The I2

C Bus And How To Use It,” Datasheet,

Philips Semiconductor, April 1995, hlm 3-9.

2.4. PCF8574

PCF8574 (Texas Instruments, 2003:1) dirancang untuk menyediakan

general-purpose I/O remote perluasan untuk kebanyakan

keluarga-keluarga mikroprosesor melalui suatu two wire bidirectional bus ( I2C) yaitu SCL dan SDA.

(21)

Karakteristik dari PCF8574 adalah:

1) Standby-Current Rendah dengan Konsumsi 10 µA Maksimum

2) I2C ke Pengembangan Parallel-Port

3) Open-Drain Keluaran Interupt

4) Cocok dengan Beberapa Mikrokontrollers

5) Keluaran Latch Dengan Arus Tinggi Mengendalikan Secara langsung

Untuk konfigurasi pin-pin pada PCF8574 adalah:

Gambar 2.7. Konfigurasi Pin PCF8574 *)

*) Texas Instruments, “PCF8574 Remote 8-Bit I/O Expander For I2

C Bus,” Datasheet, Texas Instruments, Dallas, Juni 2003, hlm 1.

Fungsi dari pin-pin PCF8574 yaitu: 1) Vcc

Pin ini dihubungkan dengan sumber tegangan 5 Volt DC. 2) GND

Pin ini dihubungkan dengan ground rangkaian. 3) Port 0 sampai dengan Port 7

(22)

14

4) A0 sampai dengan A2

Untuk inisialisasi alamat slave (fasilitas penomoran chip). Hal ini diperlukan kalau dalam satu rangkaian dipakai lebih dari satu PCF8574.

5) SDA

Serial Data. Kaki ini merupakan kaki IC jenis I2C yang akan dihubungkan dengan salah satu Port pada mikrokontroller. Kaki inilah yang membentuk I2C Bus.

6) SCL

Serial Clock. Kaki ini merupakan kaki IC jenis I2C yang akan dihubungkan dengan salah satu Port pada mikrokontroller. Kaki inilah yang membentuk I2C Bus.

2.4.1. Pengalamatan PCF8574

Setiap device pada I2C Bus harus mempunyai alamt sendiri (unique

address). Empat bit pertama dari alamat 7 bit adalah 0100 untuk PCF8574

dan 0111 untuk PCF8574A. Tiga bit terendah adalah pengaturan pada A2, A1 dan A0. alamat unik (unique address) dari device tergantung dari pengaturan pin-pin A2, A1 dan A0.

Tabel 2.3. Referensi Alamat PCF8574 *)

*) Texas Instruments, “PCF8574 Remote 8-Bit I/O Expander For I2

C Bus,” Datasheet, Texas Instruments, Dallas, Juni 2003, hlm 4.

(23)

2.5. Keypad 4X4 Encoders

Keypad CMOS encoders ini menyediakan semua logika yang perlu ke penyandi tombol array secara penuh. Suatu data keluaran akan transisi tinggi manakala input pada papan tombol telah dibuat. Data keluaran akan kembali ke transisi rendah ketika tombol data dilepaskan, sekalipun tombol yang lain tertekan. Data akan kembali transisi tinggi untuk menandai adanya penerimaan terhadap tombol yang baru ditekan setelah debounce periode normal.

Karakteristik Keypad 4x4:

1) Tahanan tombol maksimum hingga 50 kΩ 2) Clock didalam atau diluar chip

3) Row pull-up pada chip 4) 2 key rollover

5) Penghapusan keybounce dilakukan dengan sebuah kapasitor 6) Output berada pada register tombol terakhir

7) Lebar persedian tegangan 3V hingga 15V

Gambar 2.8. Konfigurasi Pin MM74C922 *)

*) National Semiconductor, “MM74C922 16-Key Encoder,” Datasheet,

(24)

16

2.6. Display LCD

Liqiud Crystal Display, yaitu suatu bentuk kristal cair yang akan beremulsi apabila dikenakan tegangan kepadanya. Bagian tampilan ini berupa 2x16 LCD sehinggga jenis huruf yang mampu ditampilkan akan lebih banyak dan lebih baik resolusinya jika dibandingkan dengan seven segment.9) Diagram blok LCD diperlihatkan pada gambar dibawah ini:

Gambar 2.9. Diagram Blok LCD *)

*) Seiko Instruments Inc, “Liquid Crystal Display Module M1632,” User

Manual, Seiko Instruments Inc, Japan, januari 1987, hlm 3.

Liquid adalah modul tampilan yang mempunyai konsumsi daya yang relative rendah dan terdapat sebuah modul controller CMOS di dalamnya. Controller tersebut sebagai pembangkit dari karakter ROM/RAM dan display data RAM. Semua fungsi tampilan dikontrol oleh suatu unit mikrokontroller. Masukan yang diperlukan untuk mengendalikan modul ini berupa data bus yang masih termultiplex dengan bus alamat serta 3 bit sinyal control. Sementara pengendalian dot matrik LCD dilakukan secara internal oleh controller yang sudah ada pada modul LCD.

CONTROLL ER DB0-DB7 COMMON SIGNAL LCD SEGMEN SIGNAL SEGMENT DRIVER TIMMING SIGNAL

(25)

Tabel 2.4. Tabel konfigurasi pin-pin LCD *) No Symbol Level Function

1 Vss - 0 (GND) 2 Vcc - 5V + 10% 3 Vcc - LCD Drive 4 Rs H/L H: Data input L: Instruction Input 5 R/W H/L H: Read L: Write 6 E H Enable Signal 7-14 DB0-DB7 H/L Data Bus

*) Seiko Instruments Inc, “Liquid Crystal Display Module M1632,” User

Manual,Seiko Instruments Inc, Japan, Januari 1987, hlm 2.

Operasi Dasar : 1) Register

Controller dari LCD mempunyai dua buah register 8 bit yaitu register instruksi (IR) dan register data (DR). Kedua register tersebut dipilih melalui register select (SR). IR menyimpan instruksi seperti display clear, Cursor Shift dan Display Data (DD RAM) serta Character Generator (CG RAM). DR menyimpan data untuk dituliskan ke DD RAM atau CG RAM ataupun membaca data dari DD RAM atau CG RAM. Ketika data ditulis ke DD RAM atau CG RAM akan dibaca maka alamat data ditulis pada IR sedangkan data akan dimasukkan melalui DR dan mikroprosesor membaca data dari DR.

2) Busy Flag

Busy Flag menunjukkan bahwa module siap untuk menerima instruksi selanjutnya. Sebagaimana terliahat pada table register seleksi sinyal akan melalui DB7, jika RS = 0 dan R/W = 1. Jika bernilai 1 maka

(26)

18

module sedang melakukan kerja internal dan instruksi tidak akan dapat diterima. Oleh karena itu status dari flag harus diperiksa sebelum melaksanakan instruksi selanjutnya.

3) Address Counter :

AC menunjukkan lokasi dalam module LCD. Pemilihan lokasi alamat itu diberikan lewat Register Instruksi (IR). Ketika data pada A, maka AC secara otomatis menaikkan atau menurunkan alamat tergantung dari entry Mode Set.

4) Display Data RAM (DD RAM)

Pada LCD masing-masing line mempunyai range alamat tersendiri. Alamat itu di ekspresikan dengan bilangan Heksadesimal. Untuk line 1 range alamat berkisar antara 00H-0FH, sedangkan untuk line 2 range alamat berkisar antar 40h-4Fh.

5) Character Generator ROM (CG ROM)

CG ROM mempunyao tipe dot matrik 5x7. dimana pada LCD telah tersedia ROM sebagai pembangkit character dalam kode ASCII.

6) Character Generator RAM (CG RAM)

CG RAM dipakai untuk pembuatan karakter tersendiri melalui program.

Pada tabel dibawah ini ditunjukkan fungsi-fungsi dari terminal pada LCD Tabel 2.5. Fungsi-fungsi terminal pada LCD *)

Nama No.term I/O Tujuan Fungsi

DB0 - DB3 4 I/O MPU Sebagai lalu lintas data dan instruksi ke dan dari MPU, lower byte

DB4-DB7 4 I/O MPU Sebagai lalu lintas data dan instruksi ke dan dari MPU, upper byte

E 1 I MPU Sinyal start (read/write) R/W 1 I MPU Sinyal seleksi instruksi

0: write 1: read RS 1 I MPU Sinyal seleksi register

(27)

0: Instruksi Register Busy flag & @ (read)

1: Register data (write dan read) VLC 1 - PSU Driver LCD

VDD 1 - PSU 5 volt

VSS 1 - PSU Ground Terminal: 0V

*) Seiko Instruments Inc, Liquid Crystal Display Module M1632 User

Manual,Seiko Instruments Inc, Japan, Januari 1987, hlm 7.

Fungsi masing-masing instruksi adalah sebagai berikut: 1) Display Clear

Membersihkan semua tampilan yang ada pada LCD serta menyimpan, sedangkan kursor kembali ke posisi semula.

2) Cursor Home

Hanya membersihkan semua tampilan dan kursor kembali ke posisi semula.

3) Entry Mode Set

Layar beraksi sebagai tampilan karakter tulis. S = 1/0 : menggeser layer

I/O = 1 : kursor bergerak ke kanan dan layer bergerak ke kiri I/O = 0 : kursor nergerak ke kiri dan layer bergerak ke kanan 4) Display On Off Control

D = 1 : layar on D = 0 : layer off C = 1 : kursor on C = 0 : kursor off

B = 1 : kursor berkedip-kedip B = 0 : kursor tidak berkedip-kedip 5) Cursor / Display Shift

(28)

20

S/C = 0 : LCD diidentifikasikan sebagai kursor R/L = 1 : menggeser satu spasi ke kanan R/L = 0 : menggeser satu spasi ke kiri 6) Function Set

DL = 1 : panjang data LCD pada mode 8 bit (DB7 – DB0)

DL = 0 : panjang data LCD pada mode 4 bit (DB7 – DB4); 4 bit upper ditransfer terlebih dahulu kemudian diikuti 4 bit lower

N = 1/0 : LCD menggunakan 2 atau 1 baris karakter

F = 1/0 : LCD menggunakan 5x10 atau 5x7 dots per karakter

Tabel 2.6. Tabel instruksi-instruksi pada LCD *)

No. Instruksi RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 Display clear 0 0 0 0 0 0 0 0 0 1 2 Cursor home 0 0 0 0 0 0 0 0 1 0 3 Entry mode set 0 0 0 0 0 0 0 1 1/0 S 4 Display on/off control 0 0 0 0 0 0 1 D C B 5 Cursor / display shift 0 0 0 0 0 1 S/ C R/ L 0 0 6 Function set 0 0 0 0 1 DL N F 0 0 7 CG RAM Adress set 0 0 0 1 ALAMAT KARAKTER 8 DD RAM Address set

0 0 1 TAMPILAN ALAMAT DATA

9 BF/Address read 0 1 BF ALAMAT ARUS 10 Data write to CG RAM or DD RAM 1 0 BYTE KARAKTER

(29)

11 Data read from CG RAM or DD RAM

1 1 BYTE KARAKTER

*) Seiko Instruments Inc, Liquid Crystal Display Module M1632 User

Manual,Seiko Instruments Inc, Japan, Januari 1987, hlm 16.

7) CG RAM Address Set

Menulis alamat RAM ke karakter 8) DD RAM

Menulis alamat RAM ke karakter 9) BF/Address Read

BF = 1/0 : LCD dalam keadaan sibuk atau tidak sibuk 10) Data Write to CG RAM or DD RAM

Menulis byte ke alamat terakhir RAM yang dipilih 11) Data Read from CG RAM or DD RAM

(30)

22

BAB III. PERENCANAAN DAN PEMBUATAN ALAT

3.1. Blok Diagram

Blok diagram dari “Perencanaan Dan Penambahan Port Pada Sistem Mikrokontroller AT89C2051 Menggunakan PCF8574 Dengan Teknik I2C Bus“ ditunjukkan dalam gambar berikut:

Gambar 3.1. Blok Diagram Perencanaan

Keterangan dari blok diagram alat: 1) MCU MASTER

MCU yang digunakan disini adalah AT89C2051. AT89C2051 ini bertindak sebagai master yang dihubungkan dengan menggunakan teknologi I2C Bus.

2) PCF8574

Komponen ini berfungsi sebagai pengembangan port pada MCU AT89C2051.

3) Keypad Encoder

Merupakan salah satu komponen yang akan dikendalikan oleh CPU Master melalui PCF8574.

MCU

MASTER

PCF8574

PCF8574

LCD Keypad Encoder SDA SCL

(31)

4) LCD

Merupakan komponen yang berfungsi untuk menampilkan data hasil olahan MCU Master yang dikendalikan melalui PCF8574.

3.2. Perencanaan Perangkat Keras (Hardware)

Perangkat keras (hardware) digunakan untuk merangkai atau menyambung masing-masing rangkaian, yaitu rangkaian mikrokontroller AT89C2051, rangkaian keypad dan rangkaian LCD melalui I2C Bus.

3.2.1. Perencanaan Rangkaian Mikrokontroller AT89C2051

Mikrokontroller yang digunakan adalah AT89C2051 yang diproduksi oleh Atmel. Mikrokontroller ini digunakan pada tegangan yang rendah, dengan teknologi mikrokomputer CMOS 8 bit dengan sebesar 2K Byte flash

programmable dan Erasable Read Only Memory (EPROM).

Gambar 3.2. Rangkaian Mikrokontroller

R ST 1 VCC 20 P1 .4 16 XTAL2 4 XTAL1 5 R XD/P 3.0 2 TXD/P3 .1 3 P1 .7 19 INTO/P3.2 6 P1 .6 18 INT1/P 3.3 7 P1 .5 17 P1 .3 15 T0 /P 3.4 8 P1 .2 14 T1 /P 3.5 9 AIN1/P1.1 13 P3 .7 11 AIN0/P1.0 12 GND 10 AT89C 20 51 MC 1N914 10 K R 1 10 uF C 1 11 .0 592 MHz 22 pF C 2 22 pF C 3 +5 0.1u F C 4 +5 +5 2.7K R 2 2.7K R 3 SDA SC L SDA SC L

(32)

24

3.2.2. Perencanaan Rangkaian Keypad

Keypad yang digunakan adalah Keypad 4x4 (4 baris, 4 kolom). Keypad ini berfungsi untuk memberikan sinyal / data masukan sesuai dengan tombol. Keypad ini digunakan seperti keypad Handphone.

1 2 3 MENU 4 5 6 7 8 9 * 0 # EXIT Gambar 3.3. Keypad 4x4 Keterangan: 1) Tombol “1” : ‘1ABCabc’ 2) Tombol “2” : ‘2DEFdef’ 3) Tombol “3” : ‘3GHIghi’ 4) Tombol “MENU” 5) Tombol “4” : ‘4JKLjkl’ 6) Tombol “5” : ‘5MNOmno’ 7) Tombol “6” : ‘6PQRpqr’ 8) Tombol “ ” 9) Tombol “7” : ‘7STUstu’ 10) Tombol “8” : ‘8VWXvwx’ 11) Tombol “9” : ‘9YZyz.,’ 12) Tombol “ “ 13) Tombol “*“ : ‘*<>{}()’ 14) Tombol “0” : ‘0 +-=/%’ 15) Tombol “#” : ‘#!?~&$@’ 16) Tombol “EXIT”

(33)

VDD 16 P0 4 A0 1 P1 5 A2 3 P2 6 A1 2 P3 7 SDA 15 P4 9 SCL 14 P5 10 INT 13 P6 11 VSS 8 P7 12 PCF8 574 CLK 3 D 2 SD 4 CD 1 Q 5 Q 6 A 74 74 DB 16 VDD 18 DA 17 C1 11 MASK 6 C2 10 R1 1 R2 2 R3 3 R4 4 DAV 12 C3 8 DC 15 OSC 5 OE 13 VSS 9 DD 14 C4 7 74 C9 22 1 2 3 4 5 6 7 8 KEYPAD 4X4 +5 0.1u F C6 10 uF C7 10 uF C8 +5 +5

Gambar 3.4. Rangkaian Pengontrol Keypad 3.2.3. Perencanaan Rangkaian LCD

LCD yang digunakan adalah 2x16 (2 baris, 16 kolom). LCD ini mampu menampilkan jenis huruf yang lebih banyak dan lebih baik resolusinya jika dibandingkan dengan seven segment. LCD ini digunakan sebagai tampilan (keluaran dari keypad).

VDD 16 P0 4 A0 1 P1 5 A2 3 P2 6 A1 2 P3 7 SDA 15 P4 9 SCL 14 P5 10 INT 13 P6 11 VSS 8 P7 12 PC F85 74 VSS 1 VDD 2 VO 3 R S 4 R /W 5 E 6 DB0 7 DB1 8 DB2 9 DB3 10 DB4 11 DB5 12 DB6 13 DB7 14 LCD 16 X2 0.1u F C 5 +5 20 K

(34)

26

3.3. Perencanaan Perangkat Lunak (Software)

Perencanaan software digunakan untuk mengontrol tiap-tiap rangkaian dengan I2C Bus secara terprogram. Software juga digunakan untuk menampilkan suatu aplikasi yang diinginkan.

(35)
(36)

28

3.3.3. Perencanaan Software untuk I2C Bus

3.3.3.1. Perencanaan Software untuk I2C Bus LCD

I2C LCD

Kirim Sinyal START

Berhasil

Kirim Address Byte ( 70 H ) ke Accumulator Putar Accumulator ke kiri ( RLC ) 8 kali Data Lengkap 8 bit ? Kirim Sinyal Acknowledge ( ACK )

Kirim Data Byte ke Accumulator Putar Accumulator ke kiri ( RLC ) 8 kali Data Lengkap 8 bit ? Kirim Sinyal Acknowledge ( ACK )

Kirim Sinyal STOP

RET T Y Y T Y T

(37)

3.3.3.2. Perencanaan Software untuk I2C Bus Keypad

I2C Keypad

Kirim Sinyal START

Berhasil

Kirim Address Byte ( 73 H ) ke Accumulator Putar Accumulator ke kiri ( RLC ) 8 kali Data Lengkap 8 bit ? Kirim Sinyal Acknowledge ( ACK )

Terima Data Byte

Putar Accumulator ke kiri ( RLC ) 8 kali Data Lengkap 8 bit ? Kirim Sinyal Acknowledge ( ACK )

Kirim Sinyal STOP

RET T Y Y T Y T

(38)

30

BAB IV. PRINSIP KERJA DAN PENGUJIAN ALAT

4.1. Prinsip Kerja Alat

4.1.1. Prinsip Kerja AT89C2051 sebagai Master

Adapun sistem yang direncanakan adalah sebuah mikrokontroller AT89C2051 yang bertindak sebagai master yang dihubungkan dengan menggunakan teknologi I2C Bus dengan dua buah PCF8574 (Remote 8-bit

I/O expander for I2C Bus) sebagai komponen bantu dalam pengembangan

portnya. PCF8574 pertama digunakan untuk melayani LCD dan PCF8574 kedua digunakan untuk melayani Keypad Encoder.

Terdapat 2 jenis komunikasi dasar I2C bus yang digunakan dalam pembuatan alat ini, yaitu :

1) Master-transmitter menulis data ke slave-receiver yang teralamati. AT89C2051 sebagai master mengirimkan data dari internal RAM-nya kepada PCF8574 untuk ditampilkan di LCD secara serial menggunakan I2C bus.

2) Master-receiver membaca data dari slave-transmitter yang teralamati. PCF8574 menerima data dari keypad encoder MM74C922 kemudian mengirimkan data kepada AT89C2051 secara serial menggunakan I2C bus.

Setiap IC yang dihubungkan ke I2C bus, dialamatkan secara software sesuai dengan Metode Pengalamatan I2C. Pengalamatan dasar I2C dilakukan dengan mengggunakan Nomor Group dan Nomor Chip dan dijelaskan sebagai berikut:

1) Nomor Group adalah nomor yang diberikan oleh Philips (sebagai pencipta I2C) pada kelompok-kelompok IC I2C. Sebagai contoh nomor group untuk PCF8574 adalah 0100 (biner).

(39)

2) Nomor Chip adalah nomor yang diberikan pada masing-masing chip lewat kaki A0..A2 tidak dihubungkan ke kaki IC, tapi dipakai didalam IC untuk menomori register/memori di dalam IC yang bersangkutan.

Setelah Master I2C mengirimkan sinyal START, byte pertama yang dikirim berisi nomor group, nomor chip dan 1 bit lagi sebagai Penentu Arah Data. Mekanisme kerja byte pertama tersebut bisa dijelaskan sebagai berikut:

1) IC pada I2C bus yang mempunyai nomor group sama dengan nomor group dalam byte pertama tersebut akan terpanggil.

2) Berikutnya IC-IC dengan nomor group sama tersebut akan membandingkan nomor chip dalam byte pertama, dalam hal ini ada 2 kemungkinan yaitu:

a) Bagi IC yang mempunyai kaki A0..A2, nomor chip dalam byte pertama tersebut dibandingkan dengan level tegangan kaki A0..A2, bila ternyata sama maka IC bersangkutan akan meneruskan komunikasi melalui I2C bus.

b) Bagi IC yang tidak mempunyai kaki A0..A2, nomor chip dalam byte pertama dipakai untuk menomori register/memori di dalam IC bersangkutan.

3) Bit penentu arah data dipakai untuk memberi tahu IC I2C arah data yang dikehendaki, apakah master akan mengirim data atau master menghendaki kiriman data. Apabila master menginginkan untuk mengirimkan data ke slave maka bit ke-8 dibuat ‘0’ dan sebaliknya dibuat ‘1’ apabila master menginginkan untuk menerima data dari slave.

(40)

32

4.1.2. Prinsip Kerja PCF8574 sebagai Slave

4.1.2.1. Prinsip Kerja PCF8574 sebagai Pengendali LCD

LCD akan bekerja apabila master telah mengirimkan sinyal START diikuti alamat PCF8574 yang mengendalikannya. Terdapat 2 macam transmisi yang akan dikirimkan yaitu apakah Master menginginkan data atau instruksi untuk dikirimkan ke LCD. Apabila Master mengirimkan data maka tampilan pada LCD adalah tampilan data yang berasal dari internal RAM AT89C2051, namun jika Master mengirimkan instruksi maka tampilan pada LCD adalah berupa instruksi. Instruksi disini adalah data yang didapatkan dari penekanan tombol keypad yang telah dikonversi oleh master kemudian ditampilkan pada layar LCD.

Alamat hardware LCD adalah 70 H dan master menginginkan PCF8574 yang mengendalikan LCD selalu menerima data, sehingga pada saat pengiriman alamat 8 bit dilakukan, bit penentu arah atau bit ke-8 selalu ‘0’ sehingga alamat untuk LCD pada software tidak berubah.

Transmisi data dari PCF8574 ke LCD menggunakan metode transmisi data 4 bit. Hal ini dilakukan untuk mengatasi keterbatasan kaki IC PCF8574. Jika transmisi data yang dilakukan adalah mode 8 bit maka dibutuhkan 8 kaki untuk data serta 3 kaki masing-masing untuk RS, R/W, dan E. Sedangkan pada PCF8574 hanya memiliki 8 keluaran.

Pada mode transmisi 4 bit ini data akan dikirim per 4 bit secara serial, kemudian diikuti 4 bit berikutnya, data yang dikirimkan harus dari bit yang terbesar (MSB) hingga (LSB).

4.1.2.2. Prinsip Kerja PCF8574 sebagai Pengendali Keypad

Keypad akan bekerja jika master mengirimkan alamat PCF8574 yang mengendalikannya yaitu berupa nomor group, nomor chip serta bit penentu arah transmisi data. Jika transmisi data yang diinginkan telah berhasil maka PCF8574 akan mengirimkan pemberitahuan kepada Master bahwa data telah berhasil dikirim. Jika pengiriman data tidak berhasil

(41)

maka PCF8574 akan membuat NAK yaitu membuat pernyataan bahwa data yang dinginkan tidak berhasil diterima dengan baik.

Alamat hardware PCF8574 untuk pengendali keypad adalah 72 H, bit penentu arah atau bit ke-8 dari pengiriman alamat dibuat ‘1’ sehingga alamat dari keypad secara software akan berubah menjadi 73 H karena master menginginkan keypad untuk mengirimkan data yang dibutuhkan. Setelah pengiriman alamat dianggap berhasil oleh master, akan dilanjutkan dengan pengambilan data 8 bit diikuti pengiriman sinyal ACK yang menandakan bahwa data telah diterima oleh master. Pengambilan data akan terus dilakukan sampai master mengirimkan sinyal STOP.

4.2. Pengujian Alat

4.2.1. Pengiriman Sinyal Start dan Stop oleh Master

Transmisi data dilakukan dengan membangkitkan sinyal clock oleh Master, sinyal clock ini berfungsi untuk mendorong data yang ada di SDA dimana sedang tidak terjadi transfer data sedangkan SDA dan SCL harus dalam kondisi “ 1 “. Dengan kondisi ini maka pengiriman atau pengambilan data akan dianggap sah baik oleh master maupun slave.

(42)

34

Gambar 4.2. Bentuk Sinyal STOP dari Alat

Jika terjadi perubahan SDA pada saat SCL =’1’, perubahan itu diartikan sebagai sinyal START atau STOP. Sinyal START dan STOP muncul pada saat awal dan akhir pengiriman 1 blok data, setelah penerima data menerima data 8 bit, pada clock yang ke-9 penerima membalas dengan ‘0’ sebagai tanda data 8 bit tadi sudah diterima dengan baik, sinyal ‘0’ ini dinamakan sebagai sinyal ACK.

Sinyal START menandakan master akan mulai mengirim data, sinyal ini terlihat di bagian kiri Gambar 4.1 berupa perubahan tegangan SDA dari ‘1’ menjadi ‘0’ pada saat SCL = ‘1’.

Sinyal STOP menandakan master akan mengakhiri komunikasi data, sinyal ini terlihat di bagian kanan Gambar 4.2 berupa perubahan tegangan SDA dari ‘0’ menjadi ‘1’ pada saat SCL = ‘1’.

(43)

4.2.2. Pengiriman Sinyal Acknowledge (ACK)

Gambar 4.3. Bentuk Sinyal Acknowledge (ACK) dari Pengiriman Alamat oleh Master AT89C2051 diterima oleh PCF8574 Pengendali LCD

Gambar 4.4. Bentuk Sinyal Acknowledge (ACK) dari Pengiriman Data oleh PCF8574 Pengendali Keypad ke Master AT89C2051

Kondisi ACK terjadi apabila receiver “menarik” SDA pada kondisi low selama 1 sinyal clock. Kondisi NACK terjadi apabila receiver “membebaskan” SDA pada kondisi high selama 1 sinyal clock.

Kedua gambar diatas memperlihatkan interaksi antara dua peralatan I2C, setelah penerima data menerima data 8 bit, pada clock yang ke-9 penerima

(44)

36

data membalas dengan ‘0’ sebagai tanda data 8 bit tadi sudah diterima dengan baik, sinyal ‘0’ ini dinamakan sebagai sinyal ACK.

Sinyal Acknowledge (ACK) terjadi : 1) Dari Slave ke Master Transmitter :

a) Sesudah address byte diterima dengan baik oleh slave. b) Setiap kali slave selesai menerima data byte dengan baik. 2) Dari Master Receiver ke Slave :

Setiap kali master selesai menerima data byte dengan baik. Sedangkan sinyal Negative Acknowledge (NACK) terjadi : 1) Dari Slave ke Master Transmitter :

a) Setelah slave gagal menerima address byte dengan baik. b) Setiap kali slave gagal menerima data byte dengan baik. c) Slave tidak terhubung pada bus.

2) Dari Master Receiver ke Slave :

Setelah master menerima data byte yang terakhir dari slave.

4.2.3. Pengiriman Alamat (Address Byte) Device melalui I2C Bus

Address byte terdiri dari bagian yang tetap dan bagian yang dapat diprogram, bagian yang tetap merupakan bawaan dari IC sedangkan yang dapat diprogram biasanya berupa pin addres IC yang bersangkutan.

4.2.3.1. Pengiriman Alamat untuk PCF8574 Pengendali LCD

Alamat hardware LCD adalah 70 H dan master menginginkan PCF8574 yang mengendalikan LCD selalu menerima data, sehingga pada saat pengiriman data 8 bit dilakukan, bit penentu arah atau bit ke-8 selalu ‘0’ sehingga alamat secara software untuk LCD tidak berubah.

(45)

Gambar 4.5. Pengiriman Alamat untuk PCF8574 sebagai Pengendali LCD

4.2.3.2. Pengiriman Alamat untuk PCF8574 Pengendali Keypad

Untuk keypad alamat hardware adalah 72 H, bit penentu arah atau bit ke-8 dari pengiriman alamat dibuat ‘1’ sehingga alamat dari keypad secara software akan berubah menjadi 73 H karena master menginginkan keypad untuk mengirimkan data yang dibutuhkan.

Gambar 4.6. Pengiriman Alamat untuk PCF8574 Pengendali Keypad

4.2.4. Pengiriman Data (Data Byte) melalui I2C Bus

(46)

38

1) Clock SCL dibangkitkan oleh master, SDA boleh berubah pada saat SCL = ‘0’.

2) Data di SDA bisa dibangkitkan oleh master maupun slave, tergantung pada arah transmisi data.

3) Pengiriman data dilakukan per 1 byte, digeser serempak dengna SCK bit demi bit yang dimulai dari bit 7 sampai bit 0.

4) Pada hitungan SCK yang ke sembilan, pengirim data harus membuat SDA = ‘1’ dengan maksud agar penerima data bisa mengirimkan sinyal ACK (=’0’) sebagai tanda terima kiriman data.

4.2.4.1. Pengiriman Data (Data Byte) untuk PCF8574 Pengendali LCD

Pengiriman data byte mengikuti pengiriman alamat dan dilanjutkan sinyal ACK. Bit penentu arah adalah ‘0’ maka PCF8574 bertindak sebagai receiver. Data dianggap sebagai keluaran hanya jika byte-byte lengkap diterima dan diacknowledgekan. Keluaran data dianggap valid setelah transisi rendah ke tinggi SCL, selama siklus clock untuk ACK. Jika byte-byte data yang lain terkirim ke slave yang diikuti sinyal ACK, maka slave harus memperbaharui keluaran Port PCF8574 lagi.

(47)

4.2.4.2. Pengambilan Data (Data Byte) dari PCF8574 Pengendali Keypad

Gambar 4.8. Pengambilan Data 8 bit dari Keypad

Jika bit R/W tinggi, PCF8574 telah mengontrol jalur SDA dan data dari AT89C2051 adalah data baca dari Port PCF8574. Setiap pengiriman byte data diikuti oleh pengiriman sinyal ACK ke slave-transmitter. Setelah ACK, jika master-receiver menerima kondisi no-stop (tidak berhenti), maka akan mengulang siklus ACK. Bagaimanapun juga, jika AT89C2051 menerima No-Acknowledge (NACK) selama siklus ACK dan menerima kondisi no-stop, maka keadaan itu tidak bisa mengambil data dari Port PCF8574.

4.2.5. Transfer Data Lengkap melalui I2C Bus

Data serial dan clock diterima melalui SDA dan SCL. Setiap menerima byte data PCF8574 akan merespon dengan membangkitkan bit acknowledge. Untuk mengawali proses pengiriman data dari master menuju slave diawali dengan kondisi START dan diakhiri dengan kondisi

(48)

40

STOP. Setiap slave akan membaca alamat yang dituju oleh master dan memeriksa apakah alamat tersebut sama dengan alamat Slave tersebut. Byte alamat slave adalah byte pertama yang diterima slave setelah master membangkitkan kondisi START. Byte alamat terdiri dari 7 bit data, untuk PCF8574A byte alamat tersebut adalah 01110000, dan diikuti oleh bit arah (R/W), yang mana untuk penulisan data ke slave adalah 0. Setelah menerima dan menganalisa byte alamat, PCF8574A membangkitkan tanda acknowledge pada jalur SDA. Setelah itu Master dapat mengakhiri proses pengiriman data ataupun melanjutkannya dengan mengirimkan byte data. Untuk mengakhiri proses pengiriman data master membangkitkan kondisi STOP. Proses diatas dikenal dengan Mode Slave-receiver (Master menulis pada Slave).

Gambar 4.9. Bentuk Sinyal Transmisi Data Lengkap untuk LCD Sedangkan untuk Mode Slave-transmitter (Master Membaca Dari Slave) byte pertama diterima dan diolah oleh slave seperti pada mode penerima, tetapi bit arah bernilai 1. PCF8574A mengirimkan data serial pada SDA ketika menerima sinyal clock pada SCL. Untuk memulai prose pengiriman data diawali dengan kondisi START dan diakhiri dengan kondisi STOP. Byte yang berisi data alamat diterima setelah master membangkitkan

(49)

kondisi START. Byte alamat PCF8574A terdiri dari 7-bit alamat dan 1 bit arah. Untuk mode ini 7-bit alamat tersebut adalah 01110011 dan bit arah tersebut (R/W) adalah 1 untuk read. Setelah menerima dan mengolah data alamat, PCF8574A akan membalas dengan membangkitkan bit acknowledge pada SDA.

(50)

42

BAB V. PENUTUP

5.1. Kesimpulan

Setelah dijelaskan dalam latar belakang pemilihan judul alat ini dan selanjutnya pada tahap perencanaan sampai pembuatan alat dan pengujiannya dapat disimpulkan sebagai berikut :

1) Teknik komunikasi data I2C bus dapat diterapkan pada mikrokontroller AT89C2051 ataupun pada keluarga MCS-51 lainnya.

2) Komunikasi I2C bus dapat memenuhi target desain elektronika saat ini, dengan karakter hardware dan master / slave protocol yang sederhana tetapi tangguh.

3) Teknik komunikasi data I2C bus dapat digunakan untuk menghubungkan keypad dan LCD secara serial dengan mikrokontroller MCS-51 sebagai masternya, sedangkan slave menggunakan komponen bantu PCF8574 yang telah dilengkapi dengan kemampuan I2C secara built-in.

4) PCF8574 dapat digunakan secara bebas baik sebagai masukan maupun keluaran, data masukan dikirim dari Port PCF8574 ke mikrokontroller dengan mode baca dan sebaliknya, ketika keluaran data dikirim dari mikrokontroller ke Port PCF8574 maka dengan mode tulis. PCF8574 tidak dapat mengontrol jalur SCL dianggap sebagai slave.

(51)

43

1) Agus Pracoyo, 2001, “MCS-51 8031, 8051, 8751 Architecture,” Program Studi

Teknik Elektronika, Jurusan Teknik Elektro, Politeknik Negeri Malang, Malang

2) Afri, 2003, “Perencanaan Dan Pembuatan Display Informasi Yang Dapat Diubah

Pada Swalayan Dengan Remote Kontrol,” Laporan Akhir, Politeknik Negeri

Malang, Malang.

3) Agfianto Eko Putra, 2002, “Belajar Mikrokontroler AT89C51/52/55”, Penerbit Gava Media, Yogyakarta.

4) Author’s Guide, 1997, “8-Bit Microcontroller With 2K Bytes Flash AT89C2051,” Datasheet, Atmel

5) Author’s Guide, 1997, “Expanding The AT89C2051 Microcontroller,” Application Note, Atmel

6) Author’s Guide, 1995, “The I2C Bus And How To Use It,” Datasheet, Philips

Semiconductors

7) Author’s Guide, 2001, “Improving System Interrupt Management Using The

PCF8574 And PCF8574A I/O Expanders For The I2C Bus,” Application Report,

Texas Instruments, Texas

8) Author’s Guide, 2003, “PCF8574 Remote 8-BIT I/O Expander For I2C Bus,”

Datasheet, Texas Instruments, Texas

9) Author’s Guide, 1987, “Liquid Crystal Display Module M1632,” User Manual, Seiko Instruments Inc, Japan

10) Author’s Guide, 1993, “MM74C922 16-Key Encoder,” Datasheet, National Semiconductors, Japan

Gambar

Gambar 2.1. Konfigurasi Pin AT89C2051  *)
Tabel 2.1. Fungsi Alternatif Port 3  *)  Pin Port  Fungsi alternatif
Tabel 2.2.  Pembagian Alamat Pada SFR  *)
Gambar 2.2. Rangkaian Osilator  *)
+7

Referensi

Dokumen terkait

Tunarungu memiliki keadaan fisik yang tidak berbeda dengan anak yang normal pada umumnya, orang lain akan mengetahui bahwa penyandang tunarungu pada saat berbicara, yaitu

Penelitian ini diharapkan dapat mengetahui efektivitas ekstrak bawang dayak dalam menghambat pertumbuhan jamur Candida albicans, sehingga nantinya dapat digunakan sebagai

Linkage depan ekskavasi massal (ME, mass excavation) dirancang untuk memaksimalkan kinerja alat berat dengan gaya penggalian yang sangat baik dan kapasitas bucket lebih besar..

Menimbang, bahwa setelah Majelis Hakim Tingkat Banding mempelajari keseluruhan berkas perkara yang meliputi surat dakwaan, berita acara persidangan, keterangan saksi –

Dari tabel 4.6 di atas menunjukan bahwa responden menjawab yang menyatakan sangat setuju 23.8% menjawab setuju 56.2% yang menjawab cukup setuju 20%, yang

Tulisan ini mencoba mengetengahkan bahasan tentang hukum Islam pada masa kontemporer, yang berkenaan dengan pembaharuan dalam konteks pemikiran fiqh dengan pokok-pokok bahasan yang

Pada kasus karsinoma grade rendah, perkembangan proses berjalan lambat dari kistaadeoma serous kemudian menjadi tumor serous borderline setelah mutasi KRAS atau BRAF,