BAB II KAJIAN PUSTAKA
A. Kajian Teori
5. Mikrokontroler AVR
Kelengkapan fasilitas atau fitur yang dimiliki oleh mikrokontoler dapat digunakan secara maksimal oleh seorang programmer yang dapat digunakan untuk mengendalikan keluaran seperti LCD, lampu LED sebagai output, maupun yang lainnya. Menurut Suprapto (2012:18) , saat ini di Indonesia mikrokontroler jenis AVR yang paling banyak digunakan, karena fitur yang berada di dalam mikrokontroler jenis tersebut cukup lengkap, murah, dan banyak dijual dipasaran. Beberapa jenis mikrokontroler memang memiliki kelengkapan yang berbeda-beda, namun memiliki arsitektur yang sama dan set intruksinya hampri sama pula. Mikrokontroler AVR merupakan seri andalan buatan ATMEL. Pemilihan seri mikrokontroler yang akan digunakan oleh seorang pemrogram yaitu berdasarkan fitur yang dimiliki oleh IC tersebut, adapun perbandingan seri mikrokontroler buatan ATMEL dapat dilihat pada Tabel 3 dibawah ini sebagai pedoman dalam memilih jenis yang akan digunakan.
20
Tabel 3. Perbandingan Seri Mikrokontroler Buatan ATMEL (sumber Suprapto, 2012:19) Seri Mikrokontro ler Flas h (KB) RAM (Byte) EEPRO M(KB) PIN I/O TIMER 16bit Timer 8bit U A R T P W M ADC 10bit S P I IS P ATmega 8 8 1024 0.5 23 1 1 1 3 6/8 1 Ya ATmega 8535 8 512 0.6 32 2 2 1 4 8 1 Ya ATmega 16 16 1024 0.7 32 1 2 1 4 8 1 Ya ATmega 162 16 1024 0.8 35 2 2 2 6 8 1 Ya ATmega 32 32 2048 1 32 1 2 1 4 8 1 Ya ATmega128 128 4096 4 53 2 2 2 8 8 1 Ya ATtiny12 1 - 0.0625 6 - 1 - - - - Ya ATtiny2313 2 128 0.125 18 1 1 1 4 - 1 Ya ATtiny44 4 256 0.25 12 1 1 - 4 8 1 Ya ATtiny84 8 512 0.5 12 1 1 - 4 8 1 Ya
Adapun penjelasan dari fitur-fitur dari beberapa jenis ATmega berdasarkan tabel di atas yaitu memori flash, memori RAM, EEPROM, PORT I/O, timer, UART, PWM, ADC, SPI, ISP. Fitur dari mikrokontroler terdapat flash adalah salah satu jenis Read Only Memory yang biasanya diisi program buatan seorang pemrogram, memori jenis ini ketika mikrokontroler direset maka program akan dibaca dari awal/hasil terakhir tidak disimpan. Fitur kedua yang dimiliki yaitu RAM (Random
Acces Memory) adalah merupakan memori yang membantu CPU untuk
menyimpan data sementara dan pengolahan data pada saat program dijalankan. Fitur ketiga yang dimiliki yaitu EEPROM (Electrically Erasable
Programmable Read Only Memory) adalah memori untuk penyimpanan data
secara permanen oleh program yang sedang dijalankan, memori yang disimpan tidak akan berubah pada saat mikrokontroler direset. Mikrokontroler juga memiliki Port I/O adalah pin/kaki untuk jalur keluaran dan masukan yang ada di dalam mirkrokontroler, mikrokontroler juga memiliki fasilitas Timer adalah fitur
21
mikrokontroler yang berfungsi mengeksekusi program sesuai waktu yang dikehendaki oleh pemrogram. Mikrokontroler juga memiliki UART (Universal Asynchronous Receive Transmit) sebagai jalur komunikasi secara serial tak sinkron.
Fasilitas lain yaitu PWM (Pulse Width Modulation), mikrokontroler dapat membuat gelombang kotak yang dapat diatur kecepatan hidup-mati (modulasi gelombang). Mikrokontroler terdapat fitur ADC (Analog to Digital Converter) adalah fitur dari IC mikrokontroler yang dapat mengkonversi nilai analog yang berupa tegangan ke dalam bentuk nilai digital. Fitur lain yaitu SPI (Serial Peripheral Interface) adalah jalur komunikasi data secara serial sinkron. Fitur yang terahkir yaitu ISP (In System Programming) adalah kemampuan IC mikrokontroler untuk dapat diprogram secara langsung yang hanya membutuhkan kaki yang minimalis. (Suprapto, 2012 :20).
a. Pemrograman mikrokontroler
Terdapat beberapa bahasa pemrograman yang digunakan utnuk menulis program dari komputer. Bahasa pemrograman seperti dalam Suprapto (2012, 33-35) adalah sebuah notasi yang memiliki suatu ketentuan khusus pada setiap jenis bahasa pemrograman untuk memprograman melalui komputer ke suatu objek yang diprogram.
Bahasa pemrograman dibagi menjadi dua tingkat, yaitu bahasa mesin, bahasa tingkat tinggi dan tingkat rendah. Bahasa mesin (machine language) yaitu bahasa yang sulit dipahami oleh manusia, namun proses eksekusinya sangat cepat, dan memerlukan penerjemah atau interpreter. Bahasa tingkat rendah (low level language) atau bahasa assembly adalah bahasa yang apabila di eksekusi
22
harus ada assembler untuk menerjemahkan ke mesin, bahasa pemrograman jenis ini juga sulit dipahami oleh manusia.
Jenis bahasa pemrograman yang terakhir yaitu bahasa tingkat tinggi(high level language) yaitu bahasa yang mudah dipahami oleh manusia karena susunan bahasanya mirip bahasa manusia, apabila dieksekusi bahasa ini memerlukan compiler atau interpreter. Bahasa tingkat tinggi memiliki beberapa jenis seperti basic, fortran, cobol, pascal, C, C++, C#, java dan visual basic.
Pada pemrograman mikrokontroler bahasa yang digunakan yaitu bahasa C. Menurut Andik Asmara (2013:1) bahasa C digunakan didunia pendidikan karena struktur dan kemudahan untuk memahami yang dipilih sebagai bahasa pemrograman mikrokontroler. Manusia akan memrogram menggunakan bahasa C akan diterjemahkan ke dalam bentuk bahasa tingkat rendah oleh software lalu dikirim ke mikrokontroler. Bahasa C memiliki sifat case sensitive, yaitu dalam penulisan program peka mendeteksi perbedaan huruf kapital dan tidak kapital pada pendeklarasian maupun memrogram mikrokontroler.
b. ATmega32
Pada penelitian yang dilakukan peneliti akan menggunakan mikrokontroler ATmega32. Berdasarkan Datasheet IC Mikrokontroler ATmega32 adapun Fitur dan fasilitas dari ATmega32 ditinjau dari kecanggihan arsitektur RISC (Reduced Instruction Set Computer) , ATmega32 memiliki 131 instruksi andal yang umumnya hanya membutuhkan 1 siklus clock dan 32 x 8 yang bersifat general purpose working register. Kecepatan mikrokonroler mencapai 16 MIPS(million instruction per second) serta On-chip 2-cycle multiplier.
23
Mikrokontroler ATmega32 memiliki memori program dan memori data yang bersifat Non-volatile seperti memiliki memori flash sebesar 32K Bytes yang bersifat In-System Self-Programmable dan memiliki kapasitas EEPROM 1024 Bytes dan memori internal SRAM sebesar 2K Byte. Dapat diisi program atau dihapus sebanyak 10.000 kali untuk memori flash, 100.000 memori EEPROM. Pada sisi pemrograman, mikrokontroler ini juga dilengkapi dengan fasilitas programming lock untuk mengamankan program yang sudah ada di dalam IC supaya aman. Memiliki optional boot code section with independet lock bits.
Selain itu mikrokontroler ATmega32 memiliki beberapa fitur periperal yaitu memiliki dua buah timer/counter 8bit dengan mode separate prescaler dan compare, Satu buah timer/counter 16bit dengan mode separate prescaler, compare mode, dan capture. Memiliki real time counter dengan oscillator berdiri sendiri dan memiliki 4 saluran PWM(pulse width modulation). Terdapat 8 saluran 10bit ADC. Memiliki antarmuka serial dua kabel yang berorentasi byte serta pemrograman serta bersifat programmable serial USART, dan yang paling terkakhir dari fitur periperal memiliki analog comparator.
Selain memiliki fitur periperal, ATmega32 memiliki spesial fitur mikrokontroler, seperti Power-on reset dan programmable deteksi brown-out. Memiliki Internal RC oscillator yang terkalibrasi, External dan internal intterrupt. Memiliki enam mode sleep yaitu : idle, ADC Noise Reduction, power save, powerdown, standby, dan extended standby.
Mikrokotroler ATmega32 memiliki 32 jalur I/O yang bersifat programmable (dapat diprogram ulang). Memiliki 40pin untuk paket PDIP, 44pin untuk TQFP, 44pin untuk paket QFN/MLF. Tegangan kerja mikrokontroler yaitu berkisar pada 2.7 – 5.5Volt untuk ATmega32L, namun tegangan kerja untuk ATmega32 berkisar
24
4.5 – 5.5Volt. Selain itu, gambar berikut ini konfigurasi kaki ATmega32 jenis PDIP. (Datasheet IC ATmega32:1).
Gambar 1. Konfigurasi Kaki ATmega32 Jenis PDIP (sumber Datasheet ATmega32 : 2)