Bahasa Pemrograman C Untuk AVR

Struktur pemrograman C

Struktur penulisan bahasa C secara umum terdiri atas empat blok, yaitu :

  1. header,
  2. deklarasi konstanta global atau variabel,
  3. fungsi dan prosedur
  4. program utama.


Secara umum, pemrograman C paling sederhana dilakukan dengan hanya menuliskan program utamanya saja, yaitu :

void main (void)

{

}

A. Header

Header berisi include file (.hex), yaitu library (pustaka) yang akan digunakan dalam pemrograman.

Contoh:

#include <mega8535.h>

B. Tipe Data

Berikut ini adalah tabel tipe-tipe variabel data yang dapat digunakan di kompiler Code Vision AVR:

Type

Size(Bits)

Range

Bit

1

0, 1

Char

8

-128 to 127

Unsigned char

8

0 to 255

Signed char

8

-128 to 127

Int

16

-32768 to 32767

Short int

16

-32768 to 32767

Unsigned int

16

0 to 65535

Signed int

16

-32768 to 32767

Long int

32

-2147483648 to  2147483647

Unsigned long int

32

0 to 4294967295

Signed long int

32

-2147483648 to  2147483647

Float

32

±1.175e-38 to ±3.402e38

Double

32

±1.175e-38 to ±3.402e38

Khusus untuk tipe data bit hanya bisa dideklarasikan untuk variabel global.

C. Konstanta

Penulisan konstanta adalah sebagai berikut:

  • Integer atau lng integer dpat ditulis dengan format desimal (contoh 1234), biner dengan awlan 0b contoh (0b101001), heksadesimal dengan awalan 0x (contoh 0xff) atau oktal dengan awalan 0 (0777).
  • Unsigned integer ditulis dengan diakhiri U (contoh 10000U).
  • Long integer diulis dengan diakhiri L (contoh99L)
  • Unsigned long integer ditulis dengan diakhiri UL (contoh 99UL).
  • Floating point ditulis dengan diakhiri F (contoh 1.234F).

Karakter konstanta harus dituliskan dalam tanda kutip (contoh ‘a’), sedangkan konstanta string harus dalam tanda kutip dua (contoh “Saya Belajar C).

D. Komentar

Komentar diawali dengan tanda ‘/*’ dan diakhiri dengan ‘*/’.

Contoh:

/* ini komentar */

/* ini komentar

multi baris*/

Contoh:

// Ini juga komentar

E. Reserved Keywords

Break                                       flash                                        signed

bit                                            float                                         sizeof

case                                         for                                           sfrb

char                                        funcused                                 sfrw

const                                        goto                                         static

continue                                  if                                              struct

default                                     inline                                       switch

do                                            int                                            typedef

double                                     interrupt                                  union

eeprom                                    long                                         unsigned

else                                          register                                    void

enum                                       return                                       volatile

extern                                      short                                        while

F. Aritmatika

Simbol Contoh Aritmatika
+ c=a+b

n=n+2

Penjumlahan
c=a-b

n=n-2

Pengurangan
++ ++i Kenaikan(increment, sama dengan i=i+1
–i Penurunan(decrement, sama dengan i=i-1
* c=a*b

n=n*2

Perkalian
/ c=a/b

n=n/2

Pembagian
% sisa=a %

b

Menghasilkan sisa dari pembagian. A dan b bilangan bulat
= a=b Pemberian nilai
+= a+=2 Penambahan suatu nilai pada suatu variabel yang sudah ada sebelumnya. Sama dengan a=a+2
-= a-=2 Pengurangan suatu nilai pada suatu variabel yang sudah ada sebelumnya. Sama dengan a=a-2
*= a*=2 Pengalian suatu nilai pada suatu variabel yang sudah ada sebelumnya. Sama dengan a=a*2
/= a/=2 Pembagian dari suatu nilai pada suatu variabel yang sudah ada sebelumnya. Sama dengan a=a/2
%= a/=2 Sisa dari suatu nilai pada suatu variabel yang sudah ada sebelumnya yang dibagi oleh nilai atau variabel lain. Sama dengan a=a/2
* *pointer Menunjukkan isi dari pointer

G. Simbol

Symbol Contoh Logika Pembanding
“==” if(a==b) Logika sama dengan, digunakan untuk pembanding. Menghasilkan nilai true jika a = b.
!= if(a!=b) Tidak sama dengan. Menghasilkan nilai true jika a ≠ b.
< if(a<b) Logika lebih kecil dari. Menghasilkan nilai true jika a < b.
<= if(a<=b) Logika lebih kecil sama dengan dari. Menghasilkan nilai true jika a ≤ b.
> if(a>b) Logika lebih besar dari. Menghasilkan nilai true jika a > b.
>= if(a>=b) Logika lebih besar sama dengan dari. Menghasilkan nilai true jika a ≥ b.
! If(!a) NOT
&& if(a==b && a==c) AND
| | if(a==b | | a==c) OR

H. Manipulasi Bit

~ a=~b Complement b=1100;a=0011
& c= a & b AND untuk manipulasi bit. a=1100; b=1001; maka c=1000
| c=a | b OR untuk manipulasi bit. a=1100; b=1001; maka c=1101
^ c=a ^ b XOR untuk manipulasi bit. a=1100; b=1001; makac=0101.
<< c=a << n Shift left, manipulasi bit menggeser ke kiri sejauh n bit. a=1101;  n=2; maka c=110100
>> C= a >> n Shift Right, manipulasi bit menggeser ke kiri sejauh n bit. a=11010; n=2; maka c=0110.

I. Percabangan

  • if-then

Contoh:

if (a<0x50) {

PORTC=0x55; // PORTC akan dikirim data 0x55

};

  • if-then-else

Contoh:

if (a<0x50) {

PORTC=0x55;

}

else {

PORTC=0xAA;

};

  • Switch – case

Contoh :

.  .  .

switch (a) {

case 1:

PORTC=0x01;

break;

case 2:

PORTC=0x02;

break;

case 3:

PORTC=0x03;

break;

}

.  .  .

  • Switch – case – default

Contoh:

.  .  .

switch (a) {

case 1:

PORTC=0x01;

break;

case 2:

PORTC=0x02;

break;

case 3:

PORTC=0x03;

break;

default:

PORTC=0xFF;

}

.  .  .

J. Perulangan

  • For

Contoh:

.  .  .

a=1;

for (i=1; i<50; i++) {

a=a*2

PORTC=a;

};

.  .  .

  • While

Contoh:

.  .  .

i=1;

a=1;

while (i<50) {

a=a*2;

PORTC=a;

i++;

};

.  .  .

  • Do – While

Contoh:

.  .  .

i=1;

a=1;

do {

a=a*2;

PORTC=a;

i++;

}

while (i<50);

.  .  .

Referensi :

Bahasa C Untuk Mikrokontroler ATMEGA8535, M.ary heryanto, ST & Ir. Wisnu Adi P.


2 thoughts on “Bahasa Pemrograman C Untuk AVR”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s