modul mikrokontroler - bab 3. pemrograman mikrokontroler

13
Modul Dasar Mikrokontroler | Beny Abdurrahman | 20 BAB III Pemrograman Mikrokontroler Penemuan mikrokontroler menjadi suatu revolusi tersendiri bagi industri elektronika. Mikrokontroler merupakan sebuah komponen elektronika yang dapat diprogram / programmable device. Dengan satu rangkaian mikrokontroler saja, kita bisa menciptakan alat dengan berbagai macam tujuan yang berbeda hanya dengan mengubah programnya, bukan hardwarenya. Karena kepraktisan inilah yang membuat mikrokontroler menjadi sebuah komponen yang bisa digunakan untuk berbagai macam keperluan. 1. Jenis-Jenis Bahasa Pemrograman Mikrokontroler Ada banyak bahasa pemrograman yang dapat digunakan untuk memrogram sebuah mikrokontroler. Jika dilihat dari tingkatan bahasanya, dalam pemrograman suatu mikrokontroler terdapat tiga tingkatan bahasa pemrograman, yaitu : o Bahasa Mesin o Assembly o Bahasa Tingkat Tinggi Bahasa mesin (machine language/machine code) adalah bahasa yang dipahami oleh komputer. Kode yang terdapat pada bahasa ini berupa kode bilangan biner yang dapat diproses oleh mikroprosesor sehingga sulit dipahami oleh manusia. Bahasa mesin umumnya bersifat spesifik, yaitu tidak lintas jenis mikroprosesor sehingga suatu jenis mikroprosesor memiliki bahasa pemrograman yang berbeda dengan jenis mikroprosesor lainnya. File bahasa mesin memiliki ekstensi .hex, karena untuk kepentingan manusia yang memprogram kode biner dikonversikan menjadi kode bilangan heksadesimal. Bahasa Assembly terdiri dari instruksi berupa representasi mnemonic dari instruksi berupa kode bilangan biner dari bahasa mesin. Umumnya mnemonic berupa singkatan tiga atau empat huruf dari kata yang mewakili suatu instruksi. Contohnya instruksi Assembly adalah sebagai berikut : o SUB adalah kode Assembly untuk instruksi substract, yaitu mengurangkan suatu angka dari angka lain. o CBI adalah kode Assembly untuk instruksi Clear Bit I/O, yaitu memberi logika nol pada suatu pin I/O digital. Instruksi pada Bahasa Assembly diterjemahkan menjadi bahasa mesin oleh perangkat lunak Assembler. Seperti juga bahasa mesin bahasa Assembly juga spesifik untuk suatu jenis mikroprosesor tertentu. Namun bahasa Assembly masih terlalu berorientasi mesin, sehingga susah dipahami oleh manusia. Bahasa yang lebih mudah dipahami disebut bahasa pemrograman tingkat tinggi (high

Upload: beny-abd

Post on 16-Apr-2017

859 views

Category:

Education


7 download

TRANSCRIPT

Page 1: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 20  

BAB III Pemrograman Mikrokontroler

Penemuan mikrokontroler menjadi suatu revolusi tersendiri bagi industri elektronika. Mikrokontroler merupakan sebuah komponen elektronika yang dapat diprogram / programmable device. Dengan satu rangkaian mikrokontroler saja, kita bisa menciptakan alat dengan berbagai macam tujuan yang berbeda hanya dengan mengubah programnya, bukan hardwarenya. Karena kepraktisan inilah yang membuat mikrokontroler menjadi sebuah komponen yang bisa digunakan untuk berbagai macam keperluan.

1. Jenis-Jenis Bahasa Pemrograman Mikrokontroler

Ada banyak bahasa pemrograman yang dapat digunakan untuk memrogram sebuah mikrokontroler. Jika dilihat dari tingkatan bahasanya, dalam pemrograman suatu mikrokontroler terdapat tiga tingkatan bahasa pemrograman, yaitu :

o Bahasa Mesin o Assembly o Bahasa Tingkat Tinggi

Bahasa mesin (machine language/machine code) adalah bahasa yang dipahami oleh komputer. Kode yang terdapat pada bahasa ini berupa kode bilangan biner yang dapat diproses oleh mikroprosesor sehingga sulit dipahami oleh manusia. Bahasa mesin umumnya bersifat spesifik, yaitu tidak lintas jenis mikroprosesor sehingga suatu jenis mikroprosesor memiliki bahasa pemrograman yang berbeda dengan jenis mikroprosesor lainnya. File bahasa mesin memiliki ekstensi .hex, karena untuk kepentingan manusia yang memprogram kode biner dikonversikan menjadi kode bilangan heksadesimal.

Bahasa Assembly terdiri dari instruksi berupa representasi mnemonic dari instruksi berupa kode bilangan biner dari bahasa mesin. Umumnya mnemonic berupa singkatan tiga atau empat huruf dari kata yang mewakili suatu instruksi. Contohnya instruksi Assembly adalah sebagai berikut :

o SUB adalah kode Assembly untuk instruksi substract, yaitu mengurangkan suatu angka dari angka lain.

o CBI adalah kode Assembly untuk instruksi Clear Bit I/O, yaitu memberi logika nol pada suatu pin I/O digital.

Instruksi pada Bahasa Assembly diterjemahkan menjadi bahasa mesin oleh perangkat lunak Assembler. Seperti juga bahasa mesin bahasa Assembly juga spesifik untuk suatu jenis mikroprosesor tertentu. Namun bahasa Assembly masih terlalu berorientasi mesin, sehingga susah dipahami oleh manusia.

Bahasa yang lebih mudah dipahami disebut bahasa pemrograman tingkat tinggi (high

Page 2: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 21  

level programming language). Bahasa ini memiliki sintaks yang lebih mendekati bahasa manusia. Hal ini menyebabkan bahasa tingkat tinggi lebih mudah untuk dipelajari. Meski demikian bahasa tingkat tinggi umumnya menghasilkan ukuran kode yang lebih besar dibandingkan bahasa Assembly. Bahasa tingkat tinggi memerlukan perangkat lunak kompiler (compiler) untuk menerjemahkan kode menjadi bahasa mesin. Contoh bahasa pemrograman tingkat tinggi adalah Bahasa C dan Basic.

Bahasa C ini memerlukan software compiler untuk diterjemahkan ke bahasa asembly, file ASM kemudian decompile lagi menggunakan Assembler untuk mendapatkan file *.HEX. File HEX inilah yang dimasukkan ke mikrokontroler menggunakan perangkat lunak pemrogram (programmer) melalui perantaraan kabel paralel ataupun serial.

Gambar 3.1. Langkah-langkah penulisan program ke mikrokontroler

Saat ini telah banyak dikembangkan compiler untuk beberapa bahasa pemrograman tingkat tinggi yang dapat digunakan pada pemrograman mikrokontroler. Untuk mikrokontroler keluarga AVR perangkat lunak pemrograman yang dapat digunakan antara lain AVR Studio dari Atmel (http://www.atmel.com/tools/), SDCC (Small Device C Compiler) dari Sandepp Duta (http://sdcc.sourceforge.net), Bascom-AVR (Basic Compiler) dari MCS Electronics (www.mcse.com), CodeVision AVR dari HP InfoTech (http://www.hpinfotech.com), dan WinAVR (winavr.sourceforge.net) serta yang terbaru ada Arduino (www.arduino.cc).

2. Bahasa C

Bahasa C termasuk ke dalam bahasa pemrograman tingkat tinggi. Bahasa C adalah bahasa yang banyak digunakan dalam pemrograman mikrokontroler. Oleh karena itu sebelum kita melakukan pemrograman ada baiknya kita pelajari dahulu bahasa C. Berikut ini penjelasan bahasa C dan aturan penulisan program dalam bahasa C. Untuk seterusnya pada modul ini hanya akan dibahas pemrograman mikrokontroler AVR menggunakan bahasa C, dengan software kompilernya menggunakan AVR Studio 4.

Page 3: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 22  

Struktur Penulisan Program menggunakan Bahasa C Struktur Dasar Pada pemrograman mikrokontroler bahasa C, tersedia format penulisan / struktur dasarnya. Untuk struktur dasar penulisan bahasa C di AVR studio adalah sebagai berikut : //program menyalakan lampu #include <avr/io.h> //ini adalah var lampu int a; void main (void){ //variabel lokal DDRA=0x00; PORTA=0xFF;

while (1){ //program utama ....... }

}

Pada contoh program diatas, adalah struktur dasar pemrograman mikrokontroler. Program harus diawali dengan preprosesor untuk mendefinisikan / memasukan file tambahan dari luar, misalnya library I/O, library delay, dan sebagainya.

Induk Program berada diantara sintaks main(). Perlu diketahui bahwa setiap sintaks yang diawali tanda kurung kurawal buka ( { ) harus juga diakhiri atau ditutup dengan tanda kurung kurawal tutup ( } ).

Komentar adalah sintaks / kode yang tidak akan diterjemahkan ke dalam program. Fungsi komentar hanya sebagai tanda / petunjuk bagi si penulis program itu sendiri. Kita bisa menulis komentar dengan dua metode yaitu satu baris dan banyak baris. Untuk banyak baris, tulis komentar diantara tanda /* dan */. Kemudian untuk komentar satu baris cukup ditulis setelah dua tanda garis miring ( // ).

Preprocessor (#) : digunakan untuk memasukkan (include) text dari file lain dan mendefinisikan macro

Inisialisasi Port

Sub Rutin Program akan berjalan terus karena syarat while(1) akan selalu menghasilkan nilai benar (true)

Komentar ditulis dalam format : /* Komentar beberapa baris */ Atau jika satu baris cukup tulis karakter // komentar Induk

Program

Page 4: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 23  

Contoh pemrograman yang lebih lengkap (dengan fungsi tunda)

#include <avr/io.h> //pemanggilan header I/O #include <util/delay.h> //pemanggilan header delay int a; //variable a dengan type data int void tunda (void){

for (a=0; a<1000; a++){ // pengulangan 1000x _delay_ms(1); // pemanggilan delay 1ms }

} void main (void){ DDRA=0b11111110; // inisialisasi PORTA dijadikan output while (1){ PORTA=0b00000000; //Led PORTA mati semua tunda(); // pemanggilan fungsi tunda 1 detik PORTA=0b11111111; //Led PORTA hidup semua tunda(); // pemanggilan fungsi tunda 1 detik } }

Penjelasan lebih lanjut mengenai bahasa C kami jelaskan di bawah. Variabel Variabel adalah suatu simbol dalam program yang berfungsi untuk mewakili suatu nilai/menyimpan nilai tertentu yang sifatnya dinamis, dapat berubah-ubah selama program dijalankan. Dalam pemrograman bahasa C, untuk menggunakan variabel harus mendeklarasikannya terlebih dahulu agar compiler mengenalinya. Bentuk umum untuk mendeklarasikan variabel dalam bahasa c adalah :

tipe_data nama_variabel; contoh :

int a; /*Mendeklarasikan variabel a yang bertipe integer*/ int b, c; /*Mendeklarasikan variabel b dan c yang bertipe integer*/ char u; /*Mendeklarasikan variabel u yang bertipe char*/

Page 5: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 24  

Aturan Penamaan Variabel Ada beberapa aturan penamaan variabel pada bahasa c, yaitu sebagai berikut :

o Case sensitive, penulisan dengan menggunakan huruf kecil dan besar memiliki arti yang berbeda (merupakan variabel yang berbeda) Contoh :

int a; int A;

Variabel a dan A merupakan dua variabel yang berbeda.

o Nama variabel tidak boleh menggunakan spasi. int bilangan bulat; /*Salah karena menggunakan spasi*/ int bilangan_bulat; /*Benar, karena tidak menggunakan spasi*/

o Nama variabel hanya boleh diawali dengan huruf atau garis bawah (tidak boleh diawali dengan angka dan simbol lain) dan selanjutnya boleh diikuti oleh huruf atau garis bawah atau angka (tetapi tidak boleh menggunakan simbol lain dibagian manapun, seperti : @, #, $ dan lain-lain). int @ngka; /*Salah, karena menggunakan simbol*/ int angk@; /*Salah, karena menggunakan simbol, meskipun berada di belakang*/ int a5gk4; /*Benar, karena diawali dengan huruf dan diikuti angka*/ int _angka; /*Benar, karena diawali dengan garis bawah*/ int 4ngka; /*Salah, karena diawali dengan angka*/

o Panjang variabel max 32 karakter. int abcdefghijklmnopqrstuvwxyzabcdef;

o Tidak boleh menggunakan keyword yang ada pada library int for; int void;

Klasifikasi Variabel 1. Variabel Menurut Lingkupnya

Lingkup variabel ditentukan oleh tempat dimana variabel tersebut dideklarasikan. Menurut lingkupnya, variabel dibedakan menjadi dua,, yaitu variabel global dan variabel lokal.

a) Variabel global, variabel yang dideklarasikan di luar blok fungsi main dan fungsi pendukung lainnya. Variabel global dapat dikenali dan diakses oleh setiap fungsi yang terdapat dalam program. Lihat contoh penggunaan variabel global.

b) Variabel lokal, variabel yang dideklarasikan di dalam suatu fungsi. Variabel lokal hanya dapat diakses oleh fungsi dimana variabel tersebut dideklarasikan (tidak dapat diakses dan dikenali oleh fungsi lain). Lihat contoh penggunaan variabel lokal.

2. Variabel Menurut Jenisnya Ada beberapa jenis variabel yang tersedia dalam bahasa C yang akan dibahas satu

per satu agar mempermudah implementasi suatu variabel ke dalam sebuah program.

Page 6: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 25  

Menurut jenisnya, variabel dibedakan menjadi empat, yaitu variabel otomatis, variabel statis, variabel external, dan variabel register. Konstanta Konstanta Integer dan long integer ditulis dalam bentuk desimal (1234), dalam bentuk biner (0b10101010), hexa desimal mempunyai awalan 0x (0xff) dan oktal dengan awalan 07 (0777). Unsigned integer mempunyai akhiran U (10000U) Long integer mempunyai akhiran L (99L) Unsigned long integer mempunyai akhiran UL (12000000UL) Folating point mempunyai akhiran F (3.145F) Konstanta karakter harus berada di dalam tanda kutip (‘teks‘) Tipe Data

Dalam pemrograman bahasa C dikenal beberapa tipe data antara lain Bit, Char, Int, Long Int dan Float. Tipe data ini biasanya terkait dengan sebuah konstanta atau variabel yang berguna pada proses pemrograman. masing-masing tipe data tersebut mempunyai ukuran dan jangkauan yang berbeda-beda seperti tipe data Char memiliki ukuran 8 bit dengan jangkauan 256 sedangkan tipe data Int memiliki ukuran 16 bit dengan jangkauan 65536.

Dalam pemrograman mikrokontroler, pemilihan tipe data yang benar sangat penting terutama untuk menghemat pemakaian memori dari mikrokontroler tersebut. Pemilihan data yang tepat juga mempercepat proses kerja mikrokontroler karena jumlah bit yang harus diproses lebih sedikit. Sebagai contoh misalnya kita membutuhkan sebuah variabel dengan kemungkinan nilai yang tidak lebih dari 255 seperti data display 7 segmen, maka sebaiknya kita menggunakan tipe data Char. Berikut ini tabel tipe data yang ada dalam bahasa C beserta ukuran dan jangkauannya : Tabel 3.1. Tipe data pada bahasa C

Tipe Ukuran

(Bit) Jangkauan (Range)

Bit 1 0, 1 (tipe data bit hanya dapat digunakan untuk variabel global)

Char 8 -128 sampai 127

Unsigned Char 8 0 sampai 255

Signed Char 8 -128 sampai 127

Int 16 -32768 sampai 32767

Short int 16 -32768 sampai 32767

Unsigned Int 16 0 sampai 65535

Signed Int 16 -32768 sampai 32767

Long Int 32 -2147483648 sampai 2147483647

Page 7: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 26  

Unsigned Long Int

32 0 sampai 4294967295

Signed Long Int 32 -2147483648 sampai 2147483647

Float 32 + 1.175e-38 sampai + 3.402e38

Double 32 + 1.175e-38 sampai + 3.402e38

Perbedaan Tipe data Signed dan Unsigned Khusus untuk tipe data Char, Int dan Long Int dikenal istilah Signed dan Unsigned

atau dalam bahasa Indonesia berarti bertanda dan tak bertanda. Yang dimaksud dengan bertanda disini adalah penggunaan tanda minus (-). Tipe data yang termasuk "Signed" boleh disebut dengan tipe datanya saja, misalnya tipe data Signed Char bisa ditulis dengan Char saja. Sedangkan untuk tipe "Unsigned" harus ditulis secara lengkap misalnya Unsigned Char.

Dengan menetapkan tipe Unsigned pada sebuah tipe data maka kita akan memperoleh tambahan jangkauan bilangan positif. Sebagai contoh, sebuah tipe data Char memiliki jangkauan sebesar 256 artinya pada tipe yang Signed maka jangkauan tipe data Char adalah -128 sampai -127. Jika kita menetapkan tipe data Unsigned Char maka jangkauannya menjadi 0 sampai 255. Hal ini karena tanda minus dihilangkan maka hitungan dimulai dari nol. Operator

Operator adalah simbol atau karakter yang digunakan oleh program untuk melakukan sebuah operasi dalam sebuah proses program seperti operasi bilangan dan operasi string. Bahasa C mengenal penggunaan beberapa operator dengan fungsi yang berbeda-beda. Setiap operator memiliki kedudukan atau hirarki saat penanganan program. Operator dengan hirarki lebih tinggi akan dikerjakan lebih dahulu dibandingkan operator dengan hirarki lebih rendah.

Pada pemrograman bahasa C khususnya untuk pemrograman pada mikrokontroler AVR, kita memerlukan operator untuk memanipulasi data yang berupa angka saat proses pemrograman. Operator yang lazim digunakan adalah operator aritmatika, operator kondisi/perbandingan, operator logika, operator bitwise dan operator penugasan.

Berikut ini beberapa operator pada bahasa C dan penjelasannya yang sering digunakan pada pemrograman mikrokontroler AVR : 1. Operator aritmetika

Adalah operator yang digunakan untuk operasi bilangan seperti penjumlahan, pengurangan, perkalian, pembagian, modulus, increment dan decrement. Operator aritmatika bisa digunakan pada semua tipe bilangan seperti char, int, long int dan float. Operator aritmatika juga bisa menangani tipe signed dan unsigned.

Increment adalah operasi bilangan dimana bilangan hasil merupakan bilangan asal ditambah satu, sedangkan decrement adalah operasi bilangan dimana bilangan hasil merupakan bilangan asal dikurang satu.

Page 8: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 27  

Tabel 3.2. Operator Aritmetika Operator Nama Contoh Hasil

+ Penjumlahan z = x + y Penjumlahan dari x dan y

- Pengurangan z = x - y Selisih dari x dan y

* Perkalian z = x * y Perkalian dari x dan y

/ Pembagian z = x / y Pembagian x oleh y

% Modulus z = x % y Sisa dari x dibagi y

++ Increment x++ Sama dengan x = x+1

-- Decrement x-- Sama dengan x = x-1

2. Operator bitwise

Adalah operator yang menangani operasi bilangan biner seperti and, or, not dan sebagainya. Operator bitwise ini akan menangani data sesuai dengan tipenya. Misalnya sebuah data bertipe char atau byte maka bilangan yang dihasilkan adalah sebesar 8 bit. Tabel 3.3. Operator bitwise

Operator Nama Contoh Dalam biner

(4bit) Hasil Biner

Hasil Decimal

& AND x = 5 & 1 0101 & 0001 0001 1

| OR x = 5 | 1 0101 | 0001 0101 5

~ NOT x = ~ 5 ~0101 1010 10

^ XOR x = 5 ^ 1 0101 ^ 0001 0100 4

<< Left shift x = 5 << 1 0101 << 1 1010 10

>> Right shift x = 5 >> 1 0101 >> 1 0010 2

3. Operator penugasan

Adalah operator yang digunakan untuk memberi nilai pada sebuah variabel. Operator penugasan yang paling dasar adalah sama dengan (=). Dari operator ini dapat dikembangkan beberapa operator penugasan lain seperti +=, -= dan sebagainya. Tabel 3.4. Operator Penugasan

Operator Penugasan Sama dengan Deskripsi

= x = y x = y variabel x memperoleh nilai dari variabel y

+= x += y x = x + y variabel x memperoleh nilai dari x + y

-= x -= y x = x - y variabel x memperoleh nilai dari x - y

Page 9: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 28  

*= x *= y x = x * y variabel x memperoleh nilai dari x * y

/= x /= y x = x / y variabel x memperoleh nilai dari x / y

%= x %= y x = x % y variabel x memperoleh nilai dari x % y

<<= x <<= y x = x << y variabel x memperoleh nilai dari x << y

>>= x >>= y x = x >> y variabel x memperoleh nilai dari x >> y

&= x &= y x = x & y variabel x memperoleh nilai dari x & y

|= x |= y x = x | y variabel x memperoleh nilai dari x | y

^= x ^= y x = x ^ y variabel x memperoleh nilai dari x ^ y

4. Operator perbandingan

Adalah operator yang digunakan untuk membandingkan dua buah nilai atau variabel. Nilai yang dibandingkan bisa berupa angka maupun string. Hasil dari perbandingan ini berupa nilai boolean, yaitu true (benar) atau false (salah). Tabel 3.5. Operator Perbandingan

Operator Nama Contoh Hasil

== Sama dengan a == b benar jika a sama dengan b

!= Tidak sama dengan a != b benar jika a berbeda dengan b

> Lebih besar a > b benar jika a lebih besar dari b

< Lebih kecil a < b benar jika a lebih kecil dari b

>= Lebih besar atau sama dengan

a >= b benar jika a lebih besar atau sama dengan b

<= Lebih kecil atau sama dengan

a <= b benar jika a lebih kecil atau sama dengan b

5. Operator logika

Adalah operator yang digunakan untuk menangani tipe data boolean. Nilai data boolean bisa berupa kondisi benar (true) atau salah (false) dan bisa juga 1 atau 0. Tabel 3.6. Operator Logika

Operator Nama Contoh Hasil

&& And a && b benar jika a and b bernilai benar

|| Or a || b benar jika salah satu a atau b bernilai benar

! Not !a benar jika a tidak benar

Page 10: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 29  

6. Operator lain

Selain dari beberapa operator diatas, ada beberapa operator lain yang juga sering dipakai terutam pada pemrograman array misalnya operator sizeof dan ppointer (*). Tabel 3.7. Operator Lainnya

Operator Keterangan Contoh Hasil

sizeof() Menghasilkan ukuran (size) dari variabel.

sizeof(a) Menghasilkan bilangan integer, misal 5

& Mengembalikan alamat (address) dari variabel.

&a Menghasilkan alamat sebenarnya dari variabel

* Pointer ke sebuah variabel.

*a Mengarahkan pointer ke sebuah variabel.

? : Operator kondisi b = (a == 1) ? 20: 30;Jika kondisi a==1 benar maka nilai b=20 dan jika salah maka nilai b=30

Instruksi Pada Bahasa C Beberapa Instruksi bahasa C yang sering digunakan dalam pemrograman mikrokontroler bisa dilihat pada tabel : Tabel 3.5. Instruksi-instruksi pada bahasa C

No Fungsi Penulisan Program

1. Syarat / Kondisional

if (kondisi) { ………(aksi yang dikerjakan) };

2. Percabangan if (kodisi) { ……(aksi yang dikerjakan) } else if (kondisi) { …..(aksi yang dikerjakan) } …..….. else { …..(aksi yang dikerjakan) };

Page 11: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 30  

3. Percabangan switch (variable) { case nilai_variabel_ke-1: { ….. (aksi yang dikerjakan) } case nilai_variabel_ke-2: { ….. (aksi yang dikerjakan) } ………… ……….. default: { …. (aksi yang dikerjakan) } }

4. Melompat goto alamat_tujuan; ……………. ……………. alamat_tujuan: …………… …………….

5. Melompat keluar dari perulangan

break;

6. Perulangan while (kondisi) { ……(aksi yang dikerjakan) }

7. Perulangan do { …..(aksi yang dikerjakan) } while (syarat);

8. Perulangan for (nilai_awal,syarat,operasi++/--) { …..(aksi yang dikerjakan) };

Page 12: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 31  

PROSEDUR DAN FUNGSI Seringkali dalam suatu program kita menemukan kelompok intruksi untuk suatu keperluan tertentu yang sering dijalankan. Kelompok instruksi ini bisa dibuat sebagai prosedur atau fungsi. Langkah ini akan dapat menghemat memori dibanding bila instruksi-instruksi tersebut ditulis berulang-ulang. Ingat bahwa disini kita akan memprogram mikrokontoler yang memorinya terbatas. PROSEDUR Prosedur adalah suatu kumpulan instruksi untuk mengerjakan suatu keperluan tertentu tanpa mengembalikan suatu nilai.

… void nama_prosedure (parameter1, parameter2,..,parameter n) {     Pernyataan‐pernyataan } … 

Contoh:

void kedap_kedip_LED (unsigned int i) {   while (i–)     {     PORTD=0x00;     _delay_ms(100);     PORTD=0xff;   } } 

Jika kita memanggil prosedur tersebut pada program tersebut maka PORTD akan nyala dan mati selama nilai I yang diberikan. Untuk memanggil prosedur pada progam utama cukup dengan memanggil nama prosedure tersebut dan diisi parameter yang ada jika ada.

void main(void)     unsigned int I;     ….     i=100;     kedap_kedip_LED(i);     … } 

Page 13: Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler

Modul Dasar Mikrokontroler | Beny Abdurrahman    | 32  

FUNGSI Fungsi adalah suatu kumpulan instruksi untuk mengerjakan suatu keperluan tertentu dengan hasil akhir pengembangan nilai keprluan tersebut.

Type_data nama_fungsi (parameter1, parameter2,..,parametern) {     Pernyataan‐pernyataan } 

Contoh:

Int luas(int panjang, int lebar) {   Luas=panjang*lebar;   Return luas; } 

Cara pemanggilan fungsi pada program yaitu:

Void main(void) {     Int Luas_R, pj,lb;     ….     Luas_R=luas(pj,lb);     … }