TUGAS AKHIR Komunikasi Antar IC dengan Teknik I2C Bus Menggunakan PCF8574 pada Sistem Mikrokontroller AT89C2051 Diajukan Guna Melengkapi Sebagian Syarat Dalam mencapai gelar Sarjana Strata Satu (S1)
Disusun Oleh : Nama NIM Jurusan Peminatan Pembimbing
: Derrie Hardianto : 4140412-062 : Teknik Elektro : Teknik Elektronika : Ir. Eko Ihsanto, M.Eng
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA JAKARTA 2006
LEMBAR PENGESAHAN
Komunikasi Antar IC dengan Teknik I2C Bus Menggunakan PCF8574 pada Sistem Mikrokontroller AT89C2051
Disusun Oleh : Nama NIM Program Studi Peminatan
: Derrie Hardianto : 4140412-062 : Teknik Elektro : Teknik Elektronika
Menyetujui, Pembimbing
Koordinator TA
( Ir. Eko Ihsanto, M. Eng )
( Ir. Yudhi Gunardi, MT )
Mengetahui, Ketua Program Studi Teknik Elektro
( Ir. Budi Yanto Husodo, M.Sc )
iii
ABSTRAKSI Komunikasi Antar IC dengan Teknik I2C Bus 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.
iv
DAFTAR ISI Halaman Judul ………………………………………………………………... Halaman Pernyataan ………………………………………………...………… Halaman Pengesahan ………………………………………………………….. Abstraksi ………………………………………………………………………. Kata Pengantar ………………………………………………………………... Daftar Isi ………………………………………………………………………. Daftar Tabel ………………………………………………………………....... Daftar Gambar …………………………………………………………………
i ii iii iv v vii ix viii
BAB I
PENDAHULUAN ………………………………………………... 1.1 Latar Belakang Masalah ……………………………………… 1.2 Rumusan Masalah ……………………………………………. 1.3 Batasan Masalah …………………………………………........ 1.4 Tujuan ………….……………………………………………... 1.5 Sistematika Penulisan ………………………………………....
1 1 1 2 2 3
BAB II
DASAR TEORI ................................................................................ 2.1 Gambaran Umum ...................................................................... 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 ........................................................ 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 ………………….. 2.4 PCF8574 ………………………………………….................... 2.4.1 Pengalamatan PCF8574 ................................................ 2.5 Keypad 4X4 Encoders .............................................................. 2.6 Display LCD ………………………………………………….
4 4 4 4 5 7 9 10 10 11 11 12 12 14 15 16
BAB III
PERENCANAAN DAN PEMBUATAN ALAT ………………… 3.1 Blok Diagram ………………………………………………… 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 …………………………. 3.3 Perencanaan Perangkat Lunak (Software) ................................ 3.3.1 Perencanaan Software untuk Program Utama ……….....
22 22 23 23 24 25 26 26
vii
BAB IV
BAB V
3.3.2 Perencanaan Software untuk Delay …………………… 3.3.3 Perencanaan Software untuk I2C Bus …………………. 3.3.3.1 Perencanaan Software untuk I2C Bus LCD …… 3.3.3.2 Perencanaan Software untuk I2C Bus Keypad ...
27 28 28 29
PRINSIP KERJA DAN PENGUJIAN ALAT ................................ 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 .............................................................. 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 I2C Bus ……………….
30 30 30 32 32 32 33 33 35 36 36 37 37 38 39 39
PENUTUP ........................................................................................ 42 5.1 Kesimpulan ................................................................................ 42
Daftar Pustaka ………………………………………………………………… Lampiran ………………………………………………………………………
viii
43 44
DAFTAR TABEL
Halaman Tabel Tabel Tabel Tabel Tabel Tabel
2.1 2.2 2.3 2.4 2.5 2.6
Fungsi Alternatif Port 3 Pembagian Alamat pada SFR Referensi Alamat PCF8574 Tabel Konfigurasi Pin-pin LCD Fungsi-fungsi Terminal pada LCD Tabel Instruksi-instruksi pada LCD
ix
6 8 14 17 18 20
DAFTAR GAMBAR Halaman 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
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
BAB I. PENDAHULUAN 1.1.
Latar Belakang Masalah 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 : 1
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)
1.4.
Tidak membahas catu daya yang digunakan dalam sistem.
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.
3
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.
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
8)
Timer/Counter sebanyak Dua 16 bit 4
5
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
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,”
5)
Datasheet, Atmel, 1997, hlm 4-17.
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 Pin ini merupakan output dari inverting amplifier osilator.
7
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
1
1
Bank 3
8
4)
OV
= Over flow flag
-
= Reserve
P
= Parity flag
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
*P1
Port 1
90H
9
*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,” Datasheet, Atmel, tth, hlm 4-17.
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 I2C 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
11
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 I2C 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.
12
Gambar 2.5. Kondisi START Dan STOP *) *)
Philips Semiconductors, “The I2C 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 I2C 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 keluargakeluarga mikroprosesor melalui suatu two wire bidirectional bus ( I2C) yaitu SCL dan SDA.
13
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 I2C 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 Port 1 merupakan port I/O 8 bit secara dua arah.
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 I2C
Bus,” Datasheet, Texas Instruments, Dallas, Juni 2003, hlm 4.
15
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, National Semiconductor, Japan, July 1993, hlm 1.
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:
DB0-DB7
COMMON SIGNAL
LCD
SEGMEN SIGNAL CONTROLL ER
SEGMENT DRIVER
TIMMING SIGNAL
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.
17
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
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 DB0 - DB3
No.term I/O
Tujuan
4
MPU
I/O
Fungsi 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
RS
1
I
MPU
1: read
Sinyal seleksi register
19
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.
4)
5)
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
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
Cursor / Display Shift S/C = 1
: LCD diidentifikasikan sebagai layar
20
6)
S/C = 0
: LCD diidentifikasikan sebagai kursor
R/L = 1
: menggeser satu spasi ke kanan
R/L = 0
: menggeser satu spasi ke kiri
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 0
0
0
0
0
0
1
D
C
B
0
0
0
0
1
S/
R/
0
0
C
L
DL N
F
0
0
control 5
Cursor / display 0 shift
6
Function set
0
0
0
0
1
7
CG
RAM 0
0
0
1
ALAMAT KARAKTER
RAM 0
0
1
TAMPILAN ALAMAT DATA
0
1
BF
ALAMAT ARUS
Data write to 1
0
BYTE KARAKTER
Adress set 8
DD
Address set 9
BF/Address read
10
CG RAM or DD RAM
21
11
Data read from 1
1
BYTE KARAKTER
CG RAM or DD RAM *)
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
10)
: LCD dalam keadaan sibuk atau tidak sibuk
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 Membaca byte dari alamat terakhir RAM yang dipilih
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: SDA
MCU
SCL
MASTER PCF8574
Keypad Encoder
PCF8574
LCD
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.
22
23
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). +5
10 uF C1
1N914 10 K R1
AT89C 20 51 22 pF
1
C2
4 5
R ST
+5 VCC
20 +5
22 pF
C3
11 .0 592 MHz 2 3
6 7 8 9 11 10
0.1u F C4
XTAL2 XTAL1
2.7K R2
R XD/P 3.0 TXD/P3 .1
INTO/P3.2 INT1/P 3.3 T0 /P 3.4 T1 /P 3.5 P3 .7
P1 .7 P1 .6 P1 .5 P1 .4 P1 .3 P1 .2 AIN1/P1.1 AIN0/P1.0
2.7K R3
19 18 17 16 15 14 13 12
GND MC
Gambar 3.2. Rangkaian Mikrokontroller
SDA
SDA SC L
SC L
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
4
5
6
7
8
9
*
0
#
MENU
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”
EXIT
25
+5 +5 PCF8 574 16 0.1u F C6
1 2 3 15 14 13
74 C9 22 17 16 15 14
VDD A0 A1 A2 SDA SCL
P0 P1 P2 P3 P4 P5 P6 P7
4 5 6 7 9 10 11 12
13 12 5 6
OE DAV OSC MASK
VDD
18 KEYPAD 4X4
R1 R2 R3 R4 C1 C2 C3 C4
1 2 3 4
1 2 3 4 5 6 7 8
11 10 8 7
INT 4
9 VSS
VSS
A 2
5
Q
CLK CD
3
D
SD
8
DA DB DC DD
6
Q
1
74 74 10 uF C7
10 uF C8
+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). +5 0.1u F C5 PCF85 74 16 1 2 3 15 14 13 8
LCD 16 X2
VDD A0 A1 A2 SDA SCL
P0 P1 P2 P3 P4 P5 P6 P7
4 5 6 7 9 10 11 12
20 K
INT VSS
Gambar 3.5. Rangkaian Pengontrol LCD
1 2 3 4 5 6 7 8 9 10 11 12 13 14
VSS VDD VO RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7
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.
3.3.1. Perencanaan Software untuk Program Utama
27
3.3.2. Perencanaan Software untuk Delay
28
3.3.3. Perencanaan Software untuk I2C Bus 3.3.3.1. Perencanaan Software untuk I2C Bus LCD I2C LCD
Kirim Sinyal START
T
Berhasil Y
Kirim Address Byte ( 70 H ) ke Accumulator
Putar Accumulator ke kiri ( RLC ) 8 kali
T
Data Lengkap 8 bit ? Y
Kirim Sinyal Acknowledge ( ACK )
Kirim Data Byte ke Accumulator
Putar Accumulator ke kiri ( RLC ) 8 kali
T
Data Lengkap 8 bit ? Y
Kirim Sinyal Acknowledge ( ACK )
Kirim Sinyal STOP
RET
29
3.3.3.2. Perencanaan Software untuk I2C Bus Keypad I2C Keypad
Kirim Sinyal START
T
Berhasil Y
Kirim Address Byte ( 73 H ) ke Accumulator
Putar Accumulator ke kiri ( RLC ) 8 kali
T
Data Lengkap 8 bit ? Y
Kirim Sinyal Acknowledge ( ACK )
Terima Data Byte
Putar Accumulator ke kiri ( RLC ) 8 kali
T
Data Lengkap 8 bit ? Y
Kirim Sinyal Acknowledge ( ACK )
Kirim Sinyal STOP
RET
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).
30
31
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: IC pada I2C bus yang mempunyai nomor group sama dengan
1)
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.
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
33
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.
Gambar 4.1. Bentuk Sinyal START dari Alat
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’.
35
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
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.
37
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 Transmisi data dalam I2C Bus dapat diringkas sebagai berikut:
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 bytebyte data yang lain terkirim ke slave yang diikuti sinyal ACK, maka slave harus memperbaharui keluaran Port PCF8574 lagi.
Gambar 4.7. Pengiriman Data 8 bit untuk LCD
39
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
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
41
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
acknowledge pada SDA.
Gambar 4.10. Bentuk Sinyal Transmisi Data Lengkap untuk Keypad
bit
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
mikrokontroller
I2C
data
bus
dapat
diterapkan
pada
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
menghubungkan
I2 C
data
keypad
dan
bus
dapat
LCD
secara
mikrokontroller MCS-51 sebagai masternya,
digunakan serial
untuk dengan
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.
42
DAFTAR PUSTAKA
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
43