BAB II LANDASAN TEORI 2.1. Mikrokontroler - Alat Ukur Konsentrasi Asap Rokok Berbasis Mikrokontroler Atmega8 Menggunakan Sensor MQ-2

BAB II LANDASAN TEORI

2.1. Mikrokontroler Mikrokontroler sering disebut sebagai mikrokomputer atau embedded system.

  Mikrokontroler dipandang sebagai suatu sistem yang terdiri atas input,program dan output. Mikrokontroler dapat diatur oleh sebuah program. Proses untuk memasukkan program ke dalam mikrokotroler disebut dengan download dan alat yang digunakan disebut dengan downloader. Seperti sistem komputer nilai tambah sistem mikrokontroler dapat dilipatgandakan melalui program. Mikrokontroler diproduksi dalam bentuk rangkaian terpadu (IC) seperti gambar dibawah ini.

Gambar 2.1. Gambaran Umum Mikrontroler

  Secara sederhana mikrokontroler adalah mikroprosesor yang dilengkapi dengan periperal dan peralatan pendukung yang di dalam mikroprosesor tidak dilengkapi.

  Dalam sistem tertanam berbasis mikroprosesor, pengantara periferal dan peralatan pendukung dalam mikrokontroler direalisisasikan dengan serpih rangkaian terpadu tambahan di luar mikroprosesor itu. Mikrokontroler menerapkan arsitektur Harvard, dalam arsitektur ini penjemputan instruksi dapat dilaksanakan secara bersamaan dengan pemindahan data. Tetapi dalam kebanyakan mesin dengan arsitektur Harvard juga memori tersebut dihubungkan ke bus bersama sehingga paralelismenya sangat berkurang. Secara umum, mikrokontroler mengandung tujuh komponen : Prosesor (CPU), ROM, RAM, bandar (port) I/O, Rangkaian Interupsi, Timer, dan Bus yang dihubungkan.

  • memori mendekodekan dan menjalankannya dan mengarahkan perpindahan data antar register atau antara register dan memori.

  : Prosesor (CPU) melaksanakan penjemputan intruksi dari Prosesor

  • Dalam mikrokontroler program disimpan dalam ROM, atau EPROM atau Flash EPROM. Ada mikrokontroler yang dapat ditambah ROM eksternal di luar serpih mikrokontroler. Disamping ROM untuk program juga digunakan EEPROM untuk menyimpan data.

  : digunakan untuk menyimpan data yang bersifat permanen. ROM

  • sementara. Dalam mikrokontroler, RAM yang tersedia sangat sedikit yang sebagiannya digunakan lagi sebagai register prosesor, dikatakan register dipetakan sebagai memori.

  : RAM digunakan untuk menyimpan data yang bersifat RAM

  • untuk membangkitkan pulsa atau deretan pulsa pada saat-saat tertentu atau dengan frekuensi tertentu. Pulsa ini digunakan untuk sebagai inetrupsi internal untuk memulai atau mengakhiri kegiatan tertentu. Dalam kebanyakan

  : Timer (pewaktu) adalah counter (pencacah) yang digunakan Timer mikrokontroler, pencacah ini adalah pencacah naik, berbeda dengan pencacah turun yang diterapkan dalam sistem mikroprosesor.

  • kemampuan tristate. Pada sebagian mikrokontroler disediakan bandar masukan/keluaran analog. Fungsi bandar ini pada umumnya dipilih (dikonfigurasi) sebagai masukan/keluaran paralel/seri analog. Arah aliran data pada Port masukan/keluaran pada umumnya dipilih melalaui register arah (Data Direction Register, disingkat DDR). Port ini juga dipetakan sebagai memori.

  Bandar I/O : Terdiri atas Port Paralel dan Port Seri yang mempunyai

  • dibangkitkan oleh interupsi yang ditanamkan dalam program dan interupsi perangkat keras yang dibangkitkan oleh sinyal perangkat keras yang baik yang berasal dari sumber internal seperti timer atau sumber eksternal dari port seri atau paralel.

  : interupsi dapat dibedakan atas interupsi perangkat lunak yang Interupsi

  • perangkat keras. Sebagaimana dalam mikroprosesor, bus dibedakan atas bus data, alamat dan kontrol. Bus data melakukan data antara register dan memori atau I/O, bus ini bersifat dua arah.

  : bus adalah saluran yang melakukan (membawa) sinyal-sinyal Bus

  Beberapa contoh keluarga mikrokontroler : Keluarga MCS-48

  • Keluarga MCS-51
  • Keluarga MC68HC05
  • Keluarga MC68HC08
  • Keluarga MC68HC11
  • >KeluargaPIC 8

  • 2.2. ATMEGA8

  Keluarga AVR

  AVR merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai macam fungsi. Perbedaannya pada mikro yang pada umumnya digunakan seperti MCS51 adalah pada AVR tidak perlu menggunakan oscillator eksternal karena di dalamnya sudah terdapat internal oscillator. Selain itu kelebihan dari AVR adalah memiliki Power-On Reset, yaitu tidak perlu ada tombol reset dari luar karena cukup hanya dengan mematikan supply, maka secara otomatis AVR akan melakukan reset.

  Untuk beberapa jenis AVR terdapat beberapa fungsi khusus seperti ADC, EEPROM sekitar 128 byte sampai dengan 512 byte.

Gambar 2.2. ATMEGA8

  AVR ATmega8 adalah mikrokontroler CMOS 8-bit berarsitektur AVR RISC yang memiliki 8K byte in-System Programmable Flash. Mikrokontroler dengan konsumsi daya rendah ini mampu mengeksekusi instruksi dengan kecepatan maksimum 16MIPS pada frekuensi 16MHz. Jika dibandingkan dengan ATmega8L perbedaannya hanya terletak pada besarnya tegangan yang diperlukan untuk bekerja. Untuk ATmega8 tipe L, mikrokontroler ini dapat bekerja dengan tegangan antara 2,7 - 5,5V sedangkan untuk ATmega8 hanya dapat bekerja pada tegangan antara 4,5–5,5 V.

2.2.1. Konfigurasi Pin Atmega8

Gambar 2.3. Konfigurasi Pin Atmega8

  ATmega8 memiliki 28 Pin, yang masing-masing pin nya memiliki fungsi yang berbeda-beda baik sebagai port maupun fungsi yang lainnya. Berikut akan dijelaskan fungsi dari masing-masing kaki ATmega8.

  a.

  VCC Merupakan supply tegangan digital.

b. GND Merupakan ground untuk semua komponen yang membutuhkan grounding.

  c. Port B (PB7...PB0)

  Didalam Port B terdapat XTAL1, XTAL2, TOSC1, TOSC2. Jumlah Port B adalah 8 buah pin, mulai dari pin B.0 sampai dengan B.7. Tiap pin dapat digunakan sebagai input maupun output. Port B merupakan sebuah 8-bit bi-

  

directional I/O dengan internal pull-up resistor. Sebagai input, pin-pin yang

  terdapat pada port B yang secara eksternal diturunkan, maka akan mengeluarkan arus jika pull-up resistor diaktifkan. Khusus PB6 dapat digunakan sebagai input Kristal (inverting oscillator amplifier) dan input ke rangkaian clock internal, bergantung pada pengaturan Fuse bit yang digunakan untuk memilih sumber clock. Sedangkan untuk PB7 dapat digunakan sebagai output Kristal (output

  

oscillator amplifier ) bergantung pada pengaturan Fuse bit yang digunakan untuk

  memilih sumber clock. Jika sumber clock yang dipilih dari oscillator internal, PB7 dan PB6 dapat digunakan sebagai I/O atau jika menggunakan maka PB6 dan PB7 (TOSC2 dan TOSC1) digunakan untuk saluran input timer.

Tabel 2.1. Fungsi Alternatif Port B

d. Port C (PC5…PC0)

  Port C merupakan sebuah 7-bit bi-directional I/O port yang di dalam masing- masing pin terdapat pull-up resistor. Jumlah pin nya hanya 7 buah mulai dari pin C.0 sampai dengan pin C.6. Sebagai keluaran/output port C memiliki karakteristik yang sama dalam hal menyerap arus (sink) ataupun mengeluarkan arus (source). ADC 6 channel (PC0,PC1,PC2,PC3,PC4,PC5) dengan resolusi sebesar 10bit. ADC dapat kita gunakan untuk mengubah input yang berupa tegangan analog menjadi data digital. I2C (SDA dan SDL) merupakan salah satu fitur yang terdapat pada PORTC. I2C digunakan untuk komunikasi dengan sensor atau device lain yang memiliki komunikasi data tipe I2C seperti sensor kompas,

  accelerometer nunchuck , dll.

e. RESET/PC6

  Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi sebagai pin I/O. Pin ini memiliki karakteristik yang berbeda dengan pin-pin yang terdapat pada port C lainnya. Namun jika RSTDISBL Fuse tidak diprogram, maka pin ini akan berfungsi sebagai input reset. Dan jika level tegangan yang masuk ke pin ini rendah dan pulsa yang ada lebih pendek dari pulsa minimum, maka akan menghasilkan suatu kondisi reset meskipun clock-nya tidak bekerja. RESET merupakan salah satu pin penting di mikrokontroler, RESET dapat digunakan untuk merestart program. Pada ATMega8 pin RESET digabungkan dengan salah satu pin IO (PC6). Secara default PC6 ini di disable dan diganti menjadi pin RESET. Kita dapat melakukan konfigurasi di fusebit untuk melakukan pengaturannya.

Tabel 2.2. Fungsi Alternatif Port C

f. Port D (PD7…PD0) Port D merupakan 8-bit bi-directional I/O dengan internal pull-up resistor.

  Fungsi dari port ini sama dengan port-port yang lain. Hanya saja pada port ini tidak terdapat kegunaan-kegunaan yang lain. Pada port ini hanya berfungsi sebagai masukan dan keluaran saja atau biasa disebut dengan I/O.

Tabel 2.3. Fungsi Alternatif Port D

  USART (TXD dan RXD) merupakan jalur data komunikasi serial dengan level sinyal TTL. Pin TXD berfungsi untuk mengirimkan data serial, sedangkan RXD kebalikannya yaitu sebagai pin yang berfungsi untuk menerima data serial. Interrupt (INT0 dan INT1) merupakan pin dengan fungsi khusus sebagai interupsi

  

hardware . Interupsi biasanya digunakan sebagai selaan dari program, misalkan

  pada saat program berjalan kemudian terjadi interupsi hardware/software maka program utama akan berhenti dan akan menjalankan program interupsi. XCK dapat difungsikan sebagai sumber clock external untuk USART, namun kita juga dapat memanfaatkan clock dari CPU, sehingga tidak perlu membutuhkan external

  

clock . T0 dan T1 berfungsi sebagai masukan counter external untuk timer 1 dan timer 0. AIN0 dan AIN1 keduanya merupakan masukan input untuk analog comparator.

  g. Avcc

  Pin ini berfungsi sebagai supply tegangan untuk ADC. Untuk pin ini harus dihubungkan secara terpisah dengan VCC karena pin ini digunakan untuk analog saja. Bahkan jika ADC pada AVR tidak digunakan tetap saja disarankan untuk menghubungkannya secara terpisah dengan VCC. Jika ADC digunakan, maka AVcc harus dihubungkan ke VCC melalui low pass filter.

  h. AREF Merupakan pin referensi jika menggunakan ADC.

2.2.2. Status Register

  Pada AVR status register mengandung beberapa informasi mengenai hasil dari kebanyakan hasil eksekusi instruksi aritmatik. Informasi ini digunakan untuk altering arus program sebagai kegunaan untuk meningkatkan performa pengoperasian. Register ini di-update setelah operasi ALU (Arithmetic Logic Unit) hal tersebut seperti yang tertulis dalam datasheet khususnya pada bagian Instruction Set Reference.

  Dalam hal ini untuk beberapa kasus dapat membuang penggunaan kebutuhan instruksi perbandingan yang telah didedikasikan serta dapat menghasilkan peningkatan dalam hal kecepatan dan kode yang lebih sederhana dan singkat. Register ini tidak secara otomatis tersimpan ketika memasuki sebuah rutin interupsi dan juga ketika menjalankan sebuah perintah setelah kembali dari interupsi. Namun hal tersebut harus dilakukan melalui software. Berikut adalah gambar status register.

Gambar 2.4. Status Register ATMega8

  Penjelasan : Bit 7(I)

  • Merupakan bit Global Interrupt Enable. Bit ini harus di-set agar semua perintah interupsi dapat dijalankan. Untuk perintah interupsi individual akan di jelaskan pada bagian yang lain. Jika bit ini di-reset, maka semua perintah interupsi baik yang individual maupun yang secara umum akan di abaikan. Bit ini akan dibersihkan atau cleared oleh hardware setelah sebuah interupsi di jalankan dan akan di-set kembali oleh perintah RETI. Bit ini juga dapat di-set dan di-reset melalui aplikasi dan intruksi SEI dan CLL.
  • Merupakan bit Copy Storage. Instruksi bit Copy Instructions BLD (Bit Load) and BST (Bit Store) menggunakan bit ini sebagai asal atau tujuan untuk bit yang telah dioperasikan. Sebuah bit dari sebuah register dalam Register File dapat disalin ke dalam bit ini dengan menggunakan instruksi BST, dan sebuah bit di dalam bit ini dapat disalin ke dalam bit di dalam register pada Register File dengan menggunakan perintah BLD.

  Bit 6(T)

  • Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry dalam beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatika BCD.

  Bit 5(H)

  Bit 4(S)

Merupakan Sign bit. Bit ini selalu merupakan sebuah ekslusif di antara Negative Flag (N) dan two’s Complement Overflow Flag (V).

  • Merupakan bit Two’s Complement Overflow Flag. Bit ini menyediakan fungsi aritmatika dua komplemen.

  Bit 3(V)

  • Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil negative di dalam sebuah fungsi logika atai aritmatika.

  Bit 2(N)

  • Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah jasil nol “0” dalan sebuah fungsi aritmatika atau logika.

  Bit 1(Z)

  • Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah Carry atau sisa dalam sebuah aritmatika atau logika.

  Bit 0(C)

2.2.3. Memori AVR Atmega

  Memori atmega terbagi menjadi tiga yaitu :

a. Memori Flash

  Memori flash adalah memori ROM tempat kode-kode program berada. Kata flash menunjukan jenis ROM yng dapat ditulis dan dihapus secara elektrik. Memori flash terbagi menjadi dua bagian yaitu bagian aplikasi dan bagian boot. Bagian aplikasi adalah bagian kode-kode program apikasi berada. Bagian boot adalah bagian yang digunakan khusus untuk booting awal yang dapat diprogram untuk menulis bagian aplikasi tanpa melalui programmer/downloader, misalnya melalui USART.

Gambar 2.5. Peta Memory ATMEGA8

  b. Memori Data Memori data adalah memori RAM yang digunakan untuk keperluan program.

  Memori data terbagi menjadi empat bagian yaitu : 32 GPR (General Purphose

  

Register ) adalah register khusus yang bertugas untuk membantu eksekusi

  program oleh ALU (Arithmatich Logic Unit), dalam instruksi assembler setiap instruksi harus melibatkan GPR. Dalam bahasa C biasanya digunakan untuk variabel global atau nilai balik fungsi dan nilai-nilai yang dapat memperingan kerja ALU. Dalam istilah processor komputer sahari-hari GPR dikenal sebagai “chace memory”.I/O register dan Aditional I/O register adalah register yang difungsikan khusus untuk mengendalikan berbagai pheripheral dalam mikrokontroler seperti pin port, timer/counter, usart dan lain-lain. Register ini dalam keluarga mikrokontrol MCS51 dikenal sebagai SFR (Special Function

  Register ).

  c. EEPROM

  EEPROM adalah memori data yang dapat mengendap ketika chip mati (off), digunakan untuk keperluan penyimpanan data yang tahan terhadap gangguan catu daya.

2.2.4. Timer/Counter 0

  Timer/counter 0 adalah sebuah timer/counter yang dapat mencacah sumber pulsa/clock baik dari dalam chip (timer) ataupun dari luar chip (counter) dengan kapasitas 8-bit atau 256 cacahan. Timer/counter dapat digunakan untuk : Timer/counter biasa.

  • Clear Timer on Compare Match (selain Atmega 8)
  • Generator frekuensi (selain Atmega 8)
  • Counter pulsa eksternal
  • 2.2.5. Komunikasi Serial Pada Atmega 8

  Mikrokontroler AVR Atmega 8 memiliki Port USART pada Pin 2 dan Pin 3 untuk melakukan komunikasi data antara mikrokontroler dengan mikrokontroler ataupun mikrokontroler dengan komputer. USART dapat difungsikan sebagai transmisi data sinkron, dan asinkron. Sinkron berarti clock yang digunakan antara transmiter dan

  

receiver satu sumber clock. Sedangkan asinkron berarti transmiter dan receiver

  mempunyai sumber clock sendiri-sendiri. USART terdiri dalm tiga blok yaitu clock generator, transmiter, dan receiver.

  2.2.6. Arsitektur Mikrokontroler Atmega8

Gambar 2.6. Blok Diagram ATmega8

  2.2.7. Kelebihan (Fitur) Mikrokontroler AVR ATmega8

  Mikrokontroler AVR ATmega8 merupakan CMOS dengan konsumsi daya rendah, mempunyai 8-bit proses data (CPU) berdasarkan arsitektur AVR RISC.

  Dengan mengeksekusi instruksi dalam satu (siklus) clock tunggal, ATmega8 memiliki kecepatan data rata-rata (throughputs) mendekati 1 MIPS per MHz, yang memungkinkan perancang sistem dapat mengoptimalkan konsumsi daya dan kecepatan pemrosesan. Berikut kelebihan yang dimiliki ATmega8 :

  1. Kinerja Tinggi, Low-power AVR® 8-bit Microcontroller Seperti yang disebutkan Atmel dalam websitenya "The low-power Atmel 8-bit

  AVR RISC-based microcontroller... The device supports throughput of 16 MIPS at 16 MHz and operates between 2.7-5.5 volts ". AVR (Alf (Egil Bogen) and Vegard (Wollan) 's Risc processor ) mengeluarkan ATmega8 dengan fitur

  yang sangat menarik untuk dicoba. Selama ini Penulis masih merasakan bahwa ATmega8 sangat bagus dalam hal kinerja, cocok untuk penelitian, pembuatan produk, bahkan untuk pembelajaran Robotik. Disamping kinerjanya yang handal, ATmega8 juga hemat energi (daya rendah), karena mampu beroperasi pada tegangan 2,7 sampai 5,5 Volt, dan hanya mengkonsumsi arus sebesar 3,6 mA.

  2. Kemajuan Arsitektur RISC Mikrokontroler AVR memiliki arsitektur Reduced Instruction Set Computing (RISC) atau "set instruksi Komputasi yang disederhanakan".

  Arsitektur Reduced Instruction Set Computing (RISC) atau "Set instruksi Komputer yang disederhanakan" pertama kali digagas oleh John Cocke, peneliti dari IBM di Yorktown, New York pada tahun 1974 saat ia membuktikan bahwa sekitar 20% instruksi pada sebuah prosesor ternyata menangani sekitar 80% dari keseluruhan kerjanya. Komputer pertama yang menggunakan konsep RISC ini adalah IBM PC/XT pada era 1980-an. Istilah RISC sendiri pertama kali dipopulerkan oleh David Patterson, pengajar pada

  University of California di Berkely

  . Atmel AVR adalah jenis mikrokontroler yang paling sering dipakai dalam bidang elektronika dan instrumentasi. Mikrokontroler AVR ini memiliki arsitektur RISC delapan bit, di mana semua instruksi dikemas dalam kode 16-bit (16 bits word) dan sebagian besar instruksi dieksekusi dalam 1 (satu ) siklus clock.

3. Daya Tahan Tinggi dan Segmen Memori non-volatile.

  Mikrokontroler AVR memiliki daya tahan data (retensi data) 20 tahun ketika suhu mencapai 85°C atau 100 tahun ketika suhu mencapai 25°C. ATmega8 memiliki 8 KB (KiloByte) memori Flash internal yang dapat dimasukan kode program utama (seperti file .hex) sehingga cukup untuk diterapkan dalam penelitian skala kecil - menengah. Disamping memori Flash, ATmega8 juga memiliki 512 Byte EEPROM yang dapat menampung data meskipun dalam keadaan OFF. Mikrokontroler ini juga memiliki 1K Byte Internal SRAM sehingga proses data bisa lebih cepat.

Gambar 2.7. Flash ATmega8

  Kelebihan lainnya dari ATmega8 adalah : Dapat diisi data (write) dan dihapus (eraser) sampai 10.000 kali (untuk Flash)

   dan 100.000 kali untuk EEPROM Memiliki daya tahan data (retensi data) 20 tahun ketika suhu mencapai 85°C

   atau 100 tahun ketika suhu mencapai 25°C

  Terdapat pilihan Kode Boot Section dengan Lock Bits independen

   Sistem keamanan data dengan mengunci program untuk Software Security

2.3. Sensor MQ-2

  MQ-2 adalah komponen elektronika untuk mendeteksi kadar gas hidrokarbon seperti iso butana (C

  4 H 10 / isobutane), propana (C

  3 H 8 / propane), metana (CH 4 /

methane ), etanol (ethanol alcohol, CH CH OH), hidrogen (H / hydrogen),

  3

  2

  2

  dan LPG (liquid petroleum gas). Gas sensor ini dapat digunakan untuk mendeteksi kebocoran gas di rumah / pabrik, misalnya untuk membuat rangkaian elektronika pendeteksi kebocoran elpiji.

  MQ-2 berfungsi untuk mendeteksi keberadaan asap rokok di udara. Sensor akan mendeteksi keberadaan gas yang terkandung dalam asap rokok seperti asap maka resistansi elektrik sensor akan turun. Memanfaatkan prinsip kerja dari sensor MQ-2 ini, kandungan gas asap tersebut dapat terdeteksi. Sensor MQ-2 ini memiliki 6 buah masukan yang terdiri dari tiga buah supply power (VCC) sebasar +5 volt untuk mengaktifkan heater dan sensor, VSS (Ground), dan pin keluaran dari sensor tersebut.

  Pin keluaran dari sensor dihubungkan dengan ADC 0832 pada chanel 2 sebagai masukan. Tampilan sensor asap rokok MQ-2 seperti pada gambar di bawah ini.

Gambar 2.8. sensor MQ-2 Nilai RL sesuai dengan datasheet yaitu 10 KΩ. Tingkat sensitivitas sensor MQ-2 bervariasi untuk masing-masing tipe gas hidrokarbon yang dapat dideteksi sesuai tabel berikut ini:

  • LPG & propana: 200 - 5000 ppm
  • i-butana: 300 - 5.000 ppm
  • metana: 5.000 - 20.000 ppm (untuk sensor yang lebih sensitif terhadap

  methane , gunaka

  • hidrogen: 300 - 5.000 ppm
  • etanol / alkohol: 100 - 2.000 ppm (bila diperlukan sensor yang spesifik untuk

  alkohol, gunaka Keluaran sensor ini berupa resistansi analog yang dengan mudah dapat dikonversi menjadi tegangan dengan menambahkan satu resistor biasa (bisa juga menggunakan potensiometer sehingga ambang batas sensitivitas deteksi dapat disetel sesuai kebutuhan). Dengan mengkonversi impedansi ini menjadi tegangan, hasil bacaan sensor dapat dibaca oleh pin ADC (analog to digital converter) pada Nilai resistansi dari MQ-2 adalah perbedaan untuk berbagai jenis dan berbagai gas konsentrasi. Sensor ini, penyesuaian sensitivitas sangat diperlukan dengan mengkalibrasi detektor untuk 1000ppm liquified petroleum gas (LPG), atau konsentrasi 1000ppm iso-butana (i-C4H10) nilai udara dan penggunaan Resistensi beban yang (RL) sekitar 20 KΩ (5KΩ dengan 47 KΩ). Ketika akurat mengukur, titik alarm yang tepat untuk detektor gas harus ditentukan setelah mempertimbangkan pengaruh suhu dan kelembaban.

2.4. Code Vision 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: Compiler 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).

  Ada beberapa program yang dapat digunakan sebagai editor dan compiler untuk mikrokontroler AVR, salah satunya adalah Code Vision. CodeVision AVR merupakan sebuah software yang digunakan untuk memprogram mikrokontroler sekarang ini telah umum. CodeVision AVR adalah salah satu alat bantu pemrograman yang bekerja dalam pengembangan di lingkungan perangkat lunak yang telah terintegrasi (Integrated Development Environment, IDE). Seperti aplikasi IDE lainnya Code VisionAVR dilengkapi dengan source code editor, compiler, linker, dan dapat memanggil Atmel AVR Studio untuk debuggernya. Mulai dari penggunaan untuk kontrol sederhana sampai kontrol yang cukup kompleks, mikrokontroler dapat berfungsi jika telah diisi sebuah program, pengisian program ini dapat dilakukan menggunakan compiler yang selanjutnya diprogram ke dalam mikrokontroler menggunakan fasilitas yang sudah disediakan oleh program tersebut.

  Salah satu compiler program yang umum digunakan sekarang ini adalah CodeVision AVR yang menggunakan bahasa pemrograman C. CodeVision AVR mempunyai suatu keunggulan dari compiler lain, yaitu adanya codewizard, fasilitas ini memudahkan kita dalam inisialisasi mikrokontroler yang akan kita gunakan. Untuk memulai menjalannkan CodeVision buka program CodeVision lalu melalui menu Start|ALL Program||CodeVision|CodeVisionAVR C Compiler atau melalui lambang CodeVision melalui dekstop.

2.5. LCD (Liquid Cristal Display)

  LCD (Liquid Cristal Display) adalah salah satu komponen elektronika yang berguna untuk menampilkan suatu data, baik karakter, huruf maupun grafik.

  Tampilan LCD sudah tersedia dalam bentuk modul yaitu tampilan LCD beserta rangkaian pendukungnya termasuk ROM dan pelengkap lainnya. LCD mempunyai pin data, kontrol catu daya, dan pengatur kontras tampilan. LCD dapat bekerja dengan tegangan sebesar 5 volt yang didapat dari keluaran mikrokontroler, untuk itu biasanya LCD dihubungkan dengan mikrokontroler.

  LCD adalah modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang paling banyak digunakan saat ini ialah LCD M1632 refurbish karena harganya cukup murah. LCD M1632 merupakan modul LCD dengan tampilan 2x16 (2 baris x 16 kolom) dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD.

Gambar 2.9. LCD 2x16 Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD memiliki CGROM (Character Generator Read Only Memory), CGRAM (Character

  

Generator Random Access Memory ), dan DDRAM (Display Data Random Access

Memory

  ). driver LCD seperti HD44780 memiliki dua register yang aksesnya diatur menggunakan pin RS. Pada saat RS berlogika 0, register yang diakses adalah perintah, sedangkan pada saat RS berlogika 1, register yang diakses adalah register data.

Gambar 2.10. Susunan Alamat pada LCD

  Alamat awal karakter 00H dan alamat akhir 39H. Jadi, alamat awal di baris kedua dimulai dari 40H. Jika Anda ingin meletakkan suatu karakter pada baris ke-2 kolom pertama, maka harus diset pada alamat 40H. Jadi, meskipun LCD yang digunakan 2x16 atau 2x24, atau bahkan 2x40, maka penulisan programnya sama saja.

  CGRAM merupakan memori untuk menggambarkan pola sebuah karakter, dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan. Namun, memori akan hilang saat power supply tidak aktif sehingga pola karakter akan hilang. Berikut tabel pin untuk LCD M1632. Perbedaannya dengan LCD standar adalah pada kaki 1

  VCC, dan kaki 2 Gnd. Ini kebalikan dengan LCD standar.

Tabel 2.4. Pin untuk LCD

  Kaki pin LCD 16x2 memiliki beberapa fungsi dan kegunaan yang sesuai dengan karakteristik sebagai berikut :

  1. Pin data Pin data dapat dihubungkan dengan bus data dari rangkaian lain seperti Mikrokontroler dengan lebar data 8 bit. Pin data ini berguna untuk menampilkan data yang terbaca dari mikrokontroler.

  2. Pin RS (Register Select) Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data yang masuk, apakah data atau perintah. Logika low menunjukan yang masuk adalah perintah, sedangkan logika high menunjukan yang masuk adalah data.

  3. Pin R/W (Read Write) Pin R/W (Read Write) berfungsi sebagai instruksi pada LCD jika low tulis data, sedangkan high baca data. Pin R/W juga sering disebut dengan pin perintah.

  4. Pin E (Enable) Pin E (Enable) digunakan untuk membaca data baik masuk atau keluar. Data masukan ataupun keluaran dari mikrokontroler yang akan ditampilkan pada layar LCD 16x2.

  5. Pin LCD Pin LCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini dihubungkan dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan dengan ground, sedangkan tegangan catu daya yang dibutuhkan untuk mengaktifkan LCD sebesar 5 volt.

2.5.1 Cara Kerja LCD

  Untuk menerima data dari mikrokontroler adalah pin D1-D7 dimana untuk menerima data, pin 5 pada LCD (R/W) harus diberi logika nol dan logika satu untuk mengirimkan data ke mikrokontroler. Setiap menerima atau mengirimkan data untuk mengaktifkan LCD diperlukan sinyal E (chip Enable) dalam bentuk perpindahan logika 1 ke logika 0. Sedangkan pin RS (Register Selector) berguna untuk memilih instructio register (IR) atau data register (DR). Jika nilai RS 1 dan R/W 1 maka akan dilakukan operasi penulisan data ke DDRAM atau CGRAM. Sedangkan jika RS berlogika 1 dan berlogika R/W 1 maka akan membaca data dari DDRAM atau CGRAM ke register DR. Karakter yang ditampilkan ke display disimpan di memori DDRAM.

  Fungsi display dalam suatu aplikasi microcontroller sangat penting sekali . diantaranya untuk: