Anda di halaman 1dari 10

MODUL 1

ANTARMUKA MIKROKONTROLLER
DENGAN LED 8
Alfian Nur H. 170536630029

LAPORAN PRAKTIKUM
1. TUJUAN

 Menjelaskan rangkaian antarmuka mikrokontroler dengan LED.


 Mempraktekkan pemrograman mikrokontroler untuk menyalakan LED.

2. DASAR TEORI

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.

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.


3. ALAT DAN BAHAN

 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

4. PROSEDUR KERJA

1. Rangkailah peralatan yang diperlukan seperti pada gambar dibawah.


Hubungkan soket jumper PORTA pada minimum system dengan soket
jumper OUTPUT pada I/O.
Kabel pita
Kabel
Kabel USB hitam
downloader Minimum
ISP Downloader I/O
system AVR

Catu Daya + 5V

2. Buka program Code Vision AVR


3. Buatlah project baru dengan inisialisasi PORTA sebagai output dan output
value = 0
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.
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; 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);
5. DATA HASIL PERCOBAAN

1. Tampilan nyala LED Program LED1

 Program LED1
PORTA = 0x0f;
delay_ms (1000);
PORTA = 0xf0;
delay_ms (1000);

 Tampilan LED1
1 Mati, 2 Mati, 3 Mati, 4 Mati, 5 Nyala, 6 Nyala, 7 Nyala, 8 Nyala
Setelah Delay 1
1 Nyala, 2 Nyala, 3 Nyala, 4 Nyala, 5 Mati, 6 Mati, 7 Mati, 8 Mati

2. Tampilan nyala LED Program LED2

 Program LED2
PORTA=0b00001111;
delay_ms(1000);
PORTA=0b11110000;
delay_ms(1000);

 Tampilan LED2
1 Mati, 2 Mati , 3 Mati, 4 Mati, 5 Nyala, 6 Nyala, 7 Nyala, 8 Nyala
Setelah Delay 1
1 Nyala, 2 Nyala, 3 Nyala, 4 Nyala, 5 Mati, 6 Mati, 7 Mati, 8 Mati

3. Tampilan nyala LED Program LED3

 Program LED3
PORTA=0x55;
delay_ms(1000);
PORTA=0xaa;
delay_ms(1000);

 Tampilan LED3
1 Mati, 2 Nyala, 3 Mati ,4 Nyala, 5 Mati, 6 Nyala,7 Mati,8 Nyala
Setelah delay 1
1 Nyala ,2 Mati, 3 Nyala, 4 Mati, 5 Nyala ,6 Mati, 7 Nyala,8 Mati

4. Tampilan nyala LED 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);

 Tampilan LED4
1 Nyala, 2 Nyala, 3 Nyala, 4 Mati, 5 Mati, 6 Nyala, 7 Nyala, 8 Nyala
Delay 1
1 Nyala, 2 Nyala, 3 Mati, 4 Nyala, 5 Nyala, 6 Mati, 7 Nyala, 8 Nyala
Delay 2
1 Nyala, 2 Mati, 3 Nyala, 4 Nyala, 5 Nyala, 6 Nyala, 7 Mati ,8 Nyala
Delay 3
1 Mati, 2 Nyala, 3 Nyala, 4 Nyala, 5 Nyala, 6 Nyala, 7 Nyala ,8 Mati
Delay 4
1 Nyala, 2 Mati, 3 Nyala, 4 Nyala, 5 Nyala, 6 Nyala, 7 Mati, 8 Nyala
Delay 5
1 Nyala, 2 Nyala, 3 Mati, 4 Nyala, 5 Nyala, 6 Mati, 7 Nyala, 8 Nyala

5. Tampilan nyala LED Program LED6

 Program LED5
PORTA=0b00000001; PORTA.2=1;
delay_ms(1000);
PORTA=0b00000010; PORTA.1=1;
delay_ms(1000);
PORTA=0b00000100;
Setelah delay ke 1
Setelah delay ke 2
Setelah delay ke 3
Setelah delay ke 4
Setelah delay ke 5
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);

 Tampilan LED5
1 Mati, 2 Mati, 3 Mati, 4 Mati, 5 Mati, 6 Nyala, 7 Mati, 8 Nyala
1 Mati, 2 Mati, 3 Mati, 4 Mati, 5 Mati, 6 Mati, 7 Nyala, 8 Mati
1 Mati, 2 Mati, 3 Mati, 4 Mati, 5 Mati, 6 Nyala, 7 Mati, 8 Mati
1 Mati, 2 Mati, 3 Mati, 4 Mati, 5 Nyala, 6 Mati, 7 Mati, 8 Mati
1 Mati, 2 Mati, 3 Mati , 4 Nyala, 5 Mati, 6 Mati, 7 Mati, 8 Mati
1 Mati, 2 Mati, 3 Nyala, 4 Mati, 5 Mati, 6 Mati, 7 Mati, 8 Mati
1 Mati, 2 Nyala, 3 Mati, 4 Mati, 5 Mati, 6 Mati, 7 Mati, 8 Mati
1 Nyala, 2 Mati, 3 Mati, 4 Mati, 5, Mati, 6 Mati, 7 Mati, 8 Mati

6. ANALISA DATA

1. Analisa Program LED1 – LED5!

Pemberian program pada microkontroler adalah menginisalisasi


PORT, yaitu fungsinya untuk menentukan pengaturan fungsi PORT
sebagai input atau output.

 Pada Percobaan LED 1, pemberian nilai menggunakan kode heksadesimal


dan ditambahkan kode seperti:

PORTA = 0x0f;
delay_ms (1000);
PORTA = 0xf0;
delay_ms (1000);

Pada perintah ini seluruh PORTA (bit.0 - bit.7) kita berikan nilai 0x0f
artinya pada PORTA.0-PORTA.3 kita berikan nilai 1sedangkan pada
PORTA.4-PORTA.7 kita beri nilai 0. (0x0f) menunjukkan
pemberian nilai dengan menggunakan kode heksadesimal, dan delay_ms
(1000) menunjukkan waktu tundaan selama 1 detik.
 Pada percobaan LED 2, pemberian nilai menggunakan kode biner dan hasil
yang ditampilkan sama dengan kode heksadesimal seperti di atas dan di
tambahkan dengan sebuah kode sebagai berikut :

PORTA=0b00001111;
delay_ms(1000);
PORTA=0b11110000;
delay_ms(1000);

Pada kode PORTA tersebut menggunakan biner karena 0b, dan delay
menunjukkan 1 detik untuk delay waktu penggantian lampu dari nyala 4 ke
mati 4.

 Pada percobaan LED 3, pemberian nilai menggunakan kode hekxadesimal


dengan menambahkan kode sebagai berikut :

Program LED3
PORTA=0x55;
delay_ms(1000);
PORTA=0xaa;
delay_ms(1000);

Di tanda x55 merupakan perintah untuk menyalakan LED secara


bersilangan. PORTA=0xaa pada perintah ini sama dengan perintah
sebelumnya akan tetapi perintah ini mengakibatkan PORTA (bit.1,3,5 dan
7) akan menyala karena di berikan perintah delay yang mengakibatkan
lampu berubah secara bergantian. Dan delay untuk delay 1 detik.

 Pada percobaan LED 4, pemberian nilai yang digunakan menggunakan


kode biner yaitu 0b dan ditambahkan dengan kode sebagai berikut :

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);

PORTA=0b11100111 pada perintah ini PORTA (bit.0,1,2,5,6 dan 7)


akan menyala, sedangakan PORTA (bit.3 dan
4) akan mati.
PORTA=0b11011011 pada perintah ini PORTA (bit.0,1,3,4,6 dan 7)
akan menyala, sedangakan PORTA (bit.2 dan
5) akan mati.

PORTA=0b10111101 pada perintah ini PORTA (bit.0,2,3,4,5 dan 7)


akan menyala, sedangakan PORTA (bit.1 dan
6) akan mati.

PORTA=0b01111110 pada perintah ini PORTA (bit.1,2,3,4,5 dan 6)


akan menyala, sedangakan PORTA (bit.0 dan
7) akan mati.

PORTA=0b10111101 pada perintah ini PORTA (bit.0,2,3,4,5 dan 7)


akan menyala sedangakan PORTA (bit.1 dan
6) akan mati.

PORTA=0b11011011 pada perintah ini PORTA (bit.0,1,3,4,6 dan 7)


akan menyala, sedangakan PORTA (bit.2 dan
5) akan mati.

delay_ms(1000) memberikan waktu tunda selama 1 detik, delay ini


diletakkan diantara setiap PORTA

 Pada Percobaan LED 5, pada percobaan ini sama dengan percobaan


sebelumnya yaitu dengan menggunakan kode biner dan ditambah kode
sebagai berikut :

PORTA=0b00000001; PORTA.2=1 pada perintah ini PORTA (bit.0) akan


menyala sedangkan yang lain mati. 2 akan menyala karena disampingnya
diberi perintah PORTA.2=1.

PORTA=0b00000010; PORTA.1=1 pada perintah ini PORTA (bit.1) akan


menyala sedangkan yang lain mati.

PORTA=0b00000100 pada perintah ini PORTA (bit.2) akan menyala


sedangkan yang lain mati.

PORTA=0b00001000 pada perintah ini PORTA (bit.3) akan menyala


sedangkan yang lain mati.

PORTA=0b00010000 pada perintah ini PORTA (bit.4) akan menyala


sedangkan yang lain mati.

PORTA=0b00100000 pada perintah ini PORTA (bit.5) akan menyala


sedangkan yang lain mati.

PORTA=0b01000000 pada perintah ini PORTA (bit.6) akan menyala


sedangkan yang lain mati.
PORTA=0b10000000 pada perintah ini PORTA (bit.7) akan menyala
karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0.

2. Apakah persamaan dan perbedaan PROGRAM LED1 dan


PROGRAM LED2?

Persamaannya adalah terletak pada pemberian nilai di logikan yang


sama dan juga nyala LED yang sama, sedangkan perbedaan yaitu terletak
pada pemberian kode nilai pada program LED 1 menggunakan kode
heksadesimal, sedangkan pada program LED 2 pemberian nilai
menggunakan kode biner.

3. Instruksi apa yang digunakan untuk mengeluarkan data ke LED?

Yang digunakan adalah Instruksi PORTA contohnya seperti yang dibawah


ini

PORTA=0x0f;
delay_ms(1000);
PORTA=0xf0;
delay_ms(1000);

4. Mengapa ada jeda waktu sekitar 1 detik antara tampilan LED yang
pertama dengan yang berikutnya?

Karena pada program, saya memberikan kode hanya sebesar 1 detik saja.

7. KESIMPULAN

Dalam pemberian program, hal pertama yang harus dilakukan pada


mikrokontroler adalah menginisalisasi PORT, PORT ini berfungsi untuk
menentukan pengaturan fungsi PORT sebagai input atau output. Dalam pemberian
nilai input kita dapat menggunakan kode digital yaitu kode heksadesimal dan
biner. Bila kita menggunkan kode biner menggunakan awalan 0b, sedangkan kode
heksimal maka harus diawali dengan 0x. Delay digunakan sebagai pemberian
waktu tundaan artinya kita memberikan waktu tundaan sesuai dengan perintah
tunda yang kita berikan dari satu program ke program selanjutnya atau untuk jeda
waktu penggantian yang di inginkan oleh pengamat. Pemberian nilai pada
masing-masing bit port dapat dilakukan dengan cara mengset masing-masing bit
dengan memberikan logika 1.