sesi_3_teknik pemrograman mikrokontroler avr (bahasa c)

41
Aplikasi Mikrokontroler [KT015] Oleh : Akhmad Musafa, M.T. Teknik Elektro – Fakultas Teknik Universitas Budi Luhur

Upload: hendrian

Post on 14-Apr-2016

63 views

Category:

Documents


12 download

DESCRIPTION

pemrograman mikrokontroler

TRANSCRIPT

Page 1: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler

[KT015]

Oleh : Akhmad Musafa, M.T.

Teknik Elektro – Fakultas Teknik

Universitas Budi Luhur

Page 2: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Sesi 3 :

Teknik Pemrograman

Mikrokontroler AVR dengan

Bahasa C

Page 3: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

3

Tujuan Pembelajaran

� Mahasiswa dapat memahami dan

menjelaskan teknik pemrograman

mikrokontroler AVR dengan bahasa C

� Mahasiswa dapat membuat program

mikrokontroler AVR ATmega16 dengan

bahasa C

Page 4: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

4

Struktur Program C AVR ATmega#include<mega16.h>#include<delay.h>#define IRSensor

//variabel globalunsigned int i,j;

void main(void){

//deklarasi variabel lokalchar data_1;DDRA = 0xFF;PORTA = 0xFF;………………………………………..while(1) {……………………………………………………………..};

}

Program Utama

Inisialisasi

Preprocessor (#) :Digunakan untuk memasukkan(include) text dari file lain danmendefinisikan macro

Page 5: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

5

Struktur Program C (1)

• Preprocessor(#) : digunakan untuk memasukkan (include) text dari file lain, mendefinisikan macro yang dapat mengurangi beban kerja pemrograman dan meningkatkan legibility source code (mudah dibaca)

• #define : digunakan untuk mendefinisikan macro– Contoh : #define ALFA 0xFF

#define SUM(a,b) a+b

#define sensor PINA.2

#define pompa PORTB.0

Page 6: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

6

Struktur Program C (2)

• Komentar

– Penulisan untuk beberapa baris komentar

/*

…………komentar

*/

– Penulisan untuk satu baris komentar

// komentar

Page 7: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

7

Struktur Program C (3)

• Identifiers

– Identifier adalah nama yang diberikan pada variabel, fungsi, label atau objek lain.

– Identifier dapat mengandung huruf (A..Z, a..z) dan angka (0..9) dan karakter (_).

– Identifier bersifat case sensitif.

– Identifier dapat mencapai maksimal 32 karakter.

Page 8: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

8

Struktur Program C (4)

• Konstanta– Konstanta integer dan long integer ditulis dalam bentuk desimal (1234), dalam bentuk biner (0b01010101), heksadesimal (0x2F), atau dalam bentuk oktal (o657)

– Unsigned integer mempunyai akhiran U (10000U)

– Long integer mempunyai akhiran L (99L)

– Unsigned long integer mempunyai akhiran UL (99UL)

– Floating point mempunyai akhiran F (1.234F)

– Konstanta karakter harus dilingkungi oleh tanda kutip (‘a’)

Page 9: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

9

Tipe Data

Page 10: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

10

Operator (1)

• Operator Kondisi

Operator

Lebih dari>

Kurang dari<

Tdk sama dengan!=

Sama dengan==

Lebih dari atau sama dengan>=

Kurang dari atau sama dengan<=

Operasi

Page 11: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

11

Operator (2)

• Operator Aritmatika

%

/

*

-

+

Operator

Bil. Bulat, realBil. Bulat, realPembagian

Bil. Bulat, realBil. Bulat, realPerkalian

Bil. Bulat, realBil. Bulat, realPengurangan

Bil. Bulat, realBil. Bulat, realPenjumlahan

Bil. bulatBil. bulatSisa pembagian

Tipe hasilTipe OperanOperasi

Page 12: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

12

Operator (3)

• Operator Logika

Operator

Logika OR||

Logika AND&&

Boolean NOT!

OPERASI

Page 13: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

13

Operator (4)

• Operator Bitwise

Operator

Bitwise OR|

Bitwise AND&

Komplemen Bitwise~

Pergeseran bit ke kanan>>

Pergeseran bit ke kiri<<

Bitwise XOR^

OPERASI

Page 14: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

14

Teknik Percabangan

� Percabangan adalah teknik yang digunakan untuk

mengarahkan alur proses dalam program.

� Teknik percabangan banyak digunakan terutama

dalam pemrograman yang kompleks.

� Teknik Percabangan (dalam bahasa C) :

– Percabangan bentuk if-then [ if() ]

– Percabangan bentuk if-then-else [ if() … else … ]

– Percabangan Nested if [ if … else … if … else … ]

– Percabangan dengan [ switch … case … default ]

Page 15: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

15

Struktur Percabangan if-then

• Percabangan ini digunakan untuk menyeleksi satu

kondisi tunggal

• Struktur :

if (syarat){

pernyataan;

- - -

- - -

}

syarat?

pernyataan

Ya

Tidak

next instruction

Page 16: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

16

Struktur Percabangan

if-then-else

• Struktur :

if (syarat){

pernyataan jika benar;

- - -

}

else{

pernyataan jika salah;

- - -

}

syarat?

pernyataan

jika benar

YaTidak

next instruction

pernyataan

jika salah

Page 17: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

17

Struktur Percabangan

Nested if

• Percabangan bersarang terjadi apabila pada cabang

terjadi kondisi yang menyebabkan terjadinya

percabangan kembali

syarat1TRUEFALSE

pernyataan1 syarat2

pernyataan2

FALSE

TRUE

if (syarat1){

if (syarat2){ pernyataan3;

}

else {penyataan2;}

}

else{

pernyataan1;

}pernyataan3

Page 18: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

18

Struktur Percabangan switch (1)

• Statemen switch berguna untuk menangani kasus yang

memerlukan percabangan yang banyak

• Sebagai penyederhanaan dari percabangan dengan

Nested IF

• Statemen switch membutuhkan satu variabel yang dapat

mempunyai beberapa harga

• Harga ini ditempatkan di depan kata kunci case

• Statemen switch akan memberikan aksi yang berbeda

untuk harga variabel yang berbeda

Page 19: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

19

Struktur Percabangan switch (2)

Kondisi_1

dipenuhi?

Kondisi_2

dipenuhi?

Kondisi_n

dipenuhi?

statemen_1

statemen_2

Statemen_n

next instruction

Tidak

Ya

Ya

Ya

Tidak

Tidak

Page 20: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

20

Struktur Percabangan swicth (3)

switch (variabel)

{

case konstanta_1: {statemen_1; break;}

case konstanta_2: {statemen_2; break;}

- - - -

- - - -

- - - -

case konstanta_n: {statemen_n; break;}

default; {statemen default;}

}

Page 21: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

21

Teknik Perulangan

• Statemen for

• Statemen while

• Statetmen do…while

Page 22: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

22

Perulangan dengan Statemen for

• Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya.

• Dari segi penulisannya, struktur perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan sederhana.

• Bentuk umum perulangan for adalah sebagai berikut :

for (variabel=nilai_awal; syarat_loop; variabel++){

statemen_yang_diulang;

}

Page 23: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

23

Struktur Perulangan Statemen for

• Melakukan inisialisasi (memberikan nilai awal kondisi)

• Memeriksa nilai kondisi– Jika benar, maka laksanakan

loop 3, setelah itu rubah kondisi 4, kemudian kembali ke no-2

– Jika salah, maka langsung keluar dari loop melaksanakan langkah 5 (loop selesai)

inisialisasi

kondisi

proses_dalam_loop

perubahan_indeks

for (inisialisasi; kondisi; perubahan_indeks){

proses_dalam_loop;

}

next instruction;N

Y

next instruction

1

2

3

4

5

Page 24: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

24

Perulangan dengan Statemen while

• Perulangan while banyak digunakan pada

program yang terstruktur.

• Perulangan ini banyak digunakan bila

jumlah perulangannya belum diketahui.

• Proses perulangan akan terus berlanjut

selama kondisinya bernilai benar (true)

dan akan berhenti bila kondisinya bernilai

salah.

Page 25: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

25

Struktur Perulangan Statemen while

• Cara kerja perulangan dengan

statemen while sama dengan

perulangan dengan statemen

for

inisialisasi

kondisi

Proses_dalam_loop

Perubahan_indeks

inisialisasi;

while (kondisi)

{

proses_dalam_loop;

perubahan_indeks;

}

next instruction;

N

Y

next instruction

1

2

3

4

5

Page 26: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

26

Perulangan dengan Statemen

do…while

• Pada dasarnya struktur perulangan do....while sama saja dengan struktur while, hanya saja pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas sementara pada perulangan do....while, seleksi while berada di bawah batas perulangan.

• Jadi dengan menggunakan struktur do…while sekurang-kurangnya akan terjadi satu kali perulangan.

Page 27: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

27

Struktur Perulangan Statemen do while

inisialisasi

kondisi

proses_dalam_loop

perubahan_indeks

N

Y

next instruction

1

2

3

4

5

inisialisasi;

do

{

proses_dalam_loop;

perubahan_indeks;

}

while(kondisi);

next instruction;

Page 28: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

28

Array

• Array adalah deretan variabel dengan nama dan tipe data sama.

• Setiap anggota deretan (elemen) diberi nomor yang disebut indeks (dimulai dari nol).

• Jenis Array :

– Satu dimensi

– Dua dimensi

– Multi dimensi

Page 29: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

29

• Deklarasi Array :

• Contoh :

tipe_array nama_array[ukuran];

int nilai[5];

nilai[0]

70

nilai[1] nilai[2] nilai[3] nilai[4]

60 85 75 65

Page 30: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

30

Fungsi

• Sebuah program yang besar dapat

dipecah menjadi beberapa sub program

yang terpisah untuk melakukan fungsi

tertentu.

• Sub program seperti ini disebut fungsi.

• Jenis fungsi :

– Fungsi dengan nilai balik

– Fungsi tanpa nilai balik

Page 31: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

31

• Deklarasi fungsi :

– tipe

• Nilai yang dihasilkan oleh fungsi.

• Jika tidak dinyatakan, hasil fungsi dianggap bertipe integer.

• Deklarasi tipe void dapat digunakan untuk menghindari

terjadinya nilai balik.

– argumen

• Deklarasi variabel apa saja yang dibutuhkan oleh fungsi

• Bersifat optional

tipe nama_fungsi(argumen);

Page 32: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

32

Fungsi dengan Nilai Balik

• Fungsi ini memberikan hasil berupa nilai

(return value)

• Contoh :

long luas_persegi_panjang()

{

int panjang =10;

int lebar = 5;

return(panjang*lebar);}

Page 33: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

33

Fungsi tanpa Nilai Balik

• Fungsi ini tidak memberikan hasil berupa nilai

(return value), melainkan berua sebuah proses

• Fungsi ini bertipe void

• Contoh : void flip_flop()

{

PORTD = 0x00;

delay_ms(1000);

PORTD = 0xFF;

delay_ms(1000);

return;

}

Page 34: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

34

Catatan

• Pernyataan return dapat menyatakan dua hal :

– return mengakhiri jalannya fungsi dan kembali ke

program utama

– Mengirim nilai balik

• Fungsi dapat ditulis diawal program atau diakhir

program (sebelum atau sesudah program

utama).

• Jika fungsi ditulis di akhir program, maka perlu

dilakukan deklarasi fungsi (prototype function)

di bagian awal program.

Page 35: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

35

Parameter dalam sebuah fungsi

• Parameter formal

– Parameter pada saat fungsi itu dibuat

• Parameter actual

– Parameter yang terdapat pada saat

pemanggilan fungsi

Page 36: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

36

Library Function pada

CodeVision AVR

• Fungsi Input/Output

• Fungsi Tipe Karakter

• Fungsi Standar

• Fungsi Matematika

• Fungsi Konversi BCD

• Fungsi LCD

• Fungsi Delay

Page 37: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

37

Fungsi Input/Output (1)

• Terletak dalam file stdio.h (pada direktori

c:\cavr\inc\STDIO.h).

• Beberapa fungsi I/O dasar :

– char getchar(void)

• Fungsi ini digunakan untuk menerima data serial (dengan

sistem polling). Fungsi ini menghasilkan nilai balikan berupa

karakter yanf diterima dari UART.

– void putchar(char c)

• Fungsi ini digunakan untuk mengirimkan karakter ‘c’

menggunakan UART pada komunikasi serial menggunakan

sistem polling (mengirimkan data serial).

Page 38: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

38

Fungsi Input/Output (2)

• void puts(char *str)– sebagai fungsi output, menggunakan putchar, nulldigunakan untuk mengakhiri karakter string, dan berlokasi di SRAM.

• void putsf(char flash *str)– sebagai fungsi output, menggunakan putchar, nulldigunakan untuk mengakhiri karakter string, dan berlokasi di memori flash.

• void printf(char flash *fmtstr[ , arg1, arg2, ...])– sebagai fungsi output untuk text yang terformat, menggunakan putchar, sesuai dengan format specifiers dalam fmtstr string.

Page 39: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

39

Fungsi Tipe Karakter

• Berada di dalam file ctype.h yang terletak pada direktori c:\cavr\inc\ctype.h).

• Beberapa fungsi tipe karakter :– char toascii(char c)

• digunakan untuk konversi char c menjadi data ASCII.

– char toint(char c)• digunakan untuk menginterpretasikan karakter c sebagai digit heksadesimal dan mengkonversikannya menjadi unsigned char dari 0 sampai 15.

– char tolower(char c)• digunakan untuk mengubah karakter c menjadi huruf kecil.

– char toupper(char c)• digunakan untuk mengubah karakter c menjadi huruf besar.

Page 40: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

40

Standard Library Function

• Terletak pada file stdlib.h (pada direktori c:\cavr\inc\stdlib.h)

• Beberapa fungsi pada file stdlib.h :– int atoi(char *str)

• digunakan untuk mengubah string str menjadi data integer.

– long atol(char *str)

• digunakan untuk mengubah string str menjadi data long integer.

– void itoa(int n, char *str)

• digunakan untuk mengubah integer n menjadi karakter pada string str.

– void ltoa(long int n,char *str)

• digunakan untuk mengubah long int n menjadi karakter pada stringstr.

– void float(float n,unsigned char decimal, char *str)

• digunakan untuk mengubah floating n menjadi karakter pada stringstr.

Page 41: Sesi_3_Teknik Pemrograman Mikrokontroler AVR (Bahasa C)

Aplikasi Mikrokontroler Sesi-3 : Pemrograman

Mikrokontroler AVR dengan C

41

Terima kasihTerima kasihTerima kasihTerima kasih…………!!!!