Aplikasi ini adalah membuat jam digital dengan tampilan 7-segmen sebanyak 4 digit (jam dan menit), 7-segmen dibuat dengan menyusun beberapa LED yang menyusun menjadi seperti pada gambar.

7 segmen dibuat besar biar orang melihat dari kejauhan dapat dilihat, kaya di trafigh light itu lo, jadi mbah-mbah kalo malem kebangun bisa tau sekarang jam brapa, apalagi kalo malem led ini bisa difungsikan sebagai penerangan ruangan, jadi kaya di warung remang-remang.

Dalam aplikasi ini kita ga banyak membahas tentang jam digital ini, yang jelas ya mass ato mba….rangkaianya seperti pada gambar dibawah ini:

Pada rangkaian terdapat backup batre jam kaya di mainboard computer (yang bikin jam mimpi pengin nyolder mainboard computer sih). Jadi apabila listrik PLN anjlok/turun/pokoknya mati lah jam masih bisa ngitung timernya dan kalo listrik hidup lagi kita ga perlu tunyu-tunyuan pushbutton lagi, tapi batre ini ga untuk ngidupin lednya (ga kuat alias cepet mate), Cuma mikrone to…!, waktu bikin kita coba batre ini bisa bertahan sampe 3 hari (termasuk sangar….lo),dimungkinkan bisa lebih lama lagi, soalnya yang nyuruh ngtes batre ini minggat / melarikan diri……….
Untuk programnya intinya make dua fasilitas interupsi timer, Int timer 0 buat ngitung detik dan int timer 1 buat kedip-kedip ditengah-tengah……angka, jadi kelihatan jam itu hidup kaya lampu disko.
Berhubung bingung apa yang mau dikatakan,, akhirnya langsung aja programnya seperti pada pencet disini.
Biar lebih sangar lagi, program ditampilkan dibawah ini (soale labele ora saru-saru)
Thanks buat shindu dan No thanks buat sulis
;**********************************************************
;Program JAM DIGITAL
;**********************************************************
RATUSANJAM EQU 30H
PULUHANJAM EQU 31H
SATUANJAM EQU 32H
RATUSANMENIT EQU 33H
PULUHANMENIT EQU 34H
SATUANMENIT EQU 35H
JAMPULUHAN EQU 36H
JAMSATUAN EQU 37H
MENITPULUHAN EQU 38H
MENITSATUAN EQU 39H
DETIKPULUHAN EQU 40H
DETIKSATUAN EQU 41H
JAM EQU 42H
MENIT EQU 43H
DETIK EQU 44H
COUNTER20 EQU 45H
COUNTER_TITIK EQU 46H
TITIK BIT P3.5
;**********************************************************
;Program UTAMA
;**********************************************************
Org 0000H
SJMP MULAI
ORG 0BH
LJMP INTERUPSI_TIMER0
ORG 1BH
LJMP INTERUPSI_TIMER1
MULAI: MOV DETIK,#0
MOV MENIT,#0
MOV JAM,#0
CALL INISIALISASI_TIMER
LOOP: CALL TAMPIL_JAM
JB P3.6,LOOP1
SJMP SET_JAM
LOOP1: JB P3.7,LOOP
SJMP SET_MENIT
;**********************************************************
;Program SETTING JAM DAN MENIT
;**********************************************************
SET_JAM:MOV R7,JAM
SET_1: MOV A,R7
CALL BIN_KE_DEC_JAM
CALL TAMPIL_KE_7SEG
JB P3.6,KELUAR1
INC R7
ACALL DELAY
CJNE R7,#24D,SET_1
MOV R7,#0
KELUAR1:
MOV JAM,R7
AJMP LOOP
SET_MENIT:MOV R6,MENIT
SET_2: MOV A,R6
CALL BIN_KE_DEC_MENIT
CALL TAMPIL_KE_7SEG
JB P3.7,KELUAR2
INC R6
ACALL DELAY
CJNE R6,#60D,SET_2
MOV R6,#0
KELUAR2:
MOV MENIT,R6
AJMP LOOP
;**********************************************************
;Program INISIALISASI TIMER
;**********************************************************
INISIALISASI_TIMER:
MOV TMOD,#00010001B
MOV TL0,#0B0H
MOV TH0,#03CH
SETB ET0
SETB ET1
SETB EA
SETB TR0
SETB TR1
RET
;**********************************************************
;Program INTERUPSI TIMER
;**********************************************************
INTERUPSI_TIMER0:
MOV TL0,#0B0H
MOV TH0,#03CH
DJNZ COUNTER20,ENDINTERUPSI
MOV COUNTER20,#20
CALL HITUNG_JAM
ENDINTERUPSI:
RETI
INTERUPSI_TIMER1:
MOV TL1,#0B0H
MOV TH1,#03CH
DJNZ COUNTER_TITIK,END_INTERUPSI
MOV COUNTER_TITIK,#10
cpl titik
END_INTERUPSI:
RETI
;**********************************************************
;Program HITUNG JAM
;**********************************************************
HITUNG_JAM:
INC DETIK
MOV A,DETIK
CJNE A,#60,UPDATE
MOV DETIK,#0
SATU_MENIT:
INC MENIT
MOV A,#60
CJNE A,MENIT,UPDATE
MOV MENIT,#0
SATU_JAM:
INC JAM
MOV A,#24
CJNE A,JAM,UPDATE
MOV JAM,#0
UPDATE:
MOV A,DETIK
MOV B,#10
DIV AB
MOV DETIKPULUHAN,A
MOV DETIKSATUAN,B
MOV A,MENIT
MOV B,#10
DIV AB
MOV MENITPULUHAN,A
MOV MENITSATUAN,B
MOV A,JAM
MOV B,#10
DIV AB
MOV JAMPULUHAN,A
MOV JAMSATUAN,B
RET
;**********************************************************
;Program TAMPIL JAM KE 7SEGMENT
;**********************************************************
TAMPIL_JAM:
MOV DPTR,#DATA7SEGMEN
MOV A,JAMPULUHAN
MOVC A,@A+DPTR
MOV P0,A
CLR P1.0
SETB P1.1
SETB P1.2
SETB P1.3
CALL DELAY
MOV DPTR,#DATA7SEGMEN
MOV A,JAMSATUAN
MOVC A,@A+DPTR
MOV P0,A
SETB P1.0
CLR P1.1
SETB P1.2
SETB P1.3
CALL DELAY
MOV DPTR,#DATA7SEGMEN
MOV A,MENITPULUHAN
MOVC A,@A+DPTR
MOV P0,A
SETB P1.0
SETB P1.1
CLR P1.2
SETB P1.3
CALL DELAY
MOV DPTR,#DATA7SEGMEN
MOV A,MENITSATUAN
MOVC A,@A+DPTR
MOV P0,A
SETB P1.0
SETB P1.1
SETB P1.2
CLR P1.3
CALL DELAY
RET
;**********************************************************
;Program TAMPIL SETING KE 7SEGMENT
;**********************************************************
TAMPIL_KE_7SEG:
MOV R5,#15
LAGI: MOV A,PULUHANJAM
MOV DPTR,#DATA7SEGMEN
MOVC A,@A+DPTR
MOV P0,A
CLR P1.0
SETB P1.1
SETB P1.2
SETB P1.3
CALL DELAY
MOV A,SATUANJAM
MOV DPTR,#DATA7SEGMEN
MOVC A,@A+DPTR
MOV P0,A
SETB P1.0
CLR P1.1
SETB P1.2
SETB P1.3
CALL DELAY
MOV A,PULUHANMENIT
MOV DPTR,#DATA7SEGMEN
MOVC A,@A+DPTR
MOV P0,A
SETB P1.0
SETB P1.1
CLR P1.2
SETB P1.3
CALL DELAY
MOV A,SATUANMENIT
MOV DPTR,#DATA7SEGMEN
MOVC A,@A+DPTR
MOV P0,A
SETB P1.0
SETB P1.1
SETB P1.2
CLR P1.3
CALL DELAY
DJNZ R5,LAGI
RET
;**********************************************************
;Program BINER KE DESIMAL
;**********************************************************
BIN_KE_DEC_JAM:
MOV B,#100
DIV AB
MOV RATUSANJAM,A
MOV A,B
MOV B,#10
DIV AB
MOV PULUHANJAM,A
MOV SATUANJAM,B
RET
BIN_KE_DEC_MENIT:
MOV B,#100
DIV AB
MOV RATUSANMENIT,A
MOV A,B
MOV B,#10
DIV AB
MOV PULUHANMENIT,A
MOV SATUANMENIT,B
RET
;**********************************************************
;Program WAKTU TUNDA
;**********************************************************
DELAY: MOV R0,#0
DELAY1: MOV R2,#5
DJNZ R2,$
DJNZ R0,DELAY1
RET
;**********************************************************
DATA7SEGMEN:
db 00111111b
db 00000110b
db 01011011b
db 01001111b
db 01100110b
db 01101101b
db 01111101b
db 00000111b
db 01111111b
db 01101111b
end