Pada postingan sebelumnya (http://handikadc7.blogspot.co.id/2017/04/flowchart-perancangan-penghitung.html
) saya sudah menjelaskan flowchart tentang penghitung pengunjung pada
perpustakaan. Pada kali ini saya akan membahas mengenai listig program dari
penghitung pengunjung pada perpustakaan tersebut. Dibawah ini merupakan contoh
listing program beserta penjelasannya pada mikrokontrolerATMega16 dengan
Software BASCOM-AVR.
$regfile
= "m16def.dat"
$crystal = 8000000
Config Porta = Output Inisialisasi
Config Portc = Output
Config Portd = Input
Portd = &HFF
S1 Alias Pind.0 'Sensor Counter Up
S2 Alias Pind.1 'Sensor Counter Down
Dim K As Integer 'Kondisi
Dim O(2) As Integer 'Data keluaran 7Segmen
Dim U As Integer 'Untuk Perulangan
Dim N As Integer
K = 0
N = 0
Do 'Program Utama
If S1 = 0 Then K = 1 'Jika sensor counter up aktif, maka menghasilkan kondisi 1'
If S2 = 0 Then K = 2 'Jika sensor counter down aktif, maka menghasilkan kondisi 2'
If K = 1 Then 'Jika kondisi 1,, maka akan menambahkan nilai N'
Incr N
Elseif K = 2 Then 'Jika kondisi 2,, maka akan mengurangi nilai N'
Decr N
End If
O(1) = N / 10
O(2) = N Mod 10
Portc = Lookup(o(2) , Segmen) 'Keluarkan Data Satuan Di Portc'
Porta = Lookup(o(1) , Segmen) 'Keluarkan Data Puluhan Di Porta'
Waitms 300
Loop
Segmen:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90
$crystal = 8000000
Config Porta = Output Inisialisasi
Config Portc = Output
Config Portd = Input
Portd = &HFF
S1 Alias Pind.0 'Sensor Counter Up
S2 Alias Pind.1 'Sensor Counter Down
Dim K As Integer 'Kondisi
Dim O(2) As Integer 'Data keluaran 7Segmen
Dim U As Integer 'Untuk Perulangan
Dim N As Integer
K = 0
N = 0
Do 'Program Utama
If S1 = 0 Then K = 1 'Jika sensor counter up aktif, maka menghasilkan kondisi 1'
If S2 = 0 Then K = 2 'Jika sensor counter down aktif, maka menghasilkan kondisi 2'
If K = 1 Then 'Jika kondisi 1,, maka akan menambahkan nilai N'
Incr N
Elseif K = 2 Then 'Jika kondisi 2,, maka akan mengurangi nilai N'
Decr N
End If
O(1) = N / 10
O(2) = N Mod 10
Portc = Lookup(o(2) , Segmen) 'Keluarkan Data Satuan Di Portc'
Porta = Lookup(o(1) , Segmen) 'Keluarkan Data Puluhan Di Porta'
Waitms 300
Loop
Segmen:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90