BAB II DASAR TEORI Pada bab ini akan dibahas mengenai teori-teori yang mendukung dalam pembuatan tugas akhir ini, khususnya teori mengenai perangkat keras yang digunakan. Teori-teori tersebut meliputi Radio Frequecyi Identification (RFID), mikrokontroler AT89S51, Liquid Crystal Display (LCD), dan juga catu daya yang digunakan. 2.1 Radio Frequency Identification (RFID) Radio Frequency Identification (RFID) adalah bentuk umum untuk teknologi yang menggunakan gelombang radio untuk mengidentifikasi suatu benda atau objek lainnya secara otomatis. Metode yang digunakannya ialah dengan menyimpan serial number yang menunjukan identitas suatu objek, pada sebuah microchip. RFID adalah teknologi identifikasi yang fleksibel, mudah digunakan, dan sangat cocok untuk operasi otomatis. Sistem RFID ini mengkombinasikan keunggulan yang tidak tersedia pada teknologi sistem identifikasi lain. RFID dapat disediakan dalam perangkat yang hanya dapat dibaca saja (Read Only) atau dapat dibaca dan ditulis (Read/Write), tidak memerlukan kontak langsung maupun 6 7 jalur cahaya untuk dapat beroperasi seperti pada sistem barcode. Selain itu juga, RFID dapat berfungsi pada berbagai variasi kondisi lingkungan, dan menyediakan tingkat integritas data yang tinggi. RFID merupakan teknologi yang dalam teorinya hampir serupa dengan sistem barcode identification. Pada sistem RFID, gelombang elektromagnetik dalam bentuk frekuensi radio digunakan untuk memancarkan sinyal. Perbedaan utama antara teknologi RFID dengan teknologi barcode ialah terletak pada proses transmisi datanya. Pada RFID proses transmisi datanya menggunakan gelombang elektromagnetik, sedangkan pada barcode proses transmisi datanya menggunakan optik. Selain itu RFID juga dapat mengurangi keharusan pembacaan secara line of sight yang diperlukan oleh sistem barcode. 2.1.1 Bagian-Bagian Utama Sistem RFID Secara garis besar sebuah sistem RFID terdiri atas tiga komponen utama. Pada sisi perangkat keras, sistem RFID terdiri dari dua komponen, yaitu tag dan reader. Sementara pada sisi perangkat lunak terdapat satu komponen penting pada sistem RFID ini, yaitu sistem basis data pada program aplikasi workstation atau Personal Computer (PC) yang dapat membaca serta mengolah data dari tag melalui RFID reader. Pada sistem RFID, reader melakukan scanning terhadap data unik yang disimpan pada tag. Kemudian informasi hasil scanning tersebut dikirimkan ke sebuah aplikasi basis data yang menyimpan data-data yang terkandung dalam tag. Gambar 2.1 memperlihatkan komponen-komponen utama sistem RFID. 8 Gambar 2.1 Komponen-Komponen Utama Sistem RFID1 RFID menggunakan frekuensi radio untuk membaca sebuah informasi (serial number) dari sebuah perangkat kecil yang disebut tag (Transmitter Responder). Tag RFID ini akan dibaca oleh perangkat yang kompatibel, yaitu RFID reader melalui frekuensi radio yang dipancarkan oleh reader tersebut. Ketika tag ini melalui medan yang dihasilkan oleh RFID reader, tag akan mentransmisikan informasi yang ada pada tag tersebut kepada reader, sehingga proses identifikasi objek dapat dilakukan. Data yang ditransmisikaan oleh tag dapat menyediakan informasi identifikasi atau informasi khusus lainnya. Pada sistem RFID umumnya, tag ditempelkan pada suatu objek tertentu. a. Tag RFID Tag RFID terdiri dari sebuah microchip yang mempunyai sebuah antena. Tag tersebut dapat menyimpan sebuah data unik (serial number) yang dapat digunakan sebagai informasi dalam proses identifikasi suatu objek. Tag RFID terbuat dari microchip dengan bahan dasar silikon yang mempunyai kemampuan fungsi identitas sederhana yang disatukan dalam satu desain. 1 Fakhrur Rozi, Nanang. 2008. Aplikasi RFID Smart Card Untuk E-Toll Way, hal. 10 9 Tag RFID umumnya memiliki memori sehingga tag ini mempunyai kemampuan untuk menyimpan data. Memori tersebut terbagi atas sel-sel, dimana beberapa sel dapat menyimpan data Read-Only, misalnya serial number yang unik yang disimpan pada saat tag tersebut diproduksi. Sementara sel lainya mungkin juga dapat ditulis maupun dibaca secara berulang. Tag RFID diperlihatkan pada Gambar 2.2 berikut ini : Gambar 2.2 Tag RFID2 Pada umumnya sebuah tag RFID terdiri atas sebuah microchip dan sebuah antena. Chip mikro itu sendiri dapat berukuran sekecil butiran pasir seukuran 0,4 mm. Chip tersebut menyimpan nomor seri yang unik atau informasi lainnya tergantung kepada tipe memorinya. Tipe memori itu sendiri dapat read-only, read-write, atau write-once read-many. Antena yang terpasang pada chip mikro mengirimkan informasi dari chip ke reader. Biasanya rentang pembacaan diindikasikan dengan besarnya antena. Antena yang lebih besar mengindikasikan rentang pembacaan yang lebih jauh. Tag tersebut terpasang atau tertanam dalam obyek yang akan diidentifikasi. Tag dapat di-scan dengan reader bergerak maupun stasioner menggunakan gelombang radio. 2 ibid, hal. 7 10 Terdapat dua jenis tag RFID ditinjau dari catu daya tag, yaitu tag aktif, tag pasif, dan tag semipasif. • Tag Aktif Tag aktif yaitu tag yang catu dayanya diperoleh dari baterai, sehingga akan mengurangi daya yang dibutuhkan oleh RFID reader. Tagi aktif ini dapat mengirimkan informasi dalam jarak yang lebih jauh, bergantung pada daya baterai yang digunakannya. Biasanya mempunyai jarak baca 10 meter sampai 100 meter dan beroperasi pada frekuensi 455 Mhz, 2,45 GHz, atau 5,8 GHZ. Memori yang dimilikinya juga lebih besar sehingga bisa menampung berbagai macam informasi di dalamnya. Kelemahan dari tipe tag ini adalah harganya yang mahal dan ukurannya yang lebih besar karena lebih kompleks. Semakin banyak fungsi yang dapat dilakukan oleh tag RFID maka rangkaiannya akan semakin rumit dan ukurannya akan semakin besar. Tag ini biasanya memiliki kemampuan baca-tulis, dalam hal ini data tag dapat ditulis-ulang atau dimodifikasi. Harga tag aktif ini merupakan yang paling mahal dibandingkan versi lainnya. • Tag Pasif Tag pasif merupakan jenis tag yang tidak mempunyai catu daya sendiri. Catu dayanya diperoleh dari medan yang dihasilkan oleh RFID reader. Oleh karena itu respon dari suatu tag RFID yang pasif biasanya sederhana, hanya nomor ID (serial number) saja. Dengan tidak adanya catu daya pada RFID tag yang pasif maka akan menyebabkan semakin kecilnya ukuran dari RFID tag yang dibuat. Rangkaiannya lebih sederhana, harganya jauh lebih murah, ukurannya kecil, dan lebih ringan. 11 Kelemahannya adalah tag hanya dapat mengirimkan informasi dalam jarak yang dekat dan RFID reader harus menyediakan daya tambahan untuk tag RFID. Tag pasif merespon emisi frekuensi radio dan menurunkan dayanya dari gelombang-gelombang energi yang dipancarkan oleh reader. Sebuah tag pasif minimum mengandung sebuah indentifier unik dari sebuah item yang dipasangi tag tersebut. Data tambahan dimungkinkan untuk ditambahkan pada tag, tergantung kepada kapasitas penyimpanannya. Tag Pasif bisa bekerja pada frekuensi rendah (LF), frekuensi tinggi (HF) dan UHF. Sistem yang berfrekuensi rendah (LF) bisanya beroperasi pada frekuensi 124 kHz, 125 kHz atau 135 kHz. Sistem frekuensi tinggi menggunakan 13,56 Mhz, dan sistem UHF menggunakan band frekuensi antara 860 Mhz sampai 960 Mhz. Beberapa sistem juga menggunakan frekuensi 2,45 Ghz dan bandband frekuensi radio lainnya. Gambar 2.3 menunjukan sistem kerja dari tag RFID pasif. RFID Reader RF Signal Tag RFID Pasif Data Signal Host Computer Gambar 2.3 Sistem Kerja Tag RFID Pasif Pada tag pasif, kapasitas penyimpanan data terbatas antara 32 sampai dengan 128 bit, dan umumnya hanya dapat dibaca saja (read-only) tanpa dapat direkam (not rewriteable). Tag ini mengandung data yang 12 terprogram permanen sehingga tidak dapat diubah. RFID tag yang pasif ini memiliki jarak jangkauan yang berbeda mulai dari 10 mm sampai dengan 6 meter b. RFID Reader Untuk berfungsinya sistem RFID diperlukan sebuah reader atau alat scanning-device yang dapat membaca tag dengan benar dan mengkomunikasikan hasilnya ke suatu basis data. Gambar 2.4 memperlihatkan RFID reader. Gambar 2.4 RFID Reader3 RFID reader merupakan penghubung antara program aplikasi yang ada pada komputer dengan antena yang akan meradiasikan gelombang radio ke tag RFID. Gelombang radio yang diemisikan oleh antena pada RFID reader akan berpropagasi pada ruangan disekitarnya. Akibatnya data dapat berpindah secara wireless dari tag ke RFID reader. Sebuah reader menggunakan antenanya sendiri untuk berkomunikasi dengan tag. Ketika reader memancarkan gelombang radio, seluruh tag yang dirancang pada frekuensi tersebut serta berada pada rentang bacanya akan memberikan respon. Sebuah reader juga dapat berkomunikasi dengan tag tanpa line-of-sight langsung, tergantung kepada frekuensi radio dan tipe tag (aktif atau 3 www.id-innovations.com/Modules(non write).htm 13 pasif) yang digunakan. Reader dapat memproses banyak item sekaligus. Menurut bentuknya, reader dapat berupa reader bergerak seperti peralatan genggam, atau stasioner seperti peralatan point-of-sale di supermarket. Reader dibedakan berdasarkan kapasitas penyimpanannya, kemampuan pemrosesannya, serta frekuensi yang dapat dibacanya. 2.1.2 Sistem Kerja RFID Pengidentifikasian dilakukan dengan menggunakan perangkat interogasi (interrogator) juga disebut sebagai Reader atau “Master” dan sebuah Tag disebut sebagai transponder atau “Slave” yang menyimpan informasi kode indentifikasi yang unik. Pertukaran data terjadi antara reader dengan tag dengan menggunakan gelombang radio dan tidak membutuhkan Line of Sight atau tanpa harus secara fisik terlihat. Ketika suatu tag melewati suatu zone elektromagnetis, maka dia akan mendeteksi sinyal aktivasi yang dipancarkan oleh reader. Perangkat interrogator atau reader akan mengirimkan sinyal kepada tag untuk mengidentifikasi kode yang terkandung dalam tag tersebut. Kemudian reader akan memproses sinyal yang dipancarkan oleh tag dan men-decode data yang ada pada tag untuk kemudian dikirimkan ke komputer. Sinyal tersebut oleh komputer kemudian disimpan atau dicocokan di dalam database komputer untuk diproses lebih lanjut. Metode pengiriman data dari tag RFID ke RFID reader dalam penggunaan tag pasif terbagi menjadi dua macam, yaitu : • Inductive Coupling Gulungan tembaga pada RFID reader membangkitkan medan elektromagnetik, kemudian gulungan yang ada di tag terinduksi oleh 14 medan ini. Hasil induksi inilah yang menjadi sumber tenaga bagi tag RFID untuk mengirimkan kembali sinyal yang berisi data ke RFID reader. Karena menggunakan prinsip induksi ini, maka jarak antara tag dengan reader harus dekat agar induksi dapat ditangkap. Prinsip inductive coupling ini digunakan pada tag RFID dengan frekuensi rendah (LF) dan frekuensi tinggi (HF). • Propagation Coupling Pada sistem ini, energi yang digunakan berasal dari energi elektromagnetik (gelombang radio) yang dipancarkan oleh reader. Tag kemudian akan mengumpulkan energi elektromagnetik tersebut untuk digunakan sebagai sumber daya untuk mengirimkan data yang dimilikinya ke reader. Mekanisme ini disebut dengan backscatter. Modulasi bit data ke frekuensi bisa menggunakan amplitude shift keying, frequency shift keying, atau phase shift keying. Untuk tag yang tidak memiliki baterai (tag pasif), maka untuk sumber catu dayanya memanfaatkan medan magnet yang dihasilkan dari reader dan memodulasi medan magnet, yang kemudian digunakan kembali untuk mengirimkan data yang ada dalam tag RFID. Data yang diterima reader kemudian diteruskan ke database pada komputer. 2.1.3 Frekuensi Kerja RFID Faktor penting yang harus diperhatikan dalam RFID adalah frekuensi kerja dari sistem RFID. Pemilihan frekuensi radio merupakan kunci kerakteristik operasi sistem RFID. Ini adalah frekuensi yang digunakan untuk komunikasi wireless antara tag dengan RFID reader. 15 Frekuensi sebagian besar ditentukan oleh kecepatan komunikasi, jarak baca terhadap tag, interferensi dengan frekuensi sistem radio lain dan ukuran antena. Secara umum, tingginya frekuensi mengindikasikan jauhnya jarak baca. Pemilihan tipe frekuensi juga dapat ditentukan oleh tipe aplikasinya. Aplikasi tertentu lebih cocok untuk salah satu tipe frekuensi dibandingkan dengan tipe lainnya karena gelombang radio memiliki perilaku yang berbeda-beda menurut frekuensinya. Sebagai contoh, gelombang LF memiliki kemampuan penetrasi terhadap dinding tembok yang lebih baik dibandingkan dengan gelombang dengan frekuensi yang lebih tinggi, tetapi frekuensi yang lebih tinggi memiliki laju data (data rate) yang lebih cepat. Berikut ini adalah empat frekuensi utama yang digunakan oleh sistem RFID : 1. Band LF (Low Frequency) Berkisar antara 125 KHz hingga 134 KHz. Band ini paling sesuai untuk penggunaan jarak pendek (short-range) 2. Band HF (High Frequency) Frekuensi ini beroperasi pada 13,56 MHz dan memungkinkan akurasi yang lebih baik dalam jarak 3 kaki dan karena itu dapat mereduksi risiko kesalahan pembacaan tag. Sebagai konsekuensinya, band ini lebih cocok untuk pembacaan pada tingkat item (item-level reading). Tag pasif dengan frekuensi 13,56 MHz dapat dibaca dengan laju 10 sampai 100 tag perdetik pada jarak 3 kaki atau kurang. 3. Band UHF (Ultra High Frequency) Tag dengan band UHF beroperasi di sekitar 900 MHz dan dapat dibaca dari jarak yang lebih jauh dari tag HF, berkisar dari 3 hingga 15 kaki. Tag ini 16 lebih sensitif terhadap faktor-faktor lingkungan daripada tag-tag yang beroperasi pada frekuensi lainnya. Tag UHF pasif dapat dibaca dengan laju sekitar 100 hingga 1.000 tag perdetik. 4. Gelombang Mikro Tag yang beroperasi pada frekuensi gelombang mikro, biasanya pada frekuensi 2,45 GHz dan 5,8 GHz. Pada band ini mengalami lebih banyak pantulan gelombang radio dari objek-objek di dekatnya yang dapat mengganggu kemampuan reader untuk berkomunikasi dengan tag. Untuk frekuensi yang rendah umumnya digunakan tag pasif, dan untuk frekuensi tinggi digunakan tag aktif. Pada frekuensi rendah, tag pasif tidak dapat mentransmisikan data dengan jarak yang jauh, karena keterbatasan daya yang diperoleh dari medan elektromagnetik. Akan tetapi komunikasi tetap dapat dilakukan tanpa kontak langsung. Pada kasus ini hal yang perlu mendapatkan perhatian adalah tag pasif harus terletak jauh dari objek logam, karena logam secara signifikan mengurangi fluks dari medan magnet. Akibatnya tag RFID tidak bekerja dengan baik, karena tag tidak menerima daya minimum untuk dapat bekerja. Pada frekuensi tinggi, jarak komunikasi antara tag aktif dengan pembaca RFID dapat lebih jauh, tetapi masih terbatas oleh daya yang ada. Sinyal elektromagnetik pada frekuensi tinggi juga mendapatkan pelemahan (atenuasi) ketika tag tertutupi oleh es atau air. Pada kondisi terburuk, tag yang tertutup oleh logam tidak terdeteksi oleh pembaca RFID. 17 2.1.4 Akurasi RFID Akurasi RFID dapat didefinisikan sebagai tingkat keberhasilan pembaca RFID melakukan identifikasi sebuah tag yang berada pada area kerjanya. Keberhasilan dari proses identifikasi sangat dipengaruhi oleh beberapa batasan fisik, yaitu : • Posisi antena pada RFID reader • Karakteristik dari material lingkungan yang mencakup sistem RFID • Batasan catu daya • Frekuensi kerja sistem RFID Pada frekuensi rendah, contohnya pada frekuensi 13,56 MHz, komunikasi frekuensi radio antara tag dengan RFID reader sangat bergantung pada daya yang diterima tag dari antena yang terhubung dengan RFID reader. Pada ruang bebas, intensitas dari medan magnet yang diemisikan oleh antena berkurang teradap jarak, maka terdapat batas jarak di mana tag tidak aktif, dan komunikasi frekuensi radio tidak dapat terjadi. Pengurangan ukuran tag akan mengurangi juga batas jarak. Komunikasi radio berkurang jika medan magnet harus menembus material yang mengurangi daya elektromagnetik, contohnya pada kasus objek dengan bahan logam. Tag RFID tidak akan terdeteksi ketika ditaruh di dalam logam, karena material logam akan meredam fluks magnet yang melalui tag secara drastis. Pada frekuensi tinggi, perfomansi dari sistem RFID sangat bergantung pada lingkungan di mana komunikasi di antara tag dan RFID reader terjadi. Pada jarak tanpa hambatan proses identifikasi dapat terjadi pada jarak pada orde 10 meter. Tetapi bila ada hambatan maka jarak ini akan berkurang secara drastis. 18 Pada frekuensi tinggi, tag RFID bekerja secara aktif dengan daya dari baterai. Akurasi dari tag RFID dapat berkurang karena kekurangan daya. Akurasi dari sistem RFID pada umumnya sangat bergantung dari lingkungan di mana sistem RFID dioperasikan. 2.2 Mikrokontroler AT89S51 Mikrokontroler adalah terobosan teknologi mikroprosesor dan mikrokomputer. Sebagai teknologi baru, mikrokontroler merupakan teknologi semikonduktor dengan kandungan transistor yang lebih banyak, namun hanya membutuhkan ruang yang kecil. Selain itu mikrokontroler juga dapat diproduksi secara masal. Hal inilah yang membuat harga mikrokontroler tersebut menjadi lebih murah dibandingkan mikroprosesor. Mikrokontroller merupakan suatu komponen elektronika yang di dalamnya terdapat rangkaian mikroprosesor, memori (RAM/ROM) dan I/O (input/output), rangkaian tersebut terdapat dalam level chip atau biasa disebut single chip microcomputer. Pada mikrokontroler sudah terdapat komponen– komponen mikroprosesor dengan bus–bus internal yang saling berhubungan. Komponen-komponen tersebut adalah RAM, ROM, timer, komponen I/O paralel dan serial, dan interrupt controller. Mikrokontroler AT89S51 merupakan varian dari mikrokontroler tipe MCS-51 yang diproduksi oleh Atmel Corporation yang merupakan pengembangan dari AT89C51. Mikrokontroler AT89S51 ini dirancang dengan teknologi CMOS dan memiliki memori program internal (memori flash) sebesar 4 KB yang bisa diprogram dalam sistem (In-system programmable flash memoryISP). 19 Berikut ini adalah fitur-fitur yang dimiliki oleh mikrokontroler AT89S51 : 1. 4 KB flash ROM. 2. 128 bytes RAM. 3. 4 port yang memiliki 8 bit input/output jalur data masing-masing port. 4. 2 buah 16 bit timer. 5. Interface komunikasi serial 6. Fasilitas In System Programming (ISP) Dengan fitur-fitur yang dimiliki ini, mikrokontroler AT89S51 ini cukup andal untuk aplikasi-aplikasi sistem kendali atau yang lainnya. Memori flash internal sebesar 4 KB yang bisa diprogram ulang dalam sistem (ISP) memudahkan untuk merancang software sehingga mungkin tidak diperlukan emulator. 2.2.1 Arsitektur Mikrokontroler AT89S51 Arsitektur mikrokontroler AT89S51 terdiri oleh CPU 8 bit yang terhubung melalui satu jalur bus dengan memori penyimpanan berupa RAM dan flash ROM serta jalur I/O berupa port bit I/O dan port serial, serta memiliki osilator untuk sinyal detaknya (clock). Selain itu terdapat fasilitas timer/counter internal dan jalur interface address dan data ke memori eksternal. Diagram blok mikrokontroler AT89S51 ditunjukan pada Gambar 2.5. 20 Gambar 2.5 Diagram Blok Mikrokontroler AT89S514 CPU (Central Processing Unit) adalah bagian mikrokontroler yang merupakan pusat pengolahan data. CPU terdiri atas dua bagian, yaitu unit pengendali (control unit) serta unit aritmatika dan logika (ALU). Fungsi unit pengendali adalah mengambil, mengkodekan, dan melaksanakan urutan instruksi sebuah program yang tersimpan dalam memori. Sedangkan ALU berfungsi untuk melakukan proses perhitungan yang diperlukan selama program dijalankan serta mempertimbangkan suatu kondisi dan mengambil keputusan yang diperlukan untuk instruksi-instruksi berikutnya. Sedangkan memori adalah tempat dalam suatu mikrokontroler untuk menyimpan data atau program. Pada mikrokontroler terdapat dua jenis memori yaitu RAM dan flash PEROM. RAM merupakan memori yang dapat dibaca dan ditulis. RAM biasanya digunakan hanya untuk menyimpan data atau sering disebut dengan memori data saat program bekerja. Data yang terdapat pada RAM akan hilang apabila catu daya dari RAM dimatikan. Flash PEROM merupakan memori yang hanya dapat dibaca. Data yang tersimpan pada ROM tidak akan 4 http://soel.umpo.ac.id/ 21 hilang meskipun suplay tegangan dimatikan. Oleh karena itu ROM sering dipakai untuk menyimpan program pada suatu mikrokontroler. Flash PEROM dapat ditulis beberapa kali dan dapat dihapus secara elektrik atau dengan tegangan listrik. Port I/O adalah saluran agar mikrokontroler dapat berhubungan dengan perangkat eksternal lain. Pada mikrokontroler terdapat 32 buah saluran I/O. Saluran ini dikelompokkan menjadi Port 0, Port 1, Port 2 dan Port 3. Sementara itu osilator merupakan pembangkit frekuensi sebagai sumber detak bagi CPU pada sebuah mikrokontroler. Untuk menggunakan osilator internal pada mikrokontroler diperlukan sebuah kristal atau resonator keramik. Kristal yang dapat digunakan sebagai sumber detak merupakan kristal berfrekuensi 0 sampai 12 MHz. Kapasitor yang digunakan ialah sebesar 30 pF ± 10 pF. 2.2.2 Konfigurasi Pin Mikrokontroler AT89S51 Mikrokontroler AT89S51 memiliki 40 konfigurasi pin. Fungsi masing- masing pin tersebut dapat dikelompokkan menjadi sumber tegangan, kristal, kontrol, dan input-output. Konfigurasi pin dari mikrokontroler AT89S51 diperlihatkan pada Gambar 2.6 berikut ini : Gambar 2.6 Konfigurasi Pin Mikrokontroler AT89S515 5 Usman, 2008, Teknik Antarmuka + Pemrograman Mikrokontroler AT89S52, hal 5 22 Selain itu, mikrokontroler ini dapat ditambahkan sebuah minimum memori eksternal atau komponen eksternal lain. Dari kedelapan line dapat digunakan sebagai suatu unit yang berhubungan ke perangkat paralel seperti printer, pengubah digital ke analog, dan sebagainya, atau tiap line dapat mengoperasikan sendiri ke perangkat single bit seperti saklar, LED, transistor, selenoid, motor, dan speaker. Berikut adalah penjelasan fungsi pin dari mikrokontroler AT89S51 : 1. P0.0-P0.7 (Port 0) Port 0 merupakan 8 bit port dua arah (input/output). Port 0 mampu menangani 8 masukan TTL Port 0 membutuhkan pull up eksternal pada saat dihubungkan dengan peralatan eksternal. Port 0 memiliki fungsi khusus yaitu sebagai bus data (D0-D7) dan bus alamat memori orde rendah (A0-A7) pada proses pembacaan program dari memori program eksternal maupun pengaksesan memori data eksternal. Pada mode ini P0 mempunyai pull up internal. Port 0 bisa diakses sebagai port (P0) atau diakses per bit (P0.0-P1.0). 2. P1.0-P1.7 (Port 1) Port 1 merupakan port 8 bit dua arah (input/output) dengan pull up internal. Buffer output port 1 bisa menangani sampai 4 masukan TTL. Port 1 bisa diakses sebagai port (P1) atau diakses per bit (P1.0-P1.7). 3. P2.0-P2.7 (Port 2) Port 2 merupakan port 8 bit dua arah (input/output) dengan pull up internal. Buffer output port 2 bisa menangani sampai 4 masukan TTL. Port 1 bisa diakses sebagai port (P1) atau diakses per bit (P1.0-P1.7). Port 1 bisa diakses sebagai port (P1) atau diakses per bit (P1.0-P1.7). Selain sebagai port input/output, P2 juga akan mengeluarkan alamat orde tinggi (A8-A15) pada 23 saat menjalankan program dari memori program eksternal atau pada saat mengakses memori data eksternal yang menggunakan perintah pengalamatan 16 bit (perintah movx @DPTR). 4. P3.0-P3.7 (Port 3) Port 3 merupakan port 8 bit dua arah (input/output) dengan pull up internal. Buffer output P3 bisa menangani sampai 4 masukan TTL. Port 3 bisa diakses sebagai port (P3) atau diakses per bit (P3.0-P3.7). Selain berfungsi sebagai port input/output, P3 juga mempunyai fungsi khusus seperti dijelaskan pada Tabel 2.1. Tabel 2.1 Fungsi Khusus Port 3 Bit Nama Alamat Bit Fungsi Alternatif P3.0 RXD B0H Merupakan masukan untuk port serial (receiver) P3.1 TXD B1H Merupakan keluaran dari port serial (transmitter) P3.2 INT0 B2H Masukan masukan untuk interupsi eksternal 0 P3.3 INT1 B3H Merupakan masukan untuk Interupsi eksternal 1 P3.4 T0 B4H Untuk masukan Eksternal waktu/pencacah 0 P3.5 T1 B5H Untuk masukan Eksternal waktu/pencacah 1 P3.6 WR B6H Sinyal tulis untuk menulis memori data eksternal P3.7 RD B7H Sinyal baca untuk menulis memori data eksternal 5. XTAL1 dan XTAL2 XTAL1 merupakan masukan ke penguat osilator internal. Sedangkan XTAL2 merupakan keluaran dari rangkaian penguat osilator internal. Sebuah kristal dan dua buah kapasitor yang dihubungkan ke pin ini sudah cukup untuk menyediakan sinyal detak (clock) untuk mikrokontroler. 24 6. PSEN, ALE, dan EA PSEN (Program Store Enable) adalah sinyal baca pada saat menjalankan program dari memori eksternal. Di dalam aplikasi, PSEN akan dihubungkan dengan sinyal RD memori program eksternal (EEPROM). ALE (Address Lacth Enable) adalah pulsa keluaran lacth pada proses pengaksesan memori eksternal. Sedangkan EA (External Access Enable) berfungsi untuk menentukan apakah alamat awal memori program berada di memori eksternal atau internal. Bila dihubungkan ke GND, alamat awal program memori akan berada di memori eksternal. Sebaliknya bila dihubungkan ke VCC, alamat awal memori program akan berada di memori internal. 7. RST Merupakan masukan reset (aktif tinggi), pulsa transisi dari rendah ke tinggi akan me-reset mikrokontroler ini. 8. VCC dan GND VCC dan GND merupakan pin untuk tegangan DC. Mikrokontroler AT89S51 membutuhkan tegangan DC sebesar 5V agar bisa bekerja dengan baik (standar TTL). 2.2.3 Timer Mikrokontroler AT89S51 mempunyai dua buah timer yang dapat difungsikan sebagai counter ataupun sebagai timer. Kedua timer tersebut mempunyai 16 bit counter yang dapat diatur input maupun mode operasinya melalui register TMOD. Register timer terdiri dari register TMOD dan register TCON. 25 a. Register TMOD Register TMOD berfungsi untuk mengatur mode kerja timer. Nibble rendah (bit 0-bit 3) dipakai untuk mengatur timer 0 dan nibble tinggi (bit 4-bit7) untuk timer 1. Susunan register TMOD ditunjukan pada Tabel 2.2. Tabel 2.2 Susunan register TMOD Timer 1 Gate1 C/T1 Timer 0 M1(1) M1(0) Gate0 C/T0 M0(1) M0(0) Fungsi dari masing-masing bit tersebut ialah : 1. Gate Me-reset bit ini akan mengaktifkan operasi timer bersama dengan bit TRx pada register TCON. Men-set bit ini akan menon-aktifkan fungsi timer 2. C/T Bila bit ini berlogika “1” maka timer akan berfungsi sebagai counter. Bila bit ini berlogika 0 maka timer akan berfungsi sebagai timer. 3. M(1) dan M(0) Kedua bit ini digunakan untuk memilih mode kerja timer. Penjelasan mengenai fungsi pemilihan mode kerja timer dijelaskan pada Tabel 2.3 berikut ini : Tabel 2.3 Fungsi Pemilihan Mode Kerja Timer M(1) M(0) Mode Fungsi 0 0 0 13 bit timer/counter 0 1 1 16 bit timer/counter 1 0 2 8 bit auto reload timer/counter 1 1 3 8 bit timer/counter pada timer 0 26 b. Register TCON Register TCON berfungsi untuk mengaktifkan atau menon-aktifkan timer dan juga menyimpan informasi (bit) apabila data timer melebihi kapasitasnya (overflow). Selain itu TCON juga berfungsi untuk menentukan apakah interupsi akan dibangkitkan oleh transisi turun (1 ke 0) atau kondisi rendah pada input interupsi eksternal. Susunan register TCON diperlihatkan pada Tabel 2.4. Tabel 2.4 Susunan Register TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0 Fungsi dari masing-masing bit tersebut ialah : 1. TF1 : Bit ini akan berlogika “1” jika timer 1 terjadi overflow 2. TR1 : Bila bit ini berlogika “1” maka timer 1 akan aktif 3. TF0 : Bit ini akan berlogika “1” jika timer 0 terjadi overflow 4. TR0 : Bila bit ini berlogika “1” maka timer 1 akan aktif 5. IE1 : Bit ini akan berlogika “1” jika terjadi interupsi pada pin INT1. 6. IT1 : Bila bit ini berlogika “1”, maka interupsi akan aktif pada saat terjadi perubahan nilai dari “1” ke “0” pada pin INT1 7. IE0 : Bit ini akan berlogika “1” jika terjadi interupsi pada pin INT0. 8. IT0 : Bila bit ini berlogika “1”, maka interupsi akan aktif pada saat terjadi perubahan nilai dari “1” ke “0” pada pin INT0 27 2.2.4 Serial Port Mikrokontroler AT89S51 telah dilengkapi dengan On Chip Serial Port yang dapat digunakan untuk komunikasi data serial secara full duplex malalui pin RXD dan TXD. Level tegangan kedua pin tersebut menggunakan level tegangan TTL. Data yang dikirim maupun data yang telah diterima akan disimpan pada register SBUF yang terletak pada alamat 99H. Mikrokontroler ini dapat melakukan komunikasi serial secara sinkron maupun asinkron. Port serial memiliki empat mode operasi yang dapat dikendalikan melalui register SCON. Register SCON adalah register register yang digunakan untuk mengatur komunikasi serial. Alokasi bit SCON ditunjukan pada Tabel 2.5 dibawah ini : Tabel 2.5 Alokasi Bit Register SCON SM0 SM1 SM2 REN TB8 RB8 TI RI SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0 Fungsi dari masing-masing bit tersebut ialah : 1. SM0 : Pemilihan mode komunikasi serial. 2. SM1 : Pemilihan mode komunikasi serial. 3. SM2 : Pemilihan mode komunikasi multiprosesor pada mode 2 dan 3. 4. REN : Mengaktifkan atau menon-aktifkan penerimaan data serial. 5. TB8 : Bit ke-9 dari data yang dikirim (pada mode 2 dan 3). 6. RB8 : Bit ke-9 dari data yang diterima (pada mode 2 dan 3). 7. TI : Bit tanda bahwa pengiriman data telah selesai. 8. RI : Bit tanda bahwa data telah diterima dengan lengkap. Diset secara hardware bila seluruh data (8 bit) telah diterima. RI harus direset secara software agar data selanjutnya bisa diterima. 28 Selain register SCON juga terdapat register PCON yang berfungsi untuk menentukan nilai SMOD. Nilai SMOD itu sendiri berfungsi untuk menentukan besarnya nilai baud rate yang ingin digunakan untuk komunikasi data secara serial. Susunan register PCON diperlihatkan pada Tabel 2.6. Tabel 2.6 Susunan Register PCON SMOD - - - GF1 GF0 PD IDL PCON.7 PCON.6 PCON.5 PCON.4 PCON.3 PCON.2 PCON.1 PCON.0 Nilai SMOD pada bit ke-7 register PCON ditentukan ketika menentukan besarnya baud rate, sedangkan bit ke-6 sampai bit ke-4 tidak digunakan dalam versi 8051. Untuk bit ke-3 sampai dengan bit ke-0 berfungsi untuk mengatur fungsi penghematan daya. a. Mode Komunikasi Serial Mikrokontroler AT89S51 memiliki 4 mode komunikasi serial. Mode 0 berupa synchronous serial (shift register), sedangkan tiga mode lainnya berupa asynchronous serial (UART). Pada semua mode, pengiriman dilakukan jika ada instruksi yang mengisi nilai register SBUF. Sedangkan pada saat penerimaan, data yang diterima akan disimpan pada register SBUF. Tabel 2.7 menunjukan mode komunikasi serial pada mikrokontroler AT89S51. Tabel 2.7 Mode Komunikasi Serial SM0 SM1 Mode Deskripsi Baud Rate 0 0 0 8-bit Shift Register Frek. Osilator/12 0 1 1 8-bit UART Variabel 1 0 2 9-bit UART Frek Osilator/64 1 1 3 9-bit UART Variabel 29 Penjelasan masing-masing mode tersebut sebagai berikut : 1. Mode 0 Mode 0 adalah 8-bit shift register dimana data dikirimkan dan diterima melalui pin RXD sedangkan clock dikirimkan dan diterima melalui pin TXD. Pengiriman data 8 bit dilakukan dengan mengirimkan Least Significant Bit (LSB) terlebih dahulu. Pada mode 0, baud rate yang digunakan adalah sebesar 1/12 dari frekuensi osilator. 2. Mode 1 Pada mode 1, jumlah data yang dikirimkan sebanyak 10 bit yang terdiri dari start bit, 8 bit data (LSB terlebih dahulu), dan stop bit. Pada proses penerimaan, nilai stop bit akan dimasukkan ke RB8 secara otomatis. Pada proses pengiriman, stop bit akan diberi nilai ‘1’ secara otomatis. Pada mode 1, baud rate yang digunakan dapat diatur melalui Timer 1. 3. Mode 2 Pada mode 2, jumlah data yang dikirimkan sebanyak 11 bit yang terdiri dari start bit, 8 bit data (LSB terlebih dahulu), bit ke-9, dan stop bit. Pada proses pengiriman, nilai bit ke-9 dapat diatur dengan mengisi nilai TB8. Pada proses penerimaan, bit ke-9 akan dimasukkan ke RB8 secara otomatis. Pada mode 2, baud rate yang dapat digunakan adalah sebesar 1/64 frekuensi osilator atau 1/32 frekuensi osilator jika SMOD bernilai ‘1’. 4. Mode 3 Mode 3 hampir sama dengan mode 2. Perbedaannya terdapat pada baud rate yang digunakan. Jika mode 2 menggunakan baud rate yang pasti, mode 3 menggunakan baud rate yang dihasilkan oleh Timer 1. 30 b. Baud Rate Baud rate adalah frekuensi clock yang digunakan dalam pengiriman dan penerimaan data. Satuan baud rate pada umumnya adalah bps (bit per second), yaitu jumlah bit yang dapat ditransmisikan per detik. Baud rate untuk mode 0 bernilai tetap dengan rumus yang terdapat pada persamaan 1. (2.1) Sedangkan baud rate untuk mode 2 memiliki 2 variasi tergantung dari kondisi SMOD. Rumus baud rate untuk mode 2 terdapat pada persamaan 2. (2.2) Baud rate untuk mode 1 dan 3 dihasilkan oleh Timer 1. Pengaturan baud rate untuk mode 1 dan 3 dapat dilakukan dengan cara mengubah nilai SMOD, TMOD, dan TH1. Nilai baud rate dapat diperoleh dengan menggunakan persamaan 3. (2.3) Umumnya Timer 1 dioperasikan pada mode 2 (8-bit Auto Reload) sehingga didapat persamaan 4. (2.4) Berdasarkan persamaan 4, user dapat menghitung berapa nilai TH1 yang dibutuhkan jika diketahui baud rate yang diinginkan dengan persamaan 5. (2.5) 31 Satu hal yang harus diperhatikan dalam pengaturan baud rate adalah nilai baud rate dan nilai TH1 diusahakan harus tepat dan bukan merupakan pembulatan. Untuk komunikasi serial kecepatan tinggi, pembulatan terhadap nilainilai tersebut dapat mengakibatkan kekacauan dalam proses pengiriman atau penerimaan. Jika terdapat nilai pecahan, user disarankan untuk mengganti osilator dengan frekuensi yang sesuai. Untuk komunikasi dengan kecepatan rendah, toleransi terhadap kesalahan cukup besar sehingga pembulatan masih boleh dilakukan. Misalkan baud rate yang diinginkan adalah 19200 bps dengan frekuensi osilator 11,0592 MHz. Dengan memasukkan data ini ke dalam persamaan 5 maka akan didapat persamaan 6. TH1 = 256 – (2SMOD x 1,5) (2.6) Jika 2SMOD bernilai ‘1’, maka akan didapat TH1 sebesar 254,5. Untuk menghindari TH1 berupa pecahan, 2SMOD harus bernilai ‘2’ (SMOD bernilai ‘1’) sehingga didapat TH1 sebesar 253 atau FDh. Untuk mendapatkan baud rate yang lambat, user dapat mengoperasikan Timer 1 pada mode 1 dengan rumus pada persamaan 7. (2.7) Beberapa konfigurasi baud rate yang umum digunakan terdapat dalam Tabel 2.8 berdasarkan frekuensi osilator, mode timer, mode komunikasi serial dan nilai SMOD. 32 Tabel 2.8 Nilai dan Konfigurasi Baud Rate Serial Timer 1 Frek. Osilator Mode Baud Rate 0 1,6667 Mbps 20 MHz 2 625 Kbps 1, 3 2.3 SMOD Reload C/T Mode X X X X 20 MHz 1 X X X 104,1667 Kbps 20 MHz 1 0 2 FFh 1, 3 19,2 Kbps 11,0592 MHz 1 0 2 FDh 1, 3 9,6 Kbps 11,0592 MHz 0 0 2 FDh 1, 3 4,8 Kbps 11,0592 MHz 0 0 2 FAh 1, 3 2,4 Kbps 11,0592 MHz 0 0 2 F4h 1, 3 1,2 Kbps 11,0592 MHz 0 0 2 E8h 1, 3 137,5 bps 11,9856 MHz 0 0 2 1Dh 1, 3 110 bps 6 MHz 0 0 2 72h 1, 3 110 bps 12 MHz 0 0 1 FEEBh (TH1) Liquid Crystal Display (LCD) M1632 merupakan modul LCD matrik dengan konfigurasi 16 karakter dan 2 baris dengan setiap karakternya dibentuk oleh 8 baris pixel dan 5 kolom pixel (1 baris pixel terakhir adalah kursor). Gambar 2.7 menunjukan hubungan antara layar LCD dengan HD44780 yang merupakan mikrokontroler pengendali LCD. Pada gambar 2.5 tampak karakter “A” dibaris karakter 1 yang terbentuk oleh COM1 (pixel baris 1) hingga COM8 (pixel baris 8) dan SEG1 (pixel kolom1) hingga SEG5 (pixel kolom 5). Oleh karena itu kombinasi 16 karakter akan terbentuk oleh SEG1 (pixel kolom 1) hingga SEG40 (pixel kolom 40) dengan setiap karakternya terdiri dari 5 kolom pixel. Kombinasi 2 baris karakter akan terbentuk oleh COM1 (pixel baris 1) hingga COM16 (pixel baris 16). 33 Gambar 2.7 Hubungan HD44780 dengan layar LCD 2.3.1 Deskripsi M1632 HD44780 sebetulnya merupakan mikrokontroler yang dirancang khusus untuk mengendalikan LCD dan mempunyai kemampuan untuk mengatur proses scanning pada layar LCD. Mikrokontroler atau perangkat tersebut hanya mengirimkan data-data yang merupakan karakter yang akan ditampilkan pada LCD atau perintah yang mengatur proses tampilan pada LCD saja. Gambar 2.8 menunjukan diagram blok modul M1632 yang terdiri dari bagian controler dan driver HD44780, penguat sinyal (Signal Driver), memori, register, dan antarmuka mikrokontroler. Gambar 2.8 Modul M1632 34 2.3.2 Kofigurasi Pin Modul M1632 Untuk keperluan antarmuka suatu komponen elektronika dengan mikrokontroler, perlu diketahui fungsi dari setiap kaki dari komponen tersebut. Gambar 2.9 memperlihatkan konfigurasi pin dari modul LCD M1632. Gambar 2.9 Konfigurasi Pin LCD M1632 Tiap-tiap pin pada modul LCD M1632 mempunyai simbol, level dan fungsi yang berbeda. Konfigurasi pin dari LCD ditunjukan pada Tabel 2.9. Tabel 2.9 Konfigurasi Pin M1632 No. Pin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Simbol Vss Vcc Vee RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 V+BL V-BL Level H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L - Fungsi 0V 5 ± 10 % V Penggerak LCD H = data, L = instruksi H = baca, L = tulis Enable Signal Data Bus Data Bus Kecerahan LCD (Kontras) 35 Berikut ini merupakan penjelasan fungsi dari tiap-tiap pin pada modul LCD M1632 : 1. Pin 1 (GND) Kaki ini berhubungan dengan tegangan 0V (ground) dari modul LCD (khusus untuk modul M1632 keluaran Hitachi, pin ini adalah Vcc). 2. Pin 2 (Vcc) Kaki ini berhubungan dengan tegangan +5V yang merupakan tegangan untuk catu daya HD44780 (khusus untuk modul M1632 keluaran Hitachi, pin ini adalah GND) 3. Pin 3 (Vee/Vlcd) Tegangan pengatur kontras LCD, kontras mencapai nilai maksimum pada saat kondisi pin ini pada tegangan 0V. 4. Pin 4 (RS) Pin Register Select, pemilih register yang akan diakses. Untuk akses ke register data, logika dari pin ini harus 1 dan untuk akses ke register instruksi, logika dari pin ini harus 0 5. Pin 5 (R/W) Logika 1 pada pin ini menunjukan bahwa modul LCD sedang pada mode pembacaan (read) dan logika 0 menunjukan bahwa modul LCD sedang pada mode penulisan (write). Untuk aplikasi yang tidak membutuhkan pembacaan pada modul LCD, kaki ini dapat langsung dihubungkan ke ground. 6. Pin 6 (E) Enable Clock LCD, pin ini mengaktifkan clock LCD. Logika 1 pada pin ini diberikan pada saat penulisan atau pembacaan data. 36 7. Pin 7-14 (DB0-DB7) Data bus, kedelapan pin modul LCD ini adalah bagian dimana aliran data sebanyak 4 bit maupun 8 bit mengalir saat proses penulisan maupun pembacaan data. 8. Pin 15 (Anoda) Berfungsi untuk tegangan positif dari backlight modul LCD sekitar 4,5V (hanya terdapat pada modul M1632 yang memiliki backlight). 9. Pin 16 (Katoda) Tegangan negatif backlight modul LCD sebesar 0V (hanya terdapat pada modul M1632 yang memiliki backlight). 2.3.3 Struktur Memori LCD Modul LCD M1632 memiliki beberapa jenis memori yang digunakan untuk menyimpan atau memproses data-data yang akan ditampilkan pada layar LCD. Setiap jenis memori mempunyai fungsi-fungsi sendiri. Jenis-jenis tersebut meliputi : 1. DDRAM DDRAM merupakan memori tempat karakter yang ditampilkan berada. Contohnya, karakter “A” atau 41h yang ditulis pada alamat 00 akan tampil pada baris pertama dan kolom pertama dari LCD. 2. CGRAM CGRAM adalah memori untuk menggambarkan pola sebuah karakter dan bentuk karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi memori ini akan langsung hilang saat power supply tidak aktif sehingga pola karakter akan hilang. 37 3. CGROM CGROM adalah memori untuk penggambarkan pola sebuah karakter dan pola tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna tidak dapat mengubah lagi. Oleh karena ROM bersifat permanen, pola karakter tersebut tidak akan hilang walaupun power supply tidak aktif. Saat HD44780 akan menampilkan data 41h yang tersimpan pada DDRAM, HD44780 akan mengambil data di alamat 41h(010 00B) yang ada pada CGROM, yaitu pola karakter A. Seperti telah dijelaskan sebelumnya, CGRAM maupun CGROM merupakan tempat menyimpan data berupa pola-pola karakter yang akan ditampilkan pada LCD. Pola-pola karakter sebagian besar tersimpan di memori CGROM kecuali pola karakter yang ada pada lokasi yang tersimpan di memori CGRAM. Oleh karena itu, apabila data yang dikirimkan ke DDRAM adalah 00h hingga 08h, tampilan pada layar LCD adalah pola yang tersimpan pada CGRAM dan berupa pola-pola yang dapat diubah dengan mengedit isi CGRAM. Akan tetapi untuk data 11h hingga 0FFh, tampilan pada layar LCD merupakan pola yang tersimpan pada CGROM yang berupa pola-pola permanen yang sudah ditentukan oleh IC HD44780. Oleh karena itu dapat disimpulkan bahwa pola karakter tersimpan di memori CGRAM (untuk pola karakter yang dapat diedit) dan CGROM (untu pola karakter yang tidak dapat diedit), sedangkan data pada DDRAM berfungsi untuk menunjukkan lokasi pola karakter yang akan ditampilkan pada layar LCD. Sebagai contoh, apabila karakter “B” akan ditampilkan pada kolom karakter kedua baris karakter pertama pada M1632, alamat DDRAM harus diatur pada 38 lokasi 01 yang merupakan lokasi kolom karakter kedua dari M1632, kemudian data DDRAM di alamat tersebut diisi alamat dari pola karakter “B”, yaitu 42h. 2.3.4 Register LCD HD44780 yang terdapat pada modul M1632 mempunyai dua buah register yang aksesnya diatur dengan pin RS. Saat RS berlogika 0, register yang akan diakses adalah register perintah atau instruksi dan saat RS berlogika 0, register yang akan diakses adalah register data. • Register Perintah Register ini adalah register dimana perintah-perintah mikrokontroler ke HD44780 selaku pengendali modul M1632 diberikan. Perintah-perintah tersebut berfungsi untuk mengatur tampilan pada layar LCD atau alamat dari DDRAM dan CGRAM. Selain itu, register ini juga merupakan tempat dimana status HD44780 dapat dibaca. Bit ke-7 data status yang terbaca adalah Busy Flag (tanda sibuk), yaitu tanda yang mengindikasikan bahwa HD4780 masih dalam kondisi sibuk sehingga proses akses data lebih lanjut dari mikrokontroler yang terhubung pada modul M1632 harus menunggu hingga tanda sibuk ini selesai. Bit ke-6 hingga bit ke-0 adalah Address Counter (Penghitung Alamat) dari DDRAM. Address Counter ini menunjukkan lokasi dari DDRAM yang sedang ditunjuk saat itu. • Register Data Register ini adalah register dimana mikrokontroler dapat menuliskan atau membaca data ke atau dari DDRAM maupun CGRAM. Akses data ke DDRAM, baik penulisan maupun pembacaan, merupakan akses ke bagian memori tampilan pada layar LCD, sedangkan akses ke CGRAM 39 merupakan proses untuk mengedit pola karakter yang ada pada lokasi CGRAM tersebut. 2.3.5 Instruksi-Instruksi Pada M1632 Untuk mengatur tampilan pada layar LCD, alamat DDRAM atau CGRAM mikrokontroler yang terhubung dengan M1632 harus mengirimkan data-data tertentu ke register perintah sesuai Tabel 2.10 (Instruksi-Instruksi M1632). Register-register perintah dapat dilihat pada tabel di bawah ini : Tabel 2.10 Instruksi-Instruksi M1632 Instruksi D7 D6 D5 D4 D3 D2 D1 D0 Deskripsi 0 0 0 0 0 0 0 1 Hapus Display dan DDRAM 0 0 0 0 0 0 1 X Set Alamat DDRAM di 0 Set Mode 0 0 0 0 0 1 I/D S Display On/Off 0 0 0 0 1 D C B Geser Kursor/ Display 0 0 0 1 S/C R/L X X Set Fungsi 0 0 1 DL N F X X 1 A6 A5 A4 A3 A2 A1 A0 A6-A0 = alamat DDRAM 0 1 A5 A4 A3 A2 A1 A0 A5-A0 = alamat CGRAM Hapus Display Posisi Awal Set Alamat DDRAM Set alamat CGRAM Keterangan : X I/D S S/C R/L DL N F D C B Arah kursor dam display Atur display (D) On/Off, kursor (C) On/OFF, Blinking (B) Geser kursor atau display Tanpa mengubah alamat DDRAM Atur panjang data, Jumlah baris yang tampil dan font karakter : diabaikan : 1 = Increment, 0 = Decrement : 1 = Display bergeser, 0 = Display tidak bergeser : 1 = Display Shift, 0 = Geser Kursor : 1 = Geser Kiri, 0 = Geser Kanan : 1= 8 bit, 0 = 4 bit : 1 = 2 baris, 0 = 1 baris : 1 = 5x10, 0 = 5x8 : 1 = Display On, 0 = Display Off : 1 = Kursor On, 0 = Kursor Off : 1 = Blinking On, 0 = Blinking Off 40 2.4 Komunikasi Serial Komunikasi serial merupakan komunikasi data dengan pengiriman data secara satu per satu dengan menggunakan satu jalur kabel data. Sehingga dalam komunikasi serial hanya menggunakan dua kabel data yaitu kabel data untuk pengiriman yang disebut transmit (Tx) dan kabel data untuk penerimaan yang disebut receive (Rx). Kelebihan dari komunikasi serial adalah jarak pengiriman dan penerimaan data dapat dilakukan dalam jarak yang cukup jauh dibanding dengan komunikasi paralel. Kekurangannya adalah kecepatannya lebih lambat daripada komunikasi paralel. 2.4.1 Tata Cara Komunikasi Data Serial Dikenal dua cara komunikasi data secara serial, yaitu komunikasi data serial secara sinkron dan komunikasi data serial secara asinkron. Pada komunikasi data serial secara sinkron hanya ada satu pihak (pengirim atau penerima) yang menghasilkan clock dan mengirimkan clock tersebut bersama-sama dengan data serial. Contoh penggunaan komunikasi data serial sinkron terdapat pada transmisi data keyboard. Komunikasi data serial asinkron adalah komunikasi dimana kedua pihak (pengirim dan penerima) masing-masing menghasilkan clock namun hanya data yang ditransmisikan tanpa clock. Clock tidak dikirimkan bersama data serial, tetapi dibangkitkan secara sendiri-sendiri baik pada sisi pengirim (transmitter) maupun pada sisi penerima (receiver). Agar data yang dikirim sama dengan data yang diterima, maka kedua frekuensi clock harus sama dan harus terdapat sinkronisasi. Setelah adanya sinkronisasi, pengirim akan mengirimkan datanya sesuai dengan frekuensi clock pengirim dan penerima akan membaca data sesuai 41 dengan frekuensi clock penerima. Contoh penggunaan komunikasi data serial asinkron adalah pada Universal Asynchronous Receiver Transmitter (UART) yang digunakan pada serial port (COM) komputer. Pada UART, RT, kecepatan pengiriman pengi data (atau yang sering disebut dengan Baud Rate)) dan fase clock pada sisi transmitter dan sisi receiver harus sinkron. Untuk itu diperlukan sinkronisasi antara transmitter dan receiver eceiver. Hal ini dilakukan oleh bit “Start Start” dan bit “Stop”. ”. Ketika saluran transmisi dalam keadaan idle, output UART adalah dalam keadaan logika “1”. Ketika transmitter ingin mengirimkan data, output UART akan diset dulu ke logika “0” untuk waktu satu bit. Sinyal ini pada receiver akan dikenali sebagai sinyal “Start”” yang digunakan untuk menyinkronkan fase clock-nya nya sehingga sinkron dengan fase clock transmitter. Selanjutnya data akan dikirimkan secara serial dari bit yang paling rendah sampai bit tertinggi. Selanjutnya akan dikirimkan sinyal “Stop” “ sebagai akhir dari pengiriman data serial. Gambar 2.10 memperlihatkan contoh pengiriman huruf “A” dalam format ASCII (41 heksa/1000001 biner) tanpa bit paritas. Gambar 2.10 2. Pengiriman huruf “A” tanpa bit paritas Kecepatan transmisi (baud ( rate) dapat dipilih bebas dalam rentang tertentu. Baud rate yang umum dipakai adalah 110, 135, 150, 300, 300 600, 1200, 2400, dan 9600 (baud baud/perdertik). Dalam komunikasi data serial, baud rate dari kedua alat yang berhubungan harus diatur pada kecepatan yang sama. Selanjutnya harus ditentukan panjang data (6,7 atau 8 bit), ), paritas (genap, ganjil, atau tanpa paritas), dan jumlah bit “Stop” (1, 1 ½ , atau 2 bit). 42 2.4.2 USB to Serial Bridge FT232BM Modul USB to Serial Bridge FT232BM adalah sebuah komponen yang berfungsi sebagai konverter yang akan mengirim dan menerima data serial (UART) yang menuju maunpun berasal dari komputer melalui port USB. Komponen ini merupakan komponen yang berfungsi untuk menggantikan fungsi IC MAX232 yang menggunakan antarmuka RS-232. FT232BM menggunakan antarmuka USB to Serial (UART) untuk proses komunikasi datanya. Komponen ini memerlukan beberapa komponen pendukung yang harus dirangkai agar dapat bekerja sebagai USB to Serial Converter. Sementara itu agar komponen ini dikenali oleh komputer, sebuah driver harus di-install-kan terlebih dahulu ke komputer (yang port USB-nya akan dihubungkan ke komponen ini). Driver tersebut sudah disediakan oleh produsen pembuat komponen ini, dan pemakainya hanya perlu meng-install-kannya ke komputer yang akan digunakan. Dengan adanya driver ini, maka komputer yang digunakan akan mengenali komponen FT232BM ini sebagai virtual COM (virtual serial port). a. Spesifikasi USB to Serial Bridge FT232BM Adapun spesifikasi dari USB to Serial Bridge FT232BM adalah sebagai berikut : 1. Mendukung format UART dengan 7 atau 8 bit data, 1 atau 2 stop bit, dan odd/even/mark/space/no parity. 2. Kompatibel dengan USB 1.1 dan USB 2.0. 3. Memiliki tegangan output untuk antarmuka UART dengan level TTL 5V. 4. Tegangan output untuk antarmuka USB sebesar 3,3V 5. Memiliki EEPROM eksternal untuk menyimpan data. 6. Tegangan kerja 4,4-5,25 VDC 7. Mempunyai Crystal Oscillator sebesar 6 MHz. 43 b. Konfigurasi Pin FT232BM IC FT232BM terdiri atas 32 pin seperti yang terlihat pada Gambar 2.11 berikut ini : Gambar 2.11 Konfigurasi Pin FT232BM Konfigurasi pin FT232BM seperti sebagai berikut : 1. Antarmuka UART Antarmuka UART digunakan untuk proses komunikasi serial dengan output UART, dengan fungsi khusus masing-masing pin : Tabel 2.11 Fungsi Pin Antarmuka UART Pin 25 24 23 22 21 20 19 18 16 Deskripsi TXD (Transmit Asyncrhonous Data Output) RXD (Receive Asyncrhonous Data Input) RTS# (Request To Send control output) CTS# (Clear To Send control input) DTR# (Data Terminal Ready control output) DSR# (Data Set Ready control input) DCD# (Data Carrier Detect control input) RI# (Ring indicator Data Input) TXDEN (Enable transmit data untuk RS485) 44 2. Antarmuka USB Antarmuka USB digunakan untuk proses komunikasi serial dengan port USB, dengan fungsi khusus masing-masing pin : Tabel 2.12 Fungsi Pin Antarmuka USB Pin 3. Deskripsi 7 USBDP (USB Data Signal Plus) – I/O 8 USBDM (USB Data Signal Minus) – I/O Antarmuka EEPROM Antarmuka EEPROM digunakan untuk mengakses EEPROM eksternal, dengan fungsi khusus masing-masing pin : Tabel 2.13 Fungsi Pin Antarmuka EEPROM Pin 4. Deskripsi 1 EESK (Sinyal clock untuk EEPROM) 2 EEDATA (Bus data untuk EEPROM) 32 EECS (Chip Select untuk akses EEPROM) Power dan Ground Power dan ground digunakan untuk masukan tegangan dan ground IC FT232BM, dengan fungsi khusus masing-masing pin : Tabel 2.14 Fungsi Pin Power dan Ground Pin 6 3&26 13 9&17 Deskripsi 3V3OUT (Output tegangan 3,3V untuk antarmuka USB) VCC (Input tegangan sebesar 4,4V-5,25V untuk FT232BM) VCCIO (Output tegangan 3V-5,25V untuk antarmuka UART) GND 30 AVCC (Vcc analog untuk internal clock) 29 AGD (Ground analog untuk internal clock) 31 TEST (Dihubungkan dengan ground pada posisi normal) 45 5. Power Control Sleep# (Pin 10), PWREN# (Pin 15), PWRCTL (Pin 14) digunakan untuk power control FT232BM. 6. RESET RESET# (Pin 4) dan RSTOUT# (Pin 5) merupakan pin yang digunakan untuk me-reset IC FT232BM 7. Crystal Oscillator XTIN (Pin 27) merupakan masukan ke 6 MHz Crystal Oscillator dan XTOUT adalah keluaran dari 6 MHz Crystal Oscillator. 2.5 Catu Daya Catu daya merupakan suatu rangkaian yang mempunyai kemampuan mengubah tegangan AC menjadi tegangan DC. Agar peralatan elektronik dapat bekerja dengan baik, maka diperlukan catu daya yang sesuai. Bagian-bagian dari sebuah rangkaian catu daya ialah : 1. Transformator Transformator merupakan suatu kumparan yang terdiri atas dua kumparan kawat terisolasi yaitu kumparan primer dan kumparan sekunder, yang dililitkan mengelilingi kepingan-kepingan inti besi lunak. Tujuan digunakannya transformator yaitu untuk mengisolasi jalur daya DC yang berasal dari jala-jala listrik dan untuk mengubah level tegangan AC yang berasal dari jala-jala listrik menjadi beragam nilai tegangan yang lebih rendah atau lebih tinggi. 46 2. Rectifier (Penyearah) Untuk mengubah tegangan AC menjadi tegangan DC (arus searah) dibutuhkan dioda sebagai penyearah. Penyearah yang digunakan yaitu penyearah gelombang penuh dengan sistem pembalik fasa. Penyearah ini menggunakan empat buah dioda untuk mendapatkan penyearah siklus lengkap dengan memakai penyearah jembatan (bridge). 3. Filter Sinyak keluaran dari penyearah baik setengah gelombang maupun gelombang penuh belum tentu sempurna seperti yang diharapkan. Ripple atau riak gelombang masih terlihat dan terlalu besar, ini menyebabkan tegangan output menjadi tidak stabil. Untuk mengurangi atau meniadakan ripple ini maka sinyal hasil penyearah disaring terlebih dahulu. Faktor yang terdapat pada proses ini adalah faktor ripple yaitu perbandingan antara tegangan ripple dengan tegangan DC pada sinyal. Maka didapatkan persamaan : r= ሺ௦ሻ௫ ଵ% ௗ (2.8) Ada dua macam filter yaitu C dan L atau kombinasi dari keduanya. Tapi yang sering dijumpai adalah filter dengan C saja. Dengan memperbesar harga kapasitor, maka semakin besar pula daya tampung kapasitor dan akhirnya ripple semakin rata, arus yang dilewatkan juga bertambah. 4. Regulator Catu daya mempunyai kemungkinan untuk mengalami perubahan level tegangan setelah dihubungkan ke beban. Jika ini terjadi, dapat dikatakan tegangan keluaran dari catu daya tidak stabil. Tidak stabilnya tegangan 47 keluaran ini tentunya tidak diharapkan karena dapat mempengaruhi kerja peralatan yang dicatu oleh catu daya tersebut. Untuk menjaga kestabilan catu daya, maka perlu ditambahkan rangkaian regulator tegangan. Untuk sebagian besar pemakaian, pilihan yang paling baik untuk regulator tegangan adalah regulator tipe sederhana dengan tiga terminal yaitu input, ground, dan output. Kapasitor pada output berfungsi untuk memperbaiki respon transient dan menjaga impedansi tetap rendah pada frekuensi tinggi. 2.6 Bahasa Pemrograman Assembler Perangkat lunak atau program diperlukan agar mikrokontroler dapat bekerja yang bertugas memberitahukan hal-hal yang harus dilakukan oleh mikrokontroler. Mikrokontroler AT89S51 memiliki bahasa pemrograman khusus yang tidak dipahami oleh jenis mikrokontroler lain. Bahasa pemrograman khusus yang dikenal dengan nama bahasa assembly. Bahasa assembly adalah bahasa pemrograman tingkat rendah. Dalam pemrograman komputer dikenal dua jenis tingkatan bahasa, jenis yang pertama adalah bahasa pemrograman tingkat tinggi (high level language) dan jenis yang kedua adalah bahasa pemrograman tingkat rendah (low level language). Bahasa pemrograman tingkat tinggi lebih berorientasi kepada manusia yaitu bagaimana agar pernyataan-pernyataan yang ada dalam program mudah ditulis dan dimengerti oleh manusia. Sedangkan bahasa tingkat rendah lebih berorientasi ke mesin, yaitu bagaimana agar komputer dapat langsung mengintepretasikan pernyataan-pernyataan program. 48 2.6.1 Kelompok-kelompok Instruksi Seluruh instruksi dapat di kelompokkan menurut fungsinya masing- masing. Instruksi-instruksi tersebut diataranya ialah : • Instruksi Pemindahan Data Bagian instruksi ini hanya menyalin data suatu lokasi memori (sumber) ke lokasi tertentu (tujuan), tanpa terjadi perubahan isi data dari sumber. Selain lokasi memori, data juga dapat dipindahkan dari suatu register ke register lain, pemindahan atau penyalinan antar muka-register dan antar mukamemori. Contoh : MOV A,#29H PUSH A POP A • Instruksi Aritmatika Instruksi ini melaksanakan operasi-operasi aritmatika yang meliputi penjumlahan (+), pengurangan (-), penambahan satu (increment), pengurangan satu (decrement), perkalian (*), pembagian (/), dan modulo MOD (mengekspresikan sisa setelah pembagian). Contoh : ADD A,#29H SUBB A,#29H • Instruksi Logika dan Manipulasi Bit Instruksi ini berhubungan dengan operasi-operasi logika pada akumulator dan manipulasi bit. Macam dari instruksi ini adalah AND, OR, XOR, NOT, perbandingan, pergeseran, dan komplemen data. Contoh : ANL A,#15H CPL P1.0 49 • Instruksi Percabangan Instruksi ini mengubah urutan normal pelaksanaan suatu program. Dengan instruksi ini, program yang sedang dilaksanakan akan meloncat ke suatu alamat tertentu. Instruksi ini dibedakan atas 2 bagian, yaitu percabangan dengan syarat dan percabangan tanpa syarat. 1. Percabangan dengan syarat Contoh dari instruksi percabangan dengan syarat adalah CJNE. Instruksi ini akan membandingkan isi register, atau isi memori dengan suatu data. Apabila sama, instruksi selanjutnya yang berada dibawahnya akan dilaksanakan. Bila tidak sama instruksi yang ditunjuk oleh label yang akan dilaksanakan. Contoh : CJNE R7,#0FFH, Tidak_sama : Jika R7 tidak sama dengan FFH maka instruksi kan menuju label Tidak_sama. Contoh lain dari instruksi percabangan dengan syarat adalah DJNZ. Instruksi ini akan mengurangi isi register atau memori dengan satu. Bila sudah 0, instruksi selanjutnya akan dilaksanakan. Bila belum 0, instruksi dilanjutkan ke label ulang. Contoh : DJNZ R7, ulang : Jika R7 sama dengan nol, setelah dikurangi satu, pelaksanaan instruksi harus melompat ke label ulang. 2. Percabangan tanpa syarat Instruksi percabangan tanpa syarat misalnya adalah SJMP (Short Jump), Call Delay dan LJMP (Long Jump). Contoh : SJMP ulang : Jika instruksi ini dieksekusi maka pembacaan program akan melompat ke alamat dengan label ulang. 50 • Instruksi Stack, I/O, dan Kontrol Instruksi ini mengatur antara lain penggunaan stack, membaca/menulis port I/O, serta pengontrolan-pengontrolan. Contoh : SETB EA CLR Ti 2.6.2 Metode Pengalamatan Ada beberapa cara pengalamatan pada pemrograman assembler. Beberapa cara pengalamatan (Addressing Mode) tersebut dapat dilihat sebagai berikut : • Pengalamatan Langsung (Direct Addressing) Operand ditentukan berdasarkan alamat 8-bit dalam suatu instruksi. Hanya RAM data internal dan SFR saja yang bisa diakses secara langsung. Contoh : • mov a,64h ;salin isi alamat 64h ke akumulator Pengalamatan Tak Langsung (Indirect Addressing) Pada pengalamatan tidak langsung, instruksi menentukan suatu register yang digunakan untuk menyimpan alamat operand. Baik RAM Internal maupun eksternal dapat diakses secara tak-langsung. Register alamat untuk alamat-alamat 8-bit bisa menggunakan Stack Pointer atau R0 atau R1 dari Bank Register yang dipilih. Sedangkan untuk alamat 16-bit hanya bisa menggunakan Register Pointer data 16-bit atau DPTR. Untuk melaksanakan intruksi tak langsung menggunakan simbol “@”. Contoh : mov a, @R0 ; salin isi memori yang alamatnya ditujukan ; oleh isi register R0 ke akumulator. 51 • Pengalamatan Segera (Immidiate Addressing) Pada pengalamatan segera, nilai suatu konstanta segera menyatu dengan opcode dalam memori program. Untuk melaksanakan instruksi segera menggunakan simbol “#”. Contoh : mov a,#64h ; salin nilai konstanta (hexa) 64h ke ; akumulator • Pengalamatan Secara Bit (Bit Addressable) Pada pengalamatan bit, proses pengalamatan ketika operand menunjuk ke alamat pada RAM Internal ataupun Register Fungsi Khusus yang mempunyai kemampuan pengalamatan secara bit (bit addressable). Berdasarkan penulisannya, pengalamatan bit terdiri atas beberapa macam sebagai berikut : 1. Langsung menunjuk ke alamat bit Setb 0B0h ; beri logika 1 pada bit di alamat B0h 2. Menggunakan operator titik “.” Setb P3.0 ; beri logika 1 pada bit ke 0 dari port 3 3. Menggunakan lambang assembler secara standar Setb • RXD ; beri logika 1 pada pin RXD Pengalamatan Register (Register Addressing) Pada pengalamatan instruksi register, dalam instruksi ini, alamat sumber sudah tercakup dalam instruksinya itu sendiri sehingga sangat menghemat memori. Bank Register yang masing-masing berisi R0 hingga R7 atau 8 register dapat diakses melalui instruksi yang opcode-nya mengandung 3bit spesifikasi register (000 untuk R0, 001 untuk R1, hingga 111 untuk R7). Pengaksesan register dengan cara demikian bisa menghemat penggunaan kode instruksi, karena tidak memerlukan sebuah byte untuk alamat. Saat instruksi tersebut dikerjakan, satu dari 8 register pada bank yang terpilih yang diakses. Beberapa Instruksi hanya dikhususkan untuk suatu register tertentu. Misalnya, suatu instruksi yang hanya bekerja pada akumulator saja, sehingga tidak memerlukan alamat byte untuk menunjukan ke akumulator. Dalam hal ini, opcode-nya sendiri telah mengandung penunjuk ke register yang benar. Instruksi yang mengacu akumulator sebagai A akan dikodekan dengan opcode spesifik-akumulator. 52