Asalamualaikum sobat, kembali menulkis blog lagi setelah sekian lama tidak menulis hehe :)
Pada Post kali ini saya akan mengulas antarmuka LED dengan Mikrokontroler formalnya. Lalu bagaimana cara untuk mengantarmukakan LED dengan mikro, tentu kita harus punya dan mengintall Sotware pemrogramnya. Pada postingan ini saya pakai Codevision AVR, bagi teman2 yg belum install bisa download di link ini
http://webcache.googleusercontent.com/search?q=cache:http://hpinfotech.ro/cvavr_download.html
Langsung saja kita bahas semuanya disini,tapi dalam format laporan praktikum hehe:)
Tabel 1 Konfigurasi pengaturan port I/O
Pada Post kali ini saya akan mengulas antarmuka LED dengan Mikrokontroler formalnya. Lalu bagaimana cara untuk mengantarmukakan LED dengan mikro, tentu kita harus punya dan mengintall Sotware pemrogramnya. Pada postingan ini saya pakai Codevision AVR, bagi teman2 yg belum install bisa download di link ini
http://webcache.googleusercontent.com/search?q=cache:http://hpinfotech.ro/cvavr_download.html
Langsung saja kita bahas semuanya disini,tapi dalam format laporan praktikum hehe:)
DASAR TEORI
LED
Sebuah LED (Light Emitting Diode) adalah sebuah sumber cahaya yang terbuat dari semi
konduktor. Biasanya LED digunakan sebagai lampu indicator dalam beberapa piranti, dan
mulai banyak digunakan sebagai penerangan/lampu. Gambar 1.1 memperlihatkan bentuk
fisik LED dan symbol rangkaiannya. Untuk menyalakan sebuah LED perlu rangkaian
tambahan yang dapat dilihat pada gambar disamping. Rangkaian tersebut berupa sebuah
transistor yang difungsikan sebagai saklar dan dua buah resistor untuk pembatas arus. Dalam
modul I/O yang dipakai dalam praktikum, kedelapan rangkaian LED tersebut dihubungkan
kesebuah soket jumper bernama OUTPUT.
PERINTAH DASAR MENGELUARKAN DATA
Sebelum mulai menulis program dengan bahasa C, perlu diketahui bahwa mikrokontroler
ATmega8535 perlu diset isi register DDR dan PORT agar bisa digunakan sebagaimana
mestinya, seperti yang terlihat dalam Tabel 1.
Tabel 1 Konfigurasi pengaturan port I/O
Untuk mengirim data byte dalam bentuk bilangan decimal ke PORTX (X=A, B, C, D)
digunakan statement
PORTX = desimal;
PORTB = 128;
Untuk mengirim data byte dalam bentuk bilangan biner ke PORTX (X=A, B, C, D)
digunakan statement
PORTX = 0bdata;
PORTB = 0b10101010;
Untuk mengirim data per bit ke PORTX.Y (X=A, B, C, D, dan Y=0, 1, 2 , 3, 4, 5, 6, 7)
digunakan statement
PORTX.Y = data;
PORTB.1 = 0;
Dimana data bisa berupa 0 atau 1.
TUJUAN
1. Menjelaskan rangkaian antar muka mikrokontroler dengan LED.
2. Mempraktekkan pemrograman mikrokontroler untuk menyalakan LED.
ALAT DAN BAHAN
a. 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama Programmer
b. 1 set trainer mikrokontroler
c. 1 buahkabel USB
d. 1 buahkabel pita 10 untuk data I/O
LANGKAH PERCOBAAN
1. Rangkailah peralatan yang diperlukan seperti pada gambar dibawah. Hubungkan soket jumper PORTA pada minimum system dengan soket jumper OUTPUT pada I/O.
2. Buka program Code Vision AVR
3. Buat file baru dengan cara klik File>>New, atauklik icon Create a New File or Project, atau ketik Ctrl + N. Ketika muncul dialog box, pilih Project pada File Type, kemudian klik OK.
4. Ketika muncul dialog box untuk menanyakan apakah ingin menggunakan Code Wizard AVR, klik No.
5. Ketika muncul window untuk menyimpan file, buat folder baru dengan nama “praktikum 1” untuk menyimpan file.
6. Simpan file pada folder tersebut dan berinama file prj dengan nama ”led“ danklik Save.
7. Kemudian muncul dialog box Configure Project. Pada tab C Compiler, subtab Code Generation pilih chip ATmega8535 dan ubah Clock menjadi 4 MHz .Kemudian klik OK.
8. Buat file Source baru dengan cara klik File>>New, atau klik icon Create a New File or Project, atau ketik Ctrl + N. Kemudian muncul dialog box, pilih Source pada File Type, kemudian klik OK. Kemudian Save as file Source itu dengan nama ”led“ dan simpan di dalam direktori yang sama yaitu di dalam folder “praktikum 1”.
9. Hubungkan file Project dengan File Source dengan Cara klik Project>> Configure
10. Pada dialog box, klik Add pada tab Input Files. Kemudian pilih file yang sudah anda simpan tadi dan klik Open. Kemudian klik OK.
11. Jika sudah ditambahkan, maka pada Code Navigator akan terlihat led.c.
12. Tambahkan file header
13. Buat program utama dan inisialisasikan PORTA sebagai output dan output value = 0
14. Tuliskan Program LED1 pada program utama di dalam while (1)
15. Compile program tersebut dengan caraklik Project>> Compile atau ketik F9.
16. Jika ada error ,koreksi program yang error dan perbaiki. Jika sudah tidak ada yang error build program tersebut dengan cara klik Project>> Build atau klik Shift + F9.
17. Hubungkan kabel usb printer antara PC/ Laptop dengan trainer.
18. Buka aplikasi Khazama AVR Programmer. Pilih ATmega8535 pada pilihan chip AVR. Kemudian buka program kompilasi led.hex biasanya terdapat pada folder atau sub derektori..\Exe yang terdapat pada folder “praktikum 1 “ dengan cara klik file>> Load Flash File to Buffer atau ketik Ctrl + L kemudian klik Open.
19. Klik Auto Program kemudian amati nyala LED dan gambarkan nyala LED tersebut.
20. Hapus Program LED1, kemudian tuliskan program LED2 di dalam while (1): Program LED2
21. Compile dan Build program, jika ada yang error perbaiki program. Masukkan file hex menggunakan Khazama AVR Programer. Klik auto program.
22. Amati nyala LED dan gambarkan nyala LED tersebut.
23. Hapus program LED2, kemudian tuliskan program LED3 di dalam while (1)
24. Compile dan Build program, jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program.
25. Amati nyala LED dan gambarkan nyala LED tersebut.
26. Hapus program led 3, kemudian tuliskan program led 4 pada program utama tepatnya tuliskan program tersebut didalam while (1)
27. Compile dan Build program, jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program.
28. Amati nyala LED dan gambarkan nyala LED tersebut.
29. Hapus program led 4, kemudian tuliskan program led 5 pada program utama tepatnya tuliskan program tersebut didalam while (1)
30. Compile dan Build program, jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program.
31. Amati nyala LED dan gambarkan nyala LED tersebut.
DATA HASIL PERCOBAAN
1. Tampilan nyala LED Program LED1
2. Tampilan nyala LED Program LED2
3. Tampilan nyala LED Program LED3
4. Tampilan nyala LED Program LED4
5. Tampilan nyala LED Program LED5
*Data hasil percobaan tertera pada lampiran
ANALISIS DATA
1. Analisis Program LED1 – LED5!
A. PROGRAM LED1
// Program LED1
PORTA=0x0f;
delay_ms(1000);
PORTA=0xf0;
delay_ms(1000);
Program pada sintax diatas akan berjalan sesuai dengan perintah sintax yang telah kita buat seperti pada program LED 1 yang hasil outputnya seperti yang ditunjukan table perumpamaan diatas yaitu detik pertama pada LED 1 akan mengikuti perintah PORT A = 0x0f ini berarti 4 bagian pada LED kiri akan mati dn 4 bagian pada LED kanan akan menyala. Begitu juga sebaliknya dengan perintah PORT A = 0xf0 maka 4 bagian pada LED kiri akan menyala dan 4 bagian pada LED kanan mati, hal ini terjadi bergantian selama 1000ms atau 1 detik, yang disintax yaitu dilay ms(1000);
B. PROGRAM LED2
//Program LED2
PORTA=0b00001111;
delay_ms(1000);
PORTA=0b11110000;
delay_ms(1000);
Terjadi perbedaan dalam penggunaan bilangan pada program LED1 menggunakan bilangan heksa sedangakan pada program LED2 menggunakan bilangan biner, kemudian pada programan LED 2 akan menghasilkan keluaran yang sama dengan LED 1, karena perintah yang diberikan pada LED 1 dan pada LED 2 sama.
C. PROGRAM LED3
//Program LED3
PORTA=0x55;
delay_ms(1000);
PORTA=0xaa;
delay_ms(1000);
Pada program LED 3 akan menghasilkan keluaran berupa 01010101 karena perintah pertama pada program yang kita tulis PORT A = 0x55 dan PORT A = 0xaa yang berarti kita memerintahkan LED untuk menghasilkan keluaran yang senilai dengan program yang kita tulis yaitu 10101010. Sedangkan delay 1000ms berarti jeda waktu nyala program pertama, kedua dan keberikutnya 1 detik.
D. PROGRAM LED4
//Program LED4
PORTA=0b11100111;
delay_ms(1000);
PORTA=0b11011011;
delay_ms(1000);
PORTA=0b10111101;
delay_ms(1000);
PORTA=0b01111110;
delay_ms(1000);
PORTA=0b10111101;
delay_ms(1000);
PORTA=0b11011011;
delay_ms(1000);
Pada program LED4 ini menggunkan bilangan hexa decimal, hanya menggunakan portA sebagai masukan dimana jika input diberi nilai 1 maka output akan bernilai 1 (lampu menyala), apabila input 0 maka nilai outputnya akan benilai 0 (lampu mati), terdapat jeda selama 1detik untuk berlanjud ke perintah program yang selanjudnya.
E. PROGRAM LED5
//Program LED5
PORTA=0b00000001; PORTA.2=1;
delay_ms(1000);
PORTA=0b00000010; PORTA.1=1;
delay_ms(1000);
PORTA=0b00000100;
delay_ms(1000);
PORTA=0b00001000;
delay_ms(1000);
PORTA=0b00010000;
delay_ms(1000);
PORTA=0b00100000;
delay_ms(1000);
PORTA=0b01000000;
delay_ms(1000);
PORTA=0b10000000;
delay_ms(1000);
Pada program LED5 ini sama seperti dalam program LED4 menggunkan bilangan hexa decimal, hanya menggunakan portA sebagai masukan dimana jika input diberi nilai 1 maka output akan bernilai 1 (lampu menyala), apabila input 0 maka nilai outputnya akan benilai 0 (lampu mati), terdapat jeda selama 1detik untuk berlanjut ke perintah program yang berikutnya.
2. Apakah persamaan danperbedaan PROGRAM LED1 dan PROGRAM LED2?
>Persamaan pada PROGRAM LED1 dan PROGRAM LED2 yaitu pada nyala LED keduanya sama yaitu setiap 1000ms saling berganti antara pin1-pin4 dengan pin5-pin8
>Perbedaannya yaitu terletak pada penulisan code perintah yang yangmana pada PROGRAM LED1 menggunakan perintah
while (1)
{
PORTA=0x0f;
delay_ms(1000);
PORTA=0xf0;
delay_ms(1000);
}
Sedangkan pada PROGRAM LED2 menggunakan perintah
while (1)
{
PORTA=0b00001111;
delay_ms(1000);
PORTA=0b11110000;
delay_ms(1000);
}
3. Instruksi siapa yang digunakan untuk mengeluarkan data ke LED?
Yaitu dengan AUTU PROGRAM PADA Khazama AVR programer
4. Mengapa ada jeda waktu sekitar 1 detik antara tampilan LED yang pertama dengan yang berikutnya?
Karena di dalam program terdapat perintah delay_ms(1000) yang berarti ada jeda 1000ms atau 1 menit untuk memunculkan kode printah program LED berikutnya.
KESIMPULAN
Setelah melakukan praktikum kita dapat menyimpulkan bahwa langka pertama yang harus dilakukan dalam pemberian program pada microkontroler adalah menginisalisasi PORT, hal ini bertujuan untuk menentukan pengaturan fungsi PORT sebagai input atau output. Pada praktikum ini PORTA di inisialisasikan sebagai Output yaitu dengan cara DDRA=FFH. Dalam pemberian nilai input kita dapat menggunakan kode digital yaitu kode heksadesim l dan biner. Perbedaan bila kita menggunkan kode heksimal maka harus diawali dengan 0x sedangkan kode biner menggunakan awalan 0b.perintah selanjutnya yang digunakan dalam praktikum ini yaitu perintah delay, perintah ini digunakan sebagai pemberian waktu tundaan ,dimana kita memberikan waktu tundaan sesuai dengan perintah tunda yang kita berikan dari satu program ke program selanjutnya. Selain perintah ada hal yang tidak kalah penting pada praktikum ini yaitu Pemberian nilai pada masing-masing bit PORT yang mana hal ini dapat dilakukan dengan cara mensetting masing-masing bit dengan memberikan logika.
LAMPIRAN
1. Tampilan nyala LED program LED 1
2. Tampilannyala LED Program LED2
3. Tampilan nyala LED Program LED3
4. Tampilannyala LED Program LED4
5. Tampilannyala LED Program LED5
DAFTAR PUSTAKA
https://www.esokharinanti.com/2014/11/antarmuka-mikrokontroler-dengan-led.html
http://elektro.um.ac.id/wp-content/uploads/2016/04/Mikrokontroler-Jobsheet-1-Antarmuka-Mikrokontroler-dengan-LED.pdf
Komentar
Posting Komentar