Senin, 07 Mei 2012

Latihan Dasar Pemrograman Mikrokontroler dengan Bahasa C

Beberapa bulan lalu saya diberi tanggung jawab oleh pihak sekolah SMK Telkom Sandy Putra 2 mengajarkan mata pelajaran baru "Memprogram dengan Mikrokontroler" dengan kode mata pelajaran DK06. Setelah menjalani selama 2 bulan saya mengalami banyak kendala, beberapa diantaranya adanya kesulitan siswa mengenal perangkat mikrokontroler yang dimana tidak adanya kesiapan sekolah menyediakan sarana tersebut (sebenarnya saya tak tahu jalur pengadaaan barang maklum karena ane baru di sekolah tersebut ... mungkin tahun ajaran selanjutnya baru ane minta diadakan ...)
Oke kita kembali ke pokok permasalahan, nah kendala selanjutnya adalah dengan alokasi jam mengajar hanya 6 jam per minggu saya diwajibkan mentransfer ilmu mikroprosesor, elektronika digital, dan yang utama dasar-dasar pemrograman ,,, wah hebat ya siswa saya ,,, !!!!
Nah pada pemrograman inilah saya memilih bahasa C sebagai dasar kemampuan siswa ,,, setelah memberi teori dasar pemrograman bahasa C maka tibalah saatnya mempraktekkan kemampuan mereka tentu dengan menggunakan simulasi untuk menguji.
Praktek pertama adalah mengaktifkan salah satu port pada mikrokontroler dalam hal ini saya menggunakan platform AVR atmega16 dan IDE Codevision AVR sebagai alat dan bahan praktek. Untuk itu saya juga akan membagikan script ini bagi siapapun yang ingin belajar mikrokontroler.
Berikut saya menampilkan script dari latihan mereka.
/* Program pertama mikrokontroler
Latihan 1
Nama : Muh Ardiansyah Bahari   
Kelas : X TKJ 1
Nama Sekolah : SMK Telkom SP 2
Tanggal 3 Mei 2012
Deskripsi program :
1. Output pada port A
2. Output pada port A adalah LED
3. Program akan berulang dengan LED on 1 detik dan off 1 detik

*/

#include <mega16.h> //memasukkan register i/o
#include <delay.h> //memasukkan library delay

void main (void) //program utama
{
DDRA=0xff; //port A dijadikan output

while(1) //syarat pengulangan
{
PORTA=0xff; // port A atau LED menyala
delay_ms(100); // ada delay 1 detik
PORTA=0x00; // port A atau led mati
delay_ms(100); // ada delay 1 detik

}; // akhir perulangan


} // akhir program

Program diatas memanggil library IO atmega16 (#include <mega16.h> dan library untuk mengatur waktu (#include <delay.h>. Pada program utama melakukan inisialisasi DDRA=0xff yang artinya port A akan dijadikan output.
Lalu pada perulangan program (while) inisialisasi PORTA=0xff yang artinya port A dengan 8 pinnya diaktifkan dan satu detik kemudian (delay_ms(100)) PORTA=0x00 yang artinya port A dengan 8 pin outputnya dimatikan,  nah setelah satu detik (delay_ms(100)) program akan berulang seterusnya.

Contoh lainnya :
/*Program latihan 2 DK06
Deskripsi program
1. program melakukan output di port A
2. program ada port A kondisi hight aval
3. dalam 1 detik port kembali low
4. program akan berulang terus pada port A dengan LED 3,5,6,8 menyala dengan delay 1 detik
5. kemudian LED 3,5,6,8 mati dengan delay 1 detik 

Dibuat oleh :
Nama : Angky FMS Musa
Kelas : X TKJ 2
SMK SANDHY PUTRA 2
7 mei 2012
*/

#include <mega16.h> //memasukkan register i/o
#include <delay.h>  //memasukkan library delay

void main(void)  //program utama
{
DDRA=0xff;     //port A dijadikan output


while(1) //isyarat pengulangan
{
PORTA=0b10110100; //port A atau LED (3,5,6,8) menyala
delay_ms(1000); //ada delay 1 detik
PORTA=0x00; //port A atau LED mati
delay_ms(1000); //ada delay 1 detik

}; //akhir pengulangan

} //akhir program



Pada program diatas terlihat jelas bahwa dengan menginisialisasi PORTA=0b....... maka kita bisa mengatur on ataau off ke 8 pin dari PORTA ..... !!!!

1 komentar:

  1. nice info. u can search in here for a new way to learn about robotic

    BalasHapus