Kamis, 08 Januari 2015

PROGRAM 7 SEGMEN AT89S51


Org 0h
ratusan equ 30h
puluhan equ 31h
satuan equ 32h
;
start:
mov R7,#1 ;inisialisasi data setting
Setup:
mov A,R7 ;simpan data R7 ke A
call bin2dec
call display2sevensegmen
jnb p2.0,getout ;bila sw1(P2.0) ditekan mk getout(selesai)
jb P2.1,SetDn ;bila sw2(P2.1) ditekan mk INC R7
inc R7 ;R7:=R7+1
acall delay ;waktu tunda lama penekanan tombol
cjne R7,#100d,setup ;deteksi apakah setting=100d
mov R7,#1 ;reset R7 -> 1
sjmp Setup
;
SetDn:
Mov A,R7 ;simpan data R7 ke A
call bin2dec
call display2sevensegmen
jnb P2.0,getout ;bila sw1(P2.0) ditekan mk getout(selesai)
jb p2.2,Setup ;bila sw2(P2.1) ditekan mk INC R7
dec R7 ;R7:=R7-1
acall delay ;waktu tunda lama penekanan tombol
cjne R7,#0d,setDn;deteksi apakah setting=0d
mov R7,#99d ;reset R7 -> 99
sjmp Setdn
getout:sjmp getout
;
Display2SevenSegmen:
mov A,puluhan
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
clr P3.5 ;
Setb P3.6
Setb P3.7
call delay
;
mov A,satuan
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
Setb P3.5 ;
Setb P3.6
Setb P3.7
call delay
ret
;
Bin2Dec:
mov b,#100d
div ab
mov ratusan,a
mov a,b
mov b,#10d
div ab
mov puluhan,a
mov satuan,b
ret
;
delay: mov R0,#0
delay1:mov R2,#0fh
djnz R2,$
djnz R0,delay1
ret
;
Data7segmen:
db 11000000b,11111001b,10100100b,10110000b,10011001b
db 10010010b,10000010b,11111000b,10000000b,10010000b
end

Tidak ada komentar:

Posting Komentar