際際滷

際際滷Share a Scribd company logo
LAPORAN PRAKTIKUM 1 
ANTARMUKA MIKROKONTROLER DENGAN LED 
NAMA : ASADUL UMAM PURNAMA YUDA KUSUMA 
NIM : 130532606600 
KELOMPOK : IX 
FAKULTAS TEKNIK 
JURUSAN TEKNIK ELEKTRO 
PRODI D3 TEKNIK ELEKTRONIKA 
UNIVERSITAS NEGERI MALANG 
September 2014
PERCOBAAN 1 
ANTARMUKA MIKROKONTROLER DENGAN LED 
1. TUJUAN 
 Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian LED. 
 Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk menyalakan LED. 
 Untuk mengetaui cara memrogram I/O dengan menggunakan aplikasi Khazama AVR Programmer dan Code Vision AVR. 
2. DASAR TEORI 
a. LED Diode pancaran cahaya atau biasa disebut LED (Light Emitting Diode) adalah sebuah sumber cahaya monokromatik yang terbuat dari bahan 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) Bentuk fisik LED (b) Simbol elektronik 
Gambar 1
Gambar 2 
Untuk menyalakan sebuah LED perlu rangkaian tambahan yang dapat dilihat pada Gambar 2 diatas. Rangkaian diatas merupakan sebuah transistor yang difungsikan sebagai saklar dan dua buah resistor sebagai pembatas arus. Dalam modul I/O yang dipakai dalam praktikum, kedelapan rangkaian LED tersebut dihubungkan ke sebuah soket jumper bernama OUTPUT. 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 desimal ke PORTX (X=A, B, C, D) digunakan statement 
PORTX = decimal; 
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. 
3. ALAT DAN BAHAN YANG DIGUNAKAN 
 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama 
 1 buah ISP Downloader AVR 
 1 buah sistem minimum AVR 
 1 buah I/O 
 1 buah kabel printer USB 
 1 buah kabel pita hitam 
4. PROSEDUR KERJA 
1. Rangkailah peralatan yang diperlukan seperti pada gambar dibawah. Hubungkan soket jumper PORTA pada minimum system dengan soket jumper OUTPUT pada I/O.
2. Buka program Code Vision AVR 
3. 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; 
4. Tambahkan file header 
#include <delay.h> 
5. Tuliskan dalam program utama sebagai berikut: 
- Program LED1 
PORTA=0x0f; 
delay_ms(1000); 
PORTA=0xf0; 
delay_ms(1000); 
6. Amati nyala LED dan gambarkan nyala LED tersebut. 
7. 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); 
5. DATA HASIL PERCOBAAN 
1. Tampilan nyala LED Program LED1 
 Program LED1 
PORTA=0x0f;
delay_ms(1000); 
PORTA=0xf0; 
delay_ms(1000); 
 Tampilan nyala LED : 
Setelah delay selama 1 detik berganti menjadi 
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 
2. Tampilan nyala LED Program LED2 
 Program LED2 
PORTA=0b00001111; 
delay_ms(1000); 
PORTA=0b11110000; 
delay_ms(1000); 
 Tampilan nyala LED : 
Setelah delay selama 1 detik berganti menjadi 
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 
3. Tampilan nyala LED Program LED3 
 Program LED3 
PORTA=0x55; 
delay_ms(1000); 
PORTA=0xaa; 
delay_ms(1000); 
 Tampilan nyala LED : 
Setelah delay selama 1 detik berganti menjadi
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 
4. Tampilan nyala LED 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); 
 Tampilan nyala LED : 
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 
5. Tampilan nyala LED Program LED4 
 Program LED5 
PORTA=0b00000001; PORTA.2=1; 
delay_ms(1000); 
PORTA=0b00000010; PORTA.1=1; 
delay_ms(1000); 
PORTA=0b00000100; 
Setelah delay ke 1 
Setelah delay ke 2 
Setelah delay ke 3 
Setelah delay ke 4 
Setelah delay ke 5
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); 
 Tampilan nyala LED : 
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 
6. ANALISA DATA 
1. Analisa Program LED1  LED5! 
Saat pertamakali kita menginisialisasi PORTA dengan jalan menset DDRA = FFH maka kita menjadikannya sebagai output. Kita memberikan output value = 0 (PORTA=00H) maka lampu LED pada PORTA tidak ada yang menyala. Dengan menambahkan file library #include <delay.h> kita memberikan perintah pada program untuk melakukan waktu penundaan. Pada program utama kita tambahkan program sebagai berikut : 
 Pada Percobaan LED 1, pemberian nilai menggunakan kode heksadesimal dan ditambahkan kode seperti: 
Setelah delay ke 1 
Setelah delay ke 2 
Setelah delay ke 3 
Setelah delay ke 4 
Setelah delay ke 5 
Setelah delay ke 6 
Setelah delay ke 7
PORTA=0x0f; // pada perintah ini seluruh PORTA (bit.0 - bit.7) kita berikan nilai 0x0f artinya pada PORTA.0-PORTA.3 kita berikan nilai 1 sedangkan pada PORTA.4-PORTA.7 kita beri nilai 0 (0x0f menunjukkan pemberian nilai dengan menggunakan kode heksadesimal). 
delay_ms(1000); // memberikan waktu tundan selama 1000 ms atau 1 detik. 
PORTA=0xf0; // pada perintah ini seluruh PORTA (bit.0 - bit.7) kita berikan nilai 0xf0 artinya pada PORTA.0-PORTA.3 kita berikan nilai 0 sedangkan pada PORTA.4-PORTA.7 kita beri nilai 1 (0x0f menunjukkan pemberian nilai dengan menggunakan kode heksadesimal) 
delay_ms(1000); // memberikan waktu tundan selama 1000 ms atau 1 detik 
 Pada percobaan LED 2, pemberian nilai menggunakan kode biner dan hasil yang ditampilkan sama dengan kode heksadesimal seperti di atas dan di tambahkan dengan sebuah kode sebagai berikut: 
PORTA=0b00001111; // pada perintah ini seluruh PORTA (bit.0 - bit.7) kita berikan nilai 0b00001111 artinya pada PORTA.0-PORTA.3 kita berikan nilai 1 sedangkan pada PORTA.4-PORTA.7 kita beri nilai 0 (0b00001111 menunjukkan pemberian nilai dengan menggunakan kode biner). 
delay_ms(1000); // memberikan waktu tundan selama 1000 ms atau 1 detik. 
PORTA=0b11110000; // pada perintah ini seluruh PORTA (bit.0 - bit.7) kita berikan nilai 0b11110000 artinya pada PORTA.0-PORTA.3 kita berikan nilai 1 sedangkan pada PORTA.4-PORTA.7 kita beri nilai 0 (0b11110000 menunjukkan pemberian nilai dengan menggunakan kode biner). 
delay_ms(1000); // memberikan waktu tundan selama 1000 ms atau 1 detik. 
 Pada percobaan LED 3, pemberian nilai menggunakan kode hekxa- desimal dengan menambahkan kode sebagai berikut :
PORTA=0x55; // pada perintah ini PORTA (bit.0,2,4 dan 6) akan menyala karena diberikan logika 1 (x55 merupakan perintah untuk menyalakan LED secara bersilangan). 
delay_ms(1000); // memberikan waktu tundan selama 1 detik. 
PORTA=0xaa; // pada perintah ini sama dengan perintah sebelumnya akan tetapi perintah ini mengakibatkan PORTA (bit.1,3,5 dan 7) akan menyala karena di berikan perintah delay yang mengakibatkan lampu berubah secara bergantian. 
delay_ms(1000); // memberikan waktu tundan selama 1 detik. 
 Pada percobaan LED 4, pemberian nilai yang digunakan menggunakan kode biner yaitu 0b dan ditambahkan dengan kode sebagai berikut: 
PORTA=0b11100111; // pada perintah ini PORTA (bit.0,1,2,5,6 dan 7) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.3 dan 4) akan mati karena diberikan logika 0. 
PORTA=0b11011011; // pada perintah ini PORTA (bit.0,1,3,4,6 dan 7) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.2 dan 5) akan mati karena diberikan logika 0. 
PORTA=0b10111101; // pada perintah ini PORTA (bit.0,2,3,4,5 dan 7) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.1 dan 6) akan mati karena diberikan logika 0. 
PORTA=0b01111110; // pada perintah ini PORTA (bit.1,2,3,4,5 dan 6) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.0 dan 7) akan mati karena diberikan logika 0. 
PORTA=0b10111101; // pada perintah ini PORTA (bit.0,2,3,4,5 dan 7) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.1 dan 6) akan mati karena diberikan logika 0. 
PORTA=0b11011011; // pada perintah ini PORTA (bit.0,1,3,4,6 dan 7) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.2 dan 5) akan mati karena diberikan logika 0. 
delay_ms(1000); // memberikan waktu tunda selama 1 detik, delay ini diletakkan diantara setiap PORTA.
 Pada Percobaan LED 5, pada percobaan ini sama dengan percobaan sebelumnya yaitu dengan menggunakan kode biner dan ditambah kode sebagai berikut: 
PORTA=0b00000001; PORTA.2=1; // pada perintah ini PORTA (bit.0) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberikan logika 0 dan bit.2 akan menyala karena disampingnya diberi perintah PORTA.2=1. 
PORTA=0b00000010; PORTA.1=1; // pada perintah ini PORTA (bit.1) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberikan logika 0. 
PORTA=0b00000100; // pada perintah ini PORTA (bit.2) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. 
PORTA=0b00001000; // pada perintah ini PORTA (bit.3) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. 
PORTA=0b00010000; // pada perintah ini PORTA (bit.4) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. 
PORTA=0b00100000; // pada perintah ini PORTA (bit.5) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. 
PORTA=0b01000000; // pada perintah ini PORTA (bit.6) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. 
PORTA=0b10000000; // pada perintah ini PORTA (bit.7) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. 
delay_ms(1000); // memberikan waktu tunda selama 1 detik, delay ini diletakkan diantara setiap PORTA. 
2. Apakah persamaan dan perbedaan PROGRAM LED1 dan PROGRAM LED2? 
Persamaannya adalah pada pemberian nilai pada pemberian nilai logikanya sama dan nyala LED juga sama sedangkan perbedaan yaitu terletak pada pemberian kode nilai pada program LED 1 menggunakan kode heksadesimal (0xnilai hekxa) sedangkan pada program led 2 pemberian nilai menggunakan kode biner (0bnilai biner).
3. Instruksi apa yang digunakan untuk mengeluarkan data ke LED? 
Intruksi yang digunakan untuk mengeluarkan data ke LED adalah PORTA data nilai sebagai contoh pada program LED 1 sebagai berikut: 
PORTA=0x0f; 
delay_ms(1000); 
PORTA=0xf0; 
delay_ms(1000); 
program diatas memberikan intruksi untuk menyalakan LED.0-LED.3 dengan selisih 1 detik. 
4. Mengapa ada jeda waktu sekitar 1 detik antara tampilan LED yang pertama dengan yang berikutnya? 
Karena kita memberikan perintah delay pada listing program yaitu delay 1000 ms atau sekitar 1 detik. apabila program tersebut tidak diberikan delay atau jeda maka program yang selanjutnya tidak akan bekerja dan output atau nyala led hanya akan menampilkan program yang pertama diberikan. 
7. KESIMPULAN 
Langka pertama dalam pemberian program pada microkontroler adalah menginisalisasi PORT, yaitu fungsinya untuk menentukan pengaturan fungsi PORT sebagai input atau output. Pada praktikum PORTA di inisialisasikan sebagai output yaitu dengan cara DDRA=FFH. Dalam pemberian nilai input kita dapat menggunakan kode digital yaitu kode heksadesimal dan biner. bila kita menggunkan kode heksimal maka harus diawali dengan 0x sedangkan kode biner menggunakan awalan 0b. Delay digunakan sebagai pemberian waktu tundaan artinya kita memberikan waktu tundaan sesuai dengan perintah tunda yang kita berikan dari satu program ke program selanjutnya. Pemberian nilai pada masing-masing bit port dapat dilakukan dengan cara mengset masing-masing bit dengan memberikan logika 1
DAFTAR PUSTAKA 
Lestari, Dyah.2012.PRAKTIKUM MIKROPROSESSOR DAN TEKNIK ANTARMUKA PTI-494 PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA. Malang.Universitas Negeri Malang. 
http://id.wikipedia.org/wiki/Diode_pancaran_cahaya

More Related Content

Laporan praktikum mikrokontroler dengan led

  • 1. LAPORAN PRAKTIKUM 1 ANTARMUKA MIKROKONTROLER DENGAN LED NAMA : ASADUL UMAM PURNAMA YUDA KUSUMA NIM : 130532606600 KELOMPOK : IX FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI D3 TEKNIK ELEKTRONIKA UNIVERSITAS NEGERI MALANG September 2014
  • 2. PERCOBAAN 1 ANTARMUKA MIKROKONTROLER DENGAN LED 1. TUJUAN Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian LED. Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk menyalakan LED. Untuk mengetaui cara memrogram I/O dengan menggunakan aplikasi Khazama AVR Programmer dan Code Vision AVR. 2. DASAR TEORI a. LED Diode pancaran cahaya atau biasa disebut LED (Light Emitting Diode) adalah sebuah sumber cahaya monokromatik yang terbuat dari bahan 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) Bentuk fisik LED (b) Simbol elektronik Gambar 1
  • 3. Gambar 2 Untuk menyalakan sebuah LED perlu rangkaian tambahan yang dapat dilihat pada Gambar 2 diatas. Rangkaian diatas merupakan sebuah transistor yang difungsikan sebagai saklar dan dua buah resistor sebagai pembatas arus. Dalam modul I/O yang dipakai dalam praktikum, kedelapan rangkaian LED tersebut dihubungkan ke sebuah soket jumper bernama OUTPUT. 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
  • 4. Untuk mengirim data byte dalam bentuk bilangan desimal ke PORTX (X=A, B, C, D) digunakan statement PORTX = decimal; 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. 3. ALAT DAN BAHAN YANG DIGUNAKAN 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama 1 buah ISP Downloader AVR 1 buah sistem minimum AVR 1 buah I/O 1 buah kabel printer USB 1 buah kabel pita hitam 4. PROSEDUR KERJA 1. Rangkailah peralatan yang diperlukan seperti pada gambar dibawah. Hubungkan soket jumper PORTA pada minimum system dengan soket jumper OUTPUT pada I/O.
  • 5. 2. Buka program Code Vision AVR 3. 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; 4. Tambahkan file header #include <delay.h> 5. Tuliskan dalam program utama sebagai berikut: - Program LED1 PORTA=0x0f; delay_ms(1000); PORTA=0xf0; delay_ms(1000); 6. Amati nyala LED dan gambarkan nyala LED tersebut. 7. 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;
  • 6. 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); 5. DATA HASIL PERCOBAAN 1. Tampilan nyala LED Program LED1 Program LED1 PORTA=0x0f;
  • 7. delay_ms(1000); PORTA=0xf0; delay_ms(1000); Tampilan nyala LED : Setelah delay selama 1 detik berganti menjadi Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 2. Tampilan nyala LED Program LED2 Program LED2 PORTA=0b00001111; delay_ms(1000); PORTA=0b11110000; delay_ms(1000); Tampilan nyala LED : Setelah delay selama 1 detik berganti menjadi Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 3. Tampilan nyala LED Program LED3 Program LED3 PORTA=0x55; delay_ms(1000); PORTA=0xaa; delay_ms(1000); Tampilan nyala LED : Setelah delay selama 1 detik berganti menjadi
  • 8. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 4. Tampilan nyala LED 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); Tampilan nyala LED : Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 5. Tampilan nyala LED Program LED4 Program LED5 PORTA=0b00000001; PORTA.2=1; delay_ms(1000); PORTA=0b00000010; PORTA.1=1; delay_ms(1000); PORTA=0b00000100; Setelah delay ke 1 Setelah delay ke 2 Setelah delay ke 3 Setelah delay ke 4 Setelah delay ke 5
  • 9. 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); Tampilan nyala LED : Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 6. ANALISA DATA 1. Analisa Program LED1 LED5! Saat pertamakali kita menginisialisasi PORTA dengan jalan menset DDRA = FFH maka kita menjadikannya sebagai output. Kita memberikan output value = 0 (PORTA=00H) maka lampu LED pada PORTA tidak ada yang menyala. Dengan menambahkan file library #include <delay.h> kita memberikan perintah pada program untuk melakukan waktu penundaan. Pada program utama kita tambahkan program sebagai berikut : Pada Percobaan LED 1, pemberian nilai menggunakan kode heksadesimal dan ditambahkan kode seperti: Setelah delay ke 1 Setelah delay ke 2 Setelah delay ke 3 Setelah delay ke 4 Setelah delay ke 5 Setelah delay ke 6 Setelah delay ke 7
  • 10. PORTA=0x0f; // pada perintah ini seluruh PORTA (bit.0 - bit.7) kita berikan nilai 0x0f artinya pada PORTA.0-PORTA.3 kita berikan nilai 1 sedangkan pada PORTA.4-PORTA.7 kita beri nilai 0 (0x0f menunjukkan pemberian nilai dengan menggunakan kode heksadesimal). delay_ms(1000); // memberikan waktu tundan selama 1000 ms atau 1 detik. PORTA=0xf0; // pada perintah ini seluruh PORTA (bit.0 - bit.7) kita berikan nilai 0xf0 artinya pada PORTA.0-PORTA.3 kita berikan nilai 0 sedangkan pada PORTA.4-PORTA.7 kita beri nilai 1 (0x0f menunjukkan pemberian nilai dengan menggunakan kode heksadesimal) delay_ms(1000); // memberikan waktu tundan selama 1000 ms atau 1 detik Pada percobaan LED 2, pemberian nilai menggunakan kode biner dan hasil yang ditampilkan sama dengan kode heksadesimal seperti di atas dan di tambahkan dengan sebuah kode sebagai berikut: PORTA=0b00001111; // pada perintah ini seluruh PORTA (bit.0 - bit.7) kita berikan nilai 0b00001111 artinya pada PORTA.0-PORTA.3 kita berikan nilai 1 sedangkan pada PORTA.4-PORTA.7 kita beri nilai 0 (0b00001111 menunjukkan pemberian nilai dengan menggunakan kode biner). delay_ms(1000); // memberikan waktu tundan selama 1000 ms atau 1 detik. PORTA=0b11110000; // pada perintah ini seluruh PORTA (bit.0 - bit.7) kita berikan nilai 0b11110000 artinya pada PORTA.0-PORTA.3 kita berikan nilai 1 sedangkan pada PORTA.4-PORTA.7 kita beri nilai 0 (0b11110000 menunjukkan pemberian nilai dengan menggunakan kode biner). delay_ms(1000); // memberikan waktu tundan selama 1000 ms atau 1 detik. Pada percobaan LED 3, pemberian nilai menggunakan kode hekxa- desimal dengan menambahkan kode sebagai berikut :
  • 11. PORTA=0x55; // pada perintah ini PORTA (bit.0,2,4 dan 6) akan menyala karena diberikan logika 1 (x55 merupakan perintah untuk menyalakan LED secara bersilangan). delay_ms(1000); // memberikan waktu tundan selama 1 detik. PORTA=0xaa; // pada perintah ini sama dengan perintah sebelumnya akan tetapi perintah ini mengakibatkan PORTA (bit.1,3,5 dan 7) akan menyala karena di berikan perintah delay yang mengakibatkan lampu berubah secara bergantian. delay_ms(1000); // memberikan waktu tundan selama 1 detik. Pada percobaan LED 4, pemberian nilai yang digunakan menggunakan kode biner yaitu 0b dan ditambahkan dengan kode sebagai berikut: PORTA=0b11100111; // pada perintah ini PORTA (bit.0,1,2,5,6 dan 7) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.3 dan 4) akan mati karena diberikan logika 0. PORTA=0b11011011; // pada perintah ini PORTA (bit.0,1,3,4,6 dan 7) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.2 dan 5) akan mati karena diberikan logika 0. PORTA=0b10111101; // pada perintah ini PORTA (bit.0,2,3,4,5 dan 7) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.1 dan 6) akan mati karena diberikan logika 0. PORTA=0b01111110; // pada perintah ini PORTA (bit.1,2,3,4,5 dan 6) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.0 dan 7) akan mati karena diberikan logika 0. PORTA=0b10111101; // pada perintah ini PORTA (bit.0,2,3,4,5 dan 7) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.1 dan 6) akan mati karena diberikan logika 0. PORTA=0b11011011; // pada perintah ini PORTA (bit.0,1,3,4,6 dan 7) akan menyala karena diberikan logika 1, sedangakan PORTA (bit.2 dan 5) akan mati karena diberikan logika 0. delay_ms(1000); // memberikan waktu tunda selama 1 detik, delay ini diletakkan diantara setiap PORTA.
  • 12. Pada Percobaan LED 5, pada percobaan ini sama dengan percobaan sebelumnya yaitu dengan menggunakan kode biner dan ditambah kode sebagai berikut: PORTA=0b00000001; PORTA.2=1; // pada perintah ini PORTA (bit.0) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberikan logika 0 dan bit.2 akan menyala karena disampingnya diberi perintah PORTA.2=1. PORTA=0b00000010; PORTA.1=1; // pada perintah ini PORTA (bit.1) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberikan logika 0. PORTA=0b00000100; // pada perintah ini PORTA (bit.2) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. PORTA=0b00001000; // pada perintah ini PORTA (bit.3) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. PORTA=0b00010000; // pada perintah ini PORTA (bit.4) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. PORTA=0b00100000; // pada perintah ini PORTA (bit.5) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. PORTA=0b01000000; // pada perintah ini PORTA (bit.6) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. PORTA=0b10000000; // pada perintah ini PORTA (bit.7) akan menyala karena diberi logika 1 sedangkan yang lain mati karena diberi logika 0. delay_ms(1000); // memberikan waktu tunda selama 1 detik, delay ini diletakkan diantara setiap PORTA. 2. Apakah persamaan dan perbedaan PROGRAM LED1 dan PROGRAM LED2? Persamaannya adalah pada pemberian nilai pada pemberian nilai logikanya sama dan nyala LED juga sama sedangkan perbedaan yaitu terletak pada pemberian kode nilai pada program LED 1 menggunakan kode heksadesimal (0xnilai hekxa) sedangkan pada program led 2 pemberian nilai menggunakan kode biner (0bnilai biner).
  • 13. 3. Instruksi apa yang digunakan untuk mengeluarkan data ke LED? Intruksi yang digunakan untuk mengeluarkan data ke LED adalah PORTA data nilai sebagai contoh pada program LED 1 sebagai berikut: PORTA=0x0f; delay_ms(1000); PORTA=0xf0; delay_ms(1000); program diatas memberikan intruksi untuk menyalakan LED.0-LED.3 dengan selisih 1 detik. 4. Mengapa ada jeda waktu sekitar 1 detik antara tampilan LED yang pertama dengan yang berikutnya? Karena kita memberikan perintah delay pada listing program yaitu delay 1000 ms atau sekitar 1 detik. apabila program tersebut tidak diberikan delay atau jeda maka program yang selanjutnya tidak akan bekerja dan output atau nyala led hanya akan menampilkan program yang pertama diberikan. 7. KESIMPULAN Langka pertama dalam pemberian program pada microkontroler adalah menginisalisasi PORT, yaitu fungsinya untuk menentukan pengaturan fungsi PORT sebagai input atau output. Pada praktikum PORTA di inisialisasikan sebagai output yaitu dengan cara DDRA=FFH. Dalam pemberian nilai input kita dapat menggunakan kode digital yaitu kode heksadesimal dan biner. bila kita menggunkan kode heksimal maka harus diawali dengan 0x sedangkan kode biner menggunakan awalan 0b. Delay digunakan sebagai pemberian waktu tundaan artinya kita memberikan waktu tundaan sesuai dengan perintah tunda yang kita berikan dari satu program ke program selanjutnya. Pemberian nilai pada masing-masing bit port dapat dilakukan dengan cara mengset masing-masing bit dengan memberikan logika 1
  • 14. DAFTAR PUSTAKA Lestari, Dyah.2012.PRAKTIKUM MIKROPROSESSOR DAN TEKNIK ANTARMUKA PTI-494 PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA. Malang.Universitas Negeri Malang. http://id.wikipedia.org/wiki/Diode_pancaran_cahaya