1. TUJUAN
1. Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian input saklar toggle.
2. Mengetahui dan memahami bagaimana memprogram mikrokontroler untuk membaca data input dari saklar toggle.
2. DASAR TEORI
2.1 SAKLAR TOGGLE
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 3.1 memperlihatkan bentuk fisik dan symbol saklar toggle.

(a) Salah satu toggle switch

(b) Simbol elektronik
Gambar 3.1 Saklar toggle
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 Percobaan 2. Kedelapan rangkaian saklar tersebut dihubungkan ke sebuah soket jumper bernama INPUT (Gambar 3.2).

Gambar 3.2 Rangkaian saklat toggle
2.2 PERINTAH DASAR MEMBACA DATA
Sebelum membaca data, perlu dibuat deklarasi variabel untuk data yang dimasukkan. Data bisa bertipe char. Deklarasi variabel diletakkan di variabel local pada main program.
void main (void)
{
//Declare your local variables here
unsigned char data_in;
…
Utuk 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;
ALAT DAN BAHAN YANG DIGUNAKAN
- 1 set Personal Computer/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
PROSEDUR
- Rangkailah peralatan yang diperlukan seperti dalam Gambar 2.3. Hubungkan soket jumper PORTB pada minimum system dengan soket jumper OUTPUT pada I/O dan soket jumper PORTC pada minimum system dengan soket jumper INPUT pada I/O.

Gambar 3.3 Rangkaian antarmuka mikrokontroler
- Buka program Code Vision AVR
- Buatlah project baru dengan inisialisasi PORTB sebagai output (DDRB = FFH) dan output value = 0 (PORTB=00H), dan PORTC sebagai input (DDRC = 00H) dan resistor pullup dihubungkan (PORTC=FFH) sehingga pada program bagian inisialisasi PORTB dan PORTC terlihat sebagai berikut:
PORTB=0x00;
DDRB=0xff; //portb sebagai output, 0b11111111
PORTC=0xff;
DDRC=0x00; // portc sebagai input, 0b00000000
- Tambahkan deklarasi variabel lokal dalam program utama
unsigned char data_in
- Tuliskan dalam program utama sebagai berikut:
// Program Saklar1
data_in=PINC; //baca saklar di PORTC
PORTB=data_in; //tampilkan logika saklar ke LED di PORTB
- Pindahkan setiap saklar, dan amati nyala LED.
- Ulangi langkah 3-6 untuk program berikut:
//Program Saklar2
data_in = PINC.0; // baca saklar bit ke 0
PORTB.7 = data_in; // tampilkan logika saklar pada LED bit ke 7
- Ubah-ubah bit ke-n pada PORTC dalam Program Saklar2. Amati nyala LED
- Buat program untuk masing –masing algoritma berikut dengan menggunakan if-else:
1. Jika switch bit 0 berlogika 1 maka LED bit 4 menyala.
2. Jika switch bit 1 berlogika 1 maka LED bit 7 menyala.
3. Jika switch bit 2 berlogika 1 maka LED menyala dengan konfigurasi ON-OFF-ON-OFF-ON-OFF-ON-OFF..
4. Jika switch bit 3 berlogika 1 maka LED menyala dengan konfigurasi OFF-ON-OFF-ON-OFF-ON-OFFON..
5. Jika switch bit 4 berlogika 1 maka LED menyala semua.
6. JIka switch bit 5 berlogika 1 maka LED mati semua.
10. Buat program untuk keseluruhan algoritma pada no. 9.
DATA HASIL PERCOBAAN
![]() |

Hasil nyala LED :
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Input
Output
Pada program saklar1, tiap bit saklar input mempengaruhi output pada bit yang sama. Jadi bila saklar bit 0 diaktifkan, maka yang menyala atau sebagai output adalah LED pada bit 0.
![]() |

Hasil nyala LED :
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Input
Output
Pada program saklar2, input saklar pada bit 0, maka outputnya atau nyala LED adalah bit ke 7. Program membaca hanya 1 bit. Jadi jika saklar bit 0 diaktifkan, maka yang berpengaruh adalah bit 7 pada output.
· Program menggunakan if-else


Hasil nyala LED :
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Input
Output
Pada program1, bit 0 sebagai saklar input, dan bit 4 sebagai output.
Jadi bila saklar bit 0 diaktifkan, maka yang menyala atau sebagai output adalah LED pada bit 4.
![]() |

Hasil nyala LED :
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Input
Output
Dari hasil nyala LED di atas, maka pada program2 bit 1 sebagai saklar input, dan bit 7 sebagai output.
Jadi bila saklar bit 1 diaktifkan, maka yang menyala atau sebagai output adalah LED pada bit ke 7.


Hasil nyala LED :
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Input
Output
Dari hasil nyala LED di atas, maka pada program3 bit 2 sebagai saklar input, dan ada 4 bit sebagai output yaitu bit 1, bit 3, bit 5, dan bit 7. Jadi bila saklar bit 2 diaktifkan, maka yang menyala atau sebagai output adalah LED pada bit 1,bit 3, bit 5, dan bit 7.


Hasil nyala LED:
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
![]() | ![]() | ![]() | ![]() | ![]() ![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Input
Output
Dari hasil nyala LED di atas, maka pada program4 bit 3 sebagai saklar input, dan ada 4 bit sebagai output yaitu bit 0, bit 2, bit 4, dan bit 6. Jadi bila saklar bit 3 diaktifkan, maka yang menyala atau sebagai output adalah LED pada bit 0, bit 2, bit 4, dan bit 6.
![]() |

Hasil nyala LED :
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
![]() | ![]() | ![]() | ![]() ![]() | ![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Input
Output
Dari hasil nyala LED di atas, maka pada program5 bit 4 sebagai saklar input, dan ke 8 bit LED sebagai output. Jadi bila saklar bit 4 diaktifkan, semua LED akan menyala.
![]() |

Hasil nyala LED :
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
![]() | ![]() | ![]() ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Input
Output
Bit 5 sebagai saklar input, dan ke 8 bit LED sebagai output. Karena perintah dari program adalah mematikan LED, jadi bila saklar bit 5 diaktifkan, semua LED akan mati.
Program saklar gabungan
Pada program ini, ada 6 saklar yang digunakan yaitu saklar bit 0 sampai bit 5. Setiap saklar mempunyai fungsi masing-masing.
Fungsi masing-masing bit saklar dan bit LED yang aktif yaitu:
- bit 0 sebagai saklar input, dan bit 4 sebagai output.
- bit 1 sebagai saklar input, dan bit 7 sebagai output.
- bit 2 sebagai saklar input, dan ada 4 bit sebagai output yaitu bit 1, bit 3, bit 5, dan bit 7.
- bit 3 sebagai saklar input, dan ada 4 bit sebagai output yaitu bit 0, bit 2, bit 4, dan bit 6.
- bit 4 sebagai saklar input, dan ke 8 bit LED sebagai output.
- bit 5 sebagai saklar input, dan ke 8 bit LED sebagai output.
6. PEMBAHASAN
1. Buatlah kesimpulan hasil masing-masing program.
Program Saklar1
Tiap bit saklar input mempengaruhi output pada bit yang sama.
Jadi apabila bit yang dinyalakan adalah saklar bit ke 0 maka LED yang menyala juga pada bit ke 0.
Program Saklar2
Apabila input saklar bit ke 0 dinyalakan maka yang menyala adalah LED pada bit ke 7. Namun bila saklar bit yang lain dinyalakan maka tidak akan berpengaruh.
2. Instruksi yang digunakan untuk membaca data input adalah
ü Utuk 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;
3. Tuliskan program untuk masing-masing algoritma di atas.





Algoritma6
![]() |
4. Tuliskan program untuk gabungan algoritma tersebut.
![]() |
7. KESIMPULAN
Statement : data_in = PINX;
Contoh: data_in = PINB;
c. Sebelum membaca data, perlu dibuat deklarasi variabel untuk data yang dimasukkan. Data bisa bertipe char. Deklarasi variabel diletakkan di variabel local pada main program.
void main (void)
{
//Declare your local variables here
unsigned char data_in;
…
d. Untuk membaca data byte ke PORTX (X=A, B, C, D) digunakan statement
data_in = PINX;
contoh: data_in = PINB;
e. 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;
f. Mengirim data per bit ke PORTX.Y (X=A, B, C, D, dan Y=0, 1, 2 , 3, 4, 5, 6, 7).
Contoh statement yang digunakan yakni:
· PORTX.Y = data;
PORTB.1 = 1;
g. Menambahkan program utama.
Misal: data_in=PINC; //baca saklar di PORTC
PORTB=data_in; //tampilkan logika saklar ke LED di PORTB
3. Program IF .. Else..dapat digunakan sebagai logika untuk menentukan suatu nyala LED dengan saklar.
4. Program IF .. Else .. dapat digunakan secara berurutan pada 1 program.
DAFTAR PUSTAKA
Modul 3.2010. Antarmuka Mikrokontroler Dengan Saklar Toggle.Malang:Universitas Negeri Malang, Jurusan Teknik Elektro.
2 komentar:
salam kenal mbak bos!saya tertarik dengan microkontroler setelah main di blok mbak bos!tolong dong mbak bos,aku di ajarin.....
filenya tolong di upload dong
Posting Komentar