Belajar pemrograman bahasa C khususnya untuk mikrokontroler AVR secara konsep dan garis besar tidak jauh berbeda dengan jika kita ingin membuat program C untuk aplikasi PC. Jadi intinya belajar C untuk mikrokontroler tidaklah serumit yang dibayangkan, apalagi jika sudah ada basic ataupun sudah pernah mengenal bahasa C sebelumnya. Pada kesempatan ini penulis ingin mencoba membahas pemakaian bahasa C untuk mikrokontroler AVR dengan menggunakan editor dan juga sekaligus compiler yaitu CodeVisionAVR.
Pengenal
Pengenal (identifier) digunakan untuk mendefinisikan identitas dari suatu konstanta, variabel, fungsi, label atau tipe data khusus. Aturan pemberian nama pengenal pada CAVR adalah sama seperti pada bahasa c yg lain, misal:
- kartakter pertama tdk boleh adakarakter khusus (. , " , ' , ; , / , dll)
- tidak menggunakan spasi
- tidak boleh menggunakan kata yg dipakai oleh sintaks atau operator pemrograman (void, short,long,int,bit..)
- bersifat case sensitive, artinya huruf besar dan kecil adalah berbeda.
Tipe Data
Bit - ukuran 1-bit (0 dan 1)
Char - ukuran 8-bit / 1-byte (-128 sampai 127)
Int - ukuran 2-byte (-32.768 sampai 32.767)
Float - ukuran 4-byte
Double - ukuran 8-byte
Deklarasi konstanta
const [type data] [nama konstanta]=[nilai]
contoh:const char konstanta1=0x25;
Deklarasi Variabel
[type data] [nama variabel]=[nilai awal]
contoh: unsigned char variabel1, data0, data1, data2;
unsigned int jumlah=0;
bit status;
Menulis Komentar
kita dapat memberikan keterangan berupa komentar pada instruksi atau baris program yang kita buat dengan tujuan supaya tidak lupa, ini dapat dilakukan dengan memberikan tanda doble slash ( // ). atau untuk komentar lebih dari satu bari menggunakan ( /* dan diakhiri dengan */ ).
contoh:
// ini komentar satu baris
/* ini komentar yang lebih dari satu baris
sampai diakhiri dengan tanda */
Pengarah Prosesor
Pengarah prosesor digunakan untuk menentukan jenis mikrokontroler yang digunakan dengan cara menyisipkan file dari mikrokontroler tersebut.
#include
contoh:
#include jika menggunakan atmega8
#include jika menggunakan atmega8535
#include jika menggunakan atmega8515
Pernyataan
Untuk memberikan instruksi / program kita harus membuat pernyataan, pernyataan ini yang nantinya akan dicompile oleh program CodeVsisionAVR.
sintaks pernyataan adalah sebagai berikut:
PORTA=0x00;
PORTB=0xFF;
jika pernyataan ditulis dalam satu blok maka dapat dibuat blok pernyataan seperti berikut:
contoh:
{
PORTA=0x00;
PORTB=0xAA;
PORTC=0xF0;
}
Operator Aritmatika
Dalam suatu program tidak terlepas dari perhitungan, dalam bahasa c operasi perhitungan ini sangat mudah untuk dilakukan. operator yang digunakan adalah:
- penjumlahan (+)
- pengurangan (-)
- perkalian (*)
- pembagian (/)
- operasi sisa pembagian (%)
Operator Logika
&& - operator untuk logika AND
|| - operator untuk logika OR
! - operator untuk logika NOT
Operator Pembanding
== - bernilai benar jika kedua nilai sama
!= - bernilai benar jika kedua nilai tdk sama
> - bernilai benar jika lebih besar
< - bermilai benar jika lebih kecil
<= - bernilai benar jika lebih kecil atau sama
>= - bernilai benar jika lebih besar atau sama
contoh:
if ((a==b) && (c!=d)) PORTC=0xAA;
Fungsi Pustaka
Bahasa c pada CodeVisionAVR dapat memanggil fungsi pustaka untuk mempermudah program, cara memanggil fungsi pustaka adalah dengan menyertakan dibawah file header (pengarah prosesor).
contoh:
#include
#include
#include
#include
Pernyataan If
if (kondisi)
{
// blok pernyataan jika kondisi if terpenuhi
}
contoh:
if (PIND>0x0F)
{
data=PIND;
PORTC=data;
}
Pernyataan if else
if (kondisi)
{
// blok pernyataan jika kondisi if terpenuhi
}
else
{
// blok pernyataan jika kondisi if tidak terpenuhi
}
contoh:
if (PIND>0x0F)
{
data=PIND;
PORTC=data;
}
else
{
PORTC=0x00;
}
Pernyataan switch case
switch (ekspresi)
{
case nilai0 : pernyataan jika ekspresi sama dengan nilai0; break;
case nilai1 : pernyataan jika ekspresi sama dengan nilai1; break;
case nilai2 : pernyataan jika ekspresi sama dengan nilai2; break;
default : pernyataan default; break;
}
contoh:
switch (PIND)
{
case 0x01 : PORTC=0x01; break;
case 0x02 : PORTC=0x02; break;
case 0x03 : PORTC=0x03; break;
}
0 Comments
Silahkan Tinggalkan Komentar Anda