0% menganggap dokumen ini bermanfaat (0 suara)
425 tayangan12 halaman

Praktikum 2 Led

Program mikrokontroler untuk mengontrol LED dengan menggunakan bahasa C. Terdapat lima program yang mengatur nyala LED secara bergantian dengan menggunakan bilangan biner dan heksadesimal untuk mengatur port keluaran mikrokontroler, serta penggunaan perintah delay untuk mengatur jeda antar perubahan tampilan LED.

Diunggah oleh

Rifa de Blitar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
425 tayangan12 halaman

Praktikum 2 Led

Program mikrokontroler untuk mengontrol LED dengan menggunakan bahasa C. Terdapat lima program yang mengatur nyala LED secara bergantian dengan menggunakan bilangan biner dan heksadesimal untuk mengatur port keluaran mikrokontroler, serta penggunaan perintah delay untuk mengatur jeda antar perubahan tampilan LED.

Diunggah oleh

Rifa de Blitar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 12

PERCOBAAN I

ANTARMUKA MIKROKONTROLER DENGAN


LIGHT EMITTING DIODE (LED)
I.

TUJUAN
1. Mengetahui dan memahami cara mengantarmukakan mikrokontroler

dengan rangkaian LED.


2. Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk

menyalakan LED.
II. DASAR TEORI
1. 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 memperlihatkan bentuk fisik LED dan
simbol rangkaiannya.

(a)LED warna merah, hijau dan biru

(b) Simbol elektronik

Gambar 2.1 LED


Untuk menyalakan sebuah LED perlu rangkaian tambahan yang
dapat dilihat dalam Gambar 2.2. 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.

Gambar 2.2 Rangkaian LED


2. 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
PORT bit = 1 Output ; High
PORT bit = 0 Output; Low
Untuk mengirim data byte

DDR bit = 0
Input; R pull up
Input, Floating
dalam bentuk bilangan heksadesimal 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.

III. ALAT DAN BAHAN YANG DIGUNAKAN


1. 1 set Personal Computer/Laptop yang sudah berisi program Code Vision
dan Khazama
2. 1 buah catu daya DC +5V
3. 1 buah multimeter
4. 1 buah ISP Downloader AVR
5. 1 buah sistem minimum AVR
6. 1 buah I/O
7. 1 buah kabel USB Type B
8. 1 buah kabel pita hitam
IV. PROSEDUR
1. Rangkailah peralatan yang diperlukan seperti dalam Gambar 2.3.
Hubungkan soket jumper PORTB pada minimum system dengan soket
jumper OUTPUT pada I/O.

Gambar 2.3 Blok diagram antarmuka mikrokontroler


2. Buka program Code Vision AVR
3. Buatlah project baru dengan inisialisasi PORTA sebagai output (DDRA =
FFH) dan output

value = 0 (PORTA=00H) sehingga pada program

bagian inisialisasi PORTA terlihat sebagai berikut:


PORTA=0x00;
DDRA=0xff;
4. Tambahkan file header
#include <delay.h>
5. Tuliskan dalam program utama sebagai berikut:
// Program LED1
PORTA=0x0f;
delay_ms(1000);
PORTA=0xf0;
delay_ms(1000);
6. Amati nyala LED dan gambarkan nyala LED tersebut.
Lampu LED semua mati
7. Ulangi langkah 3-6 untuk program-program berikut:
//Program LED2
PORTA=0b00001111;
delay_ms(1000);
PORTA=0b11110000;
delay_ms(1000);

//Program LED3
PORTA=0x55;
delay_ms(1000);
PORTA=0xaa;
delay_ms(1000);
//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);
//Program LED5
PORTA=0b00000001;

PORTA.2=1;

delay_ms(1000);
PORTA=0b00000010;
delay_ms(1000);
PORTA=0b00000100;
delay_ms(1000);
PORTA=0b00001000;
delay_ms(1000);
PORTA=0b00010000;
delay_ms(1000);
PORTA=0b00100000;

PORTA.1=1;

delay_ms(1000);
PORTA=0b01000000;
delay_ms(1000);
PORTA=0b10000000;
delay_ms(1000);
V.

DATA HASIL PERCOBAAN

1. Program LED1
Nyala

Nyala

Nyala

Nyala

Mati

Mati

Mati

Mati

4 lampu LED menyala selama 1 detik di lanjut 4 lampu LED yang lain
menyala selama 1 detik secara bergantian
2. Program LED2
Nyala

Nyala

Nyala

Nyala

Mati

Mati

Mati

Mati

Mati

Mati

Mati

Mati

Nyala

Nyala

Nyala

Nyala

4 lampu LED menyala selama 1 detik di lanjut 4 lampu LED yang lain
menyala selama 1 detik secara bergantian
3. Program LED3
Mati

Nyala

Mati

Nyala

Mati

Nyala

Mati

Nyala

Nyala

Mati

Nyala

Mati

Nyala

Mati

Nyala

Mati

Bergantian selama 1 detik antara LED 1 dengan LED yang lain

4. Program LED4
Nyala

Nyala

Mati

Nyala

Nyala

Mati

Nyala

Nyala

Nyala

Mati

Nyala

Nyala

Nyala

Nyala

Mati

Nyala

Mati

Nyala

Nyala

Nyala

Nyala

Nyala

Nyala

Mati

Mati

Mati

Nyala

Nyala

Nyala

Nyala

Mati

Nyala

Nyala

Nyala

Mati

Nyala

Nyala

Mati

Nyala

Nyala

5. Program LED5
Mati

Mati

Mati

Mati

Nyala

Mati

Mati

Nyala

Mati

Mati

Mati

Mati

Mati

Mati

Nyala

Mati

Mati

Mati

Mati

Mati

Mati

Nyala

Mati

Mati

Mati

Mati

Mati

Mati

Nyala

Mati

Mati

Mati

Mati

Mati

Mati

Nyala

Mati

Mati

Mati

Mati

Mati

Mati

Nyala

Mati

Mati

Mati

Mati

Mati

Mati

Nyala

Mati

Mati

Mati

Mati

Mati

Mati

Nyala

Mati

Mati

Mati

Mati

Mati

Mati

Mati

VI. PEMBAHASAN
1.

Buatlah kesimpulan hasil masing-masing program.


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 1detik, 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 berlanjud ke perintah program yang berikutnya.

2. Apakah persamaan dan perbedaan PROGRAM LED1 dan PROGRAM


LED2?
Jawab :
Persamaan : 4 lampu LED menyala selama 1 detik di lanjut 4
lampu LED yang lain menyala selama 1 detik secara
bergantian (Perintahnya sama).
Perbedaan : Terletak pada penggunaaan bilangan dalam masingmasing program. Pada program LED 1 kode program di tulis
menggunakan bilangan hexa desimal sedangkan pada program
LED 2 kode program di tulis menggunakan bilangan biner.
3. Instruksi yang digunakan untuk mengeluarkan data ke LED adalah
Jawab :
AUTO PROGRAM pada khazama AVR Programmer
4. Mengapa ada jeda waktu sekitar 1 detik antara tampilan LED yang pertama
dengan yang berikutnya?
Jawab :
Karena pada program di terdapat kode delay_ms(1000); yang
berarti ada jeda per 1000 ms atau sama dengan 1mnt untuk menampilkan
keperintah program LED berikutnya.

VII.

KESIMPULAN
Dalam praktikum ini digunakan 2 bilangan untuk menentukan hasil

keluaran atau perintah dari program yang kita buat yaitu bilangan biner dan
bilangan hexa decimal. Pada hakikatnya bilangan ini mempunyai fungsi sama
dalam perintah, hanya berbeda dalam penulisannya.
Hasil yang dikeluarkan dari LED adalah output dalm bentuk logika dengan
masukan program dari listing program yang telah dilakukan sebelumnya, yaitu
jika masukan berupa bilangan heksa desimal maka bentuk keluaran atau output
pada LED adalah bentuk dalam bilangan binernya misalkan 0x0f = 0b00001111
dengan logika tersebut jika keluarannya nol (0) maka LED akan mati dan begitu
juga sebaliknya jika keluarannya logika satu (1) maka LED akan menyala. Lama
perpindahan antara listing program yang satu dengan listing program yang lainnya
tergantung pada delay masukan pada program yang dibuat.

Anda mungkin juga menyukai