BAB II TINJAUAN PUSTAKA
2.1
Klasifikasi Kadar Gula Darah Dalam ilmu kedokteran, gula darah adalah istilah yang mengacu kepada
tingkat glukosa didalam darah. Konsentrasi gula darah atau tingkat glukosa serum, diatur dengan ketat didalam tubuh. Glukosa yang dialirkan melalui darah adalah sumber utama energi untuk sel-sel tubuh. Umumnya tingkat gula darah bertahan pada batas-batas yang sempit sepanjang hari, yaitu 4-8 mmol/l (70-150 mg/dl). Tingkat ini meningkat setelah makan dan biasanya berada pada level terendah pada pagi hari, sebelum seseorang makan. Diabetes mellitus adalah penyakit yang paling menonjol yang disebabkan oleh gagalnya pengaturan gula darah. Meskipun disebut "gula darah", selain glukosa, kita juga menemukan jenisjenis gula lainnya, seperti fruktosa dan galaktosa. Namun, hanya tingkatan glukosa yang diatur melalui insulin dan leptin.
Tabel 2.1 Kadar Gula Dalam Dalam Darah Menurut Ilmu Kedokteran Situasi
Normal
Pre Diabetes
Diabetes
Gula Darah Puasa
< 100 mg/dl
100 – 128 mg/dl
> 128 mg/dl
Gula Darah Sesaat
< 140 mg/dl
140 – 200 mg/dl
> 200 mg/dl
(Sumber : Konimex Pharmaceutical, 2009)
2.2
Mikrokontroler
2.2.1 Pengertian Mikrokontroller Selama 40 tahun sejak pertama kali diperkenalkan, mikrokontroler telah mengalami banyak perkembangan. Berbagai teknologi, fungsi, serta periferal yang diterapkan pada komponen ini menjadikan mikrokontroler yang saat ini beredar memiliki banyak variasi. Sudah tak terhitung pula aplikasi yang dibuat
5
6
menggunakan mikrokontroler, mulai dari untuk kehidupan sehari-hari hingga skala industri. Mikrokontroler adalah komputer mikro dalam satu chip tunggal. Mikrokontroler memadukan CPU, ROM, RWM, I/O paralel, I/O seri, countertimer, dan rangkaian clock dalam satu chip. Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus. Cara kerja mikrokontroler sebenarnya membaca dan menulis data. (Eiwan, 2015) Sama halnya dengan mikroprocessor, mikrokontroler adalah piranti yang dirancang untuk kebutuhan umum. Fungsi utama dari mikrokontroler adalah mengontrol kerja mesin atau sistem menggunakan program yang disimpan pada sebuah ROM. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiah dapat disebut sebagai ―pengendali kecil‖ dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. Mikrokonktroler digunakan dalam produk dan alat yang dikendalikan secara automatis, seperti sistem kontrol mesin, remote control, mesin kantor, peralatan rumah tangga, alat berat, dan mainan. Dengan mengurangi ukuran, biaya, dan konsumsi tenaga dibandingkan desain menggunakan mikroprocessor memori dan alat input output yang terpisah, kehadiran mikrokontroler membuat kontrol elektrik untuk berbagai proses menjadi lebih ekonomis. Dengan penggunaan mikrokontroler ini maka : 1. Sistem elektronik akan menjadi lebih ringkas, 2. Rancang bangun sistem elektronik dapat dilakukan lebih cepat karena sebagian besar sistem merupakan perangkat lunak yang mudah dimodifikasi, 3. Gangguan yang terjadi lebih mudah ditelusuri karena sistemnya yang kompak.
7
Mikrokontroler tidak sepenuhnya dapat mereduksi komponen IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan tinggi atau sekedar menambah jumlah saluran masukan dan keluaran (I/O). Dengan kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler telah mengandung beberapa periferal yang langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator, konversi digital ke analog (DAC), konversi analog ke digital dan sebagainya hanya menggunakan sistem minimum yang sederhana. Agar sebuah mikrokontroler dapat berfungsi, maka mikrokontroler tersebut memerlukan komponen eksternal yang kemudian disebut dengan sistem minimum.
Untuk
membuat
sistem clock dan reset,
sistem
walaupun
minimum
pada
paling
beberapa
tidak
dibutuhkan
mikrokontroler
sudah
menyediakan sistem clock internal, sehingga tanpa rangkaian eksternal pun mikrokontroler dapat beroperasi. Untuk merancang sebuah sistem berbasis mikrokontroler, kita memerlukan perangkat keras dan perangkat lunak, yaitu sistem
minimum
mikrokontroler, software pemrograman
dan
compiler,
serta downloader.
Gambar 2.1 Blok Diagram Mikrokontroler Secara Umum (Sumber : Eiwan, 2015) Dalam gambar 2.1 terlihat bahwa sebuah mikrokontroler terdiri dari beberapa bagian. Bagian-bagian tersebut saling dihubungkan dengan internal dan
8
pada umumnya terdiri dari 3 macam bus yaitu address bus, data busdan control bus.Masing-masing bagian memiliki fungsi-fungsi sebagai berikut:
1.
Register Register merupakan suatu tempat penyimpanan (variabel) bilangan bulat
yang terdiri dari 8 atau 16 bit. Pada umumnya register memiliki jumlah yang banyak, masing-masing ada yang memiliki fungsi khusus dan ada pula yang memiliki fungsi atau kegunaan secara umum. Register yang memiliki fungsi secara khusus misalnyaregister timer yang berisi data penghitungan pulsa untuk timer, atau register pengatur mode operasi counter(penghitung pulsa). Sedangkan register yang memiliki fungsi umum digunakan untuk menyimpan data sementara yang diperlukan untuk proses penghitungan dan proses operasi mikrokontroller. Register dengan fungsi umum sangat dibutuhkan dalam sistem mikrokontroller karena mikrokontroller hanya mampu melakukan operasi aritmetik atau logika hanya pada satu atau dua operasi saja, sehingga untuk operasi-operasi yang melibatkan banyak variabel harus dimanipulasi dengan menggunakan variabel-variabel register umum.
2.
Accumulator Accumulatormerupakan salah satu register khusus yang berfungsi sebagai
operasi umum proses aritmetika dan logika.
3.
Program Counter Program countermerupakan salah satu register khusus yang berfungsi
sebagai pencacah atau penghitung eksekusi program mikrokontroller.
4.
ALU (Arithmetic and Logic Unit) ALU memiliki kemampuan dalam mengerjakan proses-proses aritmatika
(penjumlahan, pengurangan, perkalian, pembagian) dan operasi logika (AND, OR, XOR, NOT) terhadap bilangan bulat 8 atau 16 bit.
9
5.
Clock Circuits Mikrokontroler merupakan rangkaian logika sekuensial, dimana proses
kerjanya berjalan melalui sinkronisasi clock. Oleh karena itu, diperlukan clock circuits yang menyediakan clock untuk seluruh bagian rangkaian.
6.
Internal ROM (Read Only Memory) Internal ROM (Read Only Memory) merupakan memori penyimpan data
dimana data tersebut tidak dapat diubah atau dihapus (hanya dapat dibaca). ROM biasanya diisi dengan program untuk dijalankan oleh mikrokontroler segera setelah power
dihidupkan.
Data
dalam
ROM
tidak
dapat
hilang
meskipun power dimatikan.
7.
Stack Pointer Stack pointer merupakan bagian dari RAM yang memiliki metode
penyimpanan dan pengambilan data secara khusus. Data yang disimpan dan dibaca tidak dapat dilakukan dengan cara acak karena data yang dituliskan ke dalam stack yang berada pada urutan yang terakhir merupakan data yang pertama kali dibaca kembali. Stack pointer berisi offset dimana posisi data stack yang terakhir masuk atau yang pertama kali dapat diambil.
8.
I/O (Input/Output) Ports I/O (Input/Output) ports merupakan sarana yang digunakan oleh
mikrokontroler untuk mengakses peralatan-peralatan lain di luar sistem. I/O port berupa pin-pin yang dapat berfungsi untuk mengeluarkan data digital ataupun sebagai masukan data eksternal.
9.
Interrupt Circuits Interrupt circuits merupakan rangkaian yang memiliki fungsi untuk
mengendalikan sinyal-sinyal interupsi baik internal maupun eksternal. Adanya sinyal interupsi akan menghentikan eksekusi normal program mikrokontroler untuk selanjutnya menjalankan sub-program untuk melayani interupsi tersebut.
10
Diagram blok di atas tidak selalu sama untuk setiap jenis mikrokontroler. Beberapa mikrokontroler menyertakan rangkaian ADC (Analog to Digital Converter) di dalamnya, ada pula yang menyertakan port I/O serial disamping port I/O paralel yang sudah ada.
10.
Internal RAM (Random Acces Memory) Internal RAM (Random Acces Memory) merupakan memori penyimpan
data dimana data tersebut dapat diubah atau dihapus. RAM biasanya berisi datadata variabel dan register. Data yang tersimpan pada RAM bersifat volatile yaitu akan hilang bila catu daya yang terhubung padanya dimatikan.
2.2.2 Sistem Mikrokontroler Mikroprosesor dan mikrokontroler berasal dari ide dasar yang sama. Mikroprosesor adalah istilah yang merujuk pada central processing unit (CPU) computer digital untuk tujuan umum. Untuk membuat simtem komputer, CPU harus ditambahkan memori, umumnya read only memory (ROM) dan random access memory (RAM), dekoder memori, osilator dan sejumlah input/output device seperti port data paralel dan serial. (Syeptianda, 2011). Mikrokontroler umumnya dikelompokkan dalam satu keluarga besar, contoh-contoh keluarga mikrokontroler yaitu : 1. Keluarga MCS-51 2. Keluarga MC68HC05 3. Keluarga MC68HC11 4. Keluarga AVR 5. Keluarga PIC8
2.3
Mikrokontroler ATMEGA 32
2.3.1 Pengertian Mikrokontroler ATMEGA 32 ATMEGA 32 adalah mikrokontroler 8bit dari keluarga AVR dengan kapasitas penyimpanan programmable flash sebesar 32KB. ATMEGA 32 merupakan salah satu produk IC mikrokontroler dari perusahaan mikrokontroler
11
terkemuka yaitu ATMEL. Nama AVR sendiri konon merupakan singkatan dari Alfand Vegard's Risc Processor. Nama Alf dan Vegard diambil dari nama perancang arsitekturnya Alf-Egil Bogen dan Vegard Wollan. Sedangkan kata Risc Processor menandakan mikrokontroler ini termasuk jenis mikrokontroler dengan instruksi set terbatas atau Reduced Instruction Set Computer (RISC). (Sumardi, 2013) Mikrokontroler AVR dikelompokkan menjadi beberapa jenis, yaitu TinyAVR,
MegaAVR,
XMEGAAVR, AVR32
UC3
dan AVR32
AP7.
Pengelompokan ini didasarkan pada ukuran fisik, jumlah memori, peripheral dan fiturnya. TinyAVR merupakan kelompok terendah sedangkan AVR32 AP7 merupakan jenis tertinggi. Kelompok MegaAVR merupakan yang paling populer dikalangan komunitas mikrokontroler di Indonesia. Sebuah contoh mikrokontroler yang termasuk kedalam MegaAVR adalah ATMEGA8, ATMEGA8515, ATMEGA8535, ATMEGA16, ATMEGA32 dan ATMEGA328P.
Gambar 2.2 Bentuk Fisik ATMEGA 32 (Sumber : Sumardi, 2013)
2.3.2 Fitur Mikrokontroler ATMEGA 32 Berikut ini adalah fitur mikrokontrollerATMEGA 32 : 1. High-performance, Low-power Atmel®AVR® 8-bit Microcontroller 2. Advanced RISC Architecture 131 Powerful Instructions – Most Single-clock Cycle Execution 32 × 8 General Purpose Working Registers Fully Static Operation
12
Up to 16 MIPS Throughput at 16MHz On-chip 2-cycle Multiplier 3. High Endurance Non-volatile Memory segments 32Kbytes of In-System Self-programmable Flash program memory 1024Bytes EEPROM 2Kbytes Internal SRAM Write/Erase Cycles: 10,000 Flash/100,000 EEPROM Data retention : 20 years at 85°C/100 years at 25°C(1) Optional Boot Code Section with Independent Lock Bits In-System
Programming
by
On-chip
Boot
Program
True Read-While-Write Operation Programming Lock for Software Security 4. JTAG (IEEE std. 1149.1 Compliant) Interface Boundary-scan Capabilities According to the JTAG Standard Extensive On-chip Debug Support Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface 5. Peripheral Features Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode Real Time Counter with Separate Oscillator Four PWM Channels 8-channel, 10-bit ADC 8 Single-ended Channels 7 Differential Channels in TQFP Package Only 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x Byte-oriented Two-wire Serial Interface
13
Programmable Serial USART Master/Slave SPI Serial Interface Programmable Watchdog Timer with Separate On-chip Oscillator On-chip Analog Comparator 6. Special Microcontroller Features Power-on Reset and Programmable Brown-out Detection Internal Calibrated RC Oscillator External and Internal Interrupt Sources Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Powerdown, Standby and Extended Standby 7. I/O and Packages 32 Programmable I/O Lines 40-pin PDIP, 44-lead TQFP, and 44-pad QFN/MLF 8. Operating Voltages 2.7V - 5.5V for ATmega32L 4.5V - 5.5V for ATmega32 9. Speed Grades 0 - 8MHz for ATmega32L 0 - 16MHz for ATmega32 10. Power Consumption at 1MHz, 3V, 25°C Active: 1.1mA Idle Mode: 0.35mA Power-down Mode: < 1Μa
14
Gambar 2.3 Blok Diagram ATMEGA 32 (Sumber : Sumardi, 2013)
15
2.3.3
Konfigurasi Pin-Pin Mikrokontroller ATMega 32
Gambar 2.4 Susunan Kaki Mikrokontroler ATMega 32 (Sumber : Sumardi, 2013)
Berikut ini adalah penjelasan dari fungsi pin-pin mikrokontroler ATMEGA 32 adalah : 1. VCC merupakan pin masukan positif catu daya. Setiap peralatan elektronika digital tentunya butuh sumber catu daya yang umumnya sebesar 5V, itulah sebabnya di PCB kit mikrokontroler selalu ada IC regulator 7805. 2. GND sebagai pin Ground. 3. Port A (PAO..PA7) merupakan pin I/O dua arah dan dapat diprogram sebagai pin masukan ADC. 4. Port B (PBO..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Tirner/Counter, Komparator analog, dan SPI. 5. Port C (PCO..PC7) merupakan pin I/0 dua arah dan pin fungsi khusus, yaitu TWI, komparator analog, dan Timer Osilator.
16
6. Port D (PDO..PD7) merupakan pin I/O dua arah dan pin fungsi khusus,yaitu komparator analog, interupsi eksternal dan komunikasi serial. 7. Reset merupakan pin yang digunakan untuk mereset mikrokontroller. 8. XTAL 1 dan XTAL 2 sebagai pin masukan clock ekstemal. Suatumikrokontroller
membutuhkan
sumber
detak
(clock)
agar
dapatmengeksekusi instruksi yang ada di memori. Semakin tinggi nilaikristalnya, maka semakin cepat mikrokontroller tersebut. 9. AVCC sebagai pin masukan tegangan untuk ADC. 10. AREF sebagai pin masukan tegangan referensi.
2.4
Logika Fuzzy Logika fuzzy adalah salah satu komponen pembentuk soft computing.
Logika fuzzy pertama kali diperkenalkan oleh Prof. Lotfi A. Zadeh pada tahun 1965. Dasar logika fuzzy adalah teori himpunan fuzzy. Pada teori himpunan fuzzy, peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting. Nilai keanggotaan atau derajat keanggotaan atau membership function menjadi ciri utama dalam penalaran dengan logika fuzzy tersebut (Kusuma Dewi, 2003). Logika fuzzy dapat dianggap sebagai kotak hitam yang berhubungan antara ruang input menuju ruang output (Kusuma Dewi, 2003). Kotak hitam tersebut berisi
cara
atau
metode
yang
dapat
digunakan
untuk
mengolah
data input menjadi output dalam bentuk informasi yang baik. Adapun beberapa alasan digunakannya logika fuzzy (Kusuma Dewi, 2003), adalah : 1.
Konsep logika fuzzy mudah dimengerti., karena logika fuzzy menggunakan dasar teori himpunan, maka konsep matematis yang mendasari penalaran fuzzy tersebut cukup mudah untuk dimengerti.
2.
Logika fuzzy sangat
fleksisbel,
artinya
mampu
beradaptasi
dengan
perubahan-perubahan dan ketidakpastian yang menyertai permasalahan.
17
3.
Logika fuzzy memiliki toleransi terhadap data yang cukup homogeny dan kemudian ada beberapa data ―eksklusif‖, maka logika fuzzy memiliki kemampuan untuk menangani data eksklusif tersebut.
4.
Logika fuzzy dapat
membangun
dan
mengaplikasikan
pengalaman-
pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan. Dalam hal ini, sering dikenal dengan istilah fuzzy expert system menjadi bagian terpenting. 5.
Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional. Hal ini umumnya terjadi pada aplikasi di bidang teknik mesin maupun teknik elektro.
6.
Logika fuzzy didasari pada bahasa alami. Logika fuzzy menggunakan bahasa sehari-hari sehingga mudah dimengerti.
Himpunan Fuzzy Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu
himpunan A, yang sering ditulis dengan (X), memiliki dua kemungkinan, yaitu : 1. Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan, atau 2. Nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan. Himpunan fuzzy memiliki 2 atribut (Kusuma Dewi, 2003), yaitu: 1. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami, seperti : NORMAL, PRA DIABETES, DIABETES MELLITUS. 2. Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran dari suatu variabel seperti: 40, 25, 50, dsb. Ada
beberapa
hal
yang
perlu
diketahui
dalam
memahami
sistem fuzzy (Kusuma Dewi, 2003), yaitu : 1. Variabel fuzzy, yaitu variabel yang hendak dibahas dalam suatu sistem fuzzy. Contohnya: kadar gula darah, umur, temperatur, permintaan, dsb.
18
2. Himpunan fuzzy, yaitu suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzzy. Contohnya: variabel kadar gula darah, terbagi menjadi 3 himpuan fuzzy, yaitu : NORMAL, PRA DIABETES, DIABETES MELLITUS. 3. Semesta Pembicaraan, yaitu keseluruhan nilai yang diperoleh untuk dioperasikan dalam suatu variabel fuzzy, semesta pembicaraan merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri kekanan. Nilai semesta pembicaraan dapat berupa bilangan positif maupun negatif. Adakalanya nilai semesta pembicaraan ini tidak dibatasi batas atasnya. Contohnya, semesta pembicaraan untuk variabel kadar gula darah : [0 +∞].
2.5
Software(CodeVision AVR)
2.5.1 Pengertian CodeVision AVR CodeVisionAVR pada dasarnya merupakan perangkat lunak pemrograman microcontroller keluarga AVR berbasis bahasa C. Ada tiga komponen penting yang telah diintegrasikan dalam perangkat lunak ini, yaituCompiler C, IDE dan Program generator. Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan pengembangnya, Compiler C yang digunakan hampir mengimplementasikan semua komponen standar yang ada pada bahasa C standar ANSI (seperti struktur program, jenis tipe data, jenis operator, dan library fungsi standar-berikut penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C untuk aplikasi komputer, Compiler C untuk microcontroller ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C tersebut ditanamkan (embedded). Khusus untuk library fungsi, disamping library standar (seperti fungsi-fungsi
matematik,
manipulasi
String,
pengaksesan
memori
dan
sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock), sensor suhu LM75, SPI (Serial Peripheral
19
Interface) dan lain sebagainya. Untuk memudahkan pengembangan program aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat bersahabat dengan pengguna. Selain menu-menu pilihan yang umum dijumpai pada setiap perangkat lunak berbasis Windows, CodeVisionAVR ini telah mengintegrasikan perangkat lunak downloader (in system programmer) yang dapat digunakan untuk mentransfer kode mesin hasil kompilasi kedalam sistem memori microcontroller AVR yang sedang di program. Gambar tampilan awal dari CodeVision AVR dapat dilihat pada gambar dibawah ini :
Gambar 2.5 Tampilan Awal CodeVision AVR (Sumber : Wida Lidiawati, 2015)
20
Tabel 2.2 Keterangan Lengkap Ikon-Ikon Dari CodeVision AVR Sub-menu New Open Reopen Save Save-as Save All Close
Close Close All Convert to Library Page Setup Print Preview Print Exit
Sub-menu Undo Redo Cut Copy Copy to Code Templates Paste Delete Select All Print Selection Indent Selection Unindent Selection
Fungsi membuat file baru membuka file yang sudah ada membuka kembali file yang sudah ditutup menyimpan yang yang sudah dibuat menyimpan kembali file yang aktif dan sudah disimpan dengan nama yang berbeda menyimpan beberapa file yang sudah dibuat menutup tab file yang sedang dibuka (sama seperti excel, di CodeVisionAVR juga kita dapat membuat beberapa sheet dalam jendela yang sama) Multiple menutup sebagian tab yang sedang dibuka menutup semua tab menyimpan file yang sudah dibuat ke dalam library mengatur tata letak kertas menampilkan file yang akan dicetak mencetak file keluar dari CodeVisionAVR Tabel 2.3 Menu Edit Fungsi mengulang aksi yang terakhir kali dilakukan mengembalikan proses undo yang terakhir kali dilakukan memindahkan teks yang sudah di-blok ke tempat lain menyalin teks yang sudah di-blok menyalin teks yang sudah di-blok untuk dijadikan template menduplikasi teks yang sudah di-cut atau copy menghapus teks mem-blok semua teks yang ada dalam satu file mencetak sebagian teks yang sudah diseleksi Memberi spasi pada bagian yang dipilih Menghilangkan spasi pada bagian yang dipilih
21
Comment Selection Uncomment Selection Insert Special Character Toggle Bookmark Jump Bookmark Jump to Next Bookmark Jump to Previous Bookmark Go Back Go Forward
mengubah teks yang dipilih menjadi komentar mengembalikan teks komentar menjadi teks semula (kebalikan dari comment selection) memasukkan karakter spesial seperti tanda panah, simbol mata uang, huruf latin, dll menandai baris tertentu pergi ke baris yang sudah ditandai pergi ke baris selanjutnya yang sudah ditandai pergi ke baris sebelumnya yang sudah ditandai kembali ke baris yang sudah dijelajahi sebelumnya (setelah melakukan proses go to line) kembali ke baris yang sudah dijelajahi setelahnya pergi ke bagian definisi atau deklarasi
Go to Definition/Declaration Go to Line pergi ke baris yang diinginkan pergi ke baris yang memiliki pasangan tanda Go to Matching Brace kurung ()
Sub-menu Find Find Next Find Previous Find in Files Replace Replace in Files
Sub-menu Toggle Fold Expand All Folds Collapse All Folds
Tabel 2.4 Menu Search Fungsi mencari teks tertentu mencari teks selanjutnya mencari teks sebelumnya mencari teks string yang ada pada file mengganti suatu teks dengan teks lainnya mengganti teks string dengan teks string lainnya Tabel 2.5 Menu View Fungsi menyusutkan atau memperluas satu blok kode tempat kursor berada yang dihimpit oleh {} memperluas satu blok kode tempat kursor berada yang dihimpit oleh {} menyusutkan satu blok kode tempat kursor berada yang dihimpit oleh {}
22
menampilkan karakter yang tidak akan ikut dicetak, karena karakter ini hanya digunakan untuk formatting, misalnya karakter ¶ menampilkan atau membuka file yang sudah dibuat dalam bentuk diagram pohon Code Navigator (seperti di windows explorer) beserta keterangan apakah terdapat error atau warning pada file tersebut menampilkan deklarasi atau definisi yang Code Information terdapat pada file yang sedang di-edit atau dibuka menampilkan fungsi panggil yang Function Call Tree menggunakan data stack terbanyak selama eksekusi program menampilkan kode yang sering digunakan, untuk menggunakannya cukup klik kode Code Templates yang akan digunakan dan drag ke window editing menampilkan sebagian teks yang baru saja Clipboard History digandakan (copy) ke clipboard Messages menampilkan pesan error atau warning menampilkan jendela yang berisi tentang Find in Files pencarian teks string Information Window menampilkan jendela informasi ketika after Compile/Build program selesai di-compile atau di-build Toolbars menampilkan toolbar menampilkan window editing dalam bentuk File Panes single pane, dual pane vertical, dan dual pane horizontal. Visible NonPrintable Characters
Tabel 2.6 Menu Project Sub-menu Fungsi Check Syntax mengecek sintaks yang digunakan Compile meng-compile program yang sudah dibuat Build mem-build program yang sudah dibuat Build All mem-build program yang sudah dibuat Stop compilation menghentikan kompilasi menghapus file yang dihasilkan dari proses Clean Up build menampilkan jendela informasi yang berisi Information compiler dan assembler Go to Next Error pergi menuju error selanjutnya Go to Previous Error pergi menuju error sebelumnya
23
Go to Next Warning Go to Previous Warning Notes Configure
Sub-menu CodeWizardAVR Debugger Chip Programmer Terminal Configure
Sub-menu
IDE
Editor Debugger Programmer Terminal
pergi menuju warning selanjutnya pergi menuju warning sebelumnya menampilkan jendela catatan melakukan konfigurasi program, biasanya dilakukan sebelum program diinjeksikan ke mikrokontroler Tabel 2.7 Menu Tools Fungsi membuat program secara otomatis sehingga mempermudah penulisan kode inisialisasi memilih file debugger pengaturan untuk memasukkan program yang sudah di-compile ke mikrokontroler pengaturan terminal komunikasi serial menambah atau menghilangkan program ke dalam tools menu Tabel 2.8 Menu Settings Fungsi pengaturan tampilan IDE, meliputi load last used project at startup, show hint for the code navigator window, show hint for the code information window, dan show hint for the function call tree window. pengaturan ukuran huruf, warna huruf, menampilkan jumlah baris, dan lain-lain mengatur debugger sebelum dihubungkan ke AVR Studio pengaturan jenis mikrokontroler yang digunakan dan terminal komunikasi pengaturan terminal yang digunakan
24
Tabel 2.9 MenuHelp Fungsi berisi panduan mengenai penggunaan Help Topics CodeVisionAVR Getting Started with berisi panduan memulai CodeVisionAVR CodeVisionAVR (butuh koneksi internet) berisi data sheet mikrokontroler (butuh AVR Data Sheets koneksi internet) HP Info Tech on the link ke HP Info Tech untuk meminta Web bantuan dan lainnya About berisi penjelasan software CodeVisionAVR, CodeVisionAVR seperti produsen dan versinya (Sumber : Wida Lidiawati, 2015) Sub-menu
2.5.2 Compiler Salah
satu
software
pemrograman
AVR
mikrokontroller
adalah
CodevisionAVR C Compiler versi 1. 253 yang selanjutnya dalam pembahasan disebut cvAVR. Pada cvAVR terdapar code wizard yang sangat membantu dalam proses inisaialisasi register dalam mikrokontroller dan untuk membentuk fungsifungsi interupt. Pada code wizard uintuk membuat inisialisasi cukup dengan mengklik atau memberi tanda check sesuai properti dari desain yang dikehendaki, setelah itu register yang ter inisislisasi dapat dilihat melalui program preview atau melalui generate and save. Dengan menggunakan pemrograman bahasa C diharapkan waktu desain akan menjadi lebih singkat. Setelah program dalam bahasa C ditulis dan dilakukan kompilasi tidak terdapat kesalahan (error) maka proses download dapat dilakukan. Mikrokontroller AVR mendukung sistem download secara ISP (In-System Programming). Untuk memulai bekerja dengan CodeVisionAVR, yaitu :
1. Pilih pada menu File -> New. Maka akan muncul kotak dialog sebagai berikut :
25
Gambar 2.6 Tampilan Project Baru (Sumber : Musbikhin, 2012)
2. Pilih Project kemudian tekan OK, maka akan muncul kotak dialog berikut.
Gambar 2.7 Tampilan Code Wizard AVR (Sumber : Musbikhin, 2012)
3. Pilih Yes untuk menggunakan CodeWizardAVR. Code WizardAVR digunakan untuk membantu dalam men-generate program, terutama dalam konfigurasi chip mikrokontroller, baik itu konfigurasi Port, Timer, penggunaan fasilitas-fasilitas seperti LCD, interrupt, dan sebagainya. Code WizardAVR ini sangat membantu programmer untuk setting chip sesuai keinginan.
2.5.2.1 Pemilihan Chip dan Frekuensi Xtall Langkah pertama dalam menggunakan cvAVR adalah membentuk sebuah project baru, dengan click create new project maka akan muncul pertanyaan apakah anda ingin memanfaatkan bantuan code wizard, pilih saja ok maka anda akan masuk pada code wizard. Langkah pertama yang harus dilakukan pada code wizard adalah memilih jenis chip mikrokontroller yang digunakan dalam project
26
dan frekuensi xtall yang digunakan. Pemilihan chip dan frekuensi xtall dapat dilihat seperti pada gambar berikut :
Gambar 2.8 Tampilan Pemilihan Chip dan Frekuensi Xtall (Sumber : Musbikhin, 2012)
2.5.2.2 Inisialisasi Port I/O Inisialisasi Port berfungsi untuk memilih fungsi port sebagai input atau sebagai output. Pada konfigurasi port sebagai output dapat dipilih pada saat awal setelah reset kondisi port berlogika 1 atau 0, sedangkan pada konfigurasi port sebagai input terdapat dua pilihan, yaitu kondisi pin input toggle state atau pullup, maka sebaiknya dipilih pull up untuk memberi default pada input selalu berlogika 1. setiap port berjumlah 8 bit, konfigurasi dari port dapat diatur sesuai dengan kebutuhan. Pengaturan konfigurasi dapat dilakukan perbit, jadi dalam satu port dapat difungsikan sebagi input dan output dengan nilai default nya berbedabeda. Gambar 2. menunjukkan setting konfigurasi pada port a dengan kombinasi input dan output yang berbeda-beda defaultnya.
27
Gambar 2.9 Tampilan Pemilihan Port I/O (Sumber : Musbikhin, 2012)
2.5.2.3 Inisialisasi Serial untuk mode RX interrupt
Gambar 2.10 Tampilan Inisialisasi Serial (Sumber : Musbikhin, 2012)
Untuk selanjutnya fasilitas-fasilitas lainnya dapat disetting sesuai kebutuhan dari pemrograman. Setelah selesai dengan Code WizardAVR, selanjutnya pada
28
menu File, pilih Generate, Save and Exit dan simpan pada direktori yang diinginkan. Pada proses penyimpanan (save) file akan diminta menyimpan tiga jenis file dengan ekstensi yang berbeda. Beri nama file source(*.c), file project (*.prj), dan file code wizard (*cwp) dengan nama yang sesuai, disarankan, beri nama ketiga file tersebut dengan nama yang sama, hal ini untuk memudahkan dalam mencari file dalam folder tempat kita menyimpan file tersebut apabila kita sudah banyak menyimpan file-file project menggunakan software codeVisionAVR.
Gambar 2.11 Jendela ‘save’ File Source(*.c) (Sumber : Musbikhin, 2012)
Gambar 2.12 Jendela ‘save’ File Project (*.prj) (Sumber : Musbikhin, 2012)
29
Gambar 2.13 Jendela ‘save’ File Codewizard (*cwp) (Sumber : Musbikhin, 2012)
Setelah selesai maka akan muncul jendela text-editor program seperti gambar berikut :
Gambar 2.14 Jendela Text-Editor Program Lengkap Dengan Hasil Pengaturan CodeWizardAVR (Sumber : Musbikhin, 2012)
30
Setelah itu melengkapi kode/program dengan mengkofigurasi project pada langkah sebelumnya, maka kita tinggal melengkapi dengan kode-kode (syntax) program yang akan kita perlukan.
Gambar 2.15 Program Yang Telah Dilengkapi Atau Diedit (Sumber : Musbikhin, 2012)
Jika program sudah selesai dibuat maka langkah selanjutnya adalah mengkompilasi (compile) program tersebut sehingga didapatkan file-file baru yang kita butuhkan. Langkahnya adalah pilih Project>>compile atau cukup tekan tombol shortcut F9. Jika dalam program masih ada kesalahan, maka akan muncul pesan dan peringatan error. Jika itu terjadi, perbaiki terlebih dahulu kesalahan yang terjadi kemudian lakukan kompilasi kembali. Jika sudah tidak ada kesalahan lagi selanjutnya pilih Project>>Make atau tekan shortcut Shift+F9.
31
Gambar 2.16 Jendela Cara Melakukan Kompilasi Program *.c ke *.hex (Sumber : Musbikhin, 2012)
Gambar 2.17 Jendela Informasi Kompilasi (Compile) Program (Sumber : Musbikhin, 2012)
32
Gambar 2.18 Jendela Informasi Assembly Program (Sumber : Musbikhin, 2012)
Jika langkah diatas berhasil maka akan diperoleh beberapa file baru, salah satunya adalah file berekstensi *hex (heksa) yang akan kita download kedalam IC mikrokontroller AVR. Berikut ini hasil kompilasi program dalam file *.hex.
33
Gambar 2.19 File Hexadecimal (*.hex) Hasil Kompilasi Program (Sumber : Musbikhin, 2012)
2.5.3 2.5.3.1
Dasar Pemrograman CodeVision AVR Tipe Data
Tipe Data merupakan hal salah satu hal yang terpenting dalam dunia pemograman. Pada CodeVison sendiri pada dasarnya terdapat 13 tipe data seperti yang ditunjukan tabel berikut ini :
34
Tabel 2.10 Tipe Data CodeVision AVR Type
Size (Bits)
Range
Bit
1
0,1
Char
8
-128 s/d 127
unsigned char
8
0 s/d 255
signed char
8
-128 s/d 127
Int
16
-32768 s/d 32767
unsigned int
16
-32768 s/d 32767
signed int
16
0 s/d 65535
long int
16
-326768 s/d 32767
unsigned long int
32
0 s/d 4294967295
signed long int
32
-2147483648 s/d 2147482647
Float
32
± 1.175e-38 s/d ± 3.402e38
Double
32 ± 1.175e-38 s/d ± 3.402e38 (Sumber : Edy, 2016)
Pemilihan tipe data yang tepat merupakan salah satu hal wajib, semisal ingin menampilkan bilangan 0-10 dan tipe data yang kita gunakan intenger maka sangat disayangkan banyak space memory yang terbuang percuma yang sebenarnya kita dapat mengunakan unsigned char yang hanya membutuhkan memori sebesar 8 Bit daripada Intenger yang membutuhkan 16 Bit.
2.5.3.2 Reserved Keywords Ada beberapa kata-kata yang telah ada dan disediakan oleh CodeVision sehingga tidak boleh digunakan pada code atau nama variable/konstanta. Indikasi suatu kata merupakan reserved keywords adalah kata yang tertuliskan secara BOLD. Kata-kata tersebut diantaranya :
35
Tabel 2.11Reserved Keywords Break
Flash
Signed
Bit
Float
Sizeof
Case
For
Sfrb
Char
Funcused
Sfrw
Const
Goto
Static
Continue
If
Struct
Default
Int
Double
Interrupt
Union
Eeprom
Register
Void
Enum
Return
Volatile
Extern
Short
while and … etc
(Sumber : Edy, 2016)
2.5.3.3 Operator Terdapat tiga tipe operator yang dapat digunakan untuk memanipulasi data, diantaranya: Tabel 2.12 Aritmatika Operator
Contoh
Keterangan
+
Temp1 = temp2 +
Penjumlahan
temp3 -
Temp1 = temp2 –
Pengurangan
temp3 ++
i++
Kenaikan/increment. n= n + 1
-
-i
Penurunan/decrement. n= n-1
*
c = a*b
Perkalian
n = n *2 %
Sisa = a % b
Menghasilkan sisa dari pembagian. a dan b bilangan bulat
=
a=b
Pemberian nilai
+=
a+=2
Penambahan suatu nilai pada variable yang telah ada nilai sebelumnya. a = a+2.
36
-=
a-=2
Pengurangan suatu nilai pada variable yang telah ada nilai sebelumnya. a = a – 2.
*=
a*=2
Pengalian suatu nilai pada veriabel yang telah ada nilai sebelumnya. a = a * 2.
/=
a /= 2
Pembagian suatu nilai pada variable yang telah ada nilai sebelumnya. a = a / 2.
%=
a %= 2
Sisa dari suatu nilai pada suatu variable yang sudah ada sebelumnya yang dibagi oleh nilai atau variable lain.
*
*pointer
Menunjukkan isi dari pointer
Tabel 2.13 Logika Simbol
Contoh
Logika pemabanding
==
If (a == b)
Logika sama dengan. Jika a sama dengan b maka bernilai true
!=
If (a != b)
Tidak sama dengan. Jika a tidak sama dengan b maka akan bernilai true.
<
If (a < b)
Logika lebih kecil dari. Jika a < b, maka akan bernilai true.
<=
If (a <= b)
Logika lebih kecil sama dengan dari. Jika a tidak sama dengan b, maka bernilai true.
>
If (a > b)
Logika lebih besar dari. Jika a > b, maka akan bernilai true.
>=
If (a >= b)
Logika lebih besar sama dengan dari. Jika a tidak sama dengan b, maka bernilai true.
!
if (!a)
Not a.
&&
If (a==b && a==c)
AND
37
||
If (a==b || a==c)
OR
Tabel 2.14 Manipulasi Bit ~
a=~b
Complement. b=1100; a=0011;
&
c=a&b
AND untuk mmanipulasi bit. a=1100; b=1001; maka c=1000.
|
c=a|b
Or untuk manipulasi data bit. a=1100; b=1001; maka c=1000.
^
c=a^b
XOR untuk manipulasi data bit. a=1100; b=1001; maka c=0101.
<<
c = a << n
Shift left, manipulasi bit menggeser ke kiri sejauh n bit. a=1101; b=1001;maka c=110100.
>>
c = a>>n
Shift right, manipulasi bit menggeser ke kanan sejauh n bit. a=1101; b=1001;maka c=0110 (Sumber : Edy, 2016)
2.5.4
Kontrol Program
Pada CodeVision AVR, kontrol program dapat dikelompokkan ke dalam dua kategori yaitu : berdasarkan perulangan dan percabangan. Berikut akan dijelaskan satu persatu, yaitu :
2.5.4.3 If-then Bentuk umum dari percabangan ini adalah: if (kondisi) { //pernyataan };
38
Maksudnya adalah pernyataan akan dijalankan jika kondisi terpenuhi.
2.5.4.4 If-then-else Bentuk umum dari percabangan ini adalah: if (kondisi) { //pernyataan a } else { //pernyataan b }; Maksudnya adalah pernyataan a akan dijalankan jika kondisi terpenuhi dan pernyataan b akan dijalankan jika kondisi tidak terpenuhi.
2.5.4.5 Switch-case Pernyataan switch – case digunakan jika terjadi banyak percabangan. Struktur penulisan pernyataan ini adalah sebagai berikut: … switch (ekspresi) { case konstanta1: pernyataan1 break; case konstanata2: pernyataan2 break; … case konstantaN: pernyataanN break; }
39
…
2.5.4.4 Switch-case-default Pernyataan switch – case – default hampir sama dengan switch – case, yang membedakan adalah bahwa dengan adanya default, maka jika tidak terdapat kondisi case sesuai dengan ekspresi, switch akan menuju pernyataan yang terdapat dibagian default. Struktur penulisan pernyataan ini adalah sebagai berikut: … switch (ekspresi) { case konstanta1: pernyataan1 break; case konstanata2: pernyataan2 break; … case konstantaN: pernyataanN break; default: pernyataan – pernyataan; } …
2.5.4.5 For Pernyataan for maksudnya akan melakukan perulangan berapa kali sesuai yang diinginkan. Struktur penulisan perulangan for adalah sebagai berikut: … For (mulai; kondisi; penambahan atau pengurangan) { pernyataan – pernyataan;
40
}; … Mulai adalah pemberian nilai awal, kemudian kondisi adalah pengondisi dalam for yaitu jika kondisi bernilai true maka pernyataan dalam for akan dijalanakan. Penambahan atau pengurangan adalah penambahan atau pengurangan terhadap nilai awal.
2.5.4.6 While Bentuk dari perulangan ini adalah sebagai berikut: while (kondisi) { peryataan – pernyataan; } Jika kondisi memenuhi (bernilai true) maka pernyataan-pernyataan di bawahnya akan dijalankan hingga selesai, kemudian akan menguji kembali kondisi di atas.
2.5.4.7 Do-while Bentuk perulangan ini kebalikan dari while – do, yaitu pernyataan dilakukan terlebih dahulu kemudian diuji kondisinya. do { pernyataan-pernyataan; } while (kodisi); Contoh: … i=1; a=1; do { a=a*2; PORTC=a; i++;
41
} while (i<50);
2.6
Sensor Strip Glukosa Sensor strip glukosa adalah sensor yang berbentuk strip (kepingan) yang
berfungsi untuk mendeteksi kadar gula dalam darah menjadi sinyal tegangan atau arus. Di dalam sensor strip glukosa mengandung enzim, kombinasi mediator dan sebuah rangkaian elektroda.
2.6.1 Spesifikasi Sensor Strip Glukosa Tabel 2.15 Sensor Strip Glukosa, Enzim dan Mediator yang Digunakan
(Sumber : Department of Chemical Engineering, University of Texas at Austin, Texas 78712, and Abbott Diabetes Care, 1360 South Loop Road, Alameda, California 94502) Dari tabel 2.15 diatas setiap sensor strip glukosa yang digunakan didalamnya terdapat enzim dan mediator yang berbeda-beda. Berikut ini adalah gambar bagian-bagian sensor strip glukosa secara umum :
42
Gambar 2.20 Bagian-Bagian Sensor Strip Glukosa (Sumber : Department of Chemical Engineering, University of Texas at Austin, Texas 78712, and Abbott Diabetes Care, 1360 South Loop Road, Alameda, California 94502) Fungsi bagian-bagian sensor strip glukosa : 1. Top plastic layer adalah lapisan plastik yang terbuat dari substrat yang berfungsi sebagai merek dari sensor strip glukosa. 2. Counter-reference and fill-detection electrodes adalah rangkaian referensi tegangan dan pendeteksi elektroda. 3. Adhesive adalah lapisan kapiler untuk menyimpan darah biasanya sebesar 1 µL. 4. Working electrode adalah rangkaian elektroda yang berfungsi untuk penerima sinyal listrik saat reaksi redoks terjadi. 5. Bottom plastic layer adalah lapisan penutup sensor strip glukosa yang berada dibawah. 6. Enzyme, mediator etc adalah tempat sampel darah terjadi redoks dengan enzim dan mediator.
43
2.6.2 Prinsip Kerja Sensor Strip Glukosa Glukosa atau suatu gula monosakarida adalah salah satu karbohidrat terpenting yang digunakan sebagai sumber tenaga bagi hewan dan tumbuhan. Glukosa merupakan salah satu hasil utama fotosintesis dan awal bagi respirasi (https://id.wikipedia.org/wiki/Glukosa diakses 20 April 2016 pukul 13.00 WIB).
Bentuk alami (D-glukosa) disebut juga dekstrosa, terutama pada industri pangan.
Gambar 2.21 Proyeksi Haworthstruktur Glukosa (α-D-glukopiranosa) (Sumber : https://id.wikipedia.org/wiki/Glukosa diakses 20 April 2016 pukul 13.00 WIB)
Glukosa (C6H12O6, berat molekul 180.18) adalah heksosa—monosakarida yang mengandung enam atom karbon. Glukosa merupakan aldehida(mengandung gugus -CHO). Lima karbon dan satu oksigennya membentuk cincin yang disebut "cincin piranosa", bentuk paling stabil untuk aldosaberkabon enam. Dalam cincin ini, tiap karbon terikat pada gugus sampinghidroksil dan hidrogen kecuali atom kelimanya, yang terikat pada atom karbon keenam di luar cincin membentuk suatu gugus CH2OH. Struktur cincin ini berada dalam kesetimbangan dengan bentuk yang lebih reaktif, yang proporsinya 0.0026% pada pH 7.
Gambar 2.22 Senyawa Glukosa (Sumber : https://id.wikipedia.org/wiki/Glukosa diakses 20 April 2016 pukul 13.00 WIB) Pada saat sensor strip glukosa mendapat tetesan sampel darah maka kadar glukosa dalam darah akan bereaksi dengan enzim menghasilkan potassium
44
peroksida, baru disinilah akan terjadi reaksi kimia. Oksidasi dari potassium peroksida akan diterima oleh rangkaian elektroda yang menghasilkan tegangan atau arus listrik yang sangat kecil yang sebanding dengan konsentrasi glukosa. 1. Kadar glukosa dlam darah akan terjadi oksidasi saat tercampur dengan enzim GOD(OX) yang ada pada sensor strip glukosa sehingga menghasilkan potassium peroksida.
2. Kemudian proses reduksi (pengurangan) enzim dilakukan oleh mediator ferricynaide dan elektron akan ditransfer ke working electrode pada sensor strip glukosa.
(Sumber : http://faculty.virginia.edu/analyticalchemistry/Electrochem Gluc/Electrochem.html diakses 20 April 2016 pukul 13.50 WIB)
Ketika terjadi pengumpulan elektron-elektron pada kutub positif yang menjadi sinyal tegangan listrik yang dihantarkan oleh sebuah elektroda dan proses pengumpulan elektron tersebut akan terus terjadi sampai proses oksidasinya habis, sehingga besarnya tegangan listrik dapat diukur oleh voltmeter.
45
Gambar 2.23 Proses Terjadinya Reaksi Elektroda (Sumber : http://faculty.virginia.edu/analyticalchemistry/Electrochem Gluc/Electrochem.html diakses 20 April 2016 pukul 13.50 WIB)
Selanjutnya, proses redoks dalam darah yang diterima oleh elektroda yang menghasilkan sebuah sinyal listrik sebanding dengan tingkat kosentrasi glukosa dalam darah, semakin besar tingkat glukosa dalam darah maka akan semakin besar sinyal listrik yang dihasilkan.
Gambar 2.24 Grafik konsentrasi glukosa dan arus dalam darah (Sumber : http://faculty.virginia.edu/analyticalchemistry/Electrochem Gluc/Electrochem.html diakses 20 April 2016 pukul 13.50 WIB)
46
Sinyal listrik yang dihasilkan oleh elektroda sensor strip glukosa sangat rendah untuk itu perlu adanya rangkaian penguat yang bertujuan agar nantinya sinyal listrik tersebut stabil dan terbaca untuk masukkan ADC pada mikrokontroller.
2.7
LCD (Liquid Crystal Display) LCD (Liquid Crystal Display) adalah salah satu jenis display elektronik
yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik.LCD (Liquid Crystal Display) berfungsi untuk menampilkan karakter angka, huruf ataupun simbol dengan lebih baik dan dengan konsumsi arus yang rendah. LCD (Liquid Crystal Display) dot matrik M1632 merupakan modul LCD buatan hitachi. Modul LCD (Liquid Crystal Display) dot matrik M1632 terdiri dari bagian penampil karakter (LCD) yang berfungsi menampilkan karakter dan bagian sistem prosesor LCD dalam bentuk modul dengan mikrokontroler yang diletakan dibagian belakang LCD tersebut yang berfungsi untuk mengatur tampilan LCD serta mengatur komunikasi antara LCD dengan mikrokontroler
yang
menggunakan
modul
LCD
tersebut.
(Sumber
:
http://elektronika-dasar.web.id/lcd-liquid-cristal-display/ diakses 20 April 2016 pukul 15.00 WIB)
2.7.1 Spesifikasi Fungsi Pin LCD (Liquid Cristal Display) LCD berukuran 16 karakter x 2 baris dengan fasilitas backlighting memiliki 16 pin yang terdiri dari 8 jalur data, 3 jalur kontrol dan jalur-jalur catu daya, dengan fasilitas pin yang tersedia maka lcd 16 x 2 dapat digunakan secara maksimal untuk menampilkan data yang dikeluarkan oleh mikrokontroler, secara ringkas fungsi pin-pin pada LCD ditunjukkan pada Tabel 2.2 berikut ini :
47
Tabel 2.16 Fungsi Pin-Pin Pada LCD
(Sumber : Berlian Ardo, 2010)
Gambar 2.25 Bentuk Fisik Beserta Pin-Pin LCD (Liquid Cristal Display) (Sumber : Berlian Ardo, 2010)
Sedangkan secara umum pin-pin LCD diterangkan sebagai berikut : 1. Pin 1 dan 2 Merupakan sambungan catu daya, Vss dan Vdd. Pin Vdd dihubungkan dengan tegangan positif catu daya, dan Vss pada 0V atau ground. Meskipun
48
data menentukan catu 5 Vdc (hanya pada beberapa mA), menyediakan 6V dan 4.5V yang keduanya bekerja dengan baik, bahkan 3V cukup untuk beberapa modul. 2. Pin 3 Pin 3 merupakan pin kontrol Vee, yang digunakan untuk mengatur kontras display. Idealnya pin ini dihubungkan dengan tegangan yang bisa diubah untuk memungkinkan pengaturan terhadap tingkatan kontras display sesuai dengan kebutuhan, pin ini dapat dihubungkan dengan variable resistor sebagai pengatur kontras. 3. Pin 4 Pin 4 merupakan Register Select (RS), masukkan yang pertama dari tiga command control input. Dengan membuat RS menjadi high, data karakter dapat ditransfer dari dan menuju modulnya. 4. Pin 5 Read/Write (R/W), untuk memfungsikan sebagai perintah write maka R/W low atau menulis karakter ke modul. R/W high untuk membaca data karakter atau informasi status dari registernya. 5. Pin 6 Enable (E), input ini digunakan untuk transfer aktual dari perintahperintah atau karakter antara modul dengan menghubungan data. Ketika menulis ke display, data ditransfer hanya pada perpindahan high atau low. Tetapi ketika membaca dari display, data akan menjadi lebih cepat tersedia setelah perpindahan dari low ke high dan tetap tersedia hingga sinyal low lagi. 6. Pin 7-14 Pin 7 sampai 14 adalah delapan jalur data/data bus (D0 sampai D7) dimana data dapat ditransfer ke dan dari display. 7. Pin 16 Pin 16 dihubungkan kedalam tegangan 5 Volt untuk memberi tegangan dan menghidupkan lampu latar/Back Light LCD.