7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
1/20
G. LANGKAH KERJA
Pembuatan script (dalam ekstensi .hex) program menggunakan
BASCOM-AVR
1. Jalankan software BASCOM
2. Berikut tampilan awal BASOM-AVR
3. Ketikkan script program mengatur arah gerak LED ke Kanan-Kiridengan saklar Push Button
$regfile = m16def.datDim A As ByteDoPortb = &B00000001
Bitwait Pinc.6DoFor A = 1 To 7Rotate Portb, LeftWaitms 100If Pinc.1 = 1 ThenExit DoEnd If
NextFor A = 1 To 7Rotate Portb, Right
Waitms 100
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
2/20
If Pinc.1 = 1 ThenExit DoEnd If
Next
If Pinc.1 = 1 ThenExit DoEnd IfLoopLoopEnd
4. Kompile script program dengan cara mengklik ikon5. Tunggu beberapa saat porgram sedang di kompile (diubah dari bahasa
.bas atau basic menjadi ekstensi .hex)
6. Kemudian ketikkan program mengambil data saklar geser danmengeluarkan ke LED
$regfile "m16def.dat"$crystal = 1000000$hwstack = 32$swstack = 8$framesize = 24Config Portb = OutputConfig Portc = InputPortc = &HFFDo Portb = PincLoop
End
7. Kompile script program dengan cara mengklik ikon ataumenekan (f7).
8. Tunggu beberapa saat porgram sedang di kompile (diubah dari bahasa.bas atau basic menjadi ekstensi .hex)
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
3/20
9. Kemudian ketikkan program tantangan Program untuk menyalakan ledpada portB dan portD dengan ketentuan (Jika pushbuttons 1 ditekan,
maka semua led pada portB dan portD menyala kedap-kedip, jika
pushbuttons 2 ditekan, maka led pada portB dan portD akan menyala
secara zig-zag)
$regfile "m16def.dat"$crystal = 1000000Config Portb = OutputConfig Portd = OutputDim A As Integer, C As ByteC = &B10000000Do
Bitwait Pinc.0, SetBitwait Pinc.0, ResetDoPortb = &B11111111Portd = &B11111111Waitms 30Portb = &B00000000Portd = &B00000000Waitms 30If Pinc.1 = 1 Then go to ArEnd If
ArDoPortb = CWaitms 1000Shift C, Right, 1Portd = CWaitms 1000Shift C, Right, 1Loop Until Portb = &B00000000LoopEnd
10.Kompile script program dengan cara mengklik ikon ataumenekan (f7).
11.Tunggu beberapa saat porgram sedang di kompile (diubah dari bahasa.bas atau basic menjadi ekstensi .hex)
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
4/20
Melakukan Percobaan di Lab menggunakan Mikrokontroler AVR
PERCOBAAN PROGRAM MENGATUR ARAH GERAK LED KE
KANAN-KIRI DENGAN SAKLAR PUSH BUTTON1. Klik Start --- AVRprog.
2. Kemudian akan muncul tampilan awal AVRprog. Untuk melakukanpercobaan, klik browse untuk memasukkan file sintax-nya.
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
5/20
3. Kemudian arahkan ke direktori tempat file tersebut. Select dan Klik Open.
4. Setelah file sintaxnya telah masuk di AVRprog, klik program untukmenjalankannya.
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
6/20
PROGRAM MENGAMBIL DATA SAKLAR GESER DAN
MENGELUARKAN KE LED
1. Klik Advanced untuk melakukan percobaan berikutnya.
2. klik Chip Erase. dan Klik Close
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
7/20
3. Kemudian Klik Browse untuk memasukkan file sintax-nya.
4. kemudian arahkan ke direktori tempat file tersebut. klik open.
5. setelah file sintaxnya telah masuk di avrprog, klik program untukmenjalankannya.
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
8/20
PROGRAM TANTANGAN
Program untuk menyalakan led pada portB dan portD dengan ketentuan (Jika
pushbuttons 1 ditekan, maka semua led pada portB dan portD menyala kedap-
kedip, jika pushbuttons 2 ditekan, maka led pada portB dan portD akan
menyala secara zig-zag)
1. Klik Advanced untuk melakukan percobaan berikutnya
2.
Klik Chip Erase. dan Klik Close
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
9/20
3. Kemudian Klik Browse untuk memasukkan file sintax-nya.
4. Kemudian arahkan ke direktori tempat file tersebut. Klik Open.
5. Setelah file sintaxnya telah masuk di AVRprog, Klik program untukmenjalankannya.
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
10/20
H. HASIL PERCOBAAN
PERCOBAAN PROGRAM MENGATUR ARAH GERAK LED KE
KANAN-KIRI DENGAN SAKLAR PUSH BUTTON
Keadaan awal Keadaan awal setelah programdijalankan
LED bit tujuh pada portB, menyala LED bit enam pada portB, menyala
LED bit lima pada portB, menyala LED bit empat pada portB, menyala
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
11/20
LED bit tiga pada portB, menyala LED bit dua pada portB, menyala
`
LED bit satu pada portB, menyala LED bit nol pada portB, menyala
LED bit satu pada portB, menyala LED bit dua pada portB, menyala
LED bit tiga pada portB, menyala LED bit empat pada portB, menyala
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
12/20
LED bit lima pada portB, menyala LED bit enam pada portB, menyala
LED bit tujuh pada portB, menyala
PERCOBAAN PROGRAM MENGAMBIL DATA SAKLAR GESER DAN
MENGELUARKAN KE LED
Keadaan awal Keadaan awal setelah programdijalankan
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
13/20
Saklar tiga ditekan, LED bit tiga pada
portb dan portd, menyalaSaklar nol ditekan, LED bit nol pada
portb dan portd, menyala
Saklar satu ditekan, LED bit satupada portb dan portd, menyala
Saklar dua ditekan, LED bit dua padaportb dan portd, menyala
Saklar empat ditekan, LED bit empatpada portb dan portd, menyala
Saklar lima ditekan, LED bit limapada portb dan portd, menyala
Saklar enam ditekan, LED bit enampada portb dan portd, menyala
Saklar tujuh ditekan, LED bit tujuhpada portb dan portd, menyala
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
14/20
PROGRAM TANTANGAN
Program untuk menyalakan led pada portB dan portD dengan ketentuan (Jika
pushbuttons 1 ditekan, maka semua led pada portB dan portD menyala kedap-
kedip, jika pushbuttons 2 ditekan, maka led pada portB dan portD akan
menyala secara zig-zag)
Keadaan awal Push button 1 ditekan, LED padaportb dan portd menyala
Kemudian LED portb dan portd mati Dan LED portb dan portd menyalakembali (proses berkedip)
push button 2 ditekan, LED bit tujuhpada portb menyala (proses awal zig-
zag)
Kemudian LED bit enam pada portdmenyala
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
15/20
Kemudian LED bit lima pada portb
menyalaKemudian LED bit empat pada portd
menyala
Kemudian LED bit tiga pada portbmenyala
Kemudian LED bit dua pada portdmenyala
Kemudian LED bit satu pada portbmenyala
dan LED bit nol pada portd menyala
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
16/20
I. ANALISIS DATAMengatur Arah Gerak LED ke Kiri-Kanan Dengan Saklar Push Button
Program ini merupakan program mengatur arah gerak LED kekiri dan
kekanan dengan saklar push button, dengan menggunakan instruksi awal
$regfile = "m16def.dat" merupakan pendeklarasian atau library yang
menyatakan bahwa mikrokontroller yang digunakan adalah ATMega16.
Selanjutnya instruksi $crystal = 1000000merupakan kecepatan kristal 1 juta
baris perclock.instruksi Dim A As Byte merupakan perintah dimana A
dideklarasikan dalam bentuk byte kemudian dilanjutkan dengan instruksi Do
merupakan Perintah Perulangan, program utama dimulai.selajutnya Portb =
&B00000001 merupakan suatu perintah dimana portb diset dengan nilai byte
dalam bilangan biner yaitu &B00000001artinya biner yang bersimbol 1 akan
menyala pada bit pertama(portB.0).Untuk mengatur LED berjalan kekiri dan
kekanan terlebih dahulu kita mengeset push button 2 (Q1) sebagai tombol
tekan yang akan memulai eksekusi maka digunakan instruksiBitwait Pinc.6 ,
Set, dan Bitwait Pinc.6 , Reset merupakan instruksi push button dimana
portc.6 sebagai push button 2 ketika diset/tekan kemudian direset/lepasprogram akan mulai melakukan eksekusi.kemudian dilanjutkan kembali
dengan instruksi Do sebagai penunjuk Perintah Perulangan.Untuk membuat
LED menyalah dari bit pertama sampai pada bit kedelapan (portB.0-portB.7)
ataupun dari bit kedelapan kebit pertama (portB.7-portB.0) digunakan
instruksi For A = 1 To 7 merupakan suatu perintah dimana variabel A
dijadikan sebagai penghitung Loop, sehingga akan terjadi proses Loop
sebanyak 7 kali.kemudian, dilanjutkan dengan instruksi Rotate Portb , Left
merupakan suatu perintah dimana setelah setiap kali proses looping nilai bit
dari portB = &B00000001 akan digeser kekiri sehingga nantinya akan menjadi
portB= &B00000010 kemudian lagi akan dirotate( putar) sehingga nantinya
akan menjadi portB= &B00000100, instruksi tersebut akan menampilkan LED
berjalan dari kiri ke kanan (bawah ke atas)dilanjutkan pada instruksi Waitms
100 merupakan Delay 100 milisecond, artinya perintah untuk memberi jeda
selama 100 ms. Sehingga ketika program dijalankan, tampilan tiap perubahan
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
17/20
memiliki jeda selama 100 ms.Instruksi If Pinc.1 = 1 Then, merupakan
instruksi dimana ketika kita menekan push button 2 (Q1) maka program akan
melakukan reset atau berhenti, selanjutnya instruksi Exit Do, dan End If
merupakan perintah memberhentikan program running LED sedangkan
instruksi Next merupakan perintah dimana ketika menekan push button 1
(Q0) program akan tetap berjalan. Selanjutnya kembali ke instruksi For A = 1
To 7 merupakan suatu perintah dimana variabel A dijadikan sebagai
penghitung Loop, sehingga akan terjadi proses Loop sebanyak 7 kali.
kemudian, dilanjutkan dengan instruksi Rotate Portb , Right merupakan
suatu perintah dimana setelah setiap kali proses looping nilai bit dari portB=
&B00000001 akan digeser kekanan sehingga nantinya akan menjadi portB=
&B10000000 kemudian lagi akan dirotate( putar) sehingga nantinya akan
menjadi portB= &B01000000, instruksi tersebut akan menampilkan LED
berjalan dari kanan ke kiri (atas ke bawah) dilanjutkan pada instruksi Waitms
100 merupakan Delay 100 milisecond, artinya perintah untuk memberi jeda
selama 100 ms. Sehingga ketika program dijalankan, tampilan tiap perubahan
memiliki jeda selama 100 ms.Selanjutnya kembali ke nstruksi If Pinc.1 = 1
Then,Exit Do, danEnd If sebagai perintah untuk memberhentikan programrunning LED. instruksi LoopmerupakanPerintah perulangan, ulangi ke awal
(mulai dari do) dan instruksi terakhir adalah End merupakan proses telah
selesai.
Mengambil Data Saklar Geser Dan Mengeluarkan ke LED
Program ini merupakan program mengambil data saklar geser dan
mengeluarkan ke LED, dengan menggunakan instruksi awal $regfile =
"m16def.dat" merupakan pendeklarasian atau library yang menyatakan
bahwa mikrokontroller yang digunakan adalah ATMega16. Selanjutnya
instruksi $crystal = 1000000 merupakan kecepatan kristal 1 juta baris
perclock. instruksi $hwstack = 32 merupakannilai default 32 yang dimiliki
hardware stack/tipe data abstrak . sama dengan instruksi $wstcak = 8
merupakan nilai default 32 yang dimiliki hardware stack/tipe data abstrak
Sedangkan instruksi $framesize = 24 merupakan framesize dengan nilai
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
18/20
default 24 perclock. Selanjutnya dilanjutkan instruksi Config Portb = Output
yang mengkonfigurasikan bahwa Port B menjadi output dan instruksi Config
Portc = Input merupakan suatu perintah dimana mengkonfigurasikan portC
sebagai input penghubung pada saklar.Selanjutnya instruksi Portb= &HFF
merupakan suatu perintah mengeset nilai pada portb yaitu 11111111 dengan
instruksi ini semua lampu nantinya akan menyalah pada portb,dilanjutkan
dengan instruksi Do merupakan Perintah Perulangan, program utama
dimulai.Instruksi Portb = Pinc merupakan suatu perintahdimana LED pada
portB dan LED pada PortC akan menyalah secara bersamaan ketika
menekan saklar S0 sampai saklar S7 atau terakhir. Begitupun sebaliknya,
ketika menonaktifkan saklar, maka LED pada portB dan portC akan mati
secara bersamaan. instruksi Loop merupakanPerintah perulangan, ulangi ke
awal (mulai dari do) dan instruksi terakhir adalah Endmerupakan proses telah
selesai.
Tantangan
Program untuk menyalakan led pada portB dan portD dengan ketentuan
(Jika pushbuttons 1 ditekan, maka semua led pada portB dan portD
menyala kedap-kedip, jika pushbuttons 2 ditekan, maka led pada portB
dan portD akan menyala secara zig-zag)
Dengan menggunakan instruksi awal $regfile = "m16def.dat"
merupakan pendeklarasian atau library yang menyatakan bahwa
mikrokontroller yang digunakan adalah ATMega16. Selanjutnya instruksi
$crystal = 1000000 merupakan kecepatan kristal 1 juta barisperclock.instruksi Config Portb = Outputdan Config Portd = Output suatu
perintah mengkonfigurasikan Port B menjadi output.instruksi Dim A As
Integer , C As Byte merupakan suatu perintah dimana A dideklarasikan
sebagai integer dan C dideklarasikan sebagai Byte ,kemudian instruksi C =
&B10000000 merupakan suatu instruksi dimana c sebagai byte diset dengan
nilai awal &B10000000 dilanjutkan dengan instruksi Domerupakan Perintah
Perulangan, program utama dimulai.instruksi Bitwait Pinc.0 , Setdan Bitwait
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
19/20
Pinc.0 , Reset merupakan instruksi push button dimana portc.0 sebagai push
button 1(Q0) ketika diset/tekan kemudian direset/lepas program akan mulai
melakukan eksekusi.kemudian dilanjutkan kembali dengan instruksi Do
sebagai penunjuk Perintah Perulangan.Selanjutnya instruksi Portb =
&B11111111 dan Portd = &B11111111 merupakan suatu peruntah mengeset
nilai &B11111111 pada portb dan portd sehingga kedua LED pada port
nantinya akan menyalah. selanjutnya, instruksi Waitms 30 merupakan Delay
30 milisecond, artinya perintah untuk memberi jeda selama 30 ms. Sehingga
ketika program dijalankan, tampilan tiap perubahan memiliki jeda selama 30
ms.selanjutnya instruksi Portb = &B00000000 dan Portd = &B00000000
merupakan suatu perintah mereset nilai dengan &B00000000 pada portb dan
portd sehingga kedua LED pada port nantinya akan mati/nonaktif. instruksi
Waitms 30 merupakan Delay 30 milisecond, artinya perintah untuk memberi
jeda selama 30 ms. Sehingga ketika program dijalankan, tampilan tiap
perubahan memiliki jeda selama 30 ms,selanjutnya instruksi If Pinc.1 = 1
Then merupakan instruksi dimana ketika kita menekan push button 2 (Q1)
maka program akan melakukan reset atau berhenti.Instruksi A=1 ,End if dan
Loop until A=1 merupakan suatu perintah untuk memberhentikan programrunning LED dilanjutkan dengan instruksi Do sebagai perintah perulangan.
Untuk membuat LED menyalah secara zig-zag digunakan instruksi portb= c
merupakan suatu perintah mengeset nilai portb dengan nilai C(byte) dimana
nilai C adalah &B10000000 dilanjutkan dengan instruksi Waitms 1000
merupakan Delay 1000 milisecond, artinya perintah untuk memberi jeda
selama 1000ms. Sehingga ketika program dijalankan, tampilan tiap perubahan
memiliki jeda selama 1000 ms dilanjutkan dengan instruksi Shift C,Right ,1merupakan suatu perintah dimana nilai C=&B10000000 akan digeser satu kali
kekanan sehingga nilai C = &B01000000.Selanjutnya instruksi portd=C
merupakan suatu perintah dimana portd akan diset dengan nilai pada C
sehingga nilai portd sekarang adalah &B01000000 kemudian kembali
dilanjutkan dengan instruksi Waitms 1000 merupakan Delay 1000
milisecond, artinya perintah untuk memberi jeda selama 1000ms. Sehingga
ketika program dijalankan, tampilan tiap perubahan memiliki jeda selama
7/22/2019 Laporan Push Button dan Saklar Mikrocontroller
20/20
1000 ms.selanjutnya kembali keinstruksi Shift C,Right ,1 merupakan suatu
perintah dimana nilai C=&B01000000 akan digeser satu kali kekanan
sehingga nilai C = &B00100000. Instruksi Loop Until Portb = &B00000000
merupakan suatu perintah perulangan dimana apabila nilai
portb=&B00000000 maka akan lanjut ke instruksi berikutnya, instruksi Loop
merupakanPerintah perulangan, ulangi ke awal (mulai dari do) dan instruksi
terakhir adalah Endmerupakan proses telah selesai.
J. KESIMPULAN