PERTEMUAN I PEMOGRAMAN OUTPUT LED DAN BUZZER TUJUAN: - Mahasiswa mampu memprogram mikrokontroller untuk mengendalikan perangkat output yaitu LED dan buzzer. PERALATAN: Modul-modul/perangkat keras yang digunakan dalam praktikum ini terdiri dari : 1. Satu buah Kit-MCU (ATMega16) 2. Satu buah Kit-Display a. 1 sub-modul Led (Merah-Kuning-Hijau-Biru) b. 1 sub-modul Mic c. 1 buah Buzzer d. 1 sub-modul Led & Switch e. 1 sub-modul LDR f. 1 sub-modul Potensio g. 1 sub-modul Phototransistor 3. Satu buah Kit Programmer AVR910-Serial Mikrokontroler-Pemograman Output LED dan Buzzer 1
4. Satu buah kabel ISP 5. Satu set kabel jumper yang terdiri : a. 3 buah kabel data 10 pin b. 1 buah kabel jumper 2 pin c. 3 buah kabel jumper 1 pin TUGAS-1.1. LED Blinking pada port C 1. Dalam tugas ini, praktikan ditugaskan untuk menyalin source code yang diberikan pada IDE BASCOM. Dalam program ini diawali dengan : a. mendefinisikan jenis prosesor, jenis kristal internal b. kemudian menset Port C sebagai keluaran. c. Scenario program utama dimulai dengan mematikan dulu LED selama 1000 ms, kemudian dinyalakan selama 1000 ms. Selanjutnya rutin utama program diulangi dari awal. ' LED Blinking pada port C Config Portc = Output 'RUTIN UTAMA PortC = 0 ' Matikan semua LED ' tunggu selama 1000 mdetik atau 1 detik PortC = 255 ' Nyalakan semua LED ' tunggu selama 1000 mdetik atau 1 detik Mikrokontroler-Pemograman Output LED dan Buzzer 2
2. Beri nama source code yang anda salin: Tugas1-1.bas 3. Compile source code, jika masih terdapat kesalahan perbaiki dan compile ulang. 4. Lakukan mounting sbb. : a. Hubungkan antara terminal ISP yang ada pada kit-mcu dengan terminal ISP yang ada pada Kit Programmer menggunakan kabel-10. Perhatikan tanda yang ada pada kabel-10 harus berada pada pin yang bertanda pada masing-masing terminal ISP. Untuk selanjutnya tahapan ini akan disebut dengan cara hubungkan MCU dengan Programmer. b. Hubungkan antara terminal port C pada kit-mcu dengan terminal port P01 pada kit-display menggunakan kabel-10. Perhatikan tanda yang ada pada kabel-10 harus berada pada pin yang bertanda pada masingmasing terminal. Untuk selanjutnya tahapan ini akan disebut dengan cara hubungkan Port C dengan P01 Mikrokontroler-Pemograman Output LED dan Buzzer 3
c. Hubungkan Kit Programmer dengan komputer dengan media USB2Serial/kabel ISP 5. Hubungi asisten untuk memeriksa hasil mounting saudara. 6. Upload file Tugas1-1.hex ke dalam MCU menggunakan aplikasi AVRPROG.exe 7. Tugas tertulis: a. Buatlah diagram alir dari program yang saudara salin b. PortC terdiri dari 8 pin sebutkan penamaan masing-masing pin tersebut TUGAS-1.2. LED Blinking parsial pada port C Skenario program utama dari program ini adalah mematikan dan menghidupkan LED sebagian-sebagian. Langkah pertama mematikan LED yang genap (menghidupkan LED yang ganjil) selama 1000 ms, kemudian mematikan LED yang ganjil. Langkah kedua mematikan LED yang sebelah kanan (menghidupkan LED sebelah kiri), Mikrokontroler-Pemograman Output LED dan Buzzer 4
kemudian mematikan LED sebelah kiri, lalu diulangi lagi dari awal. Source code lengkapnya seperti di bawah (Dengan asumsi mounting masih seperti pada tugas 1.1) : ' Menyalakan LED Blinking pada port C partial ' * Menggunakan nilai biner Config Portc = Output 'RUTIN UTAMA Portc = &B10101010 Portc = &B01010101 Portc = &B11110000 Portc = &B00001111 1. Lakukan mounting masih seperti pada tugas 1.1 2. Salin source code dan simpan dengan nama file : Tugas1-2.bas 3. Compile & Upload ke dalam MCU 4. Perlihatkan hasilnya ke asisten. Tugas tertulis: 1. Jelaskan apa yang terjadi pada led-led saat Portc = &B10101010 2. Dalam satuan desimal berapakan nilai &B10101010 3. Jelaskan apa yang terjadi pada led-led saat Portc = &B01010101 4. Dalam satuan desimal berapakan nilai &B01010101 TUGAS-1.3. LED Blinking pada port C menggunakan Subrutin Pada tugas ini diharapkan praktikan dapat mempelajari cara membuat dan memanggil sub-rutin suatu program untuk mikrokontroler menggunakan bahasa BASIC. Mikrokontroler-Pemograman Output LED dan Buzzer 5
Catatan : Untuk sub-rutin-nya yang tidak berparameter maka cara pemanggilannya dapat saja dipanggil dengan cara menuliskan nama sub-rutinnya (tanpa perintah Call di depannya) maupun menggunakan perintah Call di ikuti, misal : Call Blink_All 1. Lakukan mounting masih seperti pada tugas 1.1 2. Salin source code dan simpan dengan nama file : Tugas1-3.bas 3. Compile & Upload ke dalam MCU 4. Perlihatkan hasilnya ke asisten. ' Menyalakan LED Blinking pada port C, menggunakan Sub-Rutin Declare Sub Blink_all Config PortC = Output 'RUTIN UTAMA ' Cara memanggil Sub-Rutinnya adalah sbb: Blink_all Sub Blink_all Portc = 0 Portc = 255 Sub Tugas tertulis: 1. Ubahlah mounting dengan menghubungkan LED dengan PORT B pada MCU 2. Ubahlah source code diatas sehingga program berjalan saat lampu LED dihubungkan dengan PORT B 3. Compile & Upload ke dalam MCU 4. Perlihatkan hasilnya ke asisten. Mikrokontroler-Pemograman Output LED dan Buzzer 6
TUGAS-1.4. LED Blinking satu per-satu pada port C (Cara 1) Pada program ini selain inisialisasi jenis mikrokontroler dan clock internal, juga terdapat inisialisasi variabel yang dalam skenario akan diubah nilainya untuk menyalakan LED. Skenario Utama dari program adalah menyalakan LED dari no 1 sd no 7, kemudian di ulangi lagi dari awal. 1. Lakukan mounting masih seperti pada tugas 1.1 2. Salin source code di bawah ini dan simpan dengan nama file : Tugas1-4.bas 3. Compile & Upload ke dalam MCU 4. Perlihatkan hasilnya ke asisten. ' Menyalakn LED Berurut Port C dari 0..7 ' Dim I As Byte Config PortC = Output 'RUTIN UTAMA I = 0 Portc = 0 Portc.I = 1 Waitms 400 I = I + 1 If I > 7 Then I = 0 If 5. Simpan source code ini sekali lagi tetapi dengan nama file : Tugas1-4A.bas Mikrokontroler-Pemograman Output LED dan Buzzer 7
6. Ubah source code ini sehingga hasilnya sama dengan sebelumnya tetapi menggunakan sub-rutin. Isi sub-rutin tersebut adalah isi dari looping pada program sebelumnya, sedangkan isi looping merupakan sintak untuk memanggil sub-rutin tersebut 7. Perlihatkan hasilnya ke asisten. TUGAS-1.5. LED Blinking satu per-satu pada port C (Cara-2) 1. Lakukan mounting masih seperti pada tugas 1.1 2. Salin source code di bawah ini dan simpan dengan nama file : Tugas1-5.bas 3. Compile & Upload ke dalam MCU 4. Perlihatkan hasilnya ke asisten. ' Menyalakan LED Berurut Port C dari 0..7 ' Dim I As Byte Dim U As Byte Config Portc = Output 'RUTIN UTAMA I = 0 U = 1 Rotate U, Right, 1 Portc = U Waitms 400 Tugas tertulis: 1. Jelaskan apa arti dari perintah Rotate U, Right, 1 pada source code yang saudara salin ini Mikrokontroler-Pemograman Output LED dan Buzzer 8
2. Ubahlah souce code saudara pada baris menjadi $crystal = 4000000. Jelaskan apa dampak yang terjadi! TUGAS-1.6. LED Blinking satu per-satu pada port C (Cara-2) Pada tugas ini diharapkan praktikan dapat memahami cara membuat dan memanggil sub-rutin ber-parameter. Perhatikan : Cara pemanggilan Sub-rutin harus didahului dengan perintah Call karena subrutin mempunyai parameter. Nilai parameternya adalah isi/nilai I masuk ke nilai J yang ada di sub-rutin 1. Salin source code di bawah ini dan simpan dengan nama file : Tugas1-6.bas 2. Compile & Upload ke dalam MCU 3. Perlihatkan hasilnya ke asisten. ' ' Menyalakn LED Berurut Port C dari 0..7, ' * menggunakan sub-rutin dengan parameter ' * Validasi Counter-nya ada pada Rutin Utama Dim I As Byte Declare Sub Blink_one(j As Byte) Config Portc = Output I = 0 Call Blink_one(i) I = I + 1 If I > 7 Then I = 0 If Mikrokontroler-Pemograman Output LED dan Buzzer 9
Sub Blink_one(j As Byte) Portc = 0 Portc.j = 1 Waitms 400 Sub TUGAS-1.7. LED Blinking satu per-satu melingkar kekiri pada port C Pada tugas ini diharapkan praktikan dapat memahami cara membuat, menggunakan ARRAY dan looping For Next 1. Salin source code di bawah ini dan simpan dengan nama file : Tugas1-7.bas 2. Compile & Upload ke dalam MCU 3. Perlihatkan hasilnya ke asisten. ' Menyalakan LED Berurut Port C melingkar ke kiri ' * menggunakan Array ' * menggunakan ing For.. Next Dim I As Byte Dim J As Byte ' Deklrasi Array dengan nama A (dimulai dengan no 1.. 8) Dim A(8) As Byte Config Portc = Output ' Inisialisasi masing-2 sel Array sesuai dengan urutan nyalanya LED A(1) = 0 A(2) = 1 A(3) = 2 A(4) = 3 A(5) = 7 A(6) = 6 A(7) = 5 A(8) = 4 For I = 1 To 8 Mikrokontroler-Pemograman Output LED dan Buzzer 10
PortC = 0 Portc.A(i) = 1 Waitms 400 Next TUGAS-1.8. Buzzer Beep pada port C 1. Dalam tugas ini, praktikan ditugaskan untuk menyalin source code yang diberikan pada IDE BASCOM. Dalam program ini diawali dengan : a. mendefinisikan jenis prosesor, jenis kristal internal b. kemudian menset Port C.0 sebagai keluaran. c. Scenario program utama dimulai dengan mematikan dulu Buzzer selama 1000 ms, kemudian dinyalakan selama 1000 ms. Selanjutnya rutin utama program diulangi dari awal. ' Buzzer Beep pada port C Config Portc.0 = Output 'RUTIN UTAMA PortC.0 = 0 ' Matikan Buzzer ' tunggu selama 1000 mdetik atau 1 detik PortC.1 = 1 ' Nyalakan Buzzer ' tunggu selama 1000 mdetik atau 1 detik 2. Beri nama source code yang anda salin: Tugas1-8.bas 3. Compile source code, jika masih terdapat kesalahan perbaiki dan compile ulang. 4. Lakukan mounting sbb. : Mikrokontroler-Pemograman Output LED dan Buzzer 11
a. Hubungkan antara terminal ISP yang ada pada kit-mcu dengan terminal ISP yang ada pada Kit Programmer menggunakan kabel-10. Perhatikan tanda yang ada pada kabel-10 harus berada pada pin yang bertanda pada masing-masing terminal ISP. Untuk selanjutnya tahapan ini akan disebut dengan cara hubungkan MCU dengan Programmer. b. Hubungkan antara terminal pin C.0 pada kit-mcu dengan terminal pin bz pada kit-display menggunakan kabel jumper 1 pin dan terminal pin G pada kit-mcu dengan terminal pin G pada kit-display bagian Buzzer menggunakan kabel jumper 1 pin. Mikrokontroler-Pemograman Output LED dan Buzzer 12
c. Hubungkan Kit Programmer dengan komputer dengan media USB2Serial/kabel ISP 5. Hubungi asisten untuk memeriksa hasil mounting saudara. 6. Upload file Tugas1-8.hex ke dalam MCU menggunakan aplikasi AVRPROG.exe 7. Tugas tertulis: a. Buatlah diagram alir dari program yang saudara salin b. Tanpa merubah mounting pada buzzer, hubungkan PortC pada MCU dengan P01 pada kit-display. Jelaskan apa yang terjadi. TUGAS-1.9. LED Blinking satu per-satu secara Zig-Zag Skenario dari Program utama adalah membuat LED menyala secara ZIG-ZAG maju dan mundur pada dua baris LED serta buzzer berbunyi beep saat lampu LED nomor 7 menyala. Mikrokontroler-Pemograman Output LED dan Buzzer 13
Urutan LED menyala: LED 0 > LED 5 > LED 2 > LED 7 > LED 3> LED 6 > LED 1 > LED 4 Beep 1. Buatlah source code sedemikian rupa sehingga hasilnya Led menyala secara Zig-Zag maju dan mundur. 2. Compile & Upload ke dalam MCU 3. Perlihatkan hasilnya ke asisten. TUGAS-1.10. LED Blinking dengan berbagai mode secara bergantian. 1. Buatlah sebuah file baru dan simpan simpan nama baru yaitu : Tugas1-10.bas 2. Buatlah program dengan menggunakan beberapa sub-rutin sbb, : 1. Mematikan selama 500 ms dan memenyalakan selama 200 ms seluruh Led secara bergantian sebanyak 7 kali siklus 2. Menyalakan Led satu per satu selama 400ms secara berurutan dari 0..7 3. Menyalakan Led satu per satu selama 400ms secara melingkar ke kiri 4. Menyalakan Led satu per satu selama 400ms secara Zigzag 3. Buatlah pada Rutin utamanya untuk memanggil seluruh sub-rutin (poin 2) 4. Compile & Upload ke dalam MCU 5. Perlihatkan hasilnya ke asisten. Mikrokontroler-Pemograman Output LED dan Buzzer 14