Anda di halaman 1dari 13

LAPORAN

PRAKTIKUM MIKROKONTROLLER

PERCOBAAN LED DAN SW


PUSH BUTTON
Nama : Diah Arum Kurniasari
NIM :

P27838012017

Kelas: 2A, 1-2

LABORATORIUM MIKROKONTROLLER
JURUSAN TEKNIK ELEKTROMEDIK
POLTEKKES KEMENKES SURABAYA
2013
LED DAN SW PUSH BUTTON

a. Gambar Rangkaian dan Penjelasan


Gambar dan penjelasan rangkaian LED

Gambar rangkaian diatas merupakan gambar rangkaian percobaan LED


sebagai pengendali ON/OFF dengan mengunakan sebuah sistem program
mikrokontroler AVR buatan Atmel menggunakan software CodeVision AVR,
dimana dalam program dapat ditulis dengan bahasa C yang akan dihubungkan
dengan salah satu PORT pada Atmega 8535 yaitu pada PORT C. Di dalam PORT
C terdapat 8 delapan LED, yang pada setiap LEDnya akan terhubung pada
komponen komponen pendukung , kaki anoda akan terhubung dengan resistor
yang akan menyambung ke VCC 220 volt pada pin 2 dari konektor yang
dipakai. Dan kaki katoda akan menyambung ke PORT C sebagai output. Jadi
ketika LED mendapat logika 1 maka LED tidak akan menyala, sedangkan jika
mendapat logika 0 LED akan menyala.
b. Flowchart setiap percobaan
Percobaan LED ON

Percobaan LED ON/OFF dengan fungsi delay

Percobaan LED dengan data Tabel


MULAI

Inisialisasi data

For(i=0;i<0;i++)
Yes

I<8
No
I=8
Yes
Selesai

c. Penjelasan listing program


Percobaan LED ON

PORTC=urutan
[i]
Delay_ms(100

#include <mega8535.h>
void main(void)
dijalankan
{
DDRC=0xFF;
PORTC=0x0F;

>>berfungsi sebagai pernyataan kompenen yang


digunakan berarti Atmega 8535
>>merupakan librari bagian inti yang akan
>>yang berarti 8 bit port C difungsikan sebagai
output
>>dengan konfigurasi 0x0F (0b00001111) atau
PORTC.0 sampai PORTC.3 mati, sedangkan PORTC.4
sampai PORTC.7 menyala.

}
Percobaan LED On/ Off dengan fungsi delay
#include <mega8535.h>
>>berfungsi sebagai pernyataan kompenen yang
digunakan berarti Atmega 8535
#include <delay.h>
>>mengenalkan perintah delay agar dapat diproses
saat dimasukkannya suatu perintah atau instruksi
adanya jeda atau waktu
void main(void)
>>merupakan librari bagian inti yang akan
dijalankan
{
DDRC= 0xFF;
>> seluruh pin-pin pada Port C digunakan
sebagai output
while (1)
>>program akan terus berjalan apabila dalam
kondisi awal bernilai benar
{
PORTC=0xFF;
>>dengan konfigurasi 0x0F (0b11111111) atau
PORTC.0 menyala semua
delay_ms(1000);
PORTC=0x00;

>>memberikan jeda atau waktu selama 1 detik


untuk menjalankan instruksi ini
>>dengan konfigurasi 0x00 (0b00000000)

atau
delay_ms(1000);

PORTC.0 mati semua


>>memberikan jeda atau waktu selama 1 detik
untuk menjalankan instruksi ini

}
}
Percobaan LED dengan data Tabel
#include <mega8535.h> >>berfungsi sebagai pernyataan kompenen yang
digunakan
berarti Atmega 8535
#include <delay.h>
>>mengenalkan perintah delay agar dapat diproses
saat dimasukkannya suatu perintah atau instruksi
adanya jeda atau waktu
void main(void)
>>sebagai software utama
{
char urutan[8]={0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80};
>>Deklarasi variabel urutan yang berisi 8 data,
bertipe data char yang dimulai dari indeks LED
terkecil (0x01) ke terbesar (0x80).
char i;
>>Deklasi variabel i sebagai tipe char
DDRC=0xFF; >>seluruh pin-pin pada Port C digunakan sebagai output
PORTC=0xFF;
>>dengan konfigurasi 0x0F (0b11111111) atau
PORTC.0 menyala semua

while(1)

>>program akan terus berjalan apabila dalam


kondisi awal bernilai benar

{
for (i=0;i<8;i++)

{
PORTC=urutan[i];
delay_ms(1000);
}
}
}

>>data akan dimulai dari 0. Data yang ada pada


program sebanyak 8 buah dan terjadi perulangan
kurang dari 8 kali atau berulang sebanyak 7 kali.
Program berjalan naik/bertambah ke nilai yang
besar dari yang dari yang paling kecil
>>Perintah ke Port C untuk mengeluarkan data yang
terdapat pada variabel urutan dengan alur sesuai
dengan pengulangan pada variabel i.
>>memberikan jeda atau waktu selama 1 detik
untuk menjalankan instruksi ini.

d. Gambar rangkaian dan penjelasan

Penjelasan
Gambar rangkaian diatas merupakan gambar rangkaian percobaan LED
sebagai pengendali ON/OFF dengan mengunakan saklar push button dalam
sebuah sistem program mikrokontroler AVR buatan Atmel menggunakan
software CodeVision AVR, dimana dalam program dapat ditulis dengan bahasa
C yang akan dihubungkan dengan salah satu PORT pada Atmega 8535 yaitu
pada PORT C. Di dalam PORT C terdapat 8 delapan LED, yang pada setiap
LEDnya akan terhubung pada komponen komponen pendukung , kaki anoda
akan terhubung dengan resistor yang akan menyambung ke VCC 220 volt
pada pin 2 dari konektor yang dipakai. Dan kaki katoda akan menyambung ke
PORT C sebagai output. Jadi ketika LED mendapat logika 1 maka LED tidak
akan menyala, sedangkan jika mendapat logika 0 LED akan menyala. Pada
percobaan ini PORTB difungsikan sebagai output.

e. Flowchart setiap percobaan SW Pushbutton


Percobaan Input/Output
Mulai
Inisialisasi Data

PORTC=PIN
B
Selesai
percobaan Input/Output dengan fungsi BIT
MULAI

Inisialisasi Data

Check PINB

PINB.0==0

YE
S

PORTC=0x01

No
PINB.1==0
NO
PINB.2==0

YES
PORTC=0x02
YES
PORTC=0x0
4

No
YES
PINB.3==0
No

PORTC=0x0
8

PORTC=0x00

Selesai
Percobaan SW dengan pemilihan kombinasi LED

Mulai

Inisialisasi Data

Pengaktifan PIN

Check PINB

PINB.0==0

Yes
For(i=0;i<3:
i++

No

Yes

I<3
No

PORTC=p1[i]
delay_ms(30
0)

PORTC=0
Yes
PINB.1==0
No

For(i=0;i<3;
i++
I<3
N
O

Yes
PORTC=p1[i]
delay_ms(30
0)

PORTC=
0

Selesai

f. Penjelasan listing Program


Percobaan Input/ Output
#include <mega8535.h>
>>berfungsi sebagai pernyataan kompenen
yang digunakan berarti Atmega 8535

void main(void)
{
DDRC=0xFF;
DDRB=0x00;
PORTB=0xFF;
while (1)
{
PORTC=PINB;

>>sebagai software utama


>>seluruh pin-pin pada Port C digunakan
sebagai output
>>seluruh pin-pin pada Port B digunakan
sebagai input
>>memberi logika 1 pada Port B saat kondisi
pertama program dimulai
>>program akan terus berjalan apabila dalam
kondisi awal bernilai benar
>>apa yang diinstruksikan pada Port B akan
sama dilaksanakan pada Port C. ketika Port B
mendapat logika 0, maka Port C pun mendapat
logika 0.

}
}
Percobaan Input/output dengan fungsi BIT
#include <mega8535.h>
>>berfungsi sebagai pernyataan kompenen
yang digunakan berarti Atmega 8535
void main(void)
>>sebagai software utama
{
DDRC=0xFF;
>>seluruh pin-pin pada Port C digunakan
sebagai output
DDRB=0x00;
>>seluruh pin-pin pada Port B digunakan
sebagai input
PORTB=0xFF;
>>memberi logika 1 pada Port B saat kondisi
pertama program dimulai
while(1)
>>program akan terus berjalan apabila dalam
kondisi awal bernilai benar
{
if (PINB.0==0) {PORTC=0x01;} >>apabila pada PINB.0 ditekan maka
indikator LED pada PORTC.1 akan menyala
else if (PINB.1==0){PORTC=0x02;}
>>apabila pada PINB.1 ditekan
maka indikator LED pada PORTC.2 akan menyala
else if (PINB.2==0){PORTC=0x04;}
>>apabila pada PINB.2 ditekan
maka indikator LED pada PORTC.3 akan menyala
else if (PINB.3==0){PORTC=0x08;}
>>apabila pada PINB.3 ditekan
maka indikator LED pada PORTC.3 akan menyala
else {PORTC=0x00;}
>>jika bit bit yang lain diperintahkan selain 4 bit
di atas maka Port C yang memiliki indeks 0 akan
menyala
}
}
Percobaan SW dengan pemilihan kombinasi LED
#include <mega8535.h>
>>berfungsi sebagai pernyataan kompenen
yang digunakan berarti Atmega 8535
#include <delay.h>
>>mengenalkan perintah delay agar dapat
diproses saat dimasukkannya suatu perintah
atau instruksi adanya jeda atau waktu
unsigned char p1[4]={0b10000001,
0b01000010,
0b00100100,
0b00011000};

>>Variabel p1 mempunyai tipe data unsigned char yang mempunyai isi data 4.
unsigned char p2[4]={0b11111111,
0b01111110,
0b00111100,
0b00011000};
>>Variabel p2 mempunyai tipe data unsigned char yang mempunyai isi data 4.
void main()
>>merupakan librari bagian inti yang akan
dijalankan
{
unsigned char i;
>>memperkenalkan variabel i pada tipe char
PORTB.0=1;
>>bit 0 pada Port B diberi logika 1
PORTB.1=1;
>>bit 1 pada Port B diberi logika 1
DDRB=0x00;
>>konfigurasi Port B sebagai input
PORTC=0x00;
>>memerintahkan Port C pada kondisi awal
mendapat logika 0
DDRC=0xFF;
>>konfigurasi Port C sebagai output
while (1)
>>Perintah yang akan terus mengeksekusi
program selama program bernilai benar (1).
{
if(PINB.0==0)
>>Jika bit 0 pada Port B diberi logika 0, maka
akan menjalankan suatu perintah
{
for(i=0;i<4;i++)
>>data dimulai dari data 0. Terdapat 4 buah
data yang akan berulang sebanyak 3 kali ( i<4).
Data akan berjalan menuju data yang lebih
besar dari yang paling kecil.
{
PORTC=p1[i];
>>Port C diperintahkan untuk menjalankan
program p2 yang sudah ditentukan
delay_ms(300);
>>akan diberi jeda atau waktu selama 0,3 detik
pada saat program ini dijalankan
}
PORTC=0;
>>setelah program berjalan dan berulang
sebanyak 3 kali, maka Port C mendapat logika 0
}
if(PINB.1==0)
>>Jika bit 1 pada Port B diberi logika 0, maka
akan menjalankan suatu perintah
{
for(i=0;i<4;i++)
>>data dimulai dari data 0. Terdapat 4 buah
data yang akan berulang sebanyak 3 kali ( i<4).
Data akan berjalan menuju data yang lebih
besar dari yang paling kecil.
{
PORTC=p2[i];
>>Port C diperintahkan untuk menjalankan
program p2 yang sudah ditentukan
delay_ms(300);
>>akan diberi jeda atau waktu selama 0,3 detik
pada saat program ini dijalankan
}
PORTC=0;
>>setelah program berjalan dan berulang
sebanyak 3 kali, maka Port C mendapat logika 0
}
}
}

g. Proteus setiap program


PERCOBAAN LED

Percobaan LED On/ Off dengan fungsi delay

LED dengan data Tabel

Percobaan Input/Output

Percobaan Input/Output dengan fungsi BIT

Percobaan SW dengan pemilihan kombinasi LED

Anda mungkin juga menyukai