Dapet tugas sekolah, UKK (Uji Kompetensi Kejuruan) yaitu membuat tampilan counter 7-segmen, cukup menantang walau sebelumnya belum pernah mencoba, sempet nyari2 di google dan akhirnya dapet caranya, menggunakan command lookup(), sempet bingung karena rumit banyak cara yang di gunakan untuk mencacah bilangan dari 00-59, dan akhirnya menemukan cara yang mudah yang saya temukan sendiri...
Cara kerja yang saya buat saat UKK yaitu ada 3 tombol:
dan berikut script bascom-nya
Cara kerja yang saya buat saat UKK yaitu ada 3 tombol:
- Tombol 1 di tekan 7-segmen akan menghitung secara naik (increment) dari 00-59
- Tombol 2 di tekan 7-segmen akan menghitung secara Menurun (decrement) dari 59-00
- Tombol 1 di tekan 7-segmen akan berhenti di posisi terakhir, beberapa detik kemudian 7-segmen akan berkedip selama 3x dan 7-segmen akan menunjukan angka 00
dan berikut script bascom-nya
$regfile = "m16def.dat"
$crystal = 8000000
Config Porta = Output
Config Portc = Output
Config Portd = Input
Portd = &HFF
S1 Alias Pind.0 'Switch Counter Up
S2 Alias Pind.1 'Switch Counter Down
S3 Alias Pind.2 'Switch Stop
Dim K As Integer 'Kondisi
Dim S As Integer 'Satuan
Dim P As Integer 'Puluhan
Dim U As Integer 'Untuk Perulangan
K = 0
S = 0
P = 0
Do 'program Utama
If S1 = 0 Then K = 1 'switch counter up
If S2 = 0 Then K = 2 'switch counter down
If S3 = 0 Then K = 3 'switch Stop
If K = 1 Then '----counter up----
Incr S
If S = 10 Then
S = 0
Incr P
End If
If P = 6 Then
P = 0
End If
End If
If K = 2 Then '----counter down----
Decr S
If S = -1 Then
S = 9
Decr P
End If
If P = -1 Then
P = 5
End If
End If
If K = 3 Then '----Counter Stop, blink n then Counter 0----
Wait 1
For U = 0 To 3
Portc = Lookup(s , Segmen)
Porta = Lookup(p , Segmen)
Waitms 300
Portc = &HFF
Porta = &HFF
Waitms 300
Next U
S = 0
P = 0
K = 0
End If
Portc = Lookup(s , Segmen) 'Keluarkan Data Satuan Di PortC
Porta = Lookup(p , Segmen) 'Keluarkan Data Puluhan Di PortC
Waitms 100
Loop
Segmen:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H9
$crystal = 8000000
Config Porta = Output
Config Portc = Output
Config Portd = Input
Portd = &HFF
S1 Alias Pind.0 'Switch Counter Up
S2 Alias Pind.1 'Switch Counter Down
S3 Alias Pind.2 'Switch Stop
Dim K As Integer 'Kondisi
Dim S As Integer 'Satuan
Dim P As Integer 'Puluhan
Dim U As Integer 'Untuk Perulangan
K = 0
S = 0
P = 0
Do 'program Utama
If S1 = 0 Then K = 1 'switch counter up
If S2 = 0 Then K = 2 'switch counter down
If S3 = 0 Then K = 3 'switch Stop
If K = 1 Then '----counter up----
Incr S
If S = 10 Then
S = 0
Incr P
End If
If P = 6 Then
P = 0
End If
End If
If K = 2 Then '----counter down----
Decr S
If S = -1 Then
S = 9
Decr P
End If
If P = -1 Then
P = 5
End If
End If
If K = 3 Then '----Counter Stop, blink n then Counter 0----
Wait 1
For U = 0 To 3
Portc = Lookup(s , Segmen)
Porta = Lookup(p , Segmen)
Waitms 300
Portc = &HFF
Porta = &HFF
Waitms 300
Next U
S = 0
P = 0
K = 0
End If
Portc = Lookup(s , Segmen) 'Keluarkan Data Satuan Di PortC
Porta = Lookup(p , Segmen) 'Keluarkan Data Puluhan Di PortC
Waitms 100
Loop
Segmen:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H9
*update ....
berikut adalah cara baru untuk mencacah angka yang akan di tampilkan oleh 7Segmen.
berikut adalah cara baru untuk mencacah angka yang akan di tampilkan oleh 7Segmen.
$regfile = "m16def.dat"
$crystal = 8000000
Config Porta = Output
Config Portc = Output
Config Portd = Input
Portd = &HFF
S1 Alias Pind.0 'Switch Counter Up
S2 Alias Pind.1 'Switch Counter Down
S3 Alias Pind.2 'Switch Stop
Dim K As Integer 'Kondisi
Dim O(2) As Integer 'Data Out 7Segmen
Dim U As Integer 'Untuk Perulangan
Dim N As Integer
K = 0
N = 0
Do 'program Utama
If S1 = 0 Then K = 1 'switch counter up
If S2 = 0 Then K = 2 'switch counter down
If S3 = 0 Then K = 3 'Switch Stop
If K = 1 Then '----counter up----
Incr N
Elseif K = 2 Then '----counter down----
Decr N
Elseif K = 3 Then '----Counter Stop, blink n then Counter 0----
Wait 1
For U = 0 To 3
Porta = Lookup(o(1) , Segmen)
Portc = Lookup(o(2) , Segmen)
Waitms 300
Portc = &HFF
Porta = &HFF
Waitms 300
Next U
N = 0
K = 0
End If
If N = 60 Then N = 0
If N = -1 Then N = 59
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 PortC
Waitms 300
Loop
Segmen:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90
$crystal = 8000000
Config Porta = Output
Config Portc = Output
Config Portd = Input
Portd = &HFF
S1 Alias Pind.0 'Switch Counter Up
S2 Alias Pind.1 'Switch Counter Down
S3 Alias Pind.2 'Switch Stop
Dim K As Integer 'Kondisi
Dim O(2) As Integer 'Data Out 7Segmen
Dim U As Integer 'Untuk Perulangan
Dim N As Integer
K = 0
N = 0
Do 'program Utama
If S1 = 0 Then K = 1 'switch counter up
If S2 = 0 Then K = 2 'switch counter down
If S3 = 0 Then K = 3 'Switch Stop
If K = 1 Then '----counter up----
Incr N
Elseif K = 2 Then '----counter down----
Decr N
Elseif K = 3 Then '----Counter Stop, blink n then Counter 0----
Wait 1
For U = 0 To 3
Porta = Lookup(o(1) , Segmen)
Portc = Lookup(o(2) , Segmen)
Waitms 300
Portc = &HFF
Porta = &HFF
Waitms 300
Next U
N = 0
K = 0
End If
If N = 60 Then N = 0
If N = -1 Then N = 59
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 PortC
Waitms 300
Loop
Segmen:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90
download
http://adf.ly/1ZKzdu
http://adf.ly/1ZKzTs
Password Rar: ganyang-angkara.blogspot.com
moga bermanfaat bagi agan-agan yang ingin mencobanya,
moga berhasil mencobanya..
*..sesama blogger harus saling menghargai, jika agan-agan ingin mengcopas harap cantumkan alamat urlnya, Terimakasih..*