Laporan Praktikum Antarmuka Mikrokontroler Dengan Led - Kelompok 9 [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

LAPORAN PRAKTIKUM MIKROPROSESOR ANTARMUKA MIKROKONTROLER DENGAN LED



KELOMPOK 9:



Dinia Astiara Nurrizqi (200534627606) Inke Okstantia Putri (200534627619) Siva Faujiati (5301420007 UNNES)



UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI S1 PENDIDIKAN TEKNIK ELEKTRO September 2021



A. TUJUAN 1. Menjelaskan rangkaian antarmuka mikrokontroler dengan LED. 2. Mempraktekkan pemrograman mikrokontroler untuk menyalakan LED.



B. 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.1 memperlihatkan bentuk fisik LED dan simbol rangkaiannya.



Untuk menyalakan sebuah LED perlu rangkaian tambahan yang dapat dilihat pada gambar disamping. 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.



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.



Untuk mengirim data byte dalam bentuk bilangan desimal 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.



C. ALAT DAN BAHAN • •



1 set PC/Laptop Aplikasi CodeVision AVR dan Proteus Atmega 8535 1 buah Resistor 220 Ohm 8 buah LED 8 buah Ground 1 buah Kabel secukupnya



D. PROSEDUR KERJA 1. Buka Aplikasi CodeVision AVR 2. Buat file baru dengan cara klik File lalu New ,kemudian pilih menu Project. Setelah muncul jendela baru lalu klik Yes



3. Kemudian pilih menu AT90,ATtiny,ATmega 4. Lalu pilih chip menggunakan ATmega 8535 dengan clock 4 MHz



5. Atur PORT A seperti gambar di bawah ini



6. Lalu klik menu generate dan save, dan beri nama dengan nama yang sama untuk semua file 7. Setelah muncul jendela seperti di bawah ini pada script program tambahkan kode header untuk delay yaitu #include , kemudian pada garis yang saya lingkari dibawah dapat diprogam sesuai perintah LED yang diminta.



8. Untuk program LED 1, scriptnya adalah PORTA=0x0f; delay_ms(1000); PORTA=0xf0; delay_ms(1000); 9. Untuk program LED 2 scriptnya adalah PORTA=0b00001111; delay_ms(1000); PORTA=0b11110000; delay_ms(1000); 10. Untuk program LED 3, scriptnya adalah PORTA=0x55; delay_ms(1000); PORTA=0xaa; delay_ms(1000); 11. Untuk program LED 4, scriptnya adalah 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);



12. Untuk program LED 5, scriptnya adalah 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); 13. Setelah menulis script maka klik menu build all project files untuk menyimpannya. 14. Pada aplikasi Proteus ,buat rangkaian seperti gambar di bawah ini. Komponen yang di gunakan ialah ATmega 8535, resistor 220, LED YELLOW, Ground.



15. Untuk memprogam ATmega 8535 nya adalah dengan cara mengklik 2x paka komponennya ,lalu akan muncul jendela seperti gambar di bawah ini dan masukkan file hex yang sudah disimpan dari aplikasi CodeVision AVR seperti gambar yang saya lingkari



16. Jalankan Proteusnya.



E. DATA HASIL PERCOBAAN 1. Tampilan Nyala LED untuk Program LED 1 Kondisi 1 (0,0,0,0,1,1,1,1)



Kondisi 2 (1,1,1,1,0,0,0,0)



2. Tampilan Nyala LED untuk Program LED 2 Kondisi 1 (0,0,0,0,1,1,1,1)



Kondisi 2 (1,1,1,1,0,0,0,0)



3. Tampilan Nyala LED untuk Program LED 3 Kondisi 1 (0,1,0,1,0,1,0,1)



Kondisi 2 (1,0,1,0,1,0,1,0)



4. Tampilan Nyala LED untuk Program LED 4 Kondisi 1 (1,1,1,0,0,1,1,1)



Kondisi 2 (1,1,0,1,1,0,1,1)



Kondisi 3 (1,0,1,1,1,1,0,1)



Kondisi 4 (0,1,1,1,1,1,1,0)



Kondisi 5 (1,0,1,1,1,1,0,1)



Kondisi 6 (1,1,0,1,1,0,1,1)



5. Tampilan Nyala LED untuk Program LED 5 Kondisi 1 (0,0,0,0,0,1,0,1)



Kondisi 2 (0,0,0,0,0,0,1,0)



Kondisi 3 (0,0,0,0,0,1,0,0)



Kondisi 4 (0,0,0,0,1,0,0,0)



Kondisi 5 (0,0,0,1,0,0,0,0)



Kondisi 6 (0,0,1,0,0,0,0,0)



Kondisi 7 (0.1.0.0.0.0.0.0.)



Kondisi 8 (1,0,0,0,0,0,0,0)



F. ANALISIS DATA 1. Analisis Program LED1 – LED5! a. Program LED 1 Terdapat 2 kondisi output pada program LED 1 yaitu, kondisi pertama menunjukkan D1/Bit 0 bernilai 1, D2/Bit 1 bernilai 1, D3/Bit 2 bernilai 1, D4/Bit 3 bernilai 1, D5/Bit 4 bernilai 0, D6/Bit 5 bernilai 0, D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 0. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0x0f yang berarti 0f dinyatakan dalam bentuk hexadecimal jika diubah menjadi ke biner bentuknya akan menjadi 00001111. Pada kondisi yang kedua menunjukkan D1/Bit 0 bernilai 0, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 0, D4/Bit 3 bernilai 0, D5/Bit 4 bernilai 1, D6/Bit 5 bernilai 1, D7/Bit 6 bernilai 1, D8/Bit 7 bernilai 1. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0xf0 yang berarti f0 dinyatakan dalam bentuk hexadecimal jika diubah menjadi ke biner bentuknya akan menjadi 11110000 akan menjadi 11110000. b. Program LED 2 Terdapat 2 kondisi output pada program LED 2 yaitu, kondisi yang pertama menunjukkan D1/Bit 0 bernilai 1, D2/Bit 1 bernilai 1, D3/Bit 2 bernilai 1, D4/Bit 3 bernilai 1, D5/Bit 4 bernilai 0, D6/Bit 5 bernilai 0, D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 0. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b00001111, dimana 0b adalah kode untuk bentuk biner dan 00001111 adalah nilainya. Pada kondisi yang kedua menunjukkan D1/Bit 0 bernilai 0, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 0, D4/Bit 3 bernilai 0, D5/Bit 4 bernilai 1, D6/Bit 5 bernilai 1, D7/Bit 6 bernilai 1, D8/Bit 7 bernilai 1. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b11110000, dimana 0b adalah kode untuk bentuk biner dan 11110000 adalah nilainya. c. Program LED 3 Terdapat 2 kondisi output pada program LED 3 yaitu, kondisi yang pertama menunjukkan D1/Bit 0 bernilai 1, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 1, D4/Bit 3 bernilai 0, D5/Bit 4 bernilai 1, D6/Bit 5 bernilai 0, D7/Bit 6 bernilai 1, D8/Bit 7 bernilai 0. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0x55,dimana 55 dinyatakan dalam bentuk hexadecimal jika diubah menjadi ke biner bentuknya akan menjadi 01010101 . Pada kondisi yang kedua menunjukkan D1/Bit 0 bernilai 0, D2/Bit 1 bernilai 1, D3/Bit 2 bernilai 0, D4/Bit 3 bernilai 1, D5/Bit 4 bernilai 0, D6/Bit 5 bernilai 1, D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 1. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0xaa,dimana aa dinyatakan dalam bentuk hexadecimal jika diubah menjadi ke biner bentuknya akan menjadi 10101010. d. Program LED 4 Terdapat 6 kondisi output pada program LED 4 yaitu, kondisi yang pertama menunjukkan D1/Bit 0 bernilai 1, D2/Bit 1 bernilai 1, D3/Bit 2 bernilai 1, D4/Bit 3 bernilai 0, D5/Bit 4 bernilai 0, D6/Bit 5 bernilai 1, D7/Bit 6 bernilai 1, D8/Bit 7 bernilai 1. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b11100111, dimana 0b adalah kode untuk bentuk biner dan 11100111 adalah nilainya.



Pada kondisi yang kedua menunjukkan D1/Bit 0 bernilai 1, D2/Bit 1 bernilai 1, D3/Bit 2 bernilai 0, D4/Bit 3 bernilai 1, D5/Bit 4 bernilai 1, D6/Bit 5 bernilai 0, D7/Bit 6 bernilai 1, D8/Bit 7 bernilai 1. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b11011011, dimana 0b adalah kode untuk bentuk biner dan 11011011 adalah nilainya. Pada kondisi yang ketiga menunjukkan D1/Bit 0 bernilai 1, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 1, D4/Bit 3 bernilai 1, D5/Bit 4 bernilai 1, D6/Bit 5 bernilai 1, D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 1. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b10111101, dimana 0b adalah kode untuk bentuk biner dan 10111101 adalah nilainya. Pada kondisi yang keempat menunjukkan D1/Bit 0 bernilai 0, D2/Bit 1 bernilai 1, D3/Bit 2 bernilai 1, D4/Bit 3 bernilai 1, D5/Bit 4 bernilai 1, D6/Bit 5 bernilai 1, D7/Bit 6 bernilai 1, D8/Bit 7 bernilai 0. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b01111110, dimana 0b adalah kode untuk bentuk biner dan 01111110 adalah nilainya. Pada kondisi yang kelima menunjukkan D1/Bit 0 bernilai 1, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 1, D4/Bit 3 bernilai 1, D5/Bit 4 bernilai 1, D6/Bit 5 bernilai 1, D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 1. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b10111101, dimana 0b adalah kode untuk bentuk biner dan 10111101 adalah nilainya. Pada kondisi yang keenam menunjukkan D1/Bit 0 bernilai 1, D2/Bit 1 bernilai 1, D3/Bit 2 bernilai 0, D4/Bit 3 bernilai 1, D5/Bit 4 bernilai 1, D6/Bit 5 bernilai 0, D7/Bit 6 bernilai 1, D8/Bit 7 bernilai 1. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b11011011, dimana 0b adalah kode untuk bentuk biner dan 11011011 adalah nilainya. e. Program LED 5 Terdapat 8 kondisi output pada program LED 5 yaitu, kondisi yang pertama menunjukkan D1/Bit 0 bernilai 1, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 1, D4/Bit 3 bernilai 0, D5/Bit 4 bernilai 0, D6/Bit 5 bernilai 0, D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 0. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b00000001, dimana 0b adalah kode untuk bentuk biner dan 00000001 adalah nilainya. Serta ditambahkan juga perintah PORTA.2=1 yang berarti D3/Bit 2 kondisinya akan high atau bernilai satu pada saat yang sama. Maka Bit yang ditampilkan pada proteus terlihat 00000101. Pada kondisi yang kedua menunjukkan D1/Bit 0 bernilai 0, D2/Bit 1 bernilai 1, D3/Bit 2 bernilai 0, D4/Bit 3 bernilai 0, D5/Bit 4 bernilai 0, D6/Bit 5 bernilai 0, D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 0. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b00000010, dimana 0b adalah kode untuk bentuk biner dan 00000010 adalah nilainya. Serta ditambahkan juga perintah PORTA.1=1 yang berarti D2/Bit 1 kondisinya akan high atau bernilai satu pada saat yang sama. Maka Bit yang ditampilkan pada proteus terlihat 00000010. Pada kondisi yang ketiga menunjukkan D1/Bit 0 bernilai 0, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 1, D4/Bit 3 bernilai 0, D5/Bit 4 bernilai 0, D6/Bit 5 bernilai D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 0. Hal tersebut dapat terjadi karena script yang dimasukkan ke



PORT A adalah 0b00000100,dimana 0b adalah kode untuk bentuk biner dan 00000100 adalah nilainya. Pada kondisi yang keempat menunjukkan D1/Bit 0 bernilai 0, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 0, D4/Bit 3 bernilai 1, D5/Bit 4 bernilai 0, D6/Bit 5 bernilai 0, D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 0. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b00001000,dimana 0b adalah kode untuk bentuk biner dan 00001000 adalah nilainya. Pada kondisi yang kelima menunjukkan D1/Bit 0 bernilai 0, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 0, D4/Bit 3 bernilai 0, D5/Bit 4 bernilai 1, D6/Bit 5 bernilai 0, D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 0. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b00010000, dimana 0b adalah kode untuk bentuk biner dan 00010000 adalah nilainya. Pada kondisi yang keenam menunjukkan D1/Bit 0 bernilai 0, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 0, D4/Bit 3 bernilai 0, D5/Bit 4 bernilai 1, D6/Bit 5 bernilai 1, D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 0. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b00100000, dimana 0b adalah kode untuk bentuk biner dan 00100000 adalah nilainya. Pada kondisi yang ketujuh menunjukkan D1/Bit 0 bernilai 0, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 0, D4/Bit 3 bernilai 0, D5/Bit 4 bernilai 0, D6/Bit 5 bernilai 0, D7/Bit 6 bernilai 1, D8/Bit 7 bernilai 0. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b01000000, dimana 0b adalah kode untuk bentuk biner dan 01000000 adalah nilainya. Pada kondisi yang kedelapan menunjukkan D1/Bit 0 bernilai 0, D2/Bit 1 bernilai 0, D3/Bit 2 bernilai 0, D4/Bit 3 bernilai 0, D5/Bit 4 bernilai 0, D6/Bit 5 bernilai 0, D7/Bit 6 bernilai 0, D8/Bit 7 bernilai 1. Hal tersebut dapat terjadi karena script yang dimasukkan ke PORT A adalah 0b10000000, dimana 0b adalah kode untuk bentuk biner dan 10000000 adalah nilainya. Dari masing-masing kondisi pada setiap program LED 1-5 seharusnya terdapat jeda 1 sekon karena di dalam script ada perintah delay_ms(1000) yang dapat di aktifkan dengan menambahkan header #include . Namun, pada saat disimulasikan di proteus delay yang ditampilkan tidak tepat 1 sekon atau jedanya menjadi 4 sekon . Hal itu dapat terjadi karena adanya lagging pada computer atau pengaruh frekuensi clock pada ATmega8535 yang pada saat itu menggunakan clock 4 MHz.



2. Apakah persamaan dan perbedaan PROGRAM LED1 dan PROGRAM LED2? Persamaan : Tampilan pada Program LED1 dan Program LED2 sama,yaitu pada saat kondisi pertama bernilai (0,0,0,0,1,1,1,1), dan pada saat kondisi kedua bernilai (1,1,1,1,0,0,0,0). Jeda waktu juga sama antar kondisi yakni 4 sekon karena menggunakan ATmega8535 dengan clock 4 MHz,namun seharusnya 1 sekon menurut script yang di perintahkan. Perbedaan : Penulisan pada Program LED1 dan LED2 berbeda. Pada Program LED1 untuk mengirim data byte menggunakan bilangan hexadecimal(0f dan f0) sedangkan pada Program LED2 untuk mengirim data byte menggunakan bilangan biner (00001111 dan 11110000)



3. Instruksi apa yang digunakan untuk mengeluarkan data ke LED? a. Membuat script program LED menggunakan CodeVision AVR Contoh script : PORTA=0x0f; delay_ms(1000); PORTA=0xf0; delay_ms(1000); b. Membuat sebuah rangkaian minimum system Mikrokontroler dengan menggunakan ATmega 8535 pada Proteus c. Klik dua kali pada komponen ATmega 8535,kemudian akan muncul jendela baru untuk memasukkan file hex d. Cari file hex yang sudah di buat dengan CodeVision AVR,kemudian masukkan pada komponen ATmega 8535 e. Jalankan rangkaiannya pada proteus,maka LED akan menyala sesuai script atau perintah yang telah ditentukan 4. Mengapa ada jeda waktu sekitar 1 detik antara tampilan LED yang pertama dengan yang berikutnya? Pada simulasi kali ini yang seharusnya terdapat jeda 1 sekon/1000 ms menurut perintah yang dimasukkan,tetapi jedanya menjadi 4 sekon pada saat dijalankan di Proteus. Hal itu dapat terjadi mungkin karena adanya lagging pada computer dan juga dapat dipengaruhi oleh clock pada saat memilih komponen ATmega 8535 di CodeVision AVR, yang clocknya sebesar 4MHz. Agar jedanya menjadi 1 sekon maka dapat dengan cara mengatur clock pada ATmega menjadi 1 MHz. Untuk membuat delay maka dalam script progamnya dapat kita tambahkan delay_ms(1000) dan untuk mengaktifkan perintah tersebut maka dibutuhkan header #include



G. KESIMPULAN 1. Hasil yang dikeluarkan dari LED adalah hasil output ATmega 8535 dari program yang dibuat menggunakan CodeVision AVR 2. Untuk mengirim data byte dalam dalam bentuk bilangan desimal ke PORTA maka dapat digunakan perintah PORTA=128 3. Untuk mengirim data byte dalam bentuk bilangan biner ke PORTA maka dapat digunakan perintah PORTA=0b11110000 yang berarti 0b adalah kode awalan untuk bentuk biner dan 11110000 adalah nilainya 4. Untuk mengirim data per bit ke PORTA.1 maka dapat digunakan perintah PORTA.1=1 yang berarti dalam PORT A1, Bit nya akan dalam kondisi high atau bernilai satu 5. Jika terdapat perintah PORTA=0x0f , 0x adalah kode awalan untuk bilangan hexadecimal dan 0f adalah bilangan hexadecimal jika dirubah ke bentuk biner maka 0f binernya menjadi 00001111. 6. Untuk membuat jeda dapat dengan memberi perintah perintah delay_ms(1000) yang dapat di aktifkan dengan menambahkan header #include . 7. Ketepatan delay pada simulasi dapat di pengaruhi oleh lagging pada computer dan frekuensi clock pada IC ATmega 8535