Kadangkala kita membutuhkan aplikasi jam digital tanpa menggunakan real time clock untuk pewaktuan-pewaktuan yang tidak membutuhkan presisi tinggi.
Berikut adalah program jam digital tanpa RTC yang dibuat dengan Bascom AVR
$regfile = "m32def.dat"
$crystal = 11059200
$baud = 9600
Config Portd = Input
T_jam Alias Pind.2
T_menit Alias Pind.3
T_set Alias Pind.4
Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0
Config Lcd = 16 * 2
Cursor Off
Cls
Lcd " JAM "
Lowerline
Lcd " DIGITAL "
Wait 2
Dim Pengali As Word
Dim Detik_1 As Byte
Dim Detik As Byte
Dim Menit As Byte
Dim Hari As Byte
Dim Jam As Word
Config Timer0 = Timer , Prescale = 256
Config Debounce = 3
'========================ATUR WAKTU==============================================================================
Set_waktu:
Cls
Cursor Off
Upperline
Lcd " Atur Jam "
Waitms 300
Do
Jam_set:
Waitms 300
Locate 2 , 6
Lcd Jam ; " : " ; Menit
If T_jam = 0 Then
Jam = Jam + 1
Waitms 100
Else
If Jam = 24 Then
Jam = 0
Else
If T_set = 0 Then
Waitms 100
Goto Menit_set
Else
Goto Jam_set
End If
End If
End If
Loop
Menit_set:
Cls
Locate 1 , 1
Lcd " Atur menit "
Menit_set2:
Do
Waitms 300
Locate 2 , 6
Lcd Jam ; " : " ; Menit
If T_menit = 0 Then
Menit = Menit + 1
Waitms 100
Else
If Menit = 60 Then
Menit = 0
Else
If T_set = 0 Then
Waitms 100
Cls
Goto Mulai
Else
Goto Menit_set2
End If
End If
End If
Loop
'================================ MULAI ALATNYA ========================================================
Mulai:
'pengaktifan interupsi timer
On Ovf0 Int_timer0
'pengaktifan timer0
Enable Timer0
Enable Interrupts
Wait 2
Cls
'========================================================================
Do
Waitms 100
Locate 1 , 1
Lcd "T "
Locate 1 , 3
Lcd Jam ;
Locate 1 , 5
Lcd ":" ;
Locate 1 , 6
Lcd Menit ;
Locate 1 , 8
Lcd ":" ;
Locate 1 , 9
Lcd Detik ;
Wait 1
Loop
Int_timer0:
Incr Pengali
If Pengali > 0 Then
Pengali = 0
Incr Detik_1
End If
If Detik_1 > 99 Then
Detik_1 = 0
Incr Detik
End If
If Detik > 59 Then
Detik = 0
Incr Menit
End If
If Menit > 59 Then
Menit = 0
Incr Jam
End If
If Jam > 24 Then
Jam = 0
Incr Hari
End If
Return
Tidak ada komentar:
Posting Komentar