Anda di halaman 1dari 21

LAPORAN PRAKTIKUM DENGAN DENGAN TOGGLE SWITCH

Disusun untuk memenuhi tugas laporan matakuliah mikroprosesor

Yang diampu oleh Bapak Arya Kusumawardana

Disusun Oleh :

Gentho Prayogo (170534629074)

Misael Geinta Santoso (170534629101)

Moh. Fajar Hartadi (170534629040)

UNIVERSITAS NEGERI MALANG

FAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTRO

S1 PENDIDIKAN TEKNIK ELEKTRO

Februari 2019

BAB I
PENDAHULUAN

Saklar toggle adalah salah satu saklar elektrik yang digerakkan secara manual oleh
batang mekanik. Saklar toggle tersedia dalam berbagai bentuk dan ukuran, serta digunakan
dalam berbagai aplikasi. Gambar dibawah memperlihatkan bentuk fisik dan symbol saklar
toggle.

(a) Salah satu toggle switch (b) Simbol elektronik

Dalam modul I/O yang dipakai dalam


praktikum, saklar toggle yang digunakan diberi
rangkaian tambahan berupa rangkaian LED
untuk melihat secara langsung logika yang ada
pada saklar. Rangkaian LED sama dengan
rangkaian dalam Modul I. Kedelapan rangkaian
saklar tersebut dihubungkan ke sebuah soket
jumper bernama

INPUT.
PERINTAH DASAR MEMBACA DATA

 Sebelum membaca data, perlu dibuat deklarasi variabel untuk data yang
dimasukkan. Data bisa bertipe char. Deklarasi variabel diletakkan di variabel lokal
pada main program.
void main (void)

//Declare your local variables


here unsigned char data_in;

 Untuk membaca data byte ke PORTX (X=A, B, C, D) digunakan statement


data_in = PINX;

contoh: data_in = PINB;

 Untuk membaca data bit ke PORTX.Y (X=A, B, C, D dan Y=0, 1, 2 , 3, 4, 5, 6, 7)


digunakan statement
data_in = PINX.Y;

contoh: data_in = PINB.1;


BAB II

PEMBAHASAN

DATA HASIL PERCOBAAN

1. Tabel 2.1
NO SAKLAR LED

1 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1

3 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1

4 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1

5 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1

6 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1

7 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1

8 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1

9 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1

10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2. Tabel 3.1
NO SAKLAR LED

1 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

2 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0

3 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0

4 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0

5 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0
6 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0

7 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0

8 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

3. Source Code Program pada percobaan langkah 9.

4. Source Code Program pada percobaan langkah 10


Analisis Data

1. Analisis program saklar 1 dan saklar 2

Program saklar 1

Gambar source kode program saklar 1


PORTB=0x00; DDRB=0xFF;PORTC=0XFF;DDRC=0x00; maksud dari kode ini pada
“Gambar source kode program saklar 1” , port b sebagai output dan port c sebagai input.

Switch kami tempelkan di port c, led di port b.

A. Switch bit 0 berlogika 1 maka LED bit 4 menyala.

Gambar Switch bit 0 berlogika 1 maka LED bit 4 menyala

Pada “Gambar source kode program saklar 1”, kode program yang dipakai agar switch bit 0
berlogika 1 dan led bit 4 menyala yaitu

if (PINC.0==1)

data_in= PINC.0;

if (PINC.0==0)

data_in= PINC.0;

PORTB.4=data_in;
Arti dari kode program ini , jika switch di bit 0 berlogika 1 atau 0 maka logika akan
disimpan dengan nama variabel data_in. Logika pada bit ke 4 akan menyamai logika yang
tersimpan pada data_in. Seperti dilihat pada “Gambar Switch bit 0 berlogika 1 maka LED bit
4 menyala”, ketika switch pada bit 0 dinyalakan, led di bit 4 menyala. Begitupun sebaliknya
jika switch pada bit 0 dimatikan maka led di bit 4 tidak menyala.

B. Switch bit 1 berlogika 1 maka LED bit 7 menyala.

Gambar Switch bit 1 berlogika 1 maka LED bit 7 menyala

Pada “Gambar source kode program saklar 1”, kode program yang dipakai agar
switch bit 1 berlogika 1 dan led bit 7 menyala yaitu

if (PINC.1==1)

data_in= PINC.1;

if (PINC.1==0)

data_in= PINC.1;

PORTB.7=data_in;
Pada “Gambar source kode program saklar 1”, kode program yang dipakai agar switch bit 1
berlogika 1 dan led bit 7 menyala yaitu

if (PINC.1==1)
data_in= PINC.1;
if (PINC.1==0)
data_in= PINC.1;
PORTB.7=data_in;
Arti dari kode program ini , jika switch di bit 1 berlogika 1 atau 0 maka logika akan
disimpan dengan nama variabel data_in. Logika pada bit ke 7 akan menyamai logika yang
tersimpan pada data_in. Seperti dilihat pada “Gambar Switch bit 1 berlogika 1 maka LED bit
7 menyala”, ketika switch pada bit 1 dinyalakan, led di bit 7 menyala. Begitupun sebaliknya
jika switch pada bit 1 dimatikan maka led di bit 7 tidak menyala.
Program saklar 2

1 2

3
Gambar source kode program saklar 2

PORTB=0x00; DDRB=0xFF;PORTC=0XFF;DDRC=0x00; maksud dari kode ini pada


“Gambar source kode program saklar 2” , port b sebagai output dan port c sebagai input.

Switch kami tempelkan di port c, led di port b.

A. Switch bit 0 berlogika 1 maka LED bit 4 menyala.

Gambar Switch bit 0 berlogika 1 maka LED bit 4 menyala

Pada “Gambar source kode program saklar 2”, kode program yang dipakai agar switch bit 0
berlogika 1 dan led bit 4 menyala yaitu

if (PINC.0==1)

PORTB.4=1;

else if (PINC.0==0)

PORTB.4=0;
Arti dari kode program ini , jika switch di bit 0 berlogika 1 maka led di bit ke 4
berlogika 1 juga. Selain itu, jika switch di bit 0 berlogika 0 maka led di bit ke 4 berlogika 0.
Seperti dilihat pada “Gambar Switch bit 0 berlogika 1 maka LED bit 4 menyala”, ketika
switch pada bit 0 dinyalakan, led di bit 4 menyala. Begitupun sebaliknya jika switch pada bit
0 dimatikan maka led di bit 4 tidak menyala.

B. Switch bit 1 berlogika 1 maka LED bit 7 menyala.

Gambar Switch bit 1 berlogika 1 maka LED bit 7 menyala

Pada “Gambar source kode program saklar 2”, kode program yang dipakai agar switch bit 1
berlogika 1 dan led bit 7 menyala yaitu

if (PINC.1==1)

PORTB.7=1;

else if (PINC.1==0)

PORTB.7=0;
Arti dari kode program ini , jika switch di bit 1 berlogika 1 maka led di bit ke 7
berlogika 1 juga. Selain itu, jika switch di bit 1 berlogika 0 maka led di bit ke 7 berlogika 0.
Seperti dilihat pada “Gambar Switch bit 1 berlogika 1 maka LED bit 7 menyala”, ketika
switch pada bit 1 dinyalakan, led di bit 7 menyala. Begitupun sebaliknya jika switch pada bit
1 dimatikan maka led di bit 7 tidak menyala.

C. Switch bit 2 berlogika 1 maka LED menyala dengan konfigurasi ON-OFF-ON-OFF-


ON- OFF-ON-OFF (bit7-bit0).

Gambar Switch bit 2 berlogika 1 maka LED menyala dengan konfigurasi ON-OFF-ON-
OFF-ON- OFF-ON-OFF (bit7-bit0)

Pada “Gambar source kode program saklar 2”, kode program yang dipakai agar switch bit 2
berlogika 1 dan led menyala dengan konfigurasi ON-OFF-ON-OFF-ON- OFF-ON-OFF (bit7-
bit0) yaitu

if (PINC.2==1)

PORTB=0xAA;

else if (PINC.2==0)

PORTB=0x00;
Arti dari kode program ini, jika switch di bit 2 berlogika 1 maka led di bit 7, bit 5, bit
3, bit 1 berlogika 1 dan led bit 6, bit 4, bit 2, bit 0 berlogika 0 . Dapat diketahui di kode
program “PORTB=0xAA”, ini menggunakan bilangan heksadesimal. Jika di desimalkan
menjadi 10 dan 10. Dan dibinerkan menjadi 1010 1010. Ini sesuai dengan konfigurasi dari
bit 7 sampai bit 0 “ON-OFF-ON-OFF-ON-OFF-ON-OFF”. Selain itu, jika switch di bit 2
berlogika 0 maka led di bit 7 sampai bit 0 berlogika 0. Seperti dilihat pada “Gambar Switch
bit 2 berlogika 1 maka LED menyala dengan konfigurasi ON-OFF-ON-OFF-ON-OFF-ON-OFF
(bit7-bit0)”, ketika switch pada bit 2 dinyalakan, led di bit 7, bit 5, bit 3, bit 1 menyala dan
led bit 6, bit 4, bit 2, bit 0 tidak menyala. Begitupun sebaliknya jika switch pada bit 2
dimatikan maka led di bit 7 sampai bit 0 tidak menyala.

d. Switch bit 3 berlogika 1 maka LED menyala dengan konfigurasi OFF-ON-OFF-ON-


OFF-ON-OFF-ON (bit7-bit0).

Gambar Switch bit 3 berlogika 1 maka LED menyala dengan konfigurasi OFF-ON-OFF-
ON-OFF-ON-OFF-ON (bit7-bit0)

Pada “Gambar source kode program saklar 2”, kode program yang dipakai agar switch bit 3
berlogika 1 maka LED menyala dengan konfigurasi OFF-ON-OFF-ON-OFF-ON-OFF-ON (bit7-
bit0) yaitu

if (PINC.3==1)
PORTB=0x55;

else if (PINC.3==0)

PORTB=0x00;

Arti dari kode program ini, jika switch di bit 3 berlogika 1 maka led di led bit 6, bit 4, bit
2, bit 0 berlogika 1 dan led bit 7, bit 5, bit 3, bit 1 berlogika 0 . Dapat diketahui di kode
program “PORTB=0x55”, ini menggunakan bilangan heksadesimal. Jika di desimalkan
menjadi 5 dan 5. Dan dibinerkan menjadi 0101 0101. Ini sesuai dengan konfigurasi dari bit
7 sampai bit 0 “OFF-ON-OFF-ON-OFF-ON-OFF-ON”. Selain itu, jika switch di bit 3 berlogika 0
maka led di bit 7 sampai bit 0 berlogika 0. Seperti dilihat pada “Gambar Switch bit 3
berlogika 1 maka LED menyala dengan konfigurasi OFF-ON-OFF-ON-OFF-ON-OFF-ON (bit7-
bit0)”, ketika switch pada bit 3 dinyalakan, led di bit 6, bit 4, bit 2, bit 0 menyala dan led bit
7, bit 5, bit 3, bit 1 tidak menyala. Begitupun sebaliknya jika switch pada bit 3 dimatikan
maka led di bit 7 sampai bit 0 tidak menyala.

e. Switch bit 4 berlogika 1 maka LED menyala semua.

Gambar Switch bit 4 berlogika 1 maka LED menyala semua

Pada “Gambar source kode program saklar 2”, kode program yang dipakai agar switch bit 4
berlogika 1 dan LED menyala semua yaitu

if (PINC.4==1)
PORTB=0xFF;

else if (PINC.4==0)

PORTB=0x00;

Arti dari kode program ini, jika switch di bit 4 berlogika 1 maka led di bit 7 sampai bit 0
berlogika 1. Dapat diketahui di kode program “PORTB=0xFF”, ini menggunakan bilangan
heksadesimal. Jika di desimalkan menjadi 15 dan 15. Dan dibinerkan menjadi 1111 1111.
Selain itu, jika switch di bit 4 berlogika 0 maka led di bit 7 sampai bit 0 berlogika 0. Seperti
dilihat pada “Gambar Switch bit 4 berlogika 1 maka LED menyala semua”, ketika switch pada
bit 4 dinyalakan, led di bit 7 sampai bit 0 menyala semua . Begitupun sebaliknya jika switch
pada bit 4 dimatikan maka led di bit 7 sampai bit 0 tidak menyala.

f. Jika switch bit 5 berlogika 1 maka LED mati semua

Gambar switch bit 5 berlogika 1 dan LED mati semua


Pada “Gambar source kode program saklar 2”, kode program yang dipakai agar switch bit 5
berlogika 1 dan LED mati semua yaitu

if (PINC.5==1)

PORTB=0x00;

else if (PINC.5==0)

PORTB=0x00;

Arti dari kode program ini, jika switch di bit 5 berlogika 1 maka led di bit 7 sampai bit 0
berlogika 0. Dapat diketahui di kode program “PORTB=0x00”, ini menggunakan bilangan
heksadesimal. Jika di desimalkan menjadi 0 dan 0. Dan dibinerkan menjadi 0000 0000. Selain
itu, jika switch di bit 5 berlogika 0 maka led di bit 7 sampai bit 0 berlogika 0. Seperti dilihat
pada “Gambar switch bit 5 berlogika 1 dan LED mati semua”, ketika switch pada bit 5
dinyalakan, led di bit 7 sampai bit 0 mati semua . Begitupun, jika switch pada bit 5 dimatikan
maka led di bit 7 sampai bit 0 mati semua.

G. Switch Bit 6 Berlogika 1 maka LED menyala berurutan mulai dari bit0 ke bit7 lalu
kembali lagi ke bit0 dengan delay 1 detik.
Gambar LED Nyala Berurutan dengan delay 1 detik

Pada Gambar diatas , dicoding dengan code sbb:

while(1)

if (PINC.6==1) {

PORTB=0x01; delay_ms (1000);

PORTB=0x02; delay_ms (1000);

PORTB=0x04; delay_ms (1000);

PORTB=0x08; delay_ms (1000);

PORTB=0x10; delay_ms (1000);

PORTB=0x20; delay_ms (1000);

PORTB=0x40; delay_ms (1000);

PORTB=0x80; delay_ms (1000);


PORTB=0x80; delay_ms (1000);

PORTB=0x40; delay_ms (1000);

PORTB=0x20; delay_ms (1000);

PORTB=0x10; delay_ms (1000);

PORTB=0x08; delay_ms (1000);

PORTB=0x04; delay_ms (1000);

PORTB=0x02; delay_ms (1000);

PORTB=0x01; delay_ms (1000); }

else if (PINC.6==0)

PORTB=0x00;

Penjelasan dari coding tersebut yaitu , apabila Switch bit 6 menerima logika 1 maka
led bit 0 akan menyala dengan delay 1 detik sebelum lampu kembali mati , kemudian akan
dilanjutkan dengan led bit 1 akan menyala dengan delay 1 detik, begitu seterusnya sampai
led bit ke -7 dan kemudian kembali lagi sampai ke led bit ke-0.Namun jika Switch bit 6
menerima logika 0 maka tidak ada led yang menyala pada PORTB

H. switch bit 7 berlogika 1 maka LED akan menyala dengan nilai sama dengan dua
digit terakhir NIM (170534629040)

Gambar LED bit 4 dan 0 menyala. (40)

Pada gambar diatas , dicoding dengan code sbb berikut :

while(1)

if (PINC.7==1)

PORTB=0x11;

//NIM = 170534629040, 040 = 0x11 ( lampu bit ke 4 dan ke 0 )

else if (PINC.0==0)

PORTB=0x00;

Penjelasannya adalah , apabila switch ke 7 berlogika 1 maka lampu led bit ke 4 dan 0
akan menyala dengan penyesuaian dengan 2 digit terakhir NIM 170534629040 (40). Apabila
Switch ke 7 berlogika 0 maka tidak ada LED yang akan menyala

2. Intruksi apa yang digunakan untuk membaca data input?

Pada program, untuk membaca data input terlebih dahulu kita harus memasukkan
variabelnya dengan coding sbb berikut : unsigned char data_in. fungsinya adalah
sebagai pemberi variabel data input yang dimasukkan ke dalam nama data_in.
Apabila pada switch ke 2 terdapat logika high, kemudian logika tersebut akan
tersimpan ke dalam data_in yang mana bisa dipindahkan ke dalam bentuk yang lain.
Semisal pada coding berikut :
data_in=PINC.7; PORTB.7=data_in;
Maksudnya adalah data input pada PINC ke-7 akan digunakan sebagai output di
PORTB ke-7.
3. Apakah perbedaan program yang menggunakan if dan if-else?
 Pada IF : Jika kondisi yang telah ditentukan sesuai maka program didalam if
akan dijalankan sesuai dengan apa yang kita tulis / butuhkan.
 Pada IF-ELSE : Apabila kondisi yang kita penuhi pada program IF tidak
terpenuhi maka program ELSE lah yang akan dijalankan.

Anda mungkin juga menyukai