PEMROGRAMAN BAHASA C UNTUK AVR
Bahasa C luas digunakan untuk pemrograman berbagai jenis perangkat,
termasuk mikrokontroler. Bahasa ini sudah merupakan high level
language, dimana memudahkan programmer menuangkan algoritmanya. Untuk
mengetahui dasar bahasa C dapat dipelajari sebagai berikut.


1. Struktur penulisan program
#include < [library1.h] > // Opsional
#include < [library2.h] > // Opsional
#define [nama1] [nilai] ; // Opsional
#define [nama2] [nilai] ; // Opsional
[global variables] // Opsional
[functions] // Opsional
void main(void) // Program Utama
{
[Deklarasi local variable/constant]
[Isi Program Utama]
}
2. Tipe data
char : 1 byte ( -128 s/d 127 )
unsigned char : 1 byte ( 0 s/d 255 )
int : 2 byte ( -32768 s/d 32767 )
unsigned int : 2 byte ( 0 s/d 65535 )
long : 4 byte ( -2147483648 s/d 2147483647 )
unsigned long : 4 byte ( 0 s/d 4294967295 )
float : bilangan desimal
array : kumpulan data-data yang sama tipenya.

3. Deklarasi variabel & konstanta
Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah.
Penulisan : [tipe data] [nama] = [nilai] ;
Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah.
Penulisan : const [nama] = [nilai] ;

Tambahan:
Global variabel/konstanta yang dapat diakses di seluruh bagian program.
Local variabel/konstanta yang hanya dapat diakses oleh fungsi tempat dideklarasikannya.

4. Statement
Statement adalah setiap operasi dalam pemrograman, harus diakhiri
dengan [ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali
dengan tanda [ // ] untuk satu baris. Lebih dari 1 baris gunakan
pasangan [ /* ] dan [ */ ]. Statement yang tidak dieksekusi disebut
juga comments / komentar.
Contoh:
suhu=adc/255*100; //contoh rumus perhitungan suhu

5. Function
Function adalah bagian program yang dapat dipanggil oleh program utama.
Penulisan :
[tipe data hasil] [nama function]([tipe data input 1],[tipe data input 2])
{
[statement] ;
}

6. Conditional statement dan looping
if else : digunakan untuk penyeleksian kondisi
if ( [persyaratan] ) {
[statement1];
[statement2];
}
else {
[statement3];
[statement4];
}


for : digunakan untuk looping dengan jumlah yang sudah diketahui
for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) {
[statement1];
[statement2];
}


while : digunakan untuk looping jika dan salama memenuhi syarat tertentu
while ( [persyaratan] ) {
[statement1];
[statement2];
}

do while : digunakan untuk looping jika dan salama memenuhi syarat tertentu, namun min 1 kali
do {
[statement1];
[statement2];
}
while ( [persyaratan] )

switch case : digunakan untuk seleksi dengan banyak kondisi
switch ( [nama variabel] ) {
case [nilai1]: [statement];
break;
case [nilai2]: [statement];
break;
}


7. Operasi logika dan biner
Logika
AND :&&
NOT : !
OR : ||
Biner
AND : &
OR : |
XOR : ^
Shift right: >>
Shift left : <<
Komplemen : ~

8. Operasi relasional (perbandingan)
Sama dengan : ==
Tidak sama dengan : !=
Lebih besar : >
Lebih besar sama dengan : >=
Lebih kecil : <
Lebih kecil sama dengan : <=

9. Operasi aritmatika
+ , – , * , / : tambah,kurang,kali,bagi
+= , -= , *= , /= : nilai di sebelah kiri operator di tambah/kurang/kali/bagi dengan nilai di sebelah kanan operator
% : sisa bagi
++ , — : tambah satu (increment) , kurang satu (decrement)

Contoh :

a = 5 * 6 + 2 / 2 -1 ; maka nilai a adalah 30

a *= 5 ; jika nilai awal a adalah 30, maka nilai a = 30×5 = 150.

a += 3 ; jika nilai awal a adalah 30, maka nilai a = 30+5 = 33.

a++ ; jika nilai awal a adalah 5 maka nilai a = a+1 = 6.

a– ; jika nilai awal a adalah 5 maka nilai a = a-1 = 4.


sumber :
marausna.wordpress.com

» Read More...

1. INTERFACING LED TO ATMEGA8535

Berikut adalah beberapa aplikasi praktik yang nantinya dapat lebih menjelaskan fungsi dan fasilitas input/output.
Rangkailah rangkaian berikut (hardware atau simulasi proteus)


APLIKASI 1: OUTPUT
• Setting Hardware:

1. Hubungkan PORTC minimum sistem dengan led array menggunakan kabel pita.

2. Hubungkan downloader dengan Min Sys Atmega8535

3. Hidupkan saklar power, led power pada Min Sys Atmega8535 harus dalam keadaan nyala.

• Programming:

1. Buka CV AVR., pilih File->New->Project.

2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.

3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 4 Mhz.

4. Klik tab Ports, pilih tab Port C seperti pada gambar, ubah setting bit 0 – bit 7 sebagai out.

Hasil setting ini berpengaruh pada nilai register DDRxn, dan PORTxn.

5. Setting selesai, untuk mengenerate program pilih File Generate, Save, and Exit.

6. Buat direktori dengan nama io1.

7. Save file CV AVR dengan nama io1.cwp pada direktori io1.

8. Save file .C dengan nama io1.c pada direktori io1.

9. Save file project dengan nama io1.prj pada direktori io1.

• Project Setting

1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan memilih menu project >> configure.

2. Pilih tab after make, aktifkan program the chip. Terlihat tampilan seperti pada gambar dibawah,

setting ini akan membantu kita mengotomasi untuk langsung memrogram chip ketika kita

selesai Make Project File.

• Listing Program

1. Sekarang perhatikan kode bahasa C pada bagian setting register DDRxn, dan PORTxn,tampak sebagai berikut,

DDRC = 0xFF yang berarti 8 bit port C difungsikan sebagai output. PORTC = 0x00

berarti nilai awalan output adalah 0 (low)

2. Nilai register PORTC diatas adalah nilai awalan pada saat mikrokontroller start-up, kitabisa mengubah nilai output port C dengan mengubah nilai register PORTC pada loopingwhile.

PORTC = 0xCD, nilai output port C adalah CD dalam bentuk hexa atau 11001101 dalam bentuk biner.

3. Program chip dengan memilih menu Project ; Make atau dengan menekan shift + F9.



Jika pada kode masih terdapat kesalahan/error akan terlihat pada message.
4. Klik Program, jika ada kesalahan periksa kembali setting hardware.

5. Perhatikan led array, lampu led akan menyala 11001101 jika diurut dari Port7- Port0.

6. Ulangi langkah 2 sampai 6 dengan memberikan nilai PORTC yang berbeda beda pada looping while. Perhatikan perubahan nyala led pada led array.

Download Project running LED pada Atmega8535 dengan codevisionAVR

» Read More...

Search This Blog

Recent Post

Popular Posts