pertemuan i pemograman output led...
TRANSCRIPT
Mikrokontroler-Pemograman Output LED dan Buzzer 1
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 2
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
'--------------------------------------------------------
$regfile = "m16def.dat"
$crystal = 8000000
'--------------------------------------------------------
Config Portc = Output
'--------------------------------------------------------
'RUTIN UTAMA
'--------------------------------------------------------
Do
PortC = 0 ' Matikan semua LED
Waitms 1000 ' tunggu selama 1000 mdetik atau 1 detik
PortC = 255 ' Nyalakan semua LED
Waitms 1000 ' tunggu selama 1000 mdetik atau 1 detik
Loop
End
Mikrokontroler-Pemograman Output LED dan Buzzer 3
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 masing-
masing terminal. Untuk selanjutnya tahapan ini akan disebut dengan cara
“hubungkan Port C dengan P01”
Mikrokontroler-Pemograman Output LED dan Buzzer 4
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 5
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
'--------------------------------------------------------
$regfile = "m16def.dat"
$crystal = 8000000
'--------------------------------------------------------
Config Portc = Output
'--------------------------------------------------------
'RUTIN UTAMA
'--------------------------------------------------------
Do
Portc = &B10101010
Waitms 1000
Portc = &B01010101
Waitms 1000
Portc = &B11110000
Waitms 1000
Portc = &B00001111
Waitms 1000
Loop
End
Tugas Praktikan :
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 Sub-rutin
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 6
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
Tugas Praktikan :
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
'--------------------------------------------------------
$regfile = "m16def.dat"
$crystal = 8000000
'--------------------------------------------------------
Declare Sub Blink_all
Config PortC = Output
'--------------------------------------------------------
'RUTIN UTAMA
'--------------------------------------------------------
Do
' Cara memanggil Sub-Rutinnya adalah sbb:
Blink_all
Loop
End
'--------------------------------------------------------
Sub Blink_all
Portc = 0
Waitms 1000
Portc = 255
Waitms 1000
End 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 7
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.
Tugas Praktikan :
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
'
'--------------------------------------------------------
$regfile = "m16def.dat"
$crystal = 8000000
'--------------------------------------------------------
Dim I As Byte '--------------------------------------------------------
Config PortC = Output
'--------------------------------------------------------
'RUTIN UTAMA
'--------------------------------------------------------
I = 0
Do
Portc = 0
Portc.I = 1
Waitms 400
I = I + 1
If I > 7 Then
I = 0
End If
Loop
End
5. Simpan source code ini sekali lagi tetapi dengan nama file : Tugas1-4A.bas
Mikrokontroler-Pemograman Output LED dan Buzzer 8
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)
Tugas Praktikan :
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
'
'--------------------------------------------------------
$regfile = "m16def.dat"
$crystal = 8000000
'--------------------------------------------------------
Dim I As Byte
Dim U As Byte
'--------------------------------------------------------
Config Portc = Output
'--------------------------------------------------------
'RUTIN UTAMA
'--------------------------------------------------------
I = 0
U = 1
Do
Rotate U , Right , 1
Portc = U
Waitms 400
Loop
End
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 9
2. Ubahlah souce code saudara pada baris $crystal = 8000000 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 sub-
rutin mempunyai parameter.
Nilai parameternya adalah isi/nilai I masuk ke nilai J yang ada di sub-rutin
Tugas Praktikan :
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
'--------------------------------------------------------
$regfile = "m16def.dat"
$crystal = 8000000
'--------------------------------------------------------
Dim I As Byte
Declare Sub Blink_one(j As Byte)
'--------------------------------------------------------
Config Portc = Output
I = 0
Do
Call Blink_one(i)
I = I + 1
If I > 7 Then
I = 0
End If
Loop
End
Mikrokontroler-Pemograman Output LED dan Buzzer 10
'--------------------------------------------------------
Sub Blink_one(j As Byte)
Portc = 0
Portc.j = 1
Waitms 400
End 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
Tugas Praktikan :
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 Looping For .. Next
'--------------------------------------------------------
$regfile = "m16def.dat"
$crystal = 8000000
'--------------------------------------------------------
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
Do
For I = 1 To 8
Mikrokontroler-Pemograman Output LED dan Buzzer 11
PortC = 0
Portc.A(i) = 1
Waitms 400
Next
Loop
End
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
'--------------------------------------------------------
$regfile = "m16def.dat"
$crystal = 8000000
'--------------------------------------------------------
Config Portc.0 = Output
'--------------------------------------------------------
'RUTIN UTAMA
'--------------------------------------------------------
Do
PortC.0 = 0 ' Matikan Buzzer
Waitms 1000 ' tunggu selama 1000 mdetik atau 1 detik
PortC.1 = 1 ' Nyalakan Buzzer
Waitms 1000 ' tunggu selama 1000 mdetik atau 1 detik
Loop
End
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 12
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 13
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 14
“Beep”
Urutan LED menyala:
LED 0 > LED 5 > LED 2 > LED 7 > LED 3> LED 6 > LED 1 > LED 4
Tugas Praktikan :
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.
Tugas Praktikan :
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.