Thursday 12 December 2013

Memfungsikan 4 tombol di rangkaian sismin atmega 16

Saya punya kasus yang cukup menarik yaitu:
Pada rangkaain sismin ini ada 4 tombol dan 8 lampu, saya ingin ke empat tombol ini berfungsi semua. Ketentuannya adalah:

  • Tombol 1 ditekan: lampu mati 1, lalu yang mati bergeser 1 demi 1, gerakan ke kiri
  • Tombol 2 ditekan: lampu mati 1, lalu yang mati bergeser 1 demi 1, gerakan ke kanan
  • Tombol 3 ditekan: semua lampu kedip-kedip
  • Tombol 4 ditekan: hanya lampu 1 yang berkedip
Jadi disini fungsi tombol 1 sampai tombol 4 berbeda-beda, dengan kondisi awal lampu mati.



Pemecahan:
1. Buka Bascom-AVR, lalu ketik kode berikut:

'kombinasi
$regfile = "m16def.dat"
$crystal = 12000000
Dim A As Integer
Dim B As Integer
Dim A1 As Bit
Dim A2 As Bit
Dim A3 As Bit
Dim A4 As Bit
Config Portb = Input
Config Portc = Output
Declare Sub Kiri()
Declare Sub Kanan()
Declare Sub Kedip()
Declare Sub 1_lampu()
Do
Portc = 255
A1 = Pinb.0
A2 = Pinb.1
A3 = Pinb.2
A4 = Pinb.3
If A1 = 0 Then
Call Kiri
End If
If A2 = 0 Then
Call Kanan
End If
If A3 = 0 Then
Call Kedip
End If
If A4 = 0 Then
Call 1_lampu
End If
Loop
End

Sub Kiri()
A = 1
For B = 0 To 8
Portc = A
Shift A , Left , 1
Waitms 50
Next
End Sub
Sub Kanan()
A = 128
For B = 0 To 8
Portc = A
Shift A , Right , 1
Waitms 50
Next
End Sub
Sub Kedip()
For B = 0 To 8
Portc = 0
Waitms 50
Portc = 255
Waitms 50
Next
End Sub
Sub 1_lampu()
For B = 0 To 5
Portc = 254 'lampu 1 nyala, karena 255-1
Waitms 50
Portc = 255 'semua mati
Waitms 50
Next
End Sub

2. Lalu compile
3. Buka rangkaian sismin atmega 16, atau buat dengan proteus seperti berikut:
4. Masukkan Programnya

5. Klik Play

6. Berikut Hasilnya:

Download Kode Bascom-AVR
Sekian dari saya, selamat mencoba dan berkreasi

Artikel Terkait

1 comment:

 

Disclaimer

Penulis tidak bertanggung jawab atas kerugian yang ditimbulkan atas penggunaan artikel ini, karena ini hanya sbg pengetahuan

Followers

Site Info

free counters