DSEG
org 20H
pencacah2: DS 1
pencacah10: DS 1
pencacah60: DS 1
detik: DS 1
detikpul: DS 1
detiksat: DS 1
menit: DS 1
menitpul: DS 1
menitsat: DS 1
jam: DS 1
jampul: DS 1
jamsat: DS 1
ROM EQU 0
konstantawaktu EQU -50000
CSEG
ORG ROM
LJMP MULAI
org ROM+3H
RETI
org ROM+0BH
AJMP detikinterrupt
org ROM+13H
RETI
org ROM+1BH
RETI
org rom+23H
RETI
MULAI:
MOV pencacah2,#2
MOV pencacah10,#10
MOV pencacah60,#60
MOV detik,#0
MOV menit,#0
Mov jam,#0
Tampil: acall perbaruitampilan
MOV TMOD,#01H
MOV TH0,#High konstantawaktu
MOV TL0,#Low konstantawaktu
SETB ET0
SETB EA
SETB TR0
Utama:
acall perbaruitampilan
MOV p0,#0FFH
MOV p2,detikpul
MOV p0,#0FDH
acall tunggusebentar
MOV p0,#0FFH
MOV p2,detiksat
MOV p0,#0FEH
acall tunggusebentar
acall perbaruitampilan
MOV p0,#0FFH
MOV p2,menitPul
MOV p0,#0FEH
acall tunggusebentar
MOV p0,#0FFH
MOV p2,menitSat
MOV p0,#0FEH
acall tunggusebentar
MOV p0,#0FFH
MOV p2,jamPul
MOV p0,#0FDH
acall tunggusebentar
MOV p0,#0FFH
MOV p2,jamsat
MOV p0,#0FEH
acall tunggusebentar
JMP Utama
tunggusebentar:
MOV R6,#3
tunggulagi:
MOV R7,#175
DJNZ R7,$
DJNZ R6,tunggulagi
MOV R6,#0FFH
RET
detikinterrupt:
push PSW
push Acc
MOV TL0,#Low konstantawaktu
MOV TH0,#High konstantawaktu
DJNZ pencacah10,selesaiInterupsi
MOV pencacah10,#10
DJNZ pencacah2,selesaiInterupsi
MOV pencacah2,#2
acall clok
selesaiInterupsi:
pop Acc
pop PSW
RETI
clok:
satudetik:
INC detik
MOV A,detik
CJNE A,#60,selesai
MOV detik,#0
INC menit
MOV A,menit
CJNE A,#59,selesai
MOV detik,#0
selesai:
RET
perbaruitampilan:
MOV R0,#detikpul
MOV A,menit
ruasduadigit:
MOV B,#10
DIV AB
acall ruassatudigit
MOV A,B
ruassatudigit:
MOV @R0,A
INC R0
jadikanruas:
INC A
MOVC A,@A+pc
RET
kombinasiruas:
; -abcdefg
DB 10000001B ;0
DB 11001111B ;1
DB 10010010B ;2
DB 10000110B ;3
DB 11001100B ;4
DB 10100100B ;5
DB 10100000B ;6
DB 10001111B ;7
DB 10000000B ;8
DB 10000100B ;9
END
org 20H
pencacah2: DS 1
pencacah10: DS 1
pencacah60: DS 1
detik: DS 1
detikpul: DS 1
detiksat: DS 1
menit: DS 1
menitpul: DS 1
menitsat: DS 1
jam: DS 1
jampul: DS 1
jamsat: DS 1
ROM EQU 0
konstantawaktu EQU -50000
CSEG
ORG ROM
LJMP MULAI
org ROM+3H
RETI
org ROM+0BH
AJMP detikinterrupt
org ROM+13H
RETI
org ROM+1BH
RETI
org rom+23H
RETI
MULAI:
MOV pencacah2,#2
MOV pencacah10,#10
MOV pencacah60,#60
MOV detik,#0
MOV menit,#0
Mov jam,#0
Tampil: acall perbaruitampilan
MOV TMOD,#01H
MOV TH0,#High konstantawaktu
MOV TL0,#Low konstantawaktu
SETB ET0
SETB EA
SETB TR0
Utama:
acall perbaruitampilan
MOV p0,#0FFH
MOV p2,detikpul
MOV p0,#0FDH
acall tunggusebentar
MOV p0,#0FFH
MOV p2,detiksat
MOV p0,#0FEH
acall tunggusebentar
acall perbaruitampilan
MOV p0,#0FFH
MOV p2,menitPul
MOV p0,#0FEH
acall tunggusebentar
MOV p0,#0FFH
MOV p2,menitSat
MOV p0,#0FEH
acall tunggusebentar
MOV p0,#0FFH
MOV p2,jamPul
MOV p0,#0FDH
acall tunggusebentar
MOV p0,#0FFH
MOV p2,jamsat
MOV p0,#0FEH
acall tunggusebentar
JMP Utama
tunggusebentar:
MOV R6,#3
tunggulagi:
MOV R7,#175
DJNZ R7,$
DJNZ R6,tunggulagi
MOV R6,#0FFH
RET
detikinterrupt:
push PSW
push Acc
MOV TL0,#Low konstantawaktu
MOV TH0,#High konstantawaktu
DJNZ pencacah10,selesaiInterupsi
MOV pencacah10,#10
DJNZ pencacah2,selesaiInterupsi
MOV pencacah2,#2
acall clok
selesaiInterupsi:
pop Acc
pop PSW
RETI
clok:
satudetik:
INC detik
MOV A,detik
CJNE A,#60,selesai
MOV detik,#0
INC menit
MOV A,menit
CJNE A,#59,selesai
MOV detik,#0
selesai:
RET
perbaruitampilan:
MOV R0,#detikpul
MOV A,menit
ruasduadigit:
MOV B,#10
DIV AB
acall ruassatudigit
MOV A,B
ruassatudigit:
MOV @R0,A
INC R0
jadikanruas:
INC A
MOVC A,@A+pc
RET
kombinasiruas:
; -abcdefg
DB 10000001B ;0
DB 11001111B ;1
DB 10010010B ;2
DB 10000110B ;3
DB 11001100B ;4
DB 10100100B ;5
DB 10100000B ;6
DB 10001111B ;7
DB 10000000B ;8
DB 10000100B ;9
END
mas kenapa waktu di compile error?
BalasHapusini make sistem dasar . . make program assembler (ASM)
BalasHapusntar compile nya make CMD