Anda di halaman 1dari 41

Aplikasi Mikrokontroler

[KT015]
Oleh : Akhmad Musafa, M.T.

Teknik Elektro Fakultas Teknik


Universitas Budi Luhur

Sesi 3 :
Teknik Pemrograman
Mikrokontroler AVR dengan
Bahasa C

Tujuan Pembelajaran
 Mahasiswa dapat memahami dan
menjelaskan teknik pemrograman
mikrokontroler AVR dengan bahasa C
 Mahasiswa dapat membuat program
mikrokontroler AVR ATmega16 dengan
bahasa C

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

Struktur Program C AVR ATmega


#include<mega16.h>
#include<delay.h>
#define IRSensor

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

//variabel global
unsigned int i,j;
void main(void)
{
//deklarasi variabel lokal
char data_1;
DDRA = 0xFF;
PORTA = 0xFF;

..
while(1) {

..
};
}
Aplikasi Mikrokontroler

Inisialisasi

Program Utama

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

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
#define
#define
#define
Aplikasi Mikrokontroler

ALFA
SUM(a,b)
sensor
pompa

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

0xFF
a+b
PINA.2
PORTB.0
5

Struktur Program C (2)


Komentar
Penulisan untuk beberapa baris komentar
/*
komentar
*/
Penulisan untuk satu baris komentar
// komentar

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

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.

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

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)
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

Tipe Data

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

Operator (1)
Operator Kondisi
Operator

Operasi

==

Sama dengan

!=

Tdk sama dengan

<

Kurang dari

>

Lebih dari

<=

Kurang dari atau sama dengan

>=

Lebih dari atau sama dengan

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

10

Operator (2)
Operator Aritmatika
Operator

Operasi

Penjumlahan

Bil. Bulat, real

Bil. Bulat, real

Pengurangan

Bil. Bulat, real

Bil. Bulat, real

Perkalian

Bil. Bulat, real

Bil. Bulat, real

Pembagian

Bil. Bulat, real

Bil. Bulat, real

Sisa pembagian

Bil. bulat

Bil. bulat

Aplikasi Mikrokontroler

Tipe Operan

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

Tipe hasil

11

Operator (3)
Operator Logika
Operator

OPERASI

Boolean NOT

&&

Logika AND

||

Logika OR

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

12

Operator (4)
Operator Bitwise
Operator

OPERASI

Komplemen Bitwise

&

Bitwise AND

Bitwise OR

Bitwise XOR

<<

Pergeseran bit ke kiri

>>

Pergeseran bit ke kanan

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

13

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 ]

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

14

Struktur Percabangan if-then


Percabangan ini digunakan untuk menyeleksi satu
kondisi tunggal
Struktur :

syarat?
Tidak

Ya
pernyataan

if (syarat)
{
pernyataan;
----}

next instruction
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

15

Struktur Percabangan
if-then-else
Struktur :

Tidak

syarat?

pernyataan
jika salah

Ya
pernyataan
jika benar

next instruction

Aplikasi Mikrokontroler

if (syarat)
{
pernyataan jika benar;
--}
else
{
pernyataan jika salah;
--}

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

16

Struktur Percabangan
Nested if
Percabangan bersarang terjadi apabila pada cabang
terjadi kondisi yang menyebabkan terjadinya
percabangan kembali

FALSE

syarat1
FALSE

pernyataan1

pernyataan2

TRUE

syarat2
TRUE
pernyataan3

Aplikasi Mikrokontroler

if (syarat1)
{
if (syarat2)
{ pernyataan3;
}
else {penyataan2;}
}
else
{
pernyataan1;
}

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

17

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

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

18

Struktur Percabangan switch (2)


Kondisi_1
dipenuhi?

Ya

statemen_1

Tidak
Kondisi_2
dipenuhi?

Ya
statemen_2

Tidak
Kondisi_n
dipenuhi?

Ya
Statemen_n

Tidak

next instruction
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

19

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;}
}

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

20

Teknik Perulangan
Statemen for
Statemen while
Statetmen dowhile

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

21

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;
}
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

22

Struktur Perulangan Statemen for


1

inisialisasi

kondisi

Y
3

proses_dalam_loop

perubahan_indeks

5 next instruction
Aplikasi Mikrokontroler

for (inisialisasi; kondisi; perubahan_indeks)


{
proses_dalam_loop;
}
next instruction;

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)
Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

23

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.
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

24

Struktur Perulangan Statemen while


1

inisialisasi

kondisi

inisialisasi;
while (kondisi)
{
proses_dalam_loop;
perubahan_indeks;
}
next instruction;

Y
3

Proses_dalam_loop

Perubahan_indeks

Cara kerja perulangan dengan


statemen while sama dengan
perulangan dengan statemen
for

5 next instruction
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

25

Perulangan dengan Statemen


dowhile
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 dowhile
sekurang-kurangnya akan terjadi satu kali
perulangan.
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

26

Struktur Perulangan Statemen do while


1

inisialisasi

proses_dalam_loop

perubahan_indeks
4
Y

kondisi

inisialisasi;
do
{
proses_dalam_loop;
perubahan_indeks;
}
while(kondisi);
next instruction;

N
5 next instruction
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

27

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
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

28

Deklarasi Array :
tipe_array nama_array[ukuran];

Contoh :
int nilai[5];
nilai[0] nilai[1] nilai[2] nilai[3] nilai[4]
70
60
85
75
65

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

29

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
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

30

Deklarasi fungsi :
tipe nama_fungsi(argumen);
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

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

31

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);
}
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

32

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;
}
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

33

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.
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

34

Parameter dalam sebuah fungsi


Parameter formal
Parameter pada saat fungsi itu dibuat

Parameter actual
Parameter yang terdapat pada saat
pemanggilan fungsi

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

35

Library Function pada


CodeVision AVR

Fungsi Input/Output
Fungsi Tipe Karakter
Fungsi Standar
Fungsi Matematika
Fungsi Konversi BCD
Fungsi LCD
Fungsi Delay

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

36

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).
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

37

Fungsi Input/Output (2)


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

void putsf(char flash *str)


sebagai fungsi output, menggunakan putchar, null
digunakan 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.
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

38

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.
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

39

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 string
str.
void float(float n,unsigned char decimal, char *str)
digunakan untuk mengubah floating n menjadi karakter pada string
str.

Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

40

Terima kasih
kasih!
Aplikasi Mikrokontroler

Sesi-3 : Pemrograman
Mikrokontroler AVR dengan C

41

Anda mungkin juga menyukai