-->
Pemrograman Bahasa C untuk AVR digunakan untuk pemrograman berbagai jenis perangkat, termasuk mikrokontroler. Bahasa C diciptakan oleh Dennis Ritchie tahun 1972 di Bell Laboratories. Bahasa ini sudah merupakan high level language, dimana memudahkan programmer menuangkan algoritmanya.
Kelebihan Bahasa C:
· Bahasa C tersedia hampir di semua jenis computer.
· Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis computer.
· Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata kunci.
· Proses executable program bahasa C lebih cepat
· Dukungan pustaka yang banyak.
· C adalah bahasa yang terstruktur
· Bahasa C termasuk bahasa tingkat tinggi
· Secepat bahasa mesin
· Memiliki kemudahan dalam menyusun programnya semudah bahasa tingkat tinggi namun dalam mengesekusi program secepat bahasa tingkat rendah.
Kekurangan Bahasa C:
· Banyaknya operator serta fleksibilitas penulisan program kadang-kadang
membingungkan pemakai.
· Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
· Boros memory
· Arah program jadi sulit diketahui karrena kita tidak berhadapan langsung
dengan register bawaan MCU, melainkan register telah diwakilkan oleh kompiler.
dengan register bawaan MCU, melainkan register telah diwakilkan oleh kompiler.
· Jika dilihat dari hasil asembllernya terkadang terdapat sub program yang diulang-ulang, padahal jika dengan menggunakan bahasa assembler cukup dilakukan satu kalisaja.
· Program terlalu panjang.
Berikut ini yang harus diketahui mengenai pemrograman bahasa C:
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] }
#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.
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
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]; }
for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) { [statement1]; [statement2]; }
while : digunakan untuk looping jika dan salama memenuhi syarat tertentu
while ( [persyaratan] ) { [statement1]; [statement2]; }
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 : ~
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 : <=
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 = 30x5 = 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.
+ , - , * , / : 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 = 30x5 = 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.
No comments:
Post a Comment