Laporan 1 Lab Pte 03 Running Led
May 15, 2019 | Author: ufri | Category: N/A
Short Description
asekk...
Description
LAPORAN PRAKTIKUM LAB-PTE 03 ANTARMUKA MIKROKONTROLER DENGAN LED
Disusun untuk Memenuhi Matakuliah LAB-PTE 03 Dibimbing oleh Ibu Dyah Lestari, S.T., M.Eng
Oleh: Danny Prasetyo
150534601229
David Maulana Makruf Duwy Susanti Indah Churiyah
150534602068 150534604689 150534601934
S1 PTE 2015 OFF B
UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI S1 PENDIDIKAN TEKNIK ELEKTRO 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.
(a) Bentuk fisik LED
(b) Simbol elektronik
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; 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.
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. Kabel USB ISP Downloader
Kabel downloader
Minimum system AVR
Kabel pita hitam I/O
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 file dengan 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”.
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 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. 31. Amati nyala LED dan gambarkan nyala LED tersebut.
DATA HASIL PERCOBAAN
1. 2. 3. 4. 5.
Tampilan nyala LED Program LED1 Tampilan nyala LED Program LED2 Tampilan nyala LED Program LED3 Tampilan nyala LED Program LED4 Tampilan nyala LED Program LED5
ANALISA DATA
1. 2. 3. 4.
Analisa Program LED1 – LED5! Apakah persamaan dan perbedaan PROGRAM LED1 dan PROGRAM LED2? Instruksi apa yang digunakan untuk mengeluarkan data ke LED? 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 Detik ke1 2 3 4 5 6 7
Nyala LED (semua bit) 7 1 0 1 0 1 0 1
6 1 0 1 0 1 0 1
5 1 0 1 0 1 0 1
4 1 0 1 0 1 0 1
3 0 1 0 1 0 1 0
2 0 1 0 1 0 1 0
1 0 1 0 1 0 1 0
0 0 1 0 1 0 1 0
Analisis Program : Pada program LED 1 menggunakan header #include dan #include 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.
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
Detik ke1 2 3 4 5 6 7
Nyala LED (semua bit) 7 1 0 1 0 1 0 1
6 1 0 1 0 1 0 1
5 1 0 1 0 1 0 1
4 1 0 1 0 1 0 1
3 0 1 0 1 0 1 0
2 0 1 0 1 0 1 0
1 0 1 0 1 0 1 0
0 0 1 0 1 0 1 0
Analisis Program : Pada program LED 2 menggunakan header #include dan #include 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
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 Detik ke1 2 3 4 5 6 7
Nyala LED (semua bit) 7 0 1 0 1 0 1 0
6 1 0 1 0 1 0 1
5 0 1 0 1 0 1 0
4 1 0 1 0 1 0 1
3 0 1 0 1 0 1 0
2 1 1 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
Analisis Program : Pada program LED 1 menggunakan header #include dan #include 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
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
Gambar 1.4 gambar nyala LED Program LED4
Tabel 1.4 nyala LED dalam beberapa detik Detik ke1 2 3 4 5 6 7
Nyala LED (semua bit) 7 1 1 1 0 1 1 1
6 1 1 0 1 0 1 1
5 1 0 1 1 1 0 1
4 0 1 1 1 1 1 1
3 0 1 1 1 1 1 0
2 1 0 1 1 1 0 0
1 1 1 0 1 0 1 1
0 1 1 1 0 1 1 1
Analisis Program : Pada program LED 1 menggunakan header #include dan #include 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
Tampilan nyala LED :
Gambar 1.5 gambar nyala LED Program LED5 Tabel 1.5 nyala LED dalam beberapa detik Detik ke1 2 3 4 5 6 7 8
Nyala LED (semua bit) 7 0 0 0 0 0 0 0 1
6 0 0 0 0 0 0 1 0
5 0 0 0 0 0 1 0 0
4 0 0 0 0 1 0 0 0
3 0 0 0 1 0 0 0 0
2 1 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Analisis Program: Pada program LED 5 diberikan header #include 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).
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).
View more...
Comments