pertemuan i pemograman output led...

14
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

Upload: dangkiet

Post on 10-Mar-2019

223 views

Category:

Documents


0 download

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.