Rabu, 15 Desember 2010

ANTARMUKA MIKROKONTROLER DENGAN SAKLAR TOGGLE


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. 1 set Personal Computer/Laptop yang sudah berisi program Code Vision dan Khazama
  2. 1 buah catu daya DC +5V
  3. 1 buah multimeter
  4. 1 buah ISP Downloader AVR
  5. 1 buah sistem minimum AVR
  6. 1 buah I/O
  7. 1 buah kabel printer USB
  8. 1 buah kabel pita hitam

  PROSEDUR
  1. 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
  1. Buka program Code Vision AVR
  2. 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
  1. Tambahkan deklarasi variabel lokal dalam program utama
unsigned char data_in
  1. 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
  1. Pindahkan setiap saklar, dan amati nyala LED.
  2. 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
  1. Ubah-ubah bit ke-n pada PORTC dalam Program Saklar2. Amati nyala LED        
  2. 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
Rounded Rectangle: Program saklar 1
data_in=PINC;
PORTB=data_in;
 






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.


Rounded Rectangle: Program saklar 2
data_in = PINC.0;
PORTB.7 = data_in;
 






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
Rounded Rectangle: //program 1
if(PINC.0==1)
PORTB.4=1;
else PORTB.4=0;
        







            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.

Rounded Rectangle: //program 2    if(PINC.1==1) PORTB.7=1;
else PORTB.7=0;
 

                 
      




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.

Rounded Rectangle: //Program 3
 if(PINC.2==1)
 PORTB.7=1;
if(PINC.2==1)
PORTB.6=0; if(PINC.2==1)
PORTB.5=1;
if(PINC.2==1)
PORTB.4=0;
if(PINC.2==1)
PORTB.3=1;
if(PINC.2==1)
PORTB.2=0;
if(PINC.2==1)
PORTB.1=1;
if(PINC.2==1)
PORTB.0=0;
 if(PINC.2==0)
PORTB=0;    



















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.
     
Rounded Rectangle:   //program 4       if(PINC.3==1)       PORTB.7=0;
if(PINC.3==1)       PORTB.6=1;        if(PINC.3==1)    PORTB.5=0;     if(PINC.3==1)      PORTB.4=1;        if(PINC.3==1)     PORTB.3=0;       if(PINC.3==1)       PORTB.2=1;        if(PINC.3==1)       PORTB.1=0;       if(PINC.3==1)       PORTB.0=1;        if(PINC.3==0)  PORTB=0;        





















               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.






Rounded Rectangle: //program 5    if(PINC.4==1)    PORTB.7=1;        if(PINC.4==1)       PORTB.6=1;       if(PINC.4==1)       PORTB.5=1;
if(PINC.4==1)
PORTB.4=1;
if(PINC.4==1)
PORTB.3=1;
if(PINC.4==1)
PORTB.2=1;
if(PINC.4==1)
PORTB.1=1;
if(PINC.4==1)
PORTB.0=1;
 


















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.

Rounded Rectangle: //program 6       if(PINC.5==1)       PORTB.7=0;  
if(PINC.5==1)
PORTB.6=0;
if(PINC.5==1)
PORTB.5=0;      if(PINC.5==1)       PORTB.4=0;
if(PINC.5==1)
PORTB.3=0;
if(PINC.5==1)
PORTB.2=0;       if(PINC.5==1)       PORTB.1=0;       if(PINC.5==1)     PORTB.0=0;
 




















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:
  1. bit 0 sebagai saklar input, dan bit 4 sebagai output.
  2. bit 1 sebagai saklar input, dan bit 7 sebagai output.
  3. bit 2 sebagai saklar input, dan ada 4 bit sebagai output yaitu bit 1, bit 3, bit 5, dan bit 7.
  4. bit 3 sebagai saklar input, dan ada 4 bit sebagai output yaitu bit 0, bit 2, bit 4, dan bit 6.
  5. bit 4 sebagai saklar input, dan ke 8 bit LED sebagai output.
  6. 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.
Rounded Rectangle: //program 1
if(PINC.0==1)
PORTB.4=1;
else PORTB.4=0;
       Algoritma1




Rounded Rectangle: //program 2    if(PINC.1==1) PORTB.7=1;
else PORTB.7=0;
   Algoritma2




Rounded Rectangle: //Program 3
 if(PINC.2==1)
 PORTB.7=1;
if(PINC.2==1)
PORTB.6=0; if(PINC.2==1)
PORTB.5=1;
if(PINC.2==1)
PORTB.4=0;
if(PINC.2==1)
PORTB.3=1;
if(PINC.2==1)
PORTB.2=0;
if(PINC.2==1)
PORTB.1=1;
if(PINC.2==1)
PORTB.0=0;
 if(PINC.2==0)
PORTB=0;   Algoritma3
















Rounded Rectangle:   //program 4       if(PINC.3==1)       PORTB.7=0;
if(PINC.3==1)       PORTB.6=1;        if(PINC.3==1)    PORTB.5=0;     if(PINC.3==1)      PORTB.4=1;        if(PINC.3==1)     PORTB.3=0;       if(PINC.3==1)       PORTB.2=1;        if(PINC.3==1)       PORTB.1=0;       if(PINC.3==1)       PORTB.0=1;        if(PINC.3==0)  PORTB=0;Algoritma4














Rounded Rectangle: //program 5    if(PINC.4==1)    PORTB.7=1;        if(PINC.4==1)       PORTB.6=1;       if(PINC.4==1)       PORTB.5=1;
if(PINC.4==1)
PORTB.4=1;
if(PINC.4==1)
PORTB.3=1;
if(PINC.4==1)
PORTB.2=1;
if(PINC.4==1)
PORTB.1=1;
if(PINC.4==1)
PORTB.0=1;Algoritma5


                












Algoritma6
Rounded Rectangle: //program 6       if(PINC.5==1)       PORTB.7=0;  
if(PINC.5==1)
PORTB.6=0;
if(PINC.5==1)
PORTB.5=0;      if(PINC.5==1)       PORTB.4=0;
if(PINC.5==1)
PORTB.3=0;
if(PINC.5==1)
PORTB.2=0;       if(PINC.5==1)       PORTB.1=0;       if(PINC.5==1)     PORTB.0=0;
 















4.      Tuliskan program untuk gabungan algoritma tersebut.
Rounded Rectangle: #include <mega8535.h>
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
while (1)
{
 if (PINC.0 == 1)
PORTB.4 = 1;
      
 if(PINC.1==1)
PORTB.7=1;
      
 if (PINC.2==1)
PORTB.7=1,
PORTB.5=1,
 PORTB.3=1,
PORTB.1=1;        
      
if (PINC.3==1)
 PORTB.6=1,
PORTB.4=1,
 PORTB.2=1,
PORTB.0=1;
      
 if (PINC.5==1)
 PORTB=0x00;       
 }
}
 































7.                  KESIMPULAN

1.             Mengantarmukakan mikrokontroler dengan rangkaian input saklar toggle adalah sebagai berikut :

a.              Menyusun program untuk mengantarmukakan rangkaian input saklar toggle dengan program Code Vision AVR. Program harus disusun sesuai antara saklar dengan nyala LED yang diinginkan. Bilangan yang bisa digunakan pada program adalah bilangan biner, decimal, dan hexadecimal.
b.             Program yang sudah dibuat ditransfer dari computer ke dalam mikrokontroler dengan menggunakan ISP downloader.
c.              Jika program yang dibuat sudah benar, maka saklar akan mempunyai fungsi yang sesuai dengan nyala LED yang diinginkan.

2.             Untuk memprogram mikrokontroler dalam membaca data input dari saklar toggle:

a.              Inisialisasi PORT yang akan digunakan.
b.             Penentuan saklar yang akan digunakan sebagai input
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:

Unknown mengatakan...

salam kenal mbak bos!saya tertarik dengan microkontroler setelah main di blok mbak bos!tolong dong mbak bos,aku di ajarin.....

Raden Ajeng Siti Fatimah Daniar Syahputri mengatakan...

filenya tolong di upload dong

Posting Komentar