Tuesday, April 10, 2018

Cara Memprogram Mikrokontroler untuk Menyalakan LED (Praktikum I Mikrokontroler)



1. TUJUAN PRAKTIKUM

Adapun tujuan dari Praktikum ini :
1)Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian LED
2)Mengetahui dan memahami bagaimana memprogram mikrokontroler untuk menyalakan  LED
3)Mampu memahami fungsi pin I/O pada mikrokontroler AVR sebagai input dan output, Mampu mengkonfigurasi pin I/O sebagai input / output.
4)Mengetahui Pin I/O sebagai input untuk membaca penekanan saklar.
5)Serta untuk mengetahui cara memprogram I/O dengan menggunakan aplikasi Code Vision AVR.




Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian LED Cara Memprogram Mikrokontroler untuk Menyalakan LED (Praktikum I Mikrokontroler)


2. PENGANTAR 
  • Mikrokontroler adalah sebuah sistem mikroprocessor  lengkap yang terkandung dalam Chip atau merupakan  mikro komputer dalam sebuah Chip lengkap dengan RAM dan ROM . 
  • Sedangkan Mikroprocessor berfungsi untuk memproses data. 
  • Adapun perbedaan antara mikrokontroler dengan mikroprocessor yaitu Mikrokontroler memiliki memory sehingga dapat dibuat program, sedangkan Mikroprocessor tidak memiliki memory sehingga tidak dapat dibuatkan program. 


Gambar 1. Mikrokontroler AVR Board


Berikut ini adalah beberapa jenis-jenis Mikrokontroler yang umum digunakan : Mikrokontroler AVR,Mikrokontroler MCS51,Mikrokontroler PIC, Mikrokontroler ARM.

Adapun penulisan untuk PORT ada tiga yaitu: Heksimal, Desimal dan Biner.

1) Untuk mengirim data dalam bentuk Heksimal ke PORTX(X=A,B,C,D) digunakan 

Statement: PORTX=0x0F;
                 Delay_ms(1000);

2) Untuk mengirim data dalam bentuk Desimal ke PORTX(X=A,B,C,D) digunakan

Statement: PORTX=16;
                  Delay_ms(1000);

3) Untuk mengirim data dalam bentuk Biner ke PORTX(X=A,B,C,D) digunakan

Statement: PORTX=0b01100000;
                  Delay_ms(1000);


PinI/O pada mikrokontroler AVR dapat dikonfigurasi sebagai input atau output. Untuk mengubah konfigurasi pin I/O sebagai input atau output bisa dilakukan dengan mengubah isi I/O register Data Direction Register port yang bersangkutan. VOH(Output High Voltage ) adalah tegangan pada pin I/O mikrokontroler ketika mengeluarkan logika”1”(high). Sebaliknya tegangan pada pin I/O mikrokontroler ketika mengeluarkan logika “0”(low)disebut VOL(output Low Voltage).

3. PERCOBAAN

3.1 Alat dan Bahan

No
Alat dan Bahan
Gambar



1.



AVR Board



2.



Kabel Power Supply 9V



3.



Kabel Port


4.


AVR ISP(In System Programming)
5.
Buku Panduan


 3.2 Prosedur Percobaan 

a) Siapkan alat dan bahan untuk praktikum terlebih dahulu
b) Periksa kondisi peralatan sebelum melakukan percobaan
c) Buatalah rangkaian seperti rangkaian percobaan
d) Buka aplikasi CVAVR untuk membuat program menyalakan LED pada PB.0-7, kemudian jalankan aplikasi tersebut sesuai dengan instruksi yang adfa pada modulnya. 
e) Pada saat membuat program perhatikan Instruksi berikut ini:
  • Menyalakan LED pada PB.0-PB.7 secara bergantian
  • Menyalakan LED Pada PB.0 kemudian PB.1-7 LED mati, Menyalakan LED Pada PB.1 kemudian PB.0 & PB.2-7 mati begitu seterusnya sampai pada PB.7 semua LED menyala.
  • Menyalakan LED menggunakan PIN I/O sebagai input untuk membaca penekanan saklar  sehingga LED hidup satu tanpa penekanan saklar secara terus-menerus.
  • Menyalakan dan mematikan LED menggunakan PIN/O sebagai input untuk membaca penekanan saklar. 

f) Amati nyala LED dan gambarkan nyala LED tersebut. 


3.3 Rangkaian Percobaan 

Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian LED Cara Memprogram Mikrokontroler untuk Menyalakan LED (Praktikum I Mikrokontroler)
Gambar 2. Rangkaian Percobaan Mikrokontroler AVR

4. HASIL dan PEMBAHASAN 

4.1 Hasil Praktikum 

1) Menyalakan LED pada PB.0-PB.7 secara bergantian 
Berikut ini adalah program dah hasil outputnya:


    


Berikut ini penjabaran dari kode diatas:


A=1;
PORTB= A;
Delay_ms(1000);
For(i=0;i<8;i++){
            A=2*A
            PORTB= A
            Delay_ms(1000);
}
}

}


Tampilan Nyala LED 


Gambar 3. Menyalakan LED pada PB.0-7 Secara Bergantian

2) Menyalakan LED Pada PB.0 kemudian PB.1-7 LED mati, Menyalakan LED Pada PB.1
kemudian PB.0 & PB.2-7 mati begitu seterusnya sampai pada PB.7 semua LED menyala.

Berikut ini adalah program dan hasil outputnya:



Tampilan Nyala LED


Gambar 4. Menyalakan LED 

3) Menyalakan LED menggunakan PIN I/O sebagai input untuk membaca penekanan saklar sehingga LED hidup satu tanpa penekanan saklar secara terus-menerus. 
Berikut ini adalah program dan hasil outputnya:

Tampilan Nyala LED 
Gambar 5. Menyalakan LED

4) Menyalakan dan mematikan LED menggunakan PIN I/O sebagai input untuk membaca penekanan saklar. 

Berikut ini adalah program dan hasil outputnya:



Tampilan Nyala LED 



Gambar 6. Menyalakan LED 

4.2 Pembahasan 

Sebelum membuat dan menjalankan proram Menyalakan LED berkedip selama 1 detik pada PB. 0-7 atur terlebih dahulu Chipnya dengan memilih 
 kemudian atur clocknya 4 MHz. Setelah itu sesuai dengan rangkaian pada AVR Board atur portnya disini saya menggunakan PORTB pada Bit 0 pilih out setelah diatur pilih generate program 
 , kemudian save filenya (3 kali). Setelah semuanya diinisialisasikan sudah bisa memulai untuk membuat program. Berikut ini adalah Instruksi-instruksinya:

   1) Menyalakan LED Pada PB.0-PB.7 Secara bergantian

int A; int i;                        // maksudnya buat variable agar bisa terdefenisi,
A=1                      // nilai A dimulai dari 1 sebagai perintah untuk menyalakan LED pada PORTB
PORTB= A;        // pada PORTB LED akan menyala kemudian A maksudnya   LED kemudian mati
Delay_ms(1000);  //  untuk memberikan jeda program selama 1 sekon
For(i=0;i<8;i++){   // proses looping selagi i < 8 i akan di proses
A=2*A                  //  nilai A akan diproses sebagai perintah untuk menyalakan LED selanjutnya
PORTB= A          // LED akan menyala karena A LED kemudian mati
Delay_ms(1000);  // untuk proses jedanya
Selagi i  nya kecil dari 8 akan dilakukan proses secara terus menerus sehingga LED menyala Sampai PORTB.7.


2) Menyalakan LED pada PB.0 kemudaian PB. 1-7 LED mati, Menyalakan LED pada PB.1 kemudian PB. 0 & PB. 2-7 mati begitu seterusnya sampai pada PB. 7 semua LED Menyala 

Program nya hampir sama seperti program diatas tapi yang membedakan adalah prosesnya disini LED akan menyala pada satu bit. Sesuai program diatas tambahkan variable baru yaitu B fungsi dari variable ini untuk memindahkan posisi LED sehingga dapat dilogikan seperti ini A=2 * A kemudian B=1-1 jadi LED akan hidup pada PORTB. 0 kemudian PORTB.1-7 mati begiut seterusnya. 

Pada instruksi bagian ke-3 dan ke 4 kita harus mengatur kembali inisialisasinya atur kembali chipnya kemudian atur clocknya 4 MHz setelah itu, pilih Ports dengan memilih seperti gambar dibawah ini. 


 Setelah semuanya diatur klik generate program, kemudian posisi kabel pada AVR Board juga harus diatur dengan instruksi PORT A ke switch PORTB ke LED harus diingat PORTB=output dan PINA = Input. 



     3)  Menyalakan LED menggunakan PIN I/O sebagai input untuk membaca penekanan saklar  sehingga LED hidup satu tanpa penekanan saklar secara terus-menerus.
If(PIN.0==0)         // jika PIN0.0==0
{
     While(1)          // pada saat bernilai true
{
     PORTB.0=0;    // PORTB akan hidup
}
}

Pada saat PIN.0 di tekan saklarnya maka LED pada PB.0  menyala  kenapa? Karena settingan pada PORTB bernilai 0. Dan sebaliknya LED PB.0 mati ketika settingan PB.0=1. Dari sini dapat disimpulkan untuk memberikan logika 1 settingan PORT.X =0

4)Menyalakan dan mematikan LED menggunakan PIN/O sebagai input untuk membaca penekanan saklar.

Maksud dari script pada no.4 yaitu jika PORTA.0 di tekan saklarnya maka  LED menyala kemudian bagaimana caranya agar PORTA.0 LED mati kemudian PORTA.1 LED menyala? Caranya dengan menambahkan percabangan di dalam while(1) nilai 1 ini kita ganti dengan variable A dan  nilai dari Variable A=1 , jadi fungsi dari percabangan tersebut untuk memproses PORTA.1 agar bernilai 0 artinya LED menyala kemudian PORTB.0=1 artinya pada  PORT ini LED mati. 


5. KESIMPULAN

a. Langkah pertama dalam pemberian program mikrokontroler adalah menginisialisasi PORT fungsinya untuk menentukan pengaturan fungsi PORT sebagai input atau output. Pada praktikum PORTB kita inisialisasikan sebagai output dengan DDRB=0Xff. Dalam pemberian nilai input kita dapat menggunakan kode digital Heksimal, Desimal dan Biner. Untuk kode Heksimal  harus diawali dengan 0x, untuk Biner diawali oleh ob. 
b. #include <delay h> kita memberikan perintah pada program untuk melakukan waktu penundaan. 
c. Delay_ms berfungsi untuk memberikan jeda program, kalau programnya tidak diberi delay maka program selanjutnya tidak akan bekerja dan outputnya hanya akan menampilkan LED yang pertama saja. 
d. Pemberian nilai pada masing-masing port dapat dilakukan dengan cara menset masing-masing bit memberikan logika 1. 




Sumber https://secercahilmu25.blogspot.com/

No comments:

Post a Comment