Monday, May 16, 2011

Cara mudah belajar microcontroller

Banyak orang ingin belajar microcontroller, namun setelah tahu bahasa pemogramannya berupa bahasa assembly yang nampak jelimet dan ruwet terpaksa mengurungkan niatnya untuk belajar. hal ini suatu keputusan yang salah, karena selain bahasa assembly ternyata microcontroller bisa di program menggunakan bahasa yang lain. Salah satunya adalah bahasa C.

Mengapa menggunakan bahasa C?

  1. Populer dan mudah di mengerti
  2. Sangat efficient
  3. Bagus dalam mengakses hardware menggunakan pointer
  4. Program bisa di buat terstruktur menggunakan fungsi dan modul
  5. Untuk pemograman logika dan aritmatika lebih simple
  6. dll.
Ingat ! Bahasa C bukan bahasa yang perfect untuk pemograman microcontroller, tetapi pilihan yang tepat untuk belajar microcontroller.

Tipe Variable

Variabel dalam microcontroller di representasikan dalam bentuk bit, byte, word dan lain sebagainnya. Contohnya adalah seperti berikut.
Variable bit Nilai
bit 1 bit 0 / 1
char 8 bit 0 s/d +127 atau 0 s/d -127
unsigned char 8 bit 0 s/d +255
int 16 bit 0 s/d +32768 atau 0 s/d -32768
unsigned int 16 bit 0 s/d +32768
long 32 bit 0 s/d +2.147483648x109 atau 0 s/d -2.147483648x109
unsigned long 32 bit 0 s/d +4.29496795x109
float 32 bit +/- 1.176E-38 s/d +/-3.4E+38
pointer 24/16/8 bit alamat variable

Struktur program bahasa C

struktur program bahasa C ada 3 point penting, yaitu :
1. Pre-Processor
2. Main Function
3. Function

Pre-Processor

Pada pemograman bahasa C setidaknya ada 2 syntax yang sering kita temukan pada header program, seperti :
1. #include
2. #define
#include berfungsi untuk memanggil library / prototype fungsi yang ada pada header file. Header file adalah file yang berisi prototype fungsi yang dipanggil oleh pre-processor pada waktu pertama kali program dijalankan. Header file bisa di kenali dengan cara melihat extention dari file tersebut, yaitu berupa *.h.  * adalah nama file, sedangkan h adalah header. untuk extention h bisa huruf kecil, juga bisa huruf besar.
Contoh.
#include<stdio.h> ----> Menyatakan pada compiler agar membaca file bernama stdio.h
#include<panas_dingin.h> ----> Menyatakan pada compiler agar membaca file bernama panas_dingin.h
#define berfungsi untuk mendefinikan konstanta-konstanta yang di gunakan dalam program. Dengan menggunakan syntax ini pemograman bisa di lakukan lebih mudah.
Misalnya :
#define LED P1_0   ---->LED = P1_0
maksud dari pendifinisan di atas adalah konstanta LED itu sama dengan P1.0 artinya dalam program tidak perlu menulis P1_0 cukup tulis LED.

Main Function

Fungsi ini merupakan fungsi utama dalam program dan di panggil pertama kali saat program di jalankan. Dalam fungsi ini bisa terdapat konstanta dan fungsi-fungsi lain.
Conntoh.
main()
{
//tulis program di sini
}
fungsi main() merupakan fungsi utama program. Tanda kurung ( ) setelah kata main menyatakan tidak ada argumen yang di lewatkan pada fungsi main. Sedangkan untuk tanda "{" merupakann pernyataan awal program dan tanda "}" merupakan perntaan akhir program.

Fungsi

Fungsi ini boleh di katakan fungsi pelengkap. fungsi ini bisa berupa fungsi yang di buat oleh user program dan bisa juga fungsi yang sudah ada dalam bahasa C. Fungsi ini bisa di panggil oleh fungsi lain dan bisa memanggil fungsi lain. Perbedaan dengan fungsi utama, fungsi utama tidak bisa di panggil oleh fungsi lain, tetapi bisa memanggil fungsi lain.
Contoh program lengkap bahasa C untuk pemograman microcontroller AT89S51 menggunakan software keil uvision3.
#include<AT89X51.h>
#include<stdio.h>
#define LED P1_0
void test_led();
void test_led()
{
P1=0;
LED=1; // P1.0=1;
}
main()
{
test_led();
}
Penjelasan program.
#include<AT89X51.h>
Menyatakan pada compiler agar membaca file header untuk microcontroller AT89S51 dengan nama file AT89X51.h
#include<stdio.h>
File header stdio.h digunakan untuk penanganan input / output standar seperti penulisan ke layar atau ke file atau pembacaan data dari keyboard atau file.
#define LED P1_0
Pendefinisian konstanta LED yang di definisikan sebagai Port 1 bit 0. Jika di program di tulis LED berarti sama dengan P1_0
void test_led();
Pendeklarasian dari prototype fungsi  test_led();
Penjelasan dari fungsi test_led() adalah sebagai berikut :
void test_led()  ---->nama fungsi;
{  ---->merupakan pernyataan awal dari fungsi test_led();
P1=0; ----> set port 1 microcontroller ke kondisi low. artinya Port 1 bit 0 s/d bit 7 di set 0
LED=1; // P1.0=1; set port 1 bit 0 ke kondisi high (1);
}  ---->merupakan pernyataan akhir / penutup dari fungsi test_led();
Penjelasan dari fungsi main() adalah sebagai berikut :
main()  --->fungsi utama main();
{  ----->Pernyataan awal program
test_led(); ---->memanggil dan menjalankan fungsi test_led();
}
Penjelasan jalannya program
  1. Complier membaca file pengarah pre-processor yang terdiri dari file AT89X51.h dan stdio.h
  2. Compiler membaca konstanta pengarah preprocessor #define LED P1_0
  3. Compiler membaca prototy[e fungsi test_led();
  4. Compiler menjalankan fungsi utama main();
  5. Saat fungsi utama di jalankan, fungsi uatama main() memanggil / menjalankan fungsi test_led()
  6. finish.
Setelah program di compile, file hex hasil compile bisa anda burning ke microcontroller menggunakan ISP programmer AT89/90 Series. Anda jalankan, lalu lihat hasilnya. Jika anda males untuk melakukan itu, anda bisa lakukan simulasi menggunakan keil C51 uvision3. Baca artikel saya sebelumnya yang berjudul "Berkenalan dengan keil C51 uvision3"
Sementara cukup di sini dulu. Tunggu tayangan berikutnya tentang pemograman microcontroller menggunakan bahasa C.

1 komentar:

cukup mudah untuk dimengerti artikelnya....lebih mudah lg mungkin dg perumpamaan,dari pre processor,main function,dan function...

Post a Comment