Sistem Antrian dengan
Mikrokontroler AVR
Mesin antrian atau sistem
antrian yang akan kita buat hampir mirip dengan yang terpasang di perkantoran,
tentu saja yang mempunyai loket. Bank, penjualan tiket KA, ruang pendaftaran
rumah sakit misalnya. Nah pada aplikasi mikrokontroler AVR kali ini kita akan
membuatnya dengan fitur yang sederhana dulu. Cukup tampilan angka, belum
memakai suara. Jadi tampilan nomor antrian dan nomor loket.
Siapkan mikrokontroler ATmega16, bisa juga pakai ATmega8535 atau
ATmega32, Enam digit seven segment.
Rangkaian seperti pada gambar.
Rangkaian seperti pada gambar.
Untuk nomor
loket dibuat 2 digit, ini fleksibel ya, boleh 3 digit hingga loket ke 999
(banyak banget..?) atau cukup 1 digit, yang mampu menangani loket 1 s/d 9.
Nomor antrian demikian juga, boleh anda buat 3 digit atau jumlah digit yang lain.
Programnya kita buat saja dengan BASCOM-AVR.
$regfile = “m16def.dat”
$crystal = 1000000
Config Portb = Output
Config Porta = Output
Config Portd = Input
Portd = &HFF
Dim I As Byte , J As Byte , Tem1 As Integer , Tem2 As Integer
Dim Rib As Integer , Rat As Integer , Pul As Integer , Sat As Integer
Dim Antrian As Word , Loket As Byte , Pul_loket As Integer , Sat_loket As Integer
Dim No_loket As Byte
Loket = 0
Antrian = 0
Do
If Pind.0 = 0 Then
Loket = 1
Incr Antrian
Waitms 100
Elseif Pind.1 = 0 Then
Loket = 2
Incr Antrian
Waitms 100
Elseif Pind.2 = 0 Then
Loket = 3
Incr Antrian
Waitms 100
End If
Nomor antrian demikian juga, boleh anda buat 3 digit atau jumlah digit yang lain.
Programnya kita buat saja dengan BASCOM-AVR.
$regfile = “m16def.dat”
$crystal = 1000000
Config Portb = Output
Config Porta = Output
Config Portd = Input
Portd = &HFF
Dim I As Byte , J As Byte , Tem1 As Integer , Tem2 As Integer
Dim Rib As Integer , Rat As Integer , Pul As Integer , Sat As Integer
Dim Antrian As Word , Loket As Byte , Pul_loket As Integer , Sat_loket As Integer
Dim No_loket As Byte
Loket = 0
Antrian = 0
Do
If Pind.0 = 0 Then
Loket = 1
Incr Antrian
Waitms 100
Elseif Pind.1 = 0 Then
Loket = 2
Incr Antrian
Waitms 100
Elseif Pind.2 = 0 Then
Loket = 3
Incr Antrian
Waitms 100
End If
Rib
= Antrian / 1000
Tem1 = Antrian Mod 1000
Rat = Antrian / 100
Tem2 = Antrian Mod 100
Pul = Antrian / 10
Sat = Antrian Mod 10
Pul_loket = Loket / 10
Sat_loket = Loket Mod 10
Tem1 = Antrian Mod 1000
Rat = Antrian / 100
Tem2 = Antrian Mod 100
Pul = Antrian / 10
Sat = Antrian Mod 10
Pul_loket = Loket / 10
Sat_loket = Loket Mod 10
Portb = &B000001
Porta = Lookup(pul_loket , Angka)
Waitms 5
Portb = &B000010
Porta = Lookup(sat_loket , Angka)
Waitms 5
Portb = &B000100
Porta = Lookup(rib , Angka)
Waitms 5
Portb = &B001000
Porta = Lookup(rat , Angka)
Waitms 5
Portb = &B010000
Porta = Lookup(pul , Angka)
Waitms 5
Portb = &B100000
Porta = Lookup(sat , Angka)
Waitms 5
Angka:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90
Porta = Lookup(pul_loket , Angka)
Waitms 5
Portb = &B000010
Porta = Lookup(sat_loket , Angka)
Waitms 5
Portb = &B000100
Porta = Lookup(rib , Angka)
Waitms 5
Portb = &B001000
Porta = Lookup(rat , Angka)
Waitms 5
Portb = &B010000
Porta = Lookup(pul , Angka)
Waitms 5
Portb = &B100000
Porta = Lookup(sat , Angka)
Waitms 5
Angka:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90
Tombol dipakai untuk memanggil nomor antrian. Ketika tombol di
loket 1 ditekan maka nomor antrian akan bertambah 1 dan tampilan nomor loket
berupa angka ‘1’. Demikian juga jika tombol 3 ditekan, nomor antrian akan
bertambah dan tampilan nomor loket menjadi ‘3’.
Selamat
mencoba…..
0 komentar:
Posting Komentar