Kita akan membuat led berjalan 2 kali ke kiri dan dua kali ke kanan secara berulang, berikut program pada bascom avrnya:
$regfile = "m32def.dat"
$crystal = 8000000
Config Porta = Input
Config Portb = Output
Tombol Alias Pina.0
Lampu Alias Portb
Porta = &B00000000
Dim X As Byte
Do
If Tombol = 1 Then
For X = 1 To 2
Lampu = &B00000001
Waitms 100
Lampu = &B00000010
Waitms 100
Lampu = &B00000100
Waitms 100
Lampu = &B00001000
Waitms 100
Lampu = &B00010000
Waitms 100
Lampu = &B00100000
Waitms 100
Lampu = &B01000000
Waitms 100
Lampu = &B10000000
Waitms 100
Next
For X = 1 To 2
Lampu = &B10000000
Waitms 100
Lampu = &B01000000
Waitms 100
Lampu = &B00100000
Waitms 100
Lampu = &B00010000
Waitms 100
Lampu = &B00001000
Waitms 100
Lampu = &B00000100
Waitms 100
Lampu = &B00000010
Waitms 100
Lampu = &B00000001
Waitms 100
Next
End If
Loop
Pembahasan Program :
$regfile = "m32def.dat" library yang menyatakan bahwa mikrokontroller yang kita pakai adalah atmega32,
$crystal = 8000000 meyatakan bahwa clock oscillator yang kita pakai sebesar 8Mhz,
Config Porta = Input pengkonfigurasian bahwa porta menjadi input
Config Portb = Output pengkonfigurasian bahwa porta menjadi output
Porta = &B00000000 menyatakan bahwa keadaan awal pada portb semuanya logic low(0)
Tombol Alias Pina.0 = inisialisasi bahwa tombol adalah dipina.0
Lampu Alias Portb = inisialisasi bahwa lampu adalah portb
Dim X As Byte = pendeklarasian bahwa variable X adalah tipe byte dimana rangenya adalah 0-255,
Do-loop = perintah perulangan,
If Tombol = 1 Then menyatakan jika tombol =1 /logic high maka
For X = 1 To 2 yang menyatakan perulangan 2 kali,
Lampu = &B00000001 ini bearti led paling kanan / led 1 hidup
Waitms 100 dengan delay 100 milisecond
Begitu seterusnya Selamat mencoba…!