Laporan 1 Lab Pte 03 Running Led

May 15, 2019 | Author: ufri | Category: N/A
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF