Kamis, 02 Mei 2013



PERCOBAAN I
ANTARMUKA MIKROKONTROLER DENGAN
LIGHT EMITTING DIODE (LED)
I.         TUJUAN
1.    Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian LED.
2.    Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk menyalakan LED.

II.      DASAR TEORI
1.    LED
Sebuah LED (Light Emitting Diode) adalah sebuah sumber cahaya yang terbuat dari semikonduktor. Biasanya LED digunakan sebagai lampu indikator dalam beberapa piranti, dan mulai banyak digunakan sebagai penerangan/lampu. Gambar 1 memperlihatkan bentuk fisik LED dan simbol rangkaiannya.









 
 





   (a)LED warna merah               (b) Simbol elektronik
Gambar 2.1 LED

Untuk menyalakan sebuah LED perlu rangkaian tambahan yang dapat dilihat dalam Gambar 2.2. Rangkaian tersebut berupa sebuah transistor yang difungsikan sebagai saklar dan dua buah resistor untuk pembatas arus. Dalam modul I/O yang dipakai dalam praktikum, kedelapan rangkaian LED tersebut dihubungkan ke sebuah soket jumper bernama OUTPUT.
Gambar 2.2 Rangkaian LED

2.     PERINTAH DASAR MENGELUARKAN DATA
Sebelum mulai menulis program dengan bahasa C, perlu diketahui bahwa mikrokontroler ATmega8535 perlu diset isi register DDR dan PORT agar bisa digunakan sebagaimana mestinya, seperti yang terlihat dalam Tabel 1.

Tabel 1 Konfigurasi Pengaturan Port I/O

DDR bit = 1
DDR bit = 0
PORT bit = 1
Output ; High
Input; R pull up
PORT bit = 0
Output; Low
Input, Floating
Untuk mengirim data byte dalam bentuk bilangan heksadesimal ke PORTX (X=A, B, C, D) digunakan statement
      PORTX = desimal;
      PORTB = 128;
Untuk mengirim data byte dalam bentuk bilangan biner ke PORTX (X=A, B, C, D) digunakan statement
      PORTX = 0bdata;
      PORTB = 0b10101010;

Untuk mengirim data per bit ke PORTX.Y (X=A, B, C, D, dan Y=0, 1, 2 , 3, 4, 5, 6, 7) digunakan statement
      PORTX.Y = data;
      PORTB.1  = 0;

Dimana data bisa berupa 0 atau 1.


III.   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 USB Type B
  8. 1 buah kabel pita hitam

IV.   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.
Gambar 2.3 Blok diagram antarmuka mikrokontroler
  1. Buka program Code Vision AVR
  2. Buatlah project baru dengan inisialisasi PORTA sebagai output (DDRA = FFH) dan output      value = 0 (PORTA=00H) sehingga pada program bagian inisialisasi PORTA terlihat sebagai berikut:
PORTA=0x00;
DDRA=0xff;
  1. Tambahkan file header
#include <delay.h>
  1. Tuliskan dalam program utama sebagai berikut:
// Program LED1
PORTA=0x0f;           
            delay_ms(1000);        
            PORTA=0xf0;           
            delay_ms(1000);

  1. Amati nyala LED dan gambarkan nyala LED tersebut.
Lampu LED semua mati
  1. Ulangi langkah 3-6 untuk program-program berikut:

//Program LED2
            PORTA=0b00001111;             
            delay_ms(1000);
PORTA=0b11110000;           
            delay_ms(1000); 

           
//Program LED3
PORTA=0x55;           
            delay_ms(1000);                    
            PORTA=0xaa;           
            delay_ms(1000);                    
           
//Program LED4
            PORTA=0b11100111;
delay_ms(1000);        
PORTA=0b11011011;
delay_ms(1000);        
PORTA=0b10111101;
delay_ms(1000);        
PORTA=0b01111110;
delay_ms(1000);        
PORTA=0b10111101;
delay_ms(1000);        
PORTA=0b11011011;
delay_ms(1000);  
           
//Program LED5
PORTA=0b00000001;     PORTA.2=1;
delay_ms(1000);        
PORTA=0b00000010;     PORTA.1=1;
delay_ms(1000);        
PORTA=0b00000100;
delay_ms(1000);        
PORTA=0b00001000;
delay_ms(1000);        
PORTA=0b00010000;
delay_ms(1000);        
PORTA=0b00100000;
delay_ms(1000);        
            PORTA=0b01000000;
            delay_ms(1000);        
            PORTA=0b10000000;
            delay_ms(1000);  
           
V.                DATA HASIL PERCOBAAN
  1. Program LED1

Nyala
Nyala
Nyala
Nyala
Mati
Mati
Mati
Mati

4 lampu LED  menyala selama 1 detik di lanjut 4 lampu LED yang lain menyala selama 1 detik secara bergantian       

  1. Program LED2

Nyala
Nyala
Nyala
Nyala
Mati
Mati
Mati
Mati

Mati
Mati
Mati
Mati
Nyala
Nyala
Nyala
Nyala

4 lampu LED  menyala selama 1 detik di lanjut 4 lampu LED yang lain menyala selama 1 detik secara bergantian       

  1. Program LED3

Mati
Nyala
Mati
Nyala
Mati
Nyala
Mati
Nyala

Nyala
Mati
Nyala
Mati
Nyala
Mati
Nyala
Mati

Bergantian selama 1 detik antara LED 1 dengan LED  yang lain





  1. Program LED4

Nyala
Nyala
Mati
Nyala
Nyala
Mati
Nyala
Nyala

Nyala
Mati
Nyala
Nyala
Nyala
Nyala
Mati
Nyala

Mati
Nyala
Nyala
Nyala
Nyala
Nyala
Nyala
Mati

Mati
Mati
Nyala
Nyala
Nyala
Nyala
Mati
Nyala

Nyala
Nyala
Mati
Nyala
Nyala
Mati
Nyala
Nyala

  1. Program LED5

Mati
Mati
Mati
Mati
Nyala
Mati
Mati
Nyala

Mati
Mati
Mati
Mati
Mati
Mati
Nyala
Mati

Mati
Mati
Mati
Mati
Mati
Nyala
Mati
Mati

Mati
Mati
Mati
Mati
Nyala
Mati
Mati
Mati
                                                                  
Mati
Mati
Mati
Nyala
Mati
Mati
Mati
Mati

Mati
Mati
Nyala
Mati
Mati
Mati
Mati
Mati

Mati
Nyala
Mati
Mati
Mati
Mati
Mati
Mati

Nyala
Mati
Mati
Mati
Mati
Mati
Mati
Mati


VI.   PEMBAHASAN
1.        Buatlah kesimpulan hasil masing-masing program.
A.                           PROGRAM LED1
 // Program LED1
PORTA=0x0f;           
            delay_ms(1000);        
            PORTA=0xf0;           
            delay_ms(1000);

            Program pada sintax diatas akan berjalan  sesuai dengan  perintah sintax yang telah kita buat seperti pada program LED 1 yang hasil outputnya seperti yang ditunjukan table perumpamaan  diatas  yaitu  detik pertama pada LED 1 akan  mengikuti perintah PORT A = 0x0f ini berarti 4 bagian pada LED kiri akan mati dn 4 bagian pada LED kanan akan menyala. Begitu juga sebaliknya dengan perintah PORT A = 0xf0 maka 4 bagian pada LED kiri akan menyala dan 4 bagian pada LED kanan mati, hal ini terjadi bergantian selama 1000ms atau 1detik, yang disintax yaitu dilay ms(1000);.

B.                               PROGRAM LED2
//Program LED2
            PORTA=0b00001111;             
            delay_ms(1000);
PORTA=0b11110000;           
            delay_ms(1000); 

            Terjadi perbedaan dalam penggunaan bilangan pada program LED1 menggunakan bilangan heksa sedangakan pada program LED2 menggunakan bilangan biner, kemudian  pada  programan LED 2 akan  menghasilkan keluaran yang sama dengan LED 1, karena perintah yang diberikan pada LED 1 dan  pada LED 2 sama.

C.                               PROGRAM LED3
//Program LED3
PORTA=0x55;           
delay_ms(1000);                    
 PORTA=0xaa;         
 delay_ms(1000);
Pada program LED 3 akan menghasilkan keluaran berupa 01010101 karena perintah pertama pada program yang kita tulis PORT A = 0x55 dan PORT A = 0xaa yang berarti kita memerintahkan LED untuk menghasilkan keluaran yang senilai dengan program yang kita tulis yaitu 10101010. Sedangkan delay 1000ms berarti jeda waktu nyala program pertama, kedua dan keberikutnya 1 detik.

D.                          PROGRAM LED4
//Program LED4
PORTA=0b11100111;
delay_ms(1000);        
PORTA=0b11011011;
delay_ms(1000);        
PORTA=0b10111101;
delay_ms(1000);        
PORTA=0b01111110;
delay_ms(1000);        
PORTA=0b10111101;
delay_ms(1000);        
PORTA=0b11011011;
delay_ms(1000);  

            Pada program LED4 ini menggunkan bilangan hexa decimal, hanya menggunakan portA sebagai masukan dimana jika input diberi nilai 1 maka output akan bernilai 1 (lampu menyala), apabila input 0 maka nilai outputnya akan benilai 0 (lampu mati), terdapat jeda selama 1detik untuk berlanjud ke perintah program yang selanjudnya.

E.                           PROGRAM LED5
//Program LED5
PORTA=0b00000001;     PORTA.2=1;
delay_ms(1000);        
PORTA=0b00000010;     PORTA.1=1;
delay_ms(1000);        
PORTA=0b00000100;
delay_ms(1000);        
PORTA=0b00001000;
delay_ms(1000);        
PORTA=0b00010000;
delay_ms(1000);        
PORTA=0b00100000;
delay_ms(1000);        
            PORTA=0b01000000;
            delay_ms(1000);        
            PORTA=0b10000000;
            delay_ms(1000);  

Pada program LED5 ini sama seperti dalam  program LED4 menggunkan bilangan hexa decimal, hanya menggunakan portA sebagai masukan dimana jika input diberi nilai 1 maka output akan bernilai 1 (lampu menyala), apabila input 0 maka nilai outputnya akan benilai 0 (lampu mati), terdapat jeda selama 1detik untuk berlanjud ke perintah program yang berikutnya.

2.      Apakah persamaan dan perbedaan PROGRAM LED1 dan PROGRAM LED2?
Jawab :
Persamaan : 4 lampu LED  menyala selama 1 detik di lanjut 4 lampu LED yang lain menyala selama 1 detik secara bergantian (Perintahnya sama).
Perbedaan : Terletak pada penggunaaan bilangan dalam  masing-masing program. Pada program LED 1 kode program di tulis menggunakan bilangan hexa desimal sedangkan pada program LED 2 kode program di tulis menggunakan bilangan biner.

3.      Instruksi yang digunakan untuk mengeluarkan data ke LED adalah 
Jawab :
 AUTO PROGRAM pada khazama AVR Programmer

4.      Mengapa ada jeda waktu sekitar 1 detik antara tampilan LED yang pertama dengan yang berikutnya?
Jawab :
Karena pada program di terdapat kode “delay_ms(1000);   yang berarti ada jeda per 1000 ms atau sama dengan 1mnt untuk menampilkan keperintah  program LED berikutnya.            

VII.          KESIMPULAN
Dalam praktikum ini digunakan 2 bilangan untuk menentukan hasil keluaran atau perintah dari program yang kita buat yaitu bilangan biner dan bilangan hexa decimal. Pada hakikatnya bilangan ini mempunyai fungsi sama dalam perintah, hanya berbeda dalam penulisannya.
Hasil yang dikeluarkan dari LED adalah output dalm bentuk logika dengan masukan program dari listing program yang telah dilakukan sebelumnya, yaitu jika masukan berupa bilangan heksa desimal maka bentuk keluaran atau output pada LED adalah bentuk dalam bilangan binernya misalkan 0x0f = 0b00001111 dengan logika tersebut jika keluarannya nol (0) maka LED akan mati dan begitu juga sebaliknya jika keluarannya logika satu (1) maka LED akan menyala. Lama perpindahan antara listing program yang satu dengan listing program yang lainnya tergantung pada delay masukan pada program yang dibuat.











0 komentar:

Popular Posts

Sample Text

Text Widget

CACAT

Matahari terbit.
Lalu terbenam di balik bukit.

Membuat hari begitu sempurna.


Bahagia terakui.
Lalu duka lara sakit hati.

Membuat cinta begitu sempurna.


Dilahirkan.
Kemudian dikebumikan.

Membuat manusia begitu sempurna.


Sempurna bukan selamanya terang.
Sempurna bukan selamanya bahagia.
Sempurna bukan selamanya hidup.

Justru sebuah "cacat", membuat sesuatu begitu sempurna.

Welcome To My Blog

Blog ini dibuat untuk mengumpulkan data-data tentang edukasi.

Recent Posts

Unordered List

Download

ChatBox

TRI SETYO. Diberdayakan oleh Blogger.