Anda di halaman 1dari 50

BAB II

TEORI DASAR
Pada bab ini dibahas tentang Perangkat lunak
pemrograman mikrokontrol, dan beberapa komponen elektronika
serta mikrokontroler ATMEGA8535L.
2.1 Mikrokontroler
Komputer hadir dalam kehidupan manusia baru 50
tahun terakhir, namun efeknya sangat besar dalam merubah
kehidupan manusia, bahkan melebihi penemuan manusia lainnya
seperti radio, telepon, automobil, dan televisi. Begitu banyak
aplikasi memanfaatkan komputer, terutama dalam pemanfaatan
kemampuan chip mikroprosesor di dalamnya yang dapat
melakukan komputasi sangat cepat, dapat bekerja sendiri dengan
diprogram, dan dilengkapi memori untuk menyimpan begitu
banyak data. Seiring dengan perkembangan zaman, semakin
luaslah kebutuhan akan kemampuan seperti yang dimiliki oleh
komputer,

sehingga

menyebabkan

munculnya

terobosan-

terobosan baru yang salah satunya adalah dibuatnya chip


mikrokontroler.
Secara Umum. Mikrokontroler adalah sebuah sistem
mikroprosesor lengkap yang terkandung di dalam sebuah chip.
Mikrokontroler berbeda dari mikroprosesor serba guna yang
digunakan dalam sebuah PC, karena sebuah mikrokontroler
umumnya telah berisi komponen pendukung sistem minimal

II-1

Landasan teori

II-2

mikroprosesor, yakni memori dan antarmuka I/O. Mikrokontroler


cenderung

beroperasi

pada

manipulasi

bit,

sedangkan

mikroprosesor cenderung beroperasi pada operasi byte (8 bit).


Mikrokontroler adalah single chip computer yang
memiliki kemampuan untuk diprogram dan digunakan untuk
tugas-tugas yang berorientasi kontrol. Mikrokontroler datang
dengan dua alasan utama, yang pertama adalah kebutuhan pasar
(market need) dan yang kedua adalah perkembangan teknologi
baru. Yang dimaksud dengan kebutuhan pasar adalah kebutuhan
yang luas dari produk-produk elektronik akan perangkat pintar
sebagai pengontrol dan pemroses data. Sedangkan yang
dimaksud

dengan

perkembangan

teknologi

baru

adalah

perkembangan teknologi semikonduktor yang memungkinkan


pembuatan chip dengan kemampuan komputasi yang sangat
cepat, bentuk yang semakin mungil, dan harga yang semakin
murah.
2.1.1

PERBEDAAN

MIKROKONTROLER

DENGAN MIKROPROSESOR
Terdapat

perbedaan

yang

signifikan

antara

mikrokontroler dan mikroprosessor. Perbedaan yang utama antara


keduanya dapat dilihat dari dua faktor utama yaitu arsitektur
perangkat keras (hardware architecture) dan aplikasi masingmasing.
Ditinjau dari segi arsitekturnya, mikroprosesor hanya
merupakan single chip CPU, sedangkan mikrokontroler dalam
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-3

IC-nya selain CPU juga terdapat device lain yang memungkinkan


mikrokontroler berfungsi sebagai suatu single chip computer.
Dalam sebuah IC mikrokontroler telah terdapat ROM, RAM,
EPROM, serial interface dan paralel interface, timer, interrupt
controller, konverter Anlog ke Digital, dan lainnya (tergantung
feature yang melengkapi mikrokontroler tersebut).
Sedangkan dari segi aplikasinya, mikroprosessor hanya
berfungsi sebagai Central Processing Unit yang menjadi otak
komputer, sedangkan mikrokontroller, dalam bentuknya yang
mungil, pada umumnya ditujukan untuk melakukan tugastugas
yang berorientasi kontrol pada rangkaian yang membutuhkan
jumlah komponen minimum dan biaya rendah (low cost).
2.1.2

APLIKASI MIKROKONTROLER
Karena kemampuannya yang tinggi, bentuknya yang

kecil, konsumsi dayanya yang rendah, dan harga yang murah


maka mikrokontroler begitu banyak digunakan di dunia.
Mikrokontroler digunakan mulai dari mainan anak-anak,
perangkat elektronik rumah tangga, perangkat pendukung
otomotif, peralatan industri, peralatan telekomunikasi, peralatan
medis dan kedokteran, sampai dengan pengendali robot serta
persenjataan militer.
Terdapat beberapa keunggulan yang diharapkan dari
alat-alat yang berbasis mikrokontroler (microcontroller-based
solutions) :

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-4

Kehandalan tinggi (high reliability) dan kemudahan


integrasi dengan komponen lain (high degree of
integration)

Ukuran yang semakin dapat diperkecil (reduced in size)

Penggunaan

komponen

dipersedikit

(reduced

component count) yang juga akan menyebabkan biaya


produksi dapat semakin ditekan (lower manufacturing
cost)

Waktu pembuatan lebih singkat (shorter development


time) sehingga lebih cepat pula dijual ke pasar sesuai
kebutuhan (shorter time to market)

2.1.3

Konsumsi daya yang rendah (lower power consumption)


SEJARAH DAN PERKEMBANGAN
Karena kebutuhan yang tinggi terhadap chip-chip

pintar dengan berbagai fasilitasnya, maka berbagai vendor juga


berlomba untuk menawarkan produk-produk mikrokontrolernya.
Hal tersebut terjadi semenjak tahun 1970-an.
Mikrokontroler pertama kali dikenalkan oleh Texas
Instrument dengan seri TMS 1000 pada tahun 1974 yang
merupakan mikrokontroler 4 bit. Pada tahun 1976 Intel
mengeluarkan mikrokontroler yang kelak menjadi populer
dengan nama 8748 yang merupakan mikrokontroler 8 bit, yang
merupakan mikrokontroler dari keluarga MCS 48. Sekarang
dipasaran banyak sekali ditemui mikrokontroler mulai dari 8 bit
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-5

sampai dengan 64 bit, sehingga perbedaan antara mikrokontroler


dan

mikroprosesor

mengeluarkan

sangat

tipis.

mikrokontroler

Masing-masing

dengan

dilengkapi

vendor
fasilitas-

fasilitas yang cenderung memudahkan user untuk merancang


sebuah sistem dengan komponen luar yang relatif lebih sedikit.
Saat ini mikrokontroler yang banyak beredar dipasaran
Yogyakarta adalah mikrokontroler 8 bit varian keluarga
MCS51(CISC) yang dikeluarkan oleh Atmel dengan seri
AT89Sxx,

dan

mikrokontroler

AVR

yang

merupakan

mikrokontroler RISC dengan seri ATMEGA8535 (walaupun


varian dari mikrokontroler AVR sangatlah banyak, dengan
masing-masing

memiliki

fitur

yang

berbeda).

Dengan

mikrokontroler tersebut pengguna (pemula) sudah bisa membuat


sebuah sistem untuk keperluan sehari-hari, seperti pengendali
peralatan rumah tangga jarak jauh yang menggunakan remote
control televisi, radio frekuensi, maupun menggunakan ponsel,
membuat jam digital, termometer digital dan sebagainya.
Motorola mengeluarkan seri mikrokontroler 6800 yang
terus dikembangkan hingga sekarang menjadi 68HC05, 68HC08,
68HC11, 68HC12, dan 68HC16. Zilog juga mengeluarkan seri
mikroprosesor Z80-nya yang terkenal dan terus dikembangkan
hingga kini menjadi Z180 dan kemudian diadopsi juga oleh
mikroprosesor Rabbit. Intel mengeluarkan mikrokontrolernya
yang populer di dunia yaitu 8051, yang karena begitu populernya
maka arsitektur 8051 tersebut kemudian diadopsi oleh vendor
lain seperti Phillips, Siemens, Atmel, dan vendor-vendor lain
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-6

dalam produk mikrokontroler mereka. Selain itu masih ada


mikrokontroler populer lainnya seperti Basic Stamps, PIC dari
Microchip, MSP 430 dari Texas Instrument dan masih banyak
lagi.
Selain mikroprosesor dan mikrokontroler, sebenarnya
telah bemunculan chip-chip pintar lain seperti DSP prosesor dan
Application Spesific Integrated Circuit (ASIC). Di masa depan,
chip-chip

mungil

berkemampuan

sangat

tinggi

akan

mendominasi semua desain elektronik di dunia sehingga mampu


memberikan

kemampuan

komputasi

yang

tinggi

serta

meminimumkan jumlah komponen-komponen konvensional.


2.1.4

MENGAKSES MIKROKONTROLER
Agar sebuah mikrokontroler dapat berfungsi, maka

mikrokontroler tersebut memerlukan komponen eksternal yang


kemudian disebut dengan sistem minimum. Untuk membuat
sistem minimal paling tidak dibutuhkan sistem clock dan reset,
walaupun pada beberapa mikrokontroler sudah menyediakan
sistem clock internal, sehingga tanpa rangkaian eksternal pun
mikrokontroler sudah beroperasi.
Untuk merancang sebuah sistem berbasis mikrokontroler, kita
memerlukan perangkat keras dan perangkat lunak, yaitu:
1.

Sistem minimal mikrokontroler.

2.

Software pemrograman dan kompiler, serta downloader.


Yang dimaksud dengan sistem minimal adalah sebuah

rangkaian mikrokontroler yang sudah dapat digunakan untuk


Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

menjalankan

II-7

sebuah

aplikasi.

Sebuah

IC

mikrokontroler

tidakakan berarti bila hanya berdiri sendiri. Pada dasarnya sebuah


sistem minimal mikrokontroler AVR memiliki prinsip yang sama,
yang terdiri dari 4 bagian, yaitu :
1.

Prosesor, yaitu mikrokontroler itu sendiri.

2.

Rangkaian reset agar mikrokontroler dapat menjalankan


program mulai dari awal.

3.

Rangkaian clock, yang digunakan untuk memberi detak


pada CPU.

4.

Rangkaian catu daya, yang digunakan untuk memberi


sumberdaya.
Pada mikrokontroler jenis tertentu (AVR misalnya),

poin2 pada no 2 ,3 sudah tersedia didalam mikrokontroler


tersebut dengan frekuensi yang sudah diseting dari vendornya,
sehingga pengguna tidak perlu memerlukan rangkaian tambahan,
namun bila ingin merancang sistem dengan spesifikasi tertentu
(misal ingin komunikasi dengan PC atau handphone), maka
pengguna hs arumenggunakan rangkaian clock yang sesuai
dengan karakteristik PC atau HP tersebut.
2.1.5

Sistem Polling dan Interupsi


Polling sebenarnya bukan suatu fitur , ini adalah

sesuatau yang harus dilakukan jika mikrokontroler yang dipilih


tidak memiliki interupsi. Polling adalah teknik perangkat lunak
dimana kontroler secara terus menerus menanyakan suatu
perangkat jika membutuhkan servis.Perangkat membuat suatu
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-8

tanda ketika data siap untuk ditransfer ke kontroler, dimana


kontroler akan melihat pool berikutnya. Beberapa perangkat
dapat dipolled dengan sukses, dengan kontroler yang meloncat
kepada rutin program yang lain, tergantung pada flag mana yang
telah diset.
Dasar dari polling adalah setiap fungsi memakai tipe
round-robin untuk menanyakan ketika mereka dalam keadaan
yang membutuhkan sebuah servis, kita dapat membuat mereka
(prosedure/fungsi) memanggil fungsi mereka sendiri ketika
prosedure tersebut membutuhkan penanganan lain. Ini disebut
dengan interupt, ketika perangkat menginterupsi eksekusi
program utama. Prosesor lalu akan mengambil waktu untuk
keluar dari eksekusi program normal untuk menguji source
interrupt dan mengambil aksi tertentu. Setelah itu, eksekusi
program normal dilanjutkan. Sebuah servis interrupt dengan kata
lain seperti sebuah sub-rutin, untuk melakukan perintah lain yang
sebelumnya tidak dijalankan sehingga dapat diantisipasi oleh
prosesor

untuk

menyesuaikan

sebagian

waktu,

untuk

mengeksekusi perintah baru dan menghentikan program utama


yang kemudian dijalankan kembali jika tidak ada pemanggilan
prosedur lain pada badan program.
Pemakaian prioritas interupsi di atas memiliki beberapa peraturan
yang tercantum dibawah ini:
(a). Tidak ada interupsi yang menginterupsi interupsi
prioritas tinggi.

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-9

(b). Interupsi prioritas tinggi boleh menginterupsi


interupsi prioritas rendah.
(c). Interupsi prioritas rendah boleh terjadi jika tidak ada
interupsi lain yang sedang dijalankan.
(d). Jika dua interupsi terjadi pada waktu bersamaan,
interupsi yang memiliki prioritas lebih tinggi akan
dikerjakan terlebih dahulu. Jika keduanya memiliki
prioritas sama, maka interupsi yang berada pada urutan
polling akan dikerjakan terlebih dahulu.
Mikrokontroler ATMEL secara otomatis akan menguji
apakah sebuah interupsi bias terjadi setelah setiap instruksi
dikerjakan. Pengecekan ini mengikuti suatu alur yang disebut
dengan Polling Sequence dengan urutan:

Interupsi Eksternal 0

Interupsi Timer 0

Interupsi Eksternal 1

Interupsi Timer 1

Interupsi serial
Ini berarti jika sebuah interupsi serial terjadi pada waktu

bersamaan dengan interupsi eksternal 0, maka interupsi eksternal


0 akan dikerjakan terlebih dahulu dan interupsi serial baru akan
dikerjakan setelah pengerjaan rutin interupsi eksternal 0 selesai
dilakukan.
2.2

CodeVisionAVR

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-10

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).
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
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-11

(lihat gambar 1.1). 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 deprogram.
CodeVisionAVR 1.2.4.9 adalah suatu kompiler berbasis
bahasa C, yang terintegrasi untuk memprogram dan sekaligus
compiler aplikasi AVR (Alf and Vegards Risc processor)
terhadap mikrokontroler dengan sistem berbasis window.
CodeVisionAVR ini dapat mengimplematasikan hampir semua
interuksi bahasa C yang sesuai dengan arsitektur AVR, bahkan
terdapat beberapa keunggulan tambahan untuk memenuhi
keunggulan spesifikasi dari CodeVisionAVR 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


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, CodeVisionAVR C
compiler memiliki librari lain untuk:

Modul LCD Alpanumerik

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-12

Delays

Protokol semikonduktor Maxim/Dallas

Dan lainnya

CodeVisionAVR

juga

memiliki

CodeWizardAVR

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:

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.

Identifikasi chip reset source


Adalah suatu layanan dimana kita dapat membuat
kode secara otomatis yang dapat mengidentifikasi
kondisi yang menyebabkan chip di reset.

Inisialisasi port input/output


Pengaturan port-port yang kan dijadikan gerbang
masukan dan keluaran dapat secara otomatis
digenerate codenya. Yang kita lakukan hanya
memilih port-port yang akan digunakan sebagai
input atau output.

Inisialisasi Interupsi external

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-13

Pengaturan interupsi eksternal yang nantinya akan


digunakan untuk menginterupsi program utama

Inisialisasi timers/counters
Pengaturan timers yang berfungsi untuk mengatur
frekwensi yang nantinya digunakan pada interupsi.

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 .

Inisialisasi UART(USART) dan komunuikasi


serial
Pengaturan komunikasi serial sebagai penerima
atau pengirim data.

Inisialisasi komparasi analog


Pengaturan yang berkaitan dengan masukan data
yang digunakan dalam aplikasi yang membutuhkan
komparasi pada ADC nya.

Inisialisasi ADC
Pengaturan ADC(Analog-Digital Converter) yang
berfungsi untuk merubah format analog menjadi
format digital untuk diolah lebih lanjut.

Inisialisasi antarmuka SPI


Pengaturan chip yang berkaitan dengan Clock rate,
Clock Phase, dan lainnya.

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-14

Inisialisasi antarmuka Two Wire BUS


Pengaturan Chip yang berhubungan dengan pola
jalur komunikasi antara register yang terdapat pada
chip AVR.

Inisialisasi antarmuka CAN


Pengaturan chip yang lebih kompleks, yang dapat
mengatur interupsi, transmisi data, timers, dan
lainnya.

Inisialisasi sensor temperatur, thermometer,


dan lainnya
Pengaturan yang berhubungan dengan sensor
temperatur one wire bus, memiliki fungsi-fungsi
yang ada pada librari CodeVisionAVR.

Inisialisasi one wire bus


Pengaturan yang berhubungan dengan sensor
temperatur yang memiliki fungsi-fungsi yang ada
pada librari CodeVisionAVR. Seperti Maxim/Dallas
Semiconductor.

Inisialisasi modul LCD


Pengaturan port-port yang kan digunakan sebagai
penghubung dengan LCD alphanumerik.

Contoh cara kerja sebelum melakukan pemograman di


AVR, dimana contoh disini adalah contoh pengaturan program
agar mikrokontroler dapat berkomunikasi dengan komputer:
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

a.

II-15

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). Langkah-langkah 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 :

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-16

Gambar 2.1. Form Pegaturan CodeVisionAVR


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.

Sebagai

contoh

beberapa

bentuk

perbandingan

menggunakan perintah bahasa C dengan bahasa Assembly :


Tabel 2.1. Perbandingan Bahasa C dan Assembly
Bahasa C
Bahasa Assembly
getchar();
; 169
getchar();
a0=adc_data[0];
RCALL _getchar
a1=adc_data[1];
; 170
a0=adc_data[0];
putchar(a0);
LDS R16,_adc_data
delay_ms(10);
; 171
a1=adc_data[1];
putchar(a1);
__GETBRMN 17,_adc_data,1
delay_ms(10);
; 172
putchar(a0);
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

Bahasa C

II-17

Bahasa Assembly
ST -Y,R16
RCALL SUBOPT_0x0
; 173
delay_ms(10);
; 174
putchar(a1);
ST -Y,R17
RCALL SUBOPT_0x0
; 175
delay_ms(10);
; 176
; 177
};
RJMP _0x4
; 178 }
_0x7:
RJMP _0x7
_getchar:
sbis usr,rxc
rjmp _getchar
in r30,udr
RET
_putchar:
sbis usr,udre
rjmp _putchar
ld r30,y
out udr,r30
ADIW R28,1
RET
;OPTIMIZER ADDED SUBROUTINE,
CALLED 2 TIMES, CODE SIZE
REDUCTION:3 WORDS
SUBOPT_0x0:
RCALL _putchar
LDI R30,LOW(10)
LDI R31,HIGH(10)
ST -Y,R31
ST -Y,R30
RJMP _delay_ms

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-18

Bahasa C

Bahasa Assembly
_delay_ms:
ld r30,y+
ld r31,y+
adiw r30,0
breq __delay_ms1
__delay_ms0:
__DELAY_USW 0xFA0
wdr
sbiw r30,1
brne __delay_ms0
__delay_ms1:
ret

Selain itu, CodeVisionAVR juga menyediakan sebuah


tool

yang

dinamakan

dengan

Code

Generator

atau

CodeWizardAVR (lihat gambar 2.1). 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 CodeWizardAVR 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).

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-19

Disamping versi yang komersil, Perusahaan Pavel


Haiduc juga mengeluarkan CodeVisionAVR versi Demo yang
dapat didownload dari internet secara gratis (lihat alamat URL:
http://www.hpinfotech.ro) 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 CodevisionAVR versi demo pada
dasarnya adalah sarana yang cocok dan telah cukup memenuhi
kebutuhan minimal anda. Gambar 1.4. berikut memperlihatkan
diagram

blok

yang

mengilustrasikan

alur

pemrograman

microcontroller AVR dengan CodevisionAVR yang dapat anda


lakukan :

Gambar 2.2. Alur pemrograman microcontroller AVR dengan


menggunakan CodevisionAVR
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-20

Seperti terlihat pada gambar 2.2, CodevisionAVR 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 CodevisionAVR ini, salah satu diantaranya adalah Kanda
System STK 200/300 produk Perusahaan Kanda yang terhubung
pada saluran antarmuka port Paralel Komputer.
Jika anda berencana membuat dongle yang kompatible
dengan produk Kanda, rangkaiannya dapat dilihat pada
situs:http:\\www.grandtonics.com. Atau jika mau membeli sistem
yang siap pakai (berupa dongle beserta papan pengembangnya),
salah satu produk dalam negeri dengan harga yang relative murah
adalah

DT

AVR

nano/micro

URL:http//www.innovative_electronic.com.,

System

dialamat

Sistem

ini

kompatibel dengan kanda System STK 200/300. Untuk tujuantujuan percobaan, produk innovative_electronic ini sudah sangat
memadai, selain mudah dihubungkan dengan modul-modul
perangkat input/output, seperti modul LCD, keypad, array LED,
penggerak motor stepper, dan sebagainya, sistem ini juga telah
dilengkapi konverter TTL ke RS232 yang bermanfaat untuk
komunikasi microcontroller AVR dengan komputer.
Berkaitan dengan perangkat lunak downloader, pada
dasarnya anda dapat menggunakan perangkat lunak lain (di luar
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-21

CodeVisionAVR) untuk keperluan transfer kode mesin kedalam


sistem memori microcontroller AVR. Salah satunya adalah
ISP_AVR yang dibuat oleh Holger Buss dan Ingo Busker dari
Jerman. Perangkat lunak beserta rangkaian antarmukanya dapat
di-download

secara

gratis

pada

alamat

URL:

http://www.mikrocontroller.com
2.2.1

MIKROKONTROLER

AVR

DAN BAHASA C
Tak 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, vendorvendor 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
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-22

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 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
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-23

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).
Table2.2. Beberapa Compiler C untuk microcontroller AVR
Compiler C
IAR C
CodeVisionAVR
ImageCrafts C
AVR-GCC
C-AVR
Small C for AVR
GNU C for AVR
LCC-AVR
Dunfields AVR

Platform
-DOS
-Windows
-Windows
-DOS
-Windows
-Linux
-DOS
-Windows
-Windows
-DOS
-Linux
-Linux,
-Windows
-Windows

Keterangan
Komersil
Komersil,
Komersil
General Public Licence
Komersil
Komersil
General Public Licence
Free
Komersil

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-24

Seperti halnya compiler C untuk sistem microprocessor,


di pasaran ada beberapa varian compiler C untuk memprogram
sistem microcontroller AVR yang dapat dijumpai (lihat tabel 2.2).
Dengan beberapa kelebihan yang dimilikinya, saat ini
CodeVisionAVR 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. CodeVisionAVR 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 LISP dan
skema interpreters-interpreters/compiler-kompiler ditulis dengan
menggunakan C. kita dapat memproses list menggunakan C,
meski tak semudah menggunakan LISP. C juga memiliki fiturfitur tambahan seperti rekursi, prosedur sebagai tipe data kelas
pertama, dan banyak lagi.
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-25

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.
Pada beberapa tahun yang lalu, the Electrical and
Computer Engineering Technology department di Purdue
University telah mempelajai bahasa pemrograman C sebagai
bahasa

yang

Mengajarkan

dipilih
Bahasa

untuk
tingkat

mengenalkan
tinggi

mikrokontroler.

pada

perkenalan

mikrokontroler dalam referensi suatu bahasa tingkat assembly


adalah sesuatu yang kontras pada suatu intitusi yang memiliki
program yang sama. Penggunaan Bahasa tingkat tinggi
memungkinkan untuk focus pada materi dan konsep dan tidak
jemu dengan melihat detail listing assembly. Salah satu
perbedaannya adalah bahasa tingkat tinggi memungkinkan untuk
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-26

menuliskan langsung nilai pada register, memindahkan data


melalui multiple operations dengan assembly.
Just-in-time (JIT) mengajarkan metode yang digunakan
untuk mengenalkan komponen baru pada Bahasa pemrograman C
seperti yang dibutuhkan. Pada prakteknya pokok masalah
dipresentasikan, setelah itu disusun algoritma dan dievaluasi.
Setelah itu dituangkan kedalam gambar sebagai diagram alir
proses. Lalu dengan mudah diterjemahkan kedalanm bahasa C.
seperti itulah dasar dari mikrokontroler.
Lebih dari 10 tahun, beratus juta mikrokontroler, suatu
mikrokomputer yang mengandung perangkat ini dan memori
didalam suatu single integrated circuit (IC) bersama CPU, telah
disertakan pada perkembangan produk-produk dari keyboard
sampai system control automobile (Ayala, 2000).
Bahasa tingkat tinggi meningkat menjadi metodologi
standar

untuk

mikrokontroler

terapan

berdasar

pada

perkembangan dan improvisasi jaman dan pasar dan dukungan


perawatan yang sederhana (Myklebust, N.D.). Untuk tetap sejajar
dengan perubahan jaman, bahasa tingkat tinggi menjadi
perlengkapan dalam memperkenalkan mikrokontroler sebagai
bagian dari kurikulum pada the Electrical and Computer
Engineering Technology curriculum di Purdue University, West
Lafayette.
2.2.2

KEUNTUNGAN
PEMROGRAMAN TINGKAT TINGGI

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-27

Telah dipercaya pada era mikrokontroler saat ini bahwa


bahasa assembly adalah satu-satunya pilihan untuk membuat
kode untuk suatu aplikasi.ruang yang sangat terbatas pada chip
untuk data dank ode program tidak terjadi jika menggunakan
bahasa tingkat tinggi (Stewart & Miao, 1999). Sejarah bahasa
tingkat tinggi memproduksi ukuran kode yang lebih besar
dibandingkan assembly yang mempengaruhi kecepatan eksekusi.
Selama beberapa tahun terakhir, compiler telah menyatakan
kepada pasar dengan mengklaim bahwa dapat memproduksi kode
seefisien assembly (Stewart & Miao, 1999).pada tahun-tahun
berikutnya, compiler melakukan perkembangan yang lebih luas
didunia mikrokontroler dengan meningkatkan fungsionalitas dan
kecepatan.
Terdapat beberapa keunggulan menggunakan Bahasa
tingkat tinggi diantaranya yaitu dapat memangkas waktu
pembangunan aplikasi menjadi lebih singkat, kemudahan
perawatan dan ringkas, kemudahan reuse kode. Bahasa tingkat
tinggi memungkinkan programmer untuk mengatasi objek yang
kompleks tanpa khawatir tentang detail komponen prosesor pada
saat program berjalan. (Darnell & Margolis, 1991). Menulis
program bahasa tingkat tinggi membebaskan programmer dari
kekhawatiran tentang detail tingkat rendah suatu program
(Reisdorph, 1998).
2.2.3

PEMROGRAMAN C DAN

MIKROKONTROLER
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-28

Pembangunan Perangkat lunak dengan mikrokontroler


membutuhkabn

suatu

pendekatan

terstruktur

dengna

pemrograman. Banyak system terapan harus berjalan 24 jam


sehari, 7 hari dalam satu minggu, dan 365 dalam satu tahun.
Mereka tidak dapat di reboot ketika terjadi sesuatu kwesalahan.
Untuk alas an ini, baris kode yang baik dipelajari dan melalui
ujicoba menghasilkan tingkat keutamaan yang baru pada
kenyataan mikrokontroler terapan (Lewis, 2002). Fasilitas bahasa
C yang terstruktur dan disiplin(utuh) menjadi pendekatan pada
design program computer (Deitel & Deitel, 1992). Berdasar pada
MacKenzie, keuntungan mengadopsi pendekatan terstruktur pada
pemrograman meliputi diantaranya: urutan operasi suatu program
begitu sederhana untuk ditelusuri melalui fasilitas debugging,
urutannya yang terstruktur membuat mudah untuk dijadikan sub
rutin atau fungsi-fungsi, struktur yang ada menjadi dokumentasi
sendiri dan memudahkan untuk menjelaskan menggunakan
diagram alir, dan pemrograman yang terstruktur menghasilkan
peningkatan produktifitas programer (1991).
Mungkin

alasan

yang

paling

memaksa

untuk

menggunakan bahasa tingkat tinggi adalah menyimpan waktu


programmer. Compiler C didukung oleh pustaka(library) program
C yang mengusung banyak fitur seperti matematika dan
penanganan karakter. Menggunakan fungsi standar ini programprogram Cmemudahkan programmer untuk menulis, menguji
coba dan mereka ulang versi yang sama (Ayala, 2000). Meskipun
pustaka fungsi standar adalah teknikal bukan bagian dari bahasa
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-29

C, mereka didukaung tanpa terkecuali oleh system ANSI milik C


(Deitel & Deitel, 1992).

2.3

EAGLE 4.11
Eagle

4.11 merupakan

aplikasi

pembantu untuk

membuat rangkaian elektronika. Aplikasi tersebut sangat mudah


digunakan, asalkan saja kita mengetahui nama komponen apa dan
komponen mana saja yang harus dihubungkan. Fasilitas dari
aplikasi ini dapat dilihat pada gambar di bawah ini :

Gambar 2.3. Form schematic Eagle 4.11


Banyak sekali fasilitas yang disediakan oleh eagle dalam
membantu kita untuk membuat rangkaian elektronik mengenai
jalur-jalur komponen yang digunakan. Dalam penggunaan
aplikasi ini memiliki 2 (dua) form, yang pertama schematic dan
board. Schematic merupakan form yang menghubungkan antar
komponen dengan kata lain tampilannya hanya berupa symbol
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-30

komponen yang saling dihubungakan. Sedangkan untuk board


merupakan tampilan dari schematic yang terhubung dengan jalur
yang telah dibuat hingga board ini di cetak.
2.4

Visual Basic
Visual Basic adalah salah satu bahasa pemrograman

komputer. Bahasa pemrograman adalah perintah-perintah yang


dimengerti oleh komputer untuk melakukan tugas-tugas tertentu.
Bahasa pemrograman Visual Basic, yang dikembangkan oleh
Microsoft sejak tahun 1991, merupakan pengembangan dari
pendahulunya yaitu bahasa pemrograman BASIC (Beginners
All-purpose Symbolic Instruction Code) yang dikembangkan
pada era 1950-an. Visual Basic merupakan salah satu
Development Tool yaitu alat bantu untuk membuat berbagai
macam program komputer, khususnya yang menggunakan sistem
operasi Windows. Visual Basic merupakan salah satu bahasa
pemrograman komputer yang mendukung object (Object
Oriented Programming = OOP).
Visual Basic adalah salah suatu developement tools
untuk membangun aplikasi dalam lingkungan Windows. Dalam
pengembangan aplikasi, Visual Basic menggunakan pendekatan
Visual untuk merancang user interface dalam bentuk form,
sedangkan untuk kodingnya menggunakan dialek bahasa Basic
yang cenderung mudah dipelajari. Visual Basic telah menjadi
tools yang terkenal bagi para pemula maupun para developer.

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-31

Dalam lingkungan Window's User-interface sangat


memegang peranan penting, karena dalam pemakaian aplikasi
yang kita buat, pemakai senantiasa berinteraksi dengan Userinterface tanpa menyadari bahwa dibelakangnya berjalan
instruksi-instruksi program yang mendukung tampilan dan proses
yang dilakukan.
Pada pemrograman Visual, pengembangan aplikasi
dimulai

dengan

pembentukkan

user

interface,

kemudian

mengatur properti dari objek-objek yang digunakan dalam user


interface, dan baru dilakukan penulisan kode program untuk
menangani kejadian-kejadian (event). Tahap pengembangan
aplikasi demikian dikenal dengan istilah pengembangan aplikasi
dengan pendekatan Bottom Up.
Microsoft Visual Basic berada pada urutan pertama pada
bahasa tingkat tinggi yang mendukung paradigma event-driven
dan Rapid Application Development (RAD). Lebih spesifiknya,
keberadaan Visual Basics banyak diterima dan dapat dilihat pada
perkembangan pembuatan aplikasi seperti akses database,
Protipe

Graphical

User

Interface

(GUI),

pengembangan

komponen, skrip internet, design aplikasi desktop dank


lien/server, dan bahkan pengembangan game. Dikarenakan VB
berada dalam ranah komersial dan mudah dipelajari, VB menjadi
begitu popular dikalangan intuisi perguruan tinggi seluruh dunia.
Bahasa Basic pada dasarnya adalah bahasa yang mudah
dimengerti sehingga pemrograman di dalam bahasa Basic dapat
dengan mudah dilakukan meskipun oleh orang yang baru belajar
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-32

membuat program. Hal ini lebih mudah lagi setelah hadirnya


Microsoft Visual Basic, yang dibangun dari ide untuk membuat
bahasa yang sederhana dan mudah dalam pembuatan scriptnya
(simple scripting language) untuk graphic user interface yang
dikembangkan dalam sistem operasi Microsoft Windows. Visual
Basic merupakan bahasa pemrograman yang sangat mudah
dipelajari,

dengan

teknik

pemrograman

visual

yang

memungkinkan penggunanya untuk berkreasi lebih baik dalam


menghasilkan suatu program aplikasi. Ini terlihat dari dasar
pembuatan dalam visual basic adalah FORM, dimana pengguna
dapat mengatur tampilan form kemudian dijalankan dalam script
yang sangat mudah. Ledakan pemakaian Visual Basic ditandai
dengan kemampuan Visual Basic untuk dapat berinteraksi dengan
aplikasi lain di dalam sistem operasi Windows dengan komponen
ActiveX Control. Dengan komponen ini memungkinkan penguna
untuk memanggil dan menggunakan semua model data yang ada
di dalam system operasi windows. Hal ini juga ditunjang dengan
teknik pemrograman di dalam Visual Basic yang mengadopsi dua
macam jenis pemrograman yaitu Pemrograman Visual dan
Object Oriented Programming (OOP).
Visual Basic 6.0 sebetulnya perkembangan dari versi
sebelumnya dengan beberapa penambahan komponen yang
sedang tren saat ini, seperti kemampuan pemrograman internet
dengan DHTML (Dynamic HyperText Mark Language), dan
beberapa penambahan fitur database dan multimedia yang
semakin baik. Sampai saat buku ini ditulis bisa dikatakan bahwa
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-33

Visual Basic 6.0 masih merupakan pilih pertama di dalam


membuat program aplikasi yang ada di pasar perangkat lunak
nasional. Hal ini disebabkan oleh kemudahan dalam melakukan
proses development dari aplikasi yang dibuat.

2.4.1

Antar Muka Visual Basic 6.0


Interface antar muka Visual Basic 6.0, berisi menu,

toolbar, toolbox, form, project explorer dan property seperti


terlihat pada gambar 2.4 berikut:

Gambar 2.4. Antarmuka Visual Basic 6


Pembuatan program aplikasi menggunakan Visual Basic
dilakukan dengan membuat tampilan aplikasi pada form,
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-34

kemudian diberi script program di dalam komponen-komponen


yang diperlukan. Form disusun oleh komponen-komponen yang
berada di [Toolbox], dan setiap komponen yang dipakai harus
diatur propertinya lewat jendela [Property]. Menu pada dasarnya
adalah operasional standar di dalam sistem operasi windows,
seperti membuat form baru, membuat project baru, membuka
project dan menyimpan project. Di samping itu terdapat fasilitasfasilitas pemakaian visual basic pada menu. Untuk lebih jelasnya
Visual Basic menyediakan bantuan yang sangat lengkap dan
detail dalam MSDN. Toolbox berisi komponen-komponen yang
bisa digunakan oleh suatu project aktif, artinya isi komponen
dalam toolbox sangat tergantung pada jenis project yang
dibangun. Komponen standar dalam toolbox dapat dilihat pada
gambar 2.5 berikut ini.

Gambar 2.5. Komponen standarVisual Basic 6


Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

2.4.2

II-35

Konsep Dasar Pemrograman Dalam Visual Basic 6.0


Konsep dasar pemrograman Visual Basic 6.0, adalah

pembuatan form dengan mengikuti aturan pemrograman berbasis


obyek (OOP), anda perlu memahami istilah object, property,
method dan event sebagai berikut :

Object : komponen di dalam sebuah program

Property:

Setiap

komponen

di

dalam

pemrograman Visual Basic dapat diatur propertinya


sesuai dengan kebutuhan aplikasi. Property yang tidak
boleh dilupakan pada setiap komponen adalah Name,
yang berarti nama variable (komponen) yang akan
digunakan dalam scripting. Properti Name ini hanya
bisa diatur melalui jendela Property, sedangkan nilai
peroperti yang lain bias diatur melalui script seperti
Command1.Caption=Play
Text1.Text=Visual Basic
Label1.Visible=False
Timer1.Enable=True

Metode: Bahwa jalannya program dapat


diatur sesuai aplikasi dengan menggunakan metode
pemrograman yang diatur sebagai aksi dari setiap
komponen. Metode inilah tempat untuk mengekpresikan
logika pemrograman dari pembuatan suatu prgram
aplikasi.

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-36

Event:

Setiap

komponen

dapat

beraksi

melalui event, seperti event click pada command button


yang tertulis dalam layar script Command1_Click, atau
eventMouse Down pada picture yang tertulis dengan
Picture1_MouseDown. Pengaturan event dalam setiap
komponen yang akan menjalankan semua metode yang
dibuat.
Sebagai ilustrasi anda dapat menganggap sebuah mobil
sebagai obyek yang memiliki property, method dan event.
Perhatikan gambar berikut

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-37

Gambar 2.6. Ilustrasi konsep pemrograman Visual Basic


Implementasinya dalam sebuah aplikasi misalnya anda
membuat form, maka form tersebut memiliki property, method,
dan event. Sebagaimana pemrograman visual lain seperti Delphi
daan Java, VB juga bersifat event driven progamming. Artinya
anda dapat menyisipkan kode program pada event yang dimiliki
suatu obyek.
2.4.3

Membuat Project Baru


Untuk memulai pembuatan program aplikasi di dalam

Visual Basic, yang dilakukan adalah membuat project baru.


Project adalah sekumpulan form, modul, fungsi, data dan laporan
yang digunakan dalam suatu aplikasi. Membuat projrct baru
dapat dilakukan dengan memilih menu [File] >> [New Project]
atau dengan menekan ikon [new project] pada Toolbar yang
terletak di pojok kiri atas. Setelah itu akan muncul konfirmasi
untuk jenis project dari program aplikasi yan akan dibuat seperti
terlihat pada gambar 2.7 berikut.

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-38

Gambar 2.7. Jendela NewProject


Visual Basic 6.0 menyediakan 13 jenis project yang bisa
dibuat seperti terlihat pada gambar 1.3 di atas. Ada beberapa
project yang biasa digunakan oleh banyak pengguna Visual
Basic, antara lain:

Standard EXE: Project standar dalam Visual Basic


dengan komponen-komponen standar. Jenis project ini
sangat sederhana, tetapi memiliki keunggulan bahwa
semua komponennya dapat diakui oleh semua unit
komputer

dan

semua

user

meskipun

bukan

administrator. Pada buku ini akan digunakan project


Standard EXE ini, sebagai konsep pemrograman
visualnya.

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-39

ActiveX EXE: Project ini adalah project ActiveX berisi


komponen-komponen kemampuan intuk berinteraksi
dengan semua aplikasi di sistem operasi windows.

ActiveX DLL: Project ini menghasilkan sebuah aplikasi


library yang selanjutnya dapat digunakan oleh semua
aplikasi di sistem operasi windows.

ActiveX Control: Project ini menghasilkan komponenkomponen baru untuk aplikasi Visual Basic yang lain

VB Application Wizard: Project ini memandu pengguna


untuk membuat aplikasi secara mudah tanpa harus
pusing-pusing dengan perintah-perintah pemrograman.

Addin: Project seperti Standard EXE tetapi dengan


berbagai

macam

komponen

tambahan

yang

memungkinkan kebebasan kreasi dari pengguna.

Data project: Project ini melengkapi komponennya


dengan komponen-komponen database. Sehingga bisa
dikatakan

project

ini

memang

disediakan

untuk

keperluan pembuatan aplikasi database.

DHTML Application: Project ini digunakan untuk


membuat aplikasi internet pada sisi client (client side)
dengan fungsi-fungsi DHTML.

IIS Application: Project ini menghasilkan apliaksi


internet pada sisi server (server side) dengan komponenkomponen CGI (Common Gateway Interface).

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

2.4.4

II-40

EVENT DAN PROPERTY


Pemrograman Visual Basic adalah suatu pemrograman

visual, dimana pembuatan program dilakukan menggunakan


media visual atau sering disebut dengan user-interface. Yang
artinya bahwa pembuatan program berdasarkan tampilan yang
dihasilkan

program,

dengan

kode-kode

program

(Script)

diletakkan masing-masing komponen.

Gambar 2.8. User interface


Untuk mengatur letaknya tinggal menggunakan drag
& drop dengan mouse. Program ini belum selesai karena masih
perlu pengaturan property dan penambahan event pada masingmasing komponen untuk dapat memberikan tampilan yang dapat
diterima oleh user dan dapat menjalankan proses.
a.

Mengatur Property
Property pada tampilan antar muka Visual Basic terletak

di sebelah kanan, seperti gambar 2.9 berikut:

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-41

Gambar 2.9. pengaturan property


Masing-masing komponen mempunyai property yang
berbeda dan jumlahnya banyak, tetapi ada beberapa property
yang sering digunakan pada setiap komponen, antara lain
[Caption]. Property yang sering digunakan untuk Form antara
lain:
Name: menyatakan nama obyek form yang sangat berguna
untuk memanggil dan menyimpan form.
Caption: digunakan untuk memberikan title pada form.
StartUpPosition: digunakan untuk meletakkan form ketika form
tersebut dipanggil atau aktif. Ada empat pilihan yaitu: Manual,
CenterOwner, CenterScreen, Windows Default,
b.

Event Dengan Kode Program


Pemrograman visual bersifat event-driver, yang artinya

program bekerja berdasarkan event yang terjadi ketika suatu


Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-42

object diberikan aksi misalkan tombol ditekan, option dipilih,


atau setelah mengetikkan sesuatu pada text kemudian di tekan
[Enter]. Untuk membuat event ini tinggal click pada komponen
dari tampilan user interface yang sudah dibuat.

Gambar 2.10. Event dank ode program


Perhatikan gambar 2.10, ketika form di-click maka akan
muncul event Load, ini disebabkan event default untuk form
adalah load. Dan secara otomatis di bagian kode program sudah
disediakan fungsi untuk event load pada form yang tertulis:
Private Sub Form_Load()
End Sub
Di dalam fungsi ini dituliskan kode program. Kode
program ini dijalankan ketika form dipanggil. Event ini bisa
diganti di bagian [Event], perhatikan bahwa event pada setiap
komponen termasuk form jumlahnya banyak, tinggal dipilih
sesuai kebutuhan aplikasi.
Komponen yang utama digunakan pada visual basic
untuk dihubungakan dengan mikrokontroler adalah :
e.

Mscomm, Komponen tersebut menyediakan


fasilitas komunikasi antar program aplikasi yang telah
dibuat dengan port serial. Untuk mengirim dan menerima

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-43

data melalui port serial. Properti yang digunakan PortOpen,


yang digunakan untuk membuka ataupun menutup port
serial

yang

dihubungkan

dengan

MSComm.

Input,

digunakan untuk mengambil data string yang ada pada


buffer penerima. Output, digunakan untuk menulis data
string pada buffer kirim. ComEvReceive, telah diterima
karakter sebanyak nilai properti Rthereshold. Even ini akan
dibangkitkan terus-menerus sampai data diambil dari buffer
penerima menggunakan perintah input. Even ini akan
dibangkitkan jika nilai pada properti Rthereshold tidak diisi
0
f.

Timer, Timer berfungsi sebagai trigger atau


pembangkit dalam pengiriman data. Tiap waktu timer akan
mengecek dan menyesuaikan data yang dikirim sama
dengan data yang diterima. Timer akan mendektesi terusmenerus Interval 1 detik hubungan port serial dengan
mikrokontroler dengan cara komputer mengirimkan data
nilai () MSComm.output

g.

Crystal report, berfungsi sebagai penghubung


aplikasi antara visual basic dengan aplikasi crystal report.
Dalam aplikasi di visual basic komponen ini tersedia
apabila crystal report sudah diinstal.

2.6

Komponen-komponen Elektronika

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-44

Beberapa komponen elektronika yang digunakan adalah


resistor,

LED,

kapasitor,

transistor,

optocoupler,

kristal

(oscilator).
2.6.1

Resistor
Resistor adalah suatu komponen elektronika yang

bersifat sebagai penahan arus listrik. Resistor biasanya disebut


juga dengan tahanan. Besaran resistor dinyatakan dengan satuan
Ohm dan dilambangkan dengan huruf latin (Omega).
Besaran suatu resistor dapat diketahui dengan membaca
langsung kode warna pada bagian badan resistor tersebut.
Besarnya nilai resistor dinyatakan dengan pita berwarna yang
melingkari badan resistor. Pada umumnya jumlah pita berwarna
pada resistor berjumlah empat atau lima.

Gambar 2.11. Bentuk dan simbol resistor

2.6.2

LED
LED

adalah

komponen

elektronik

yang

dapat

memancarkan cahaya ketika dilalui arus listrik pada kedua

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-45

kutubnya. Arus listrik mengalir dari kutub positif (anoda) menuju


kutub negatif (katoda).

Gambar 2.12. Gambar dan simbol LED


2.6.3

Kapasitor
Kapasitor merupakan komponen elektronika yang

berfungsi untuk menampung arus listrik, menahan arus DC dan


mengalirkan arus AC. Besaran dari nilai kapasitor disebut dengan
kapasitas dan dinyatakan dengan satuan farad.

Gambar 2.13. Bentuk dan simbol kapasitor


2.6.4

Transistor
Transistor merupakan komponen elektronika yang

bersifat sebagai semikonduktor. Transistor memiliki tiga kaki


yaitu kaki basis, kaki kolektor dan kaki emitor. Berdasarkan
polaritas dan arah aliran arus, transistor dibedakan menjadi
transistor NPN (Negatif Positif Negatif) dan PNP (Positif Negatif
Positif).
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-46

Gambar 2.14. Bentuk dan simbol transistor


Prinsip kerja transistor NPN adalah jika ada arus yang
mengalir dari kaki basis ke kaki emitor maka kaki collector dan
kaki emitor akan terhubung. Prinsip kerja transistor PNP adalah
jika ada arus yang mengalir dari kaki emitor ke kaki basis maka
kaki collector dan kaki emitor akan terhubung. Transistor
ditandai dengan huruf Tr atau huruf Q. Transistor termasuk dalam
kategori komponen aktif yaitu komponen yang memerlukan arus
atau tegangan listrik untuk mengoperasikannya.
2.6.5

Optocoupler
Optocoupler terdiri dari dua buah komponen yaitu

infrared dan NPN silicon phototransistor yang dikemas dalam


satu paket.

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-47

Gambar 2.15 . Bentuk dan simbol optocoupler


Optocoupler mempunyai enam buah kaki. Prinsip kerja
optocoupler adalah jika ada arus mengalir dari kaki 1 ke kaki 2
maka LED akan menyala sehingga LED memancarkan sinar
inframerah. Sinar inframerah akan mengakibatkan timbulnya
GGL di B. Arus akan mengalir dari basis ke emitor. Kaki 5
(kolektor) dan kaki 4 (emitor) terhubung.
2.6.6

Kristal (Ocilator)
Kristal atau oscilator merupakan komponen elektronika

yang berfungsi sebagai pembangkit pulsa/gelombang dan


penghasil sinyal detak (clock) yang digunakan sebagai sarana
timer pada mikrokontroler. Nilai besaran untuk kristal dinyatakan
dengan Mhz.

Gambar 2.16 . Bentuk dan simbol kristal (ocilator)


Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

2.6.7

II-48

Max232
Max232 adalah sebuah IC (Integrated Circuit) yang

berisikan 2 buah RS232 Line Driver dan 2 buah RS232 Line


Receiver. RS232 adalah sebuah standar komunikasi serial yang di
dalamnya terdapat standarisasi penggunaan tegangan, kecepatan
transmisi dan impedansi untuk berkomunikasi. Dalam IC ini
dilengkapi pula dengan pengganda tegangan DC, sehingga
meskipun catu daya untuk IC MAX232 hanya +5 Volt, tapi
sanggup melayani level tegangan RS232 antara 10 Volt sampai
+10 Volt. Dalam IC DIP (Dual In-line Package) 16 pin (8 pin x 2
baris) ini terdapat 2 buah transmiter dan 2 receiver. Sering juga
sebagai buffer serial digunakan chip DS275.

Gambar 2.17. Bentuk Max232


2.7

Mikrokontroler ATMEGA 8535L


Atmel, salah satu vendor yang bergerak dibidang

mikroelektronika, telah mengembangkan AVR (Alf and Vegards


Riscprocessor)

sekitar

tahun

1997.

Berbeda

dengan

mikrokontroller MCS51, AVR menggunakan arsitektur RISC


(Reduce Insruction Set Computer) yang mempunyai lebar bus
data 8 bit. Perbedaan ini bisa dilihat dari frekuensi kerjanya.
Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC
menggunakan CodeVision AVR

Landasan teori

II-49

MCS51 memiliki frekuensi kerja 1/12 kali frekuensi osilator. Jadi


dengan frekuensi osilator yang sama, kecepatan AVR dua belas
kali lebih cepat dibanding kecepatan MCS51. Secara umum AVR
dibagi menjadi 4 kelas, yaitu ATtiny, AT90Sxx, ATMega dan
AT86RFxx. Perbedaan antar tipe AVR terletak pada fitur-fitur
yang ditawarkan, sementara dari segi arsitektur dan set instruksi
yang digunakan hampir sama.
2.7.1

Konfigurasi PIN
1. Power, VCC dan GND.
2. PORTA (PORTA0-7), merupakan pin IO dua arah dan
berfungsi khusus pin masukkan ADC.
3. PORTB (PORTB0-7), merupakan pin IO dua arah dan
berfungsi

khusus

sebagai

pin

timer/counter,

komparator analog dan SPI.


4. PORTC (PORTC0-7), merupakan pin IO dua arah dan
fungsi khusus.
5. PORTD (PORDC0-7), merupakan pin IO dua arah dan
6.
7.
8.
9.

fungsi khusus.
RESET adalah pin untuk me-reset mikrokontroller.
XTAL1 dan XTAL2 pin untuk exsternal clock
AVCC adalah pin masukan untuk tegangan ADC.
AREF adalah pin masukan untuk tegangan referensi
eksternal ADC.

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Landasan teori

II-50

(X CK /T 0 ) P B 0

40

(T 1) P B 1

39

PA 0 (A DC 0 )
PA 1 (A DC 1 )

38

PA 2 (A DC 2 )

(O C 0/A IN1 ) P B 3

37

PA 3 (A DC 3 )

(S S ) P B 4

36

PA 4 (A DC 4 )

35

PA 5 (A DC 5 )

34

PA 6 (A DC 6 )

(M O S I) P B 5

(M IS O ) P B 6

(S CK ) P B 7
RE S E T

8
9

V CC

1
10

G ND

1
11

X AT L 2

1
12

X AT L 1

13
1
1
14

(R X D) P D 0
(T X D) P D 1

1
15

AT M eg a 85 3 5 L

(INT 2/A IN 0) P B 2

33

PA 7 (A DC 7 )

32

AREF

31

G ND

30

AV C C

29

P C 7 (T O S C 2)

28
27

P C 6 (T O S C 1)
PC 5

26

PC 4

25

PC 3

24

PC 2

23

PC 1

(INT 0) P D 2

1
16

(IN T 1 ) P D 3

1
17

(O C1B ) P D 4

1
18

(O C1A ) P D 5

1
19

22

PC 0

(ICP 1 ) P D 6

20

21

P D 7 (O C 2 )

Gambar 2.18. Bentuk dan susunan pin IC ATMEGA8535L

Pemrograman Mikrokontroler untuk Aplikasi Sistem Kendali Motor Servo DC


menggunakan CodeVision AVR

Anda mungkin juga menyukai