Perancangan Sistem Multi Locker Dengan Penyandian Berbasis Mikrokontroler Atmega 8 Menggunakan Android Phone

5

BAB 2

LANDASAN TEORI

2.1 Pengertian Sistem
Berdasarkan kutipan buku yang berjudul Analisis dan Desain Sistem
Informasi karangan Jogiyanto HM (2005,1) : ”Suatu

sistem

adalah

suatu

jaringan kerja dari prosedur-prosedur yang saling berhubungan,berkumpul
bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu
sasaran yang tertentu”. Sebuah sistem dapat terdiri dari sistem-sistem bagian
(subsistem) masing-masing dapat terdiri dari subsistem-subsistem yang lebih
kecil lagi atau terdiri dari komponen-komponen yang saling berinteraksi dan

saling berhubungan membentuk suatu ksesatuan sehingga tujuan atau sasaran
sistem dapat tercapai.

2.2 Locker
Locker atau lemari barang barang adalah benda. Lemari adalah
perkakas rumah, tempat menyimpan pakaian dan sebagainya

(Hamzah

Ahmad, Nanda Santoso:1996:44, 222). Merujuk dari referensi tersebut, maka
penulis menyimpulkan bahwa lemari barang adalah perkakas rumah

yang

memiliki fungsi untuk menyimpan benda.

2.3 Android

Gambar 2.1 Logo Android


Universitas Sumatera Utara

6

Android adalah sistem operasi untuk handphone yang berbasis linux.
Android menyediakan platform terbuka bagi para pengembang untuk menciptakan
aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak.
Android merupakan salah satu sistem operasi yang banyak digunakan saat ini.
Hal ini didukung dengan support-nya beberapa vendor besar, seperti
Samsung, HTC, LG yang menggunkan system opersai ini. Sehingga menjadikan
andoid lebih cepat popular dibandingkan system operasi smartphone lainnya.
“(Winarno, Edy & Zaki, Ali :2012) Android adalah sistem operasi untuk telepon
seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para
pengembang buat menciptakan aplikasi mereka sendiri untuk digunakan oleh
bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc.,
pendatang baru yang membuat 8 peranti lunak untuk ponsel. Kemudian
untuk

mengembangkan


Android, dibentuklah Open Handset Alliance,

konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi,
termasuk Google, HTC, Intel, Motorola,Qualcomm, T-Mobile, dan Nvidia.
Pada saat perilisan perdana Android, 5 November 2007, Android bersama
di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama yang
mendapat dukungan penuh dari Google atau Google Mail Services (GMS) dan
kedua adalah yang benar–benar bebas distribusinya tanpa dukungan langsung
Google atau dikenal sebagai Open Handset Distribution (OHD).

2.3.1 Karakteristik Android
Andorid merupakan subset perangkat lunak untuk perangkat mobile yang
meliputi sistem operasi, middleware, dan aplikasi unit yang di-release oleh
Google.

Pada

tulisan

sebelumnya,


kita

mengenal

SDK

(Software

Development Kit). SDK adalah suatu tools dan API yang diperlukan untuk
mengembangkan aplikasi pada platform atau linkungan Android. Pengembangan
aplikasi Android menggunakan
ketahui,

SDK

bahasa

pemrograman


Java.

Seperti

kita

ini dikembangkan oleh OHA (Open Handsate Alliance).

Organisasi OHA ini terdiri atas Googl, Intel, Motorola, Qualcomm, T-Mobile, dan
NVIDIA. SDK dapat kita gunakan

pada

beberapa

IDE

(Integrated

Development and Environment) – software untuk membuat suatu program –


Universitas Sumatera Utara

7

akan tetapi, pada tulisan selanjutnya, penulis akan menggunakan Eclipse
karena OHA secara resmi membuat plugin untuk IDE Eclipse.

2.4 Buzzer
Buzzer adalah suatu alat yang dapat mengubah sinyal listrik menjadi
sinyal suara.

Pada

umumnya

buzzer

digunakan


untuk

alarm,

karena

penggunaannya cukup mudah yaitu dengan memberikan tegangan input maka
buzzer akan mengeluarkan bunyi. Frekuensi suara yang di keluarkan oleh buzzer
yaitu antara 1-5 KHz. (Albert Paul, Prinsip-prinsip Elektronika, 1989 hal: 134).

Gambar 2.2 Simbol dan Fisik Buzzer

Rangkaian Buzzer atau yang biasa disebut sebagai rangkaian alarm pengingat
pesan dan tanda pastinya sudah sering ditemukan di beberapa perangkat
elektronik di pasar. Pada era teknologi modern ini, pastinya alarm sudah tersedia
di beberapa perangkat elektronik seperti ponsel dan juga jam memiliki alarm
sebagai tanda peringatan. Rangkaian alarm atau tanda pengingat ini sudah
menjadi salah satu penunjang penting dan tidak dapat dipisahkan di beberapa
perangkat elektronik tersebut. Rangkaian tanda pengingat ini berfungsi untuk
mendeteksi gerakan dan juga cahaya yang bisa membantu Anda mencegah kasus

pencurian.

Universitas Sumatera Utara

8

2.5 Mikrokontroler Atmega8

Gambar 2.3 Bentuk Fisik ATmega 8

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. 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,5 V sedangkan untuk ATmega8
hanya dapat bekerja pada tegangan antara 4,5 – 5,5 V.

Universitas Sumatera Utara

9

2.6 Bluetooth Module HC-05

Gambar 2.4 Bentuk Fisik Bluetooth HC-05

Bluetooth Module HC-05 merupakan module komunikasi nirkabel pada frekuensi
2.4 GHz dengan pilihan koneksi bisa sebagai slave, ataupun sebagai master.
Sangat mudah digunakan dengan mikrokontroler untuk membuat aplikasi
wireless. Interface yang digunakan adalah serial RXD, TXD, VCC dan GND.
Built in LED sebagai indikator koneksi bluetooth. Modul BT ini terdiri dari dua

jenis yaitu Master dan Slave. Seri modul BT HC bisa dikenali dari nomor serinya,
jika nomer serinya genap maka modul BT tersebut sudah diset oleh pabrik,
bekerja sebagai slave atau master dan tidak dapat diubah mode kerjanya, contoh
adalah HC-06-S. Modul BT ini akan bekerja sebagai BT Slave dan tidak bisa
diubah menjadi Master, demikian juga sebaliknya misalnya HC-04M. Default
mode kerja untuk modul BT HC dengan seri genap adalah sebagai Slave.
Sedangkan modul BT HC dengan nomer seri ganjil, misalkan HC-05, kondisi
default biasanya diset sebagai Slave mode, tetapi pengguna bisa mengubahnya
menjadi mode Master dengan AT Command tertentu.
Penggunaan utama dari modul BT ini adalah menggantikan komunikasi serial via
kabel, sebagai contoh:
1. Jika akan menghubungkan dua sistem mikrokontroler agar bisa
berkomunikasi via serial port maka dipasang sebuah modul BT Master
pada satu sistem dan modul BT Slave pada sistem lainnya. Komunikasi
dapat langsung dilakukan setelah kedua modul melakukan pairing.

Universitas Sumatera Utara

10


Koneksi via bluetooth ini menyerupai komunikasi serial biasa, yaitu
adanya pin TXD dan RXD.
2. Jika sistem mikrokontroler dipasangi modul BT Slave maka ia dapat
berkomunikasi dengan perangkat lain semisal PC yang dilengkapi adapter
BT ataupun dengan perangkat ponsel, smartphone dan lain-lain
3. Saat ini banyak perangkat seperti printer, GPS modul dan lain-lain yang
bekerja menggunakan media bluetooth, tentunya sistem mikrokontroler
yang dilengkapi dengan BT Master dapat bekerja mengakses devicedevice tersebut
Pemakaian module BT pada sistem komunikasi baik antar dua sistem
mikrokontrol maupun antara suatu sistem ke device lain tidak perlu menggunakan
driver, tetapi komunikasi dapat terjadi dengan dua syarat yaitu :
1. Komunikasi terjadi antara modul BT Master dan BT Slave, komunikasi
tidak akan pernah terjadi jika kedua modul sama-sama Master atau samasama Slave, karena tidak akan pernah pairing diantara keduanya
2. Password yang dimasukkan cocok
Modul BT yang banyak beredar di sini adalah modul HC-06 atau
sejenisnya dan modul HC-05 dan sejenisnya. Perbedaan utama adalah
modul HC-06 tidak bisa mengganti mode karena sudah diset oleh pabrik,
selain itu tidak banyak AT Command dan fungsi yang bisa dilakukan pada
modul tersebut. Diantaranya hanya bisa mengganti nama, baud rate dan
password saja.
Sedangkan untuk modul HC-05 memiliki kemampuan lebih yaitu bisa
diubah mode kerjanya menjadi Master atau Slave serta diakses dengan
lebih banyak AT Command, modul ini sangat direkomendasikan, terutama
dengan flexibilitasnya dalam pemilihan mode kerjanya.

Universitas Sumatera Utara

11

2.7 Motor Stepper Unipolar

Gambar 2.5 Bentuk Fisik Motor Stepper Unipolar

Motor stepper adalah motor yang digunakan sebagai penggerak/pemutar.
Prinsip kerja motor stepper mirip dengan motor DC, sama-sama dicatu dengan
tegangan DC untuk memperoleh medan magnet. Bila motor DC memiliki magnet
tetap pada stator, motor stepper mempunyai magnet tetap pada rotor. Motor
stepper dinyatakan dengan spesifikasi : “berapa phasa “, “berapa derajat perstep”,
“berapa volt tegangan catu untuk tiap lilitan” dan ”berapa ampere/miliampere arus
yang dibutuhkan untuk tiap lilitan”. Motor stepper tidak dapat bergerak
sendirinya, tetapi bergerak secara per-step sesuai dengan spesifikasinya, dan
bergerak dari satu step ke step berikutnya memerlukan waktu, serta menghasilkan
torsi yang besar pada kecepatan rendah. Motor stepper juga memiliki karakteristik
yang lain yaitu torsi penahan, yang memungkinkan menahan posisinya. Hal ini
sangat berguna untuk aplikasi dimana suatu sistem memerlukan keadaan start dan
stop (Syarkawi, 2007).
Motor stepper tidak merespon sinyal clock dan mempunyai beberapa
lilitan dimana lilitan-lilitan tersebut harus dicatu (tegangan) dahulu dengan suatu
urutan tertentu agar dapat berotasi. Membalik urutan pemberian tegangan tersebut
akan menyebabkan putaran motor stepper yang berbalik arah. Jika sinyal
kontrol tidak terkirim sesuai dengan perintah maka motor stepper tidak akan
berputar secara tepat, mungkin hanya akan bergetar dan tidak bergerak. Untuk
mengontrol motor stepper digunakan suatu rangkaian driver yang menangani
kebutuhan arus dan tegangan (Syarkawi, 2007).

Universitas Sumatera Utara

12

Karakteristik dari motor stepper menurut Trianto adalah sebagai berikut:
1. Tegangan
Tiap motor stepper mempunyai tegangan rata-rata yang tertulis pada tiap
unitnya atau tercantum pada datasheet masing-masing motor stepper.
Tegangan rata-rata ini harus diperhatikan dengan seksama karena bila
melebihi dari tegangan rata-rata ini akan menimbulkan panas yang
menyebabkan kinerja putarannya tidak maksimal atau bahkan motor
stepper akan rusak dengan sendirinya.
2. Resistansi
Resistansi per lilitan adalah karakteristik yang lain dari motor stepper.
Resistansi ini akan menentukan arus yang mengalir, selain itu juga akan
mempengaruhi torsi dan kecepatan maksimum dan motor stepper.
3. Derajat per step
Derajat per step adalah faktor terpenting dalam pemilihan motor stepper
sesuai dengan aplikasinya. Tiap-tiap motor stepper mempunyai spesifikasi
masing-masing, antara lain: 0.72° per step, 1.8° per step, 3.6° per step, 7.5°
per step, 15° per step, dan bahkan ada yang 90° per step. Dalam
pengoperasiannya kita dapat menggunakan 2 prinsip yaitu full step atau
half step. Dengan full step berarti motor stepper berputar sesuai dengan
spesifikasi derajat per stepnya, sedangkan half step berarti motor stepper
berputar setengah derajat per step dari spesifikasi motor stepper tersebut.
Motor stepper dibedakan menjadi dua kategori besar yaitu: magnet
permanen dan reluktansi variabel. Tipe magnet permanen terbagi menjadi dua
motor stepper yaitu motor stepper unipolar dan bipolar.
Motor

stepper

unipolar

sangat

mudah

untuk

dikontrol

dengan

menggunakan rangkaian counter „-n‟. Motor stepper unipolar mempunyai
karakteristik khusus yaitu berupa lilitan center-tapped dan 1 lilitan sebagai
common. Lilitan common akan mencatu tegangan pada center-tapped dan sebagai
ground adalah rangkaian drivernya.
Motor stepper unipolar dapat dikenali dengan mengetahui adanya lilitan
center-tapped. Jumlah phase dan motor stepper adalah dua kali dan jumlah

Universitas Sumatera Utara

13

koilnya. Umumnya pada motor stepper unipolar terdapat dua buah koil (Syarkawi,
2007).

Gambar 2.6 Susunan Koil Motor Stepper Unipolar

Tabel 2.1 Pola 1-Phase Putaran Motor Stepper Unipolar

Pada prinsipnya ada dua macam cara kerja motor stepper unipolar, yaitu full-step
dan half-step. Terlihat pada Tabel 2.2 dan Tabel 2.3

Tabel 2.2 Pemberian Tegangan Untuk Operasi Full-Step
FULLSTEP

Tegangan yang diberikan pada lilitan
Arah putar searah jarum jam

Arah putar melawan jarum jam

L3

L2

L1

L0

L3

L2

L1

L0

1

1

0

0

0

0

0

0

1

2

0

1

0

0

0

0

1

0

3

0

0

1

0

0

1

0

0

4

0

0

0

1

1

0

0

0

Universitas Sumatera Utara

14

Pada full step, suatu titik pada sebuah kutub magnet di rotor akan kembali
mendapat tarikan medan magnet stator pada lilitan yang sama setelah step ke 4,
dan berikutnya dapat diberikan lagi mulai dari step 1. Setiap step, rotor bergerak
searah atau berlawanan dengan jarum jam sebesar spesifikasi derajat per step dan
motor stepper. Setiap step hanya menarik sebuah kutub saja. Tegangan „1‟ adalah
menunjukkan logika dalam level Transistor Transistor Logic (TTL). Besar
tegangan sesungguhnya diatur dengan spesifikasi motor stepper yang dipakai,
misalnya dengan menggunakan buffer.

Tabel 2.3 Pemberian Tegangan Untuk Operasi Half-Step
HALFSTEP

Tegangan yang diberikan pada lilitan
Arah putar searah jarum jam

Arah putar melawan jarum jam

L3

L2

L1

L0

L3

L2

L1

L0

1

1

0

0

0

0

0

0

1

2

1

1

0

0

0

0

1

1

3

0

1

0

0

0

0

1

0

4

0

1

1

0

1

1

1

0

5

0

0

1

0

1

1

0

0

6

0

0

1

1

1

1

0

0

7

0

0

0

1

0

0

0

0

8

1

0

0

1

0

0

0

1

Untuk half step, setiap kutub magnet pada rotor akan kembali
mendapatkan tarikan dan medan magnet lilitan yang sama setelah step ke 8.
berikutnya kembali mulai step 1. Setiap step posisi rotor berubah sebesar setengah
derajat dan spesifikasi derajat per step motor stepper.
Berbeda dengan motor stepper unipolar, motor stepper bipolar sangat sulit
dalam pengontrolannya. Motor stepper jenis ini memerlukan rangkaian driver
yang kompleks. Keuntungan motor stepper bipolar adalah ukurannya yang besar
dan dapat menghasilkan torsi yang besar daripada motor stepper unipolar. Motor

Universitas Sumatera Utara

15

stepper bipolar di desain dengan koil yang terpisah yang akan di catu dan dua arah
(polaritas harus dibalik selama pencatuan). Motor stepper bipolar menggunakan
logika yang sama seperti motor stepper unipolar yaitu hanya „0‟ dan „1‟ untuk
merespon koilnya.

2.7.1 Prinsip Kerja Motor Stepper
Prinsip kerja motor stepper adalah mengubah pulsa-pulsa input menjadi gerakan
mekanis diskrit. Oleh karena itu untuk menggerakkan motor stepper diperlukan
pengendali motor stepper yang membangkitkan pulsa-pulsa periodik.
Berikut ini adalah ilustrasi struktur motor stepper sederhana dan pulasa yang
dibutuhkan untuk menggerakkannya :

Gambar 2.7 Prinsip Kerja Motor Stepper Unipolar

Gambar diatas memberikan ilustrasi dari pulsa keluaran pengendali motor stepper
dan penerpan pulsa tersebut pada motor stepper untuk menghasilkan arah putaran
yang bersesuaian dengan pulsa kendali.

2.7.2 Driver Motor Stepper Unipolar
Secara teoritis, sebuah motor stepper dapat digerakkan langsung oleh
mikrokontroller (Syarkawi, 2007). Dalam kenyataannya, arus dan tegangan yang
dikeluarkan oleh mikrokontroller terlalu kecil untuk menggerakkan sebuah motor
stepper. Gerbang-gerbang Transistor Transistor Logic (TTL) mikrokontroller
hanya mampu mengeluarkan arus dalam orde mili-ampere dan tegangan antara 2
sampai 2,5 Volt. Sementara itu untuk menggerakkan motor stepper diperlukan
arus yang lebih besar (dalam orde ampere) dan tegangan berkisar 5 sampai 24

Universitas Sumatera Utara

16

Volt. Untuk mengatasi masalah tersebut, diperlukan sebuah piranti tambahan yang
memenuhi kebutuhan arus dan tegangan yang cukup besar. Rangkaian driver
motor stepper merupakan rangkaian “open collector”, dimana output rangkaian ini
terhubung dengan ground untuk mencatu lilitan-lilitan motor stepper.

Gambar 2.8 Skema Rangkaian Driver Motor Stepper

Arus keluaran mikrokontroler tidak dapat menggerakkan motor stepper. Maka
diperlukan driver untuk mencatu arus motor stepper.
Motor stepper terdiri rotor dan stator yang bekerja berdasar sifat magnet,
dimana magnet sejenis tolak menolak dan yang berlawanan tarik menarik.
Kumparan pada stator membentuk medan magnet saat diberi arus, sehingga motor
yang menggunakan magnet akan bergerak untuk mencari kestabilan agar kutub
magnet bersesuaian dengan medan magnet yang terjadi. Arah puran motor stepper
ditentukan oleh arah urutan arus yang diberikan pada input motor stepper. Motor
stepper mempunyai 4 input dan satu input tegangan. Motor stepper dapat berputar
kekiri maupun kekanan sesuai dengan input yang diberikan. Untuk perputaran
kearah kiri dengan memberikan input ring counter dengan arah kekiri dan untuk
berputar kekanan dengan memberikan input ring counter dengan arah kekanan.
Motor stepper bergerak setiap satu langkah dengan besar sudut 1,8º jadi untuk
berputar satu putaran penuh membutuhkan 200 step. Dengan motor stepper kita
dapat memutar motor sesuai dengan yang diinginkan. Kecepatan motor stepper
juga dapat diubah sesuai dengan kebutuhan. Dengan mengubah waktu
perpindahan dari suatu input ke input lain pada motor stepper.

Universitas Sumatera Utara

17

2.8 Bahasa Pemograman C
Struktur bahasa pemograman C (Andrian, 2013):

1. Header File
Header File adalah berkas yang berisi prototype fungsi, definisi konstanta
dan definisi variable. Fungsi adalah kumpulan kode C yang diberi nama
dan
ketika nama tersebut dipanggil maka kumpulan kode tersebut dijalankan.
Contoh : stdio.h, math.h, conio.h
2. Preprosesor Directive
Preprosesor directive adalah bagian yang berisi pengikutsertaan file atau
berkas-berkas fungsi maupun pendefinisian konstanta.
Contoh: #include , #include phi 3.14
3. Void
Void artinya fungsi yang mengikutinya tidak memiliki nilai kembalian
(return).
4. Main ( )
Fungsi main ( ) adalah fungsi yang pertama kali dijalankan ketika program
dieksekusi tanpa fungsi main suatu program tidak d apat dieksekusi namun dapat
dikompilasi.
5. Statement
Statement adalah instruksi atau perintah kepada suatu program ketika
program itu dieksekusi untuk menjalankan suatu aksi. Setiap statement
diakhiri
dengan titik-koma (;)

2.9 Code Vision AVR
Code

Vision

AVR

pada

dasarnya

merupakan

perangkat

lunak

pemrograman microcontroller keluarga AVR berbasis bahasa C. Ada tiga

Universitas Sumatera Utara

18

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). 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
Interface) dan lain sebagainya. Untuk memudahkan pengembangan program
aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat user friendly Selain
menu-menu pilihan yang umum dijumpai pada setiap perangkat lunak berbasis
Windows, Code Vision AVR 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 deprogram.
Code Vision AVR 1.2.4.9 adalah suatu kompiler berbasis bahasa C, yang
terintegrasi untuk memprogram dan sekaligus compiler aplikasi AVR (Alf and
Vegard‟s Risc processor) terhadap mikrokontroler dengan sistem berbasis
window. Code Vision AVR ini dapat mengimplematasikan hampir semua
interuksi bahasa C yang sesuai dengan arsitektur AVR, bahkan terdapat beberapa
keunggulan tambahan untuk memenuhi keunggulan spesifikasi dari Code Vision
AVR yaitu hasil kompilasi studio debugger dari ATMEL.
Integrated Development Environtment (IDE) telah diadaptasikan pada
chip AVR yaitu In-System Programmer software, memungkinkan programmer
untuk mentransfer program ke chip mikrokontroler secara otomatis setelah proses

Universitas Sumatera Utara

19

assembly/kompilasi berhasil. In-System Programmer software didesign untuk
bekerja dan dapat berjalan dengan perangkat lunak lain seperti AVR Dragon,
AVRISP, Atmel STK500, dan lain sebagainya.
Disamping library standar C, Code Vision AVR C compiler memiliki
librari lain untuk:





Modul LCD Alpanumerik
Delays
Protokol semikonduktor Maxim/Dallas
Dan lainnya

Code Vision AVR juga memiliki Code Wizard AVR sebagaki generator program
otomatis, yang memungkinkan kita untuk menulis, segala bentuk pengaturan Chip
dalam

waktu

singkat,

dan

semua

kode

yang

dibutuhkan

untuk

mengimplementasikan fungsi-fungsi seperti:
1. Pengaturan akses External Memory
Untuk chip-chip AVR yang memungkinkan koneksi memori eksternal SRAM,
dapat juga mengatur ukuran memori dan wait state (tahap tunggu) dari
memori ketika memori tersebut diakses.

2. Identifikasi chip reset source
Adalah suatu layanan dimana kita dapat membuat kode secara otomatis yang
dapat mengidentifikasi kondisi yang menyebabkan chip di reset.
3. Inisialisasi port input/output
Pengaturan port-port yang kan dijadikan gerbang masukan dan keluaran dapat
secara otomatis digenerate codenya. Yang kita lakukan hanya memilih portport yang akan digunakan sebagai input atau output.
4. Inisialisasi Interupsi external
Pengaturan interupsi eksternal yang nantinya akan digunakan untuk
menginterupsi program utama
5. Inisialisasi timers/counters
Pengaturan timers yang berfungsi untuk mengatur frekwensi yang nantinya
digunakan pada interupsi.

Universitas Sumatera Utara

20

6. Inisialisasi timer watchdog
Pengaturan timers yang berfungsi untuk mengatur frekwensi yang nantinya
digunakan pada interupsi, sehingga interupsi akan dilayani oleh suatu fungsi
wdt_timeout_isr.
7. Inisialisasi UART(USART) dan komunuikasi serial
Pengaturan komunikasi serial sebagai penerima atau pengirim data.
8. Inisialisasi komparasi analog
Pengaturan yang berkaitan dengan masukan data yang digunakan dalam
aplikasi yang membutuhkan komparasi pada ADC nya.
9. Inisialisasi ADC
Pengaturan ADC(Analog-Digital Converter) yang berfungsi untuk merubah
format analog menjadi format digital untuk diolah lebih lanjut.
10. Inisialisasi antarmuka SPI
Pengaturan chip yang berkaitan dengan Clock rate, Clock Phase, dan lainnya.
11. Inisialisasi antarmuka Two Wire BUS
Pengaturan Chip yang berhubungan dengan pola jalur komunikasi antara
register yang terdapat pada chip AVR.

12. Inisialisasi antarmuka CAN
Pengaturan chip yang lebih kompleks, yang dapat mengatur interupsi,
transmisi data, timers, dan lainnya.
13. Inisialisasi sensor temperatur, thermometer, dan lainnya
Pengaturan yang berhubungan dengan sensor temperatur one wire bus,
memiliki fungsi-fungsi yang ada pada librari CodeVisionAVR.
14. Inisialisasi one wire bus
Pengaturan yang berhubungan dengan sensor temperatur yang memiliki
fungsi-fungsi yang ada pada librari CodeVisionAVR. Seperti Maxim/Dallas
Semiconductor.
15. Inisialisasi modul LCD
Pengaturan port-port yang kan digunakan sebagai penghubung dengan LCD
alpha numerik.

Universitas Sumatera Utara

21

Contoh cara kerja sebelum melakukan pemograman di AVR, dimana contoh
disini

adalah

contoh

pengaturan

program

agar

mikrokontroler

dapat

berkomunikasi dengan komputer:
a. Memilih project baru dan melakukan penyetingan komponen yang
digunakan pada board.
b. Pengaturan IC/Chip, pada chip yang kita harus dilakukan adalah IC
apa yang kita gunakan, dalam hal ini ATMEGA8535l dengan
Clock 16 MHz. Clock ini harus di atur dengan ukuran 16 MHz,
karena pada komponen oksilator yang digunakan sebesar 16 MHz.
c. Pengaturan ADC, pada ADC ini ada beberapa pilihan yang harus
dipilih. diantaranya ADC Enable di check list(v), Use 8 bit di
check list(v), high speed di check list (v) dan Volt Ref dipilih
„AVCC PIN‟. AVCC PIN berguna sebagai referensi tegangan pada
ADC untuk nilainya sebesar 5 volt.
d. Pengaturan USART, usart ini yang nantinya menghubungkan
rangkaian mikrokontroler dengan PC (komputer). Langkahlangkah yang dilakukan dengan adanya pilihan Receiver di check
list(v) dan Transmitter di check list(v). Pengaturan receiver
berfungsi apakah serial itu sebagai penerima data, sedangkan
transmitter berfungsi serial bisa digunakan sebagai pengiriman
data.
Untuk lebih jelas tampilan pengaturan yang disediakan oleh AVR dapat
dilihat pada gambar dibawah ini :

Gambar 2.9 Form Pegaturan Code Vision AVR

Universitas Sumatera Utara

22

Selain bentuk konfigurasi hadware yang nantinya secara otomatis akan
membentuk sebuah instruksi layaknya perintah program ke IC/Chip, adapula
perintah program yang kita ketik sendiri. Selain itu, Code Vision AVR juga
menyediakan sebuah tool yang dinamakan dengan Code Generator atau Code
Wizard AVR. Secara praktis, tool ini sangat bermanfaat membentuk sebuah
kerangka program (template), dan juga memberi kemudahan bagi programmer
dalam peng-inisialisasian register-register yang terdapat pada microcontroller
AVR yang sedang diprogram. Dinamakan Code Generator, karena perangkat
lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis
setelah fase inisialisasi pada jendela Code Wizard AVR selesai dilakukan. Secara
teknis, penggunaan tool ini pada dasarnya hampir sama dengan application wizard
pada bahasa-bahasa pemrograman Visual untuk komputer (seperti Visual C,
Borland Delphi, dan sebagainya). Disamping versi yang komersil, Perusahaan
Pavel Haiduc juga mengeluarkan CodeVisionAVR versi Demo yang dapat
didownload dari internet secara gratis. Dalam versi ini, memori flash yang dapat
diprogram dibatasi maksimal 2K, selain itu tidak semua fungsi library yang
tersedia dapat dipanggil secara bebas. Seperti halnya belajar pemrograman
komputer, agar mendapatkan pemahaman yang kuat dalam pemrograman
microcontroller AVR, anda sebaiknya mencoba langsung membuat aplikasi
program pada microcontroller tersebut. Untuk tujuan latihan, perangkat lunak
Code vision AVR versi demo pada dasarnya adalah sarana yang cocok dan telah
cukup memenuhi kebutuhan minimal anda. Gambar 2.15 berikut memperlihatkan
diagram blok yang mengilustrasikan alur pemrograman microcontroller AVR
dengan Code vision AVR yang dapat anda lakukan :

Gambar 2.10 Alur pemrograman microcontroller AVR

Universitas Sumatera Utara

23

Seperti terlihat pada gambar 2.10, Code vision AVR pada dasarnya telah
mengintegrasikan

komponen-komponen

penting

dalam

pemrograman

microcontroller AVR: Editor,Compiler C, assembler dan ISP (In System
Programmer). Khusus dengan ISP, ada beberapa jenis perangkat keras
programmer dongle (berikut papan pengembangnya) yang telah didukung oleh
perangkat lunak Code vision AVR ini, salah satu diantaranya adalah Kanda
System STK 200/300 produk Perusahaan Kanda yang terhubung pada saluran
antarmuka port Paralel Komputer.

2.10 Mikrokontroler AVR Dan Bahasa C
Tidak dapat disangkal, dewasa ini penggunaan bahasa pemrograman aras
tinggi (seperti C, Basic, Pascal dan sebagainya) semakin populer dan banyak
digunakan untuk memprogram sistem microcontroller. Berdasarkan sifatnya yang
sangat fleksibel dalam hal keleluasaan pemrogram untuk mengakses perangkat
keras, Bahasa C merupakan bahasa pemrograman yang paling cocok
dibandingkan bahasa-bahasa pemrograman aras tinggi lainnya.
Dikembangkan pertama kali oleh Dennis Ritchie dan Ken Thomson pada
tahun 1972, Bahasa C merupakan salah satu bahasa pemrograman yang paling
populer untuk pengembangan program-program aplikasi yang berjalan pada
sistem microprocessor (komputer). Karena kepopulerannya, vendor-vendor
perangkat lunak kemudian mengembangkan compiler C sehingga menjadi
beberapa varian berikut: Turbo C, Borland C, Microsoft C, Power C, Zortech C
dan lain sebagainya. Untuk menjaga portabilitas, compiler-compiler C tersebut
menerapkan ANSI C (ANSI: American National Standards Institute) sebagai
standar bakunya. Perbedaan antara compiler-compiler tersebut umumnya hanya
terletak pada pengembangan fungsi-fungsi library serta fasilitas IDE (Integrated
Development Environment)–nya saja. Relatif dibandingkan dengan bahasa aras
tinggi lain, bahasa C merupakan bahasa pemrograman yang sangat fleksibel dan
tidak terlalu terikat dengan berbagai aturan yang sifatnya kaku. Satu-satunya hal
yang membatasi penggunaan bahasa C dalam sebuah aplikasi adalah semata-mata
kemampuan imaginasi programmer-nya saja. Sebagai ilustrasi, dalam program C
kita dapat saja secara bebas menjumlahkan karakter huruf (misal „A‟) dengan

Universitas Sumatera Utara

24

sebuah bilangan bulat (misal „2‟), dimana hal yang sama tidak mungkin dapat
dilakukan dengan menggunakan bahasa aras tinggi lainnya. Karena sifatnya ini,
seringkali bahasa C dikatagorikan sebagai bahasa aras menengah (mid level
language).
Dalam kaitannya dengan pemrograman microcontroller, Tak pelak lagi
bahasa C saat ini mulai menggeser penggunaan bahasa aras rendah assembler.
Penggunaan bahasa C akan sangat efisien terutama untuk program microcontroller
yang berukuran relatif besar. Dibandingkan dengan bahasa assembler,
penggunaan bahasa C dalam pemrograman memiliki beberapa kelebihan berikut:
Mempercepat waktu pengembangan, bersifat modular dan terstruktur, sedangkan
kelemahannya adalah kode program hasil kompilasi akan relative lebih besar (dan
sebagai konsekuensinya hal ini terkadang akan mengurangi kecepatan eksekusi).
Khusus pada microcontroller AVR, untuk mereduksi konsekuensi negative diatas,
Perusahaan Atmel merancang sedemikian sehingga arsitektur AVR ini efisien
dalam

mendekode

serta

mengeksekusi

instruksi-instruksi

yang

umum

dibangkitkan oleh compiler C (Dalam kenyataannya, pengembangan arsitektur
AVR ini tidak dilakukan sendiri oleh perusahaan Atmel tetapi ada kerja sama
dengan salah satu vendor pemasok compiler C untuk microcontroller tersebut,
yaituI ARC). Seperti halnya compiler C untuk sistem microprocessor, di pasaran
ada beberapa varian compiler C untuk memprogram sistem microcontroller AVR.
Dengan beberapa kelebihan yang dimilikinya, saat ini Code Vision AVR produk
Perusahaan Pavel Haiduc merupakan compiler C yang relative banyak digunakan
dibandingkan compiler-compiler C lainnya. Bahasa C telah dikritisi secara
meluas, dan banyak orang dengan cepat menemukan masalahnya. Tapi sebagai
bahasa yang telah hadir, C tetap tak tersentuh. Code Vision AVR adalah salah
satu yang memanfaatkan keunggulan C dalam hal pemrograman mikrokontroler.
Salah satu ungkapan menyatakan bahwa “jika kamu membuat perangkat lunak
yang akan tetap layak suatu hari nanti, jangan belajar bahasa yang popular saat
ini, pelajarilah C”. C tidak membatasi pandangan orang mengenai sebuah bahasa
pemrograman. C tidak object oriented, tetapi kita dapat menerapkan konsep objek
oriented padanya. Bukan juga bahasa fungsional, tetapi kita dapat dapat
menerapkan pemrograman fungsional menggunakannya. Kebanyakan interpreter

Universitas Sumatera Utara

25

LISP dan skema interpreters-interpreters/kompiler-kompiler ditulis dengan
menggunakan C. kita dapat memproses list menggunakan C, meski tak semudah
menggunakan LISP. C juga memiliki fitur-fitur tambahan seperti rekursi, prosedur
sebagai tipe data kelas pertama, dan banyak lagi. Banyak orang yang merasakan
C kekurangan akan kemudahan seperti JAVA, atau C++. Padahal C adalah bahasa
yang sederhana. Tapi karena kesederhanaan ini dianggap kurang memadai
sehingga membuat C diadaptasi sebagai perkenalan pertama ke tahap bahasa
tingkat tinggi yang kompleks yang memungkinkan kita mengontrol dengan baik
apa yang kita program tanpa fitur yang disembunyikan. Compiler tidak akan
melakukan apapun sampai kita memerintahkan untuk melakukan sesuatu. Bahasa
yang ada adalah transparan, bahkan jika beberapa fitur dari JAVA seperti garbage
collection diikutsertakan pada implementasi C yang akan digunakan. Sebagai
bahasa pemrograman, C tetap ada. Ini adalah inti dari development dilingkungan
system operasi UNIX. Dan juga inti dari revolusi mikrokomputer, diantara C++,
Delphi, JAVA dan lainnya, C masih tetap bertahan,dengan karakteristiknya
sendiri.

Universitas Sumatera Utara