LAPORAN PRAKTIKUM LAB-PTE 03 LAPORAN PRAKTIKUM LAB-PTE 03
ANTARMUKA MIKROKONTROLER DENGAN LED ANTARMUKA MIKROKONTROLER DENGAN LED
Disusun untuk Memenuhi Matakuliah LAB-PTE 03 Disusun untuk Memenuhi Matakuliah LAB-PTE 03
Dibimbing oleh Ibu Dyah Lestari, S.T., M.Eng Dibimbing oleh Ibu Dyah Lestari, S.T., M.Eng
Oleh: Oleh: Danny
Danny Prasetyo Prasetyo 150534601229150534601229 David
David Maulana Maulana Makruf Makruf 150534602068150534602068 Duwy
Duwy Susanti Susanti 150534604689150534604689 Indah
Indah Churiyah Churiyah 150534601934150534601934
S1 PTE 2015 OFF B S1 PTE 2015 OFF B
UNIVERSITAS NEGERI MALANG UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK ELEKTRO PRODI S1 PENDIDIKAN TEKNIK ELEKTRO
September 2016 September 2016
MODUL I
ANTARMUKA MIKROKONTROLER DENGAN LED
TUJUAN
Menjelaskan rangkaian antarmuka mikrokontroler dengan LED.
Mempraktekkan pemrograman mikrokontroler untuk menyalakan LED.
LED
Sebuah LED (Light Emitting Diode) adalah sebuah sumber cahaya yang terbuat dari semikonduktor. Biasanya LED digunakan sebagai lampu indikator dalam beberapa piranti, dan mulai banyak digunakan sebagai penerangan/lampu. Gambar 1.1 memperlihatkan bentuk fisik LED dan simbol 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 ke sebuah 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 DDR Bit = 1 DDR Bit = 0 PORT Bit = 1 Output ; High Input; R pull up PORT Bit = 0 Output; Low Input, Floating
Untuk mengirim data byte dalam bentuk bilangan desimal 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;
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.
ALAT DAN BAHAN YANG DIGUNAKAN
1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama 1 buah catu daya DC +5V
1 buah multimeter
1 buah ISP Downloader AVR 1 buah sistem minimum AVR 1 buah I/O
1 buah kabel printer USB 1 buah kabel pita hitam
PROSEDUR
1. Rangkailah peralatan yang diperlukan seperti pada gambar dibawah. Hubungkan soket jumper PORTA pada minimum system dengan soket jumper OUTPUT pada I/O.
I/O ISP Downloader
Kabel USB downloader Kabel
Minimum system AVR
Kabel pita hitam
Catu Daya + 5V
2. Buka program Code Vision AVR
3. Buat file baru dengan cara klik File>>New, atau klik icon Create a New File or Project, atau ketik Ctrl + N. Kemudian muncul dialog box, pilih Project pada File Type, kemudian klik OK.
4. Kemudian klik No ketika muncul dialog box untuk menanyakan apakah ingin menggunakan CodeWizardAVR
5. Kemudian pilih lokasi penyimpanan file dan buat folder baru dengan nama “praktikum 1” untuk menyimpan file.
6. Kemudian simpan file pada folder tersebut dan berinama filedengan nama ”led“dan klik Save. 7. Kemudian muncul dialog box Configure Project. Pada subtab Code Generation pada tab C
Compiler 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”.
10. Pada dialog box, klik Add pada tab Input Files. Kemudian pilih file yang sudah anda simpan tadi dan klik Open. Kemudian klik OK.
12. Tambahkan file header
13. Buat program utama dan inisialisasikan PORTA sebagai output dan output value = 0
14. Tuliskan program led 1 pada program utama tepatnya tuliskan program tersebut di dalam while (1):
// Program LED1
15. Compile program tersebut dengan cara klik Projec t>> 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 Proj ect>> Build atau klik Shift + F9.
17. Hubungkan kabel usb printer antara PC/ Laptop dengan trainer.
18. Buka aplikasi Khanzama 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 Bufferatau ketik Ctrl + L kemudian klik Open.
19. Klik Auto Program kemudian amati nyala LED dan gambarkan nyala LED t ersebut.
20. Hapus program led 1, kemudian tuliskan program led 2 pada program utama tepatnya tuliskan program tersebut didalam while (1):
Program LED2
21. Compile dan Build program, jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program.
22. Amati nyala LED dan gambarkan nyala LED tersebut.
23. Hapus program led 2, kemudian tuliskan program led 3 pada program utama tepatnya tuliskan program tersebut didalam while (1):
Program LED3
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):
Program LED4
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):
Program LED5
30. Compile dan Build program, jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program.
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
ANALISA DATA
1. Analisa Program LED1 – LED5!
2. Apakah persamaan dan perbedaan PROGRAM LED1 dan PROGRAM LED2? 3. Instruksi apa yang digunakan untuk mengeluarkan data ke LED?
4. Mengapa ada jeda waktu sekitar 1 detik antara tampilan LED yang pertama dengan yang berikutnya?
1. Hasil Percobaan dan Analisa Data Program LED1-LED5 a. Source Code Program LED 1
Tampilan nyala LED
Gambar 1.1 gambar nyala LED Program LED1
Tabel 1.1 nyala LED dalam beberapa detik
Analisis Program :
Pada program LED 1 menggunakan header #include<delay.h> dan #include<mega8535.h > sebagai library. Program tersebut menggunakan while (1) artinya looping at au perulangan instruksi ke output led. PORTA (port bagian A) digunakan untuk memb erikan perintah atau sebagai output yang bernilai 1 (high) atau 0 (low). Pada Program tersebut perintah yang digunakan untuk mengirim data berupa hexa yaitu PORTA=0x0F. Kemudian program tersebut juga menggunakan perintah atau fungsi delay_ms(1000) yang berfungsi melakukan penundaan atau selang waktu
dalam satuan milidetik. Pada program ini menggunakan selang waktu 1 detik. Detik
ke- Nyala LED (semua bit) 7 6 5 4 3 2 1 0 1 1 1 1 1 0 0 0 0 2 0 0 0 0 1 1 1 1 3 1 1 1 1 0 0 0 0 4 0 0 0 0 1 1 1 1 5 1 1 1 1 0 0 0 0 6 0 0 0 0 1 1 1 1 7 1 1 1 1 0 0 0 0
b. Source Code Program LED 2
Tampilan nyala LED
Gambar 1.2 gambar nyala LED Program LED2
Tabel 1.2 nyala LED dalam beberapa detik
Analisis Program :
Pada program LED 2 menggunakan header #include<delay.h> dan #include<mega8535.h> sebagai library. Program tersebut menggunakan while (1) artinya looping atau perulangan instruksi ke output led. PORTA (port bagian A) digunakan untuk memb erikan perintah atau sebagai output yang bernilai 1 (high) atau 0 (low). Pada Program tersebut berisi perintah bertipe biner 0b. Perintah terebut berupa data 0 dan 1 yang akan di terapkan pada led. Setiap led berfungsi sebagai 1 bit. Kemudian program tersebut juga menggunakan perintah atau fungsi delay_ms(1000) yang
Detik
ke- Nyala LED (semua bit) 7 6 5 4 3 2 1 0 1 1 1 1 1 0 0 0 0 2 0 0 0 0 1 1 1 1 3 1 1 1 1 0 0 0 0 4 0 0 0 0 1 1 1 1 5 1 1 1 1 0 0 0 0 6 0 0 0 0 1 1 1 1 7 1 1 1 1 0 0 0 0
berfungsi melakukan penundaan dalam satuan milidetik. Pada program ini menggunakan selang waktu 1 detik.
c. Program LED 3
Tampilan nyala LED
Gambar 1.3 gambar nyala LED Program LED3
Tabel 1.3 nyala LED dalam beberapa detik
Analisis Program :
Pada program LED 1 menggunakan header #include<delay.h> dan #include<mega8535.h> sebagai library. Program tersebut menggunakan while (1) artinya looping ata u perulangan instruksi ke output led. PORTA (port bagian A) digunakan untuk memberi kan perintah atau sebagai output yang bernilai 1 (high) atau 0 (low). Pada Program tersebut mengirim data berupa hexa yaitu PORTA=0X55. Kemudian program tersebut juga menggunakan perintah atau fungsi
Detik
ke- Nyala LED (semua bit) 7 6 5 4 3 2 1 0 1 0 1 0 1 0 1 0 1 2 1 0 1 0 1 1 1 0 3 0 1 0 1 0 1 0 1 4 1 0 1 0 1 0 1 0 5 0 1 0 1 0 1 0 1 6 1 0 1 0 1 0 1 0 7 0 1 0 1 0 1 0 1
delay_ms(1000) yang berfungsi melakukan penundaan dalam satuan milidetik. Pada program ini menggunakan selang waktu 1 detik.
d. Program LED 4
Tampilan nyala LED
Tabel 1.4 nyala LED dalam beberapa detik
Analisis Program :
Pada program LED 1 menggunakan header #include<delay.h> dan #include<mega8535.h> sebagai library. Program tersebut menggunakan while (1) artinya looping atau perulangan instruksi ke output led. PORTA (port bagian A) digunakan untuk memberi kan perintah atau sebagai output yang bernilai 1 (high) atau 0 (low). Pada Program tersebut data berupa biner yaitu PORTA=0b11100111, PORTA=0b11011011, PORTA=0b10111101 , PORTA=0b01111110, PORTA=0b10111101, PORTA=0b11011011 . Kemudian program tersebut juga menggunakan perintah atau fungsi delay_ms(1000) yang berfungsi melakukan penundaan dalam satuan
milidetik. Pada program ini menggunakan selang waktu 1 detik. e. Program LED 5
Detik
ke- Nyala LED (semua bit) 7 6 5 4 3 2 1 0 1 1 1 1 0 0 1 1 1 2 1 1 0 1 1 0 1 1 3 1 0 1 1 1 1 0 1 4 0 1 1 1 1 1 1 0 5 1 0 1 1 1 1 0 1 6 1 1 0 1 1 0 1 1 7 1 1 1 1 0 0 1 1
Tampilan nyala LED :
Gambar 1.5 gambar nyala LED Program LED5
Tabel 1.5 nyala LED dalam beberapa detik
Analisis Program:
Pada program LED 5 diberikan header #include<delay.h> sebagai library. Program tersebut menggunakan while (1) artinya looping (perulangan). PORTA (port bagian A) digunakan untuk memberi kan perintah atau sebagai output yang b ernilai 1 (high) atau 0 (low). Pada Program tersebut byte yang digunakan untuk mengirim data berbentuk biner. Kemudian program tersebut juga menggunakan perintah atau fungsi delay_ms(1000) yang artinya melakukan penundaan
dalam satuan milidetik (telah disetting satu detik).
2. Persamaan :
Output yang dihasilkan sama yaitu keadaan high pada Bit 0=1, Bit 1=1, Bit 2=1, Bit 3=1, dan keadaan low pada Bit 4=0, Bit 5=0, Bit 6=0, Bit 7=0. Dimana pada keadaan high LED menyala dan pada keadaan low LED mati.
Sama-sama melakukan penundaan dalam satuan milidetik (telah disetting satu detik). Detik
ke- Nyala LED (semua bit) 7 6 5 4 3 2 1 0 1 0 0 0 0 0 1 0 0 2 0 0 0 0 0 0 1 0 3 0 0 0 0 0 1 0 0 4 0 0 0 0 1 0 0 0 5 0 0 0 1 0 0 0 0 6 0 0 1 0 0 0 0 0 7 0 1 0 0 0 0 0 0 8 1 0 0 0 0 0 0 0
Perbedaan :
Pada program LED1, digunakan untuk pengiriman data dalam bentuk bilangan hexadecimal ke PORTA.
Pada program LED2, digunakan untuk pengiriman data dalam bentuk bilangan biner PORTA.
3. Instruksi yang digunakan untuk mengeluarkan data yaitu dengan menggunakan bit biner maupun hexadecimal
a. PORTX = 0x… - untuk menyalakan led pada PORT X(A-D) dengan data
hexadesimal yang nanti akan dikonversikan ke biner. Contoh 0x55 = 01010101 b. PORTX = 0b… – untuk menyalakan led pada PORT X(A-D) dengan data biner
yang berupa 0 dan 1. Contoh 0x00001111
c. PORTX.X = untuk menyalakan led pada bit tertentu(0-7).
4. Karena program tersebut juga menggunakan perintah atau fungsi delay_ms(1000) yang artinya melakukan penundaan dalam satuan milidetik (dalam program telah disetting satu detik).
KESIMPULAN
Setelah melakukan praktikum antarmuka mikrokontroller dengan led dapat disimpulkan beberapa hal sebagai berikut :
1. Mikrokontroller mempunyai empat PORT yang terdiri dari PORTA, PORTB, PORTC atau PORTD. PORT tersebut dapat digunakan untuk menyalakan led. Pada praktikum kali ini menggunakan PORTA.
2. Untuk menyalakan led dari data ke port dapat menggunakan instruksi PORTX untuk menyalakan 8 led atau PORTX.X untuk menyalakan LED per bit atau LED tertentu.
3. Tipe data yang digunakan untuk mengirimkan data ke port dapat menggunakan tipe data biner (0b), maupun hexadecimal (0x).
4. Jeda waktu menggunakan delay_ms(1000); yang berarti dalam satuan mili detik dan header delay #include(delay.h).