Anda di halaman 1dari 18

LAPORAN PRAKTIKUM

ANTARMUKA MIKRONTROLER DENGAN LED


Disusun untuk Memenuhi Matakuliah Workshop Mikroprosesor
Yang Dibimbing oleh
Bu Dyah Lestari,S.T.M.Eng.

Disusun Oleh:
RIZKI NUR ARIFIN (150531507817)
UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI D3 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 = Output ;
Input; R pull
1
High
up
PORT bit = Output;
Input,
0
Low
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
Programmer
1 set trainer mikrokontroler
1 buah kabel USB
1 buah kabel pita 10p untuk data

PROSEDUR
1.

Rangkailah peralatan yang diperlukan seperti pada gambar dibawah.


Hubungkan soket jumper PORTA pada minimum system dengan soket
jumper OUTPUT pada I/O.

2.
3.

Buka program Code Vision AVR


Buat file baru dengan cara klik File>>New, atau klik icon Create a New
File or Project, atau ketik Ctrl + N. Ketika muncul dialog box, pilih
Project pada File Type, kemudian klik OK.

4.

Ketika muncul dialog box untuk


menggunakan CodeWizardAVR, klik No.

5.

Ketika muncul window untuk menyimpan file, buat folder baru dengan
nama praktikum 1 untuk menyimpan file.
Simpan file pada folder tersebut dan beri nama file prj dengan nama
led dan klik Save.
Kemudian muncul dialog box Configure Project. Pada tab C Compiler,
subtab Code Generation pilih chip ATmega8535 dan ubah Clock
menjadi 4 MHz. Kemudian klik OK.

6.
7.

menanyakan

apakah

ingin

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 LED1 pada program utama di dalam while (1):


// Program LED1

15.
16.
17.
18.

19.
20.

21.
22.
23.

Compile program tersebut dengan cara klik Project>> Compile atau


ketik F9.
Jika ada error , koreksi program yang error dan perbaiki. Jika sudah
tidak ada yang error build program tersebut dengan cara klik
Project>> Build atau klik Shift + F9.
Hubungkan kabel usb printer antara PC/ Laptop dengan trainer.
Buka aplikasi Khazama 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.
Klik Auto Program kemudian amati nyala LED dan gambarkan nyala
LED tersebut.
Hapus Program LED1, kemudian tuliskan program LED2 di dalam while
(1):
Program LED2

Compile dan Build program, jika ada yang error perbaiki program.
Masukkan file hex menggunakan Khazama AVR Programer. Klik auto
program.
Amati nyala LED dan gambarkan nyala LED tersebut.
Hapus program LED2, kemudian tuliskan program LED3 di dalam while
(1):
Program LED3

24.
25.
26.

Compile dan Build program, jika ada yang error perbaiki program.
Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto
program.
Amati nyala LED dan gambarkan nyala LED tersebut.
Hapus program led 3, kemudian tuliskan program led 4 pada program
utama tepatnya tuliskan program tersebut didalam while (1):

Program LED4

27.
28.
29.

Compile dan Build program, jika ada yang error perbaiki program.
Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto
program.
Amati nyala LED dan gambarkan nyala LED tersebut.
Hapus program led 4, kemudian tuliskan program led 5 pada program
utama tepatnya tuliskan program tersebut didalam while (1):
Program LED5

30.
31.

Compile dan Build program, jika ada yang error perbaiki program.
Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto
program.
Amati nyala LED dan gambarkan nyala LED tersebut.

DATA HASIL PERCOBAAN


1.
2.
3.
4.
5.

Tampilan
Tampilan
Tampilan
Tampilan
Tampilan

nyala
nyala
nyala
nyala
nyala

LED
LED
LED
LED
LED

Program LED1
Program LED2
Program LED3
Program LED4
Program LED5

ANALISA DATA
1.
2.

Analisa Program LED1 LED5!


Apakah persamaan dan perbedaan PROGRAM LED1 dan PROGRAM
LED2?
3.
Instruksi apa yang digunakan untuk mengeluarkan data ke LED?
Mengapa ada jeda waktu sekitar 1 detik antara tampilan LED yang pertama
dengan yang berikutnya?

DATA HASIL PERCOBAAN


1. Tampilan nyala LED pada program LED1
- Program LED1

Tampilan LED

2. Tampilan nyala LED pada program LED2


- Program LED2

Tampilan LED

3. Tampilan nyala LED pada program LED3


- Program LED3

Tampilan nyala LED

4. Tampilan nyala LED pada program LED4


- Program LED4

Tampilan nyala LED

5. Tampilan nyala LED pada program LED 5


- Program LED5

Tampilan nyala LED

ANALISA DATA
1. Analisa program LED 1-LED 5 !
Saat pertamakali kita menginisialisasi PORTA dengan
jalan menset DDRA = FFH maka kita menjadikannya sebagai
output. Kita memberikan output value = 0 (PORTA=00H)
maka lampu LED pada PORTA tidak ada yang menyala.
Dengan menambahkan file library #include <delay.h> kita
memberikan perintah pada program untuk melakukan waktu
penundaan. Pada program utama kita tambahkan program
sebagai berikut :

Pada Percobaan LED 1, pemberian nilai menggunakan kode


heksadesimal dan ditambahkan kode seperti: Setelah delay ke 1
Setelah delay ke 2 Setelah delay ke 3 Setelah delay ke 4 Setelah delay
ke 5 Setelah delay ke 6 Setelah delay ke 7.
PORTA=0x0f; pada perintah ini seluruh PORTA (bit.0 - bit.7) kita
berikan nilai 0x0f artinya pada PORTA.0-PORTA.3 kita berikan nilai 1
sedangkan pada PORTA.4-PORTA.7 kita beri nilai 0 (0x0f menunjukkan
pemberian
nilai
dengan
menggunakan
kode
heksadesimal).
delay_ms(1000); memberikan waktu tundan selama 1000 ms atau 1
detik. PORTA=0xf0; pada perintah ini seluruh PORTA (bit.0 - bit.7) kita
berikan nilai 0xf0 artinya pada PORTA.0-PORTA.3 kita berikan nilai 0
sedangkan pada PORTA.4-PORTA.7 kita beri nilai 1 (0x0f menunjukkan
pemberian
nilai
dengan
menggunakan
kode
heksadesimal)
delay_ms(1000); memberikan waktu tundan selama 1000 ms atau 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; pada perintah ini seluruh PORTA (bit.0 - bit.7) kita
berikan nilai 0b00001111 artinya pada PORTA.0-PORTA.3 kita berikan
nilai 1 sedangkan pada PORTA.4-PORTA.7 kita beri nilai 0 (0b00001111
menunjukkan pemberian nilai dengan menggunakan kode biner).
delay_ms(1000); memberikan waktu tundan selama 1000 ms atau 1
detik. PORTA=0b11110000; pada perintah ini seluruh PORTA (bit.0 bit.7) kita berikan nilai 0b11110000 artinya pada PORTA.0-PORTA.3 kita
berikan nilai 1 sedangkan pada PORTA.4-PORTA.7 kita beri nilai 0
(0b11110000 menunjukkan pemberian nilai dengan menggunakan
kode biner). delay_ms(1000); memberikan waktu tundan selama 1000
ms atau 1 detik.

Pada percobaan LED 3, pemberian nilai menggunakan kode hekxadesimal dengan menambahkan kode sebagai berikut :
PORTA=0x55; pada perintah ini PORTA (bit.0,2,4 dan 6) akan menyala
karena diberikan logika 1 (x55 merupakan perintah untuk menyalakan
LED secara bersilangan). delay_ms(1000);memberikan waktu tundan
selama 1 detik. 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. delay_ms(1000);
memberikan waktu tundan selama 1 detik.
Pada percobaan LED 4, pemberian nilai yang digunakan
menggunakan kode biner yaitu 0b dan ditambahkan dengan kode
sebagai berikut: PORTA=0b11100111; pada perintah ini PORTA

(bit.0,1,2,5,6 dan 7) akan menyala karena diberikan logika 1,


sedangakan PORTA (bit.3 dan 4) akan mati karena diberikan logika 0.
PORTA=0b11011011; pada perintah ini PORTA (bit.0,1,3,4,6 dan 7)
akan menyala karena diberikan logika 1, sedangakan PORTA (bit.2
dan 5) akan mati karena diberikan logika 0. PORTA=0b10111101;
pada perintah ini PORTA (bit.0,2,3,4,5 dan 7) akan menyala karena
diberikan logika 1, sedangakan PORTA (bit.1 dan 6) akan mati karena
diberikan logika 0. PORTA=0b01111110; pada perintah ini PORTA
(bit.1,2,3,4,5 dan 6) akan menyala karena diberikan logika 1,
sedangakan PORTA (bit.0 dan 7) akan mati karena diberikan logika 0.
PORTA=0b10111101; pada perintah ini PORTA (bit.0,2,3,4,5 dan 7)
akan menyala karena diberikan logika 1, sedangakan PORTA (bit.1
dan 6) akan mati karena diberikan logika 0. PORTA=0b11011011;
pada perintah ini PORTA (bit.0,1,3,4,6 dan 7) akan menyala karena
diberikan logika 1, sedangakan PORTA (bit.2 dan 5) akan mati karena
diberikan logika 0. 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 karena diberi logika 1
sedangkan yang lain mati karena diberikan logika 0 dan bit.2 akan
menyala karena disampingnya diberi perintah PORTA.2=1.
PORTA=0b00000010; PORTA.1=1; pada perintah ini PORTA (bit.1)
akan menyala karena diberi logika 1 sedangkan yang lain mati
karena diberikan logika 0. PORTA=0b00000100; pada perintah ini
PORTA (bit.2) akan menyala karena diberi logika 1 sedangkan yang
lain mati karena diberi logika 0. PORTA=0b00001000; pada perintah
ini PORTA (bit.3) akan menyala karena diberi logika 1 sedangkan
yang lain mati karena diberi logika 0. PORTA=0b00010000; pada
perintah ini PORTA (bit.4) akan menyala karena diberi logika 1
sedangkan
yang
lain
mati
karena
diberi
logika
0.
PORTA=0b00100000; pada perintah ini PORTA (bit.5) akan menyala
karena diberi logika 1 sedangkan yang lain mati karena diberi logika
0. PORTA=0b01000000; pada perintah ini PORTA (bit.6) akan
menyala karena diberi logika 1 sedangkan yang lain mati karena
diberi logika 0. PORTA=0b10000000; pada perintah ini PORTA (bit.7)
akan menyala karena diberi logika 1 sedangkan yang lain mati
karena diberi logika 0. delay_ms(1000); memberikan waktu tunda
selama 1 detik, delay ini diletakkan diantara setiap PORTA.

2. Apakah persamaan dan perbedaan PROGRAM LED1 dan PROGRAM


LED2?
Persamaannya adalah pada pemberian nilai pada pemberian
nilai logikanya sama dan nyala LED juga sama sedangkan
perbedaan yaitu terletak pada pemberian kode nilai pada program
LED 1 menggunakan kode heksadesimal (0xnilai hekxa) sedangkan
pada program led 2 pemberian nilai menggunakan kode biner
(0bnilai biner).
3. Instruksi apa yang digunakan untuk mengeluarkan data ke LED?
Intruksi yang digunakan untuk mengeluarkan data ke LED
adalah PORTA data nilai sebagai contoh pada program LED 1
sebagai berikut:
PORTA=0x0f;
delay_ms(1000);
PORTA=0xf0;
delay_ms(1000);
program diatas memberikan intruksi untuk menyalakan
LED.0-LED.3 dengan selisih 1 detik.
4. Mengapa ada jeda waktu sekitar 1 detik antara tampilan LED yang
pertama dengan yang berikutnya?
Karena kita memberikan perintah delay pada listing
program yaitu delay 1000 ms atau sekitar 1 detik. apabila program
tersebut tidak diberikan delay atau jeda maka program yang
selanjutnya tidak akan bekerja dan output atau nyala led hanya
akan menampilkan program yang pertama diberikan.

KESIMPULAN
Langkah pertama dalam pemberian program pada microkontroler
adalah menginisalisasi PORT, yaitu fungsinya untuk menentukan
pengaturan fungsi PORT sebagai input atau output. Pada praktikum
PORTA di inisialisasikan sebagai output yaitu dengan cara DDRA=FFH.
Dalam pemberian nilai input kita dapat menggunakan kode digital
yaitu kode heksadesimal dan biner. bila kita menggunkan kode
heksimal maka harus diawali dengan 0x sedangkan kode biner
menggunakan awalan 0b. Delay digunakan sebagai pemberian waktu
tundaan artinya kita memberikan waktu tundaan sesuai dengan
perintah tunda yang kita berikan dari satu program ke program
selanjutnya. Pemberian nilai pada masing-masing bit port dapat
dilakukan dengan cara mengset masing-masing bit dengan
memberikan logika 1.

DAFTAR PUSTAKA
Lestari, Dyah.2012.PRAKTIKUM MIKROPROSESSOR DAN TEKNIK
ANTARMUKA PTI-494 PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA.
Malang.Universitas
Negeri
Malang.
http://id.wikipedia.org/wiki/Diode_pancaran_cahaya