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

Popular posts from this blog