JAM DIGITAL 7 Segment AT89s52
JAM DIGITAL 7 Segment AT89s52
![]() |
Ukuran PCB 100 mm x 100 mm |
program JAM DIGITAL 7 Segment AT89s52 menggunakan BASCOM 8051
$crystal = 12000000
' ------------------------------------------alokasi memori-----------------------------------------'
Dim Detik_sat As Byte , Detik_pul As Byte
Dim Menit_sat As Byte , Menit_pul As Byte
Dim Jam_sat As Byte , Jam_pul As Byte
Dim X As Word , Data_segment As Byte
'-----------------------------------Konfigurasi interupsi------------------------------------------'
Porta Alias P2
Portd.0 Alias P3.0
Portd.1 Alias P3.1
Portd.2 Alias P3.2
Portd.3 Alias P3.3
Portd.4 Alias P3.4
Portd.5 Alias P3.5
Pinb.0 Alias P0.0
Pinb.1 Alias P0.1
Portd Alias P3
P2 = 255
P3 = 255
Portb Alias P0
P0 = 255
P1 = 0
'----------------------------------Program utama----------------------------------------------------'
Do
Gosub Baca_tombol 'Gosub Display_detik
Gosub Kalkulasi
Gosub Tampil_segment
Incr Detik_sat
Loop
'---------------------------------------Sub Program--------------------------------------------------'
Kalkulasi:
If Detik_sat = 10 Then
Detik_sat = 0
Incr Detik_pul
End If
If Detik_pul = 6 Then
Detik_pul = 0
Incr Menit_sat
End If
If Menit_sat = 10 Then
Menit_sat = 0
Incr Menit_pul
End If
If Menit_pul = 6 Then
Menit_pul = 0
Incr Jam_sat
End If
If Jam_sat = 10 Then
Jam_sat = 0
Incr Jam_pul
End If
If Jam_pul = 1 And Jam_sat = 2 Then
Jam_sat = 0
Jam_pul = 0
End If
Return
'------------------------------------Tampilan------------------------------------'
Tampil_segment:
For X = 1 To 157
Portd = &B01000000
Data_segment = Lookup(detik_sat , 7_seg1)
P1 = Not Data_segment
Waitms 1
Portd = &B00100000
Data_segment = Lookup(detik_pul , 7_seg)
Porta = Not Data_segment
Waitms 1
Portd = &B00000001
Data_segment = Lookup(menit_sat , 7_seg)
Porta = Not Data_segment
Waitms 1
Portd = &B00000010
Data_segment = Lookup(menit_pul , 7_seg)
Porta = Not Data_segment
Waitms 1
Portd = &B00000100
Data_segment = Lookup(jam_sat , 7_seg)
Porta = Not Data_segment
Waitms 1
Portd = &B00001000
Data_segment = Lookup(jam_pul , 7_seg)
Porta = Not Data_segment
Waitms 1
Next X
Portd = 255
Return
'-------------------------------------Baca tombol-------------------------------------'
Baca_tombol:
If Pinb.0 = 0 Then
Incr Menit_sat
Gosub Tampil_segment
End If
If Pinb.1 = 0 Then
Incr Jam_sat
Gosub Tampil_segment
End If
Return
'--------------------------------------Data 7-segment-----------------------------------------
7_seg:
Data &B00111111 '0
Data &B00000110 '1
Data &B11011011 '2
Data &B11001111 '3
Data &B11100110 '4
Data &B01101101 '5
Data &B01111101 '6
Data &B10000111 '7
Data &B11111111 '8
Data &B11101111 '9
Return
7_seg1:
Data &B00000000
Data &B10000000
Data &B00000000
Data &B10000000
Data &B00000000
Data &B10000000
Data &B00000000
Data &B10000000
Data &B00000000
Data &B10000000
Return
Semoga membantu dengan postingan program JAM DIGITAL 7 Segment AT89s52 menggunakan BASCOM 8051