Disusun Oleh :
FAKULTAS TEKNIK
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.
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)
PEMBAHASAN
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
Program saklar 1
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.
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
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.
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.
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.
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.
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.
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
while(1)
if (PINC.6==1) {
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)
while(1)
if (PINC.7==1)
PORTB=0x11;
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
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.