You are on page 1of 14

tugas 10

yoyok sudibyo
farid alpenda
andang pramono
imamsetiadi
judul: thermometer dengan tampilan 7 segmen

MNEMONIC (KATAGORI) Description Operand

$mod51

data_awal equ 19h ;nama lain alamat memory (19h) data_awal


suhu_jadi equ 20h ;pengganti alamat memory (20h) suhu_jadi
data_koma equ 21h ;pengganti alamat memory (21h) data_koma
koma equ 22h ;pengganti alamat memory (22h) koma
satuan equ 23h ;pengganti alamat memory (23h) satuan
puluhan equ 24h ;pengganti alamat memory (24h) puluhan

org 0000h

;------PENGOLAH SUHU---------------
awal:
mov r0,p2 ; masukan data Port 2 ke reg 0 R0, data addr
mov a,r0 ; pindahkan data reg 0 ke akumulator A,R1
mov b,#0ah ; b di isi 10 desimal data addr,# data
div ab ; isi a di bagi isi b (hasil di reg a , sisanya di reg b) AB
mov data_koma,b ; pindahkan isi register b ke data koma data addr,data
add a,#14h ; a di isi 14 h A,# data
mov data_awal,a ;pindahkan data a ke data_awal data addr,A
mov b,#0ah ; pindahkan 10 ke reg b data addr,# data
div ab ; isi a di bagi isi b AB
mov b,#06h ; b di isi 06 data addr,# data
mul ab ; a di kalikan dengan b AB
add a,data_awal ; isi a di tambah data awal A,data addr
mov suhu_jadi,a ; isi a pindahkan ke suhu_jadi data addr,A
anl a,#0fh ; and kan isi a dengan data 0fh A, # data
add a,#11010000b ; isi a di tambahkan D0h A,# data
mov satuan,a ; isi a di pindahkan ke hasil data satuan data addr,A
mov a,suhu_jadi ; nilai suhu jadi di pindahkan ke reg a A, @ R0
anl a,#0fh ; and kan isi a dengan data 0F h A, # data
swap a ; nible rendah i tukar neble tinggi A
add a,#10110000b ; nilai a di tambahkan D0h A,# data
mov puluhan,a ; hasil data puluhan data addr,A
mov a,data_koma ; nilai data_koma di pindahkan ke a A, @ R0
add a,#11100000b ;nilai a di tambahkan D0h A,# data
mov koma,a ; hasil data koma data addr,A

;-------DISPLAY SUHU------------------

mov a,#09h ;masukan nilai a sebesar 09h A,# data


lagi: mov p1,koma ;data pada koma di keluarkan ke Port 1 data addr,data
mov p0,#00000001b ;pindahkan nilai data #00000001b ke port 0 data addr,# data
call delay6 ; panggil delay6

Code addr
mov p1,satuan ; data addr,data
mov p0,#00000010b ;pindahkan nilai data #00000010b ke port 0 data addr,# data
call delay6 ;panggil delay6

mov p1,puluhan ; data addr,data


mov p0,#00000100b ;pindahkan nilai data #00000100b ke port 0 data addr,# data
call delay6 ;panggil delay6

Code addr
dec a ; kurangkan a -1 A

cjne a,#00h,lagi ; compare jump not equivalen A,# data,code


jmp awal ;lompat ke awal
Code addr
delay6:
mov r0,#01h ; R0, # data
delay7:
mov r1,#09H ; R1, # data
delay8:
mov r2,#0 ; R2, # data

djnz r2,$ ; R2,code addr


djnz r1,delay8 ; R1,code addr

djnz r0,delay7 ; R0,code addr

ret ;
end
Operasi ADDRES HEXA OPCODE Byte

0000
R0, data addr ((R0))←(dierct) 0000 A8 A0 2
(A)←(R1) 0002 E8 1
data addr,# data (direct)← # data 0003 75 F0 0A 3
(A)15-8,(B)7-0←(A)/(B) 0006 84 1
data addr,data (direct)←(direct) 0007 85 F0 21 3
(A)←(A)+# data 000A 24 14 2
data addr,A (direct)←(A) 000C F5 19 2
data addr,# data (direct)← # data 000E 75 F0 0A 3
(A)15-8,(B)7-0←(A)/(B) 0011 84 1
data addr,# data (direct)← # data 0012 75 F0 06 3
(A) 7-0←(A) x(B) (B)15-8 0015 A4 1
A,data addr (A)←(A)+(direct) 0016 25 19 2
data addr,A (direct)←(A) 0018 F5 20 2
(A)←(A)۸ # data 001A 54 0F 2
(A)←(A)+# data 001C 24 D0 2
data addr,A (direct)←(A) 001E F5 23 2
(A)←((R0)) 0020 E5 20 2
(A)←(A)۸ # data 0022 54 0F 2
(A3-0)<----> (A7-4) 0024 C4 1
(A)←(A)+# data 0025 24 B0 2
data addr,A (direct)←(A) 0027 F5 24 2
(A)←((R0)) 0029 E5 21 2
(A)←(A)+# data 002B 24 E0 2
data addr,A (direct)←(A) 002D F5 22 2

(A)← #data 002F 74 09 2


data addr,data (direct)←(direct) 0031 85 22 90 3
data addr,# data (direct)← # data 0034 75 80 01 3

(PC)←(PC)+3,(SP)←(SP)+1
[(SP)]←(PC7-0),(SP)←(SP)+1
,[(Sp)]←(PC15-8)
Code addr (PC)←addr15-0 0037 12 00 52 3
data addr,data (direct)←(direct) 003A 85 23 90 3
data addr,# data (direct)← # data 003D 75 80 02 3

0040 12 00 52 3
data addr,data (direct)←(direct) 0043 85 24 90 3
data addr,# data (direct)← # data 0046 75 80 04 3

(PC)←(PC)+3,(SP)←(SP)+1
[(SP)]←(PC7-0),(SP)←(SP)+1
,[(Sp)]←(PC15-8)
Code addr (PC)←addr15-0 0049 12 00 52 3
(A)←(A)-1 004C 14 1

(PC)←(PC)+3, if (A)< >


data
then(PC)←(PC) + rel offset
if (A) < data then ( C ) ←1
A,# data,code else ( C )← 0 004D B4 00 E1 3

Code addr (PC)←(PC)+2,(PC)←(PC)+rel 0050 80 AE 2


0052
(R0)←(direct) 0052 78 01 2
0054
(R1)←(direct) 0054 79 09 2
0056
(R2)←(direct) 0056 7A 00 2

(PC)←(PC) + 2
(R2)←(R2) - 1 if (R2) >0 or
(R2)< 0 then (PC)←(PC)
R2,code addr +rel 0058 DA FE 2
(PC)←(PC) + 2
(R1)←(R1) - 1 if (R1) >0 or
(R1)< 0 then (PC)←(PC)
R1,code addr +rel 005A D9 FA 2

(PC)←(PC) + 2
(R0)←(R0) - 1 if (R0) >0 or
(R0)< 0 then (PC)←(PC)
R0,code addr +rel 005C D8 F6 2

005E 22 1
Machine cycle (clock)

Byte 24 cycle / (clock)


Byte 12 cycle / (clock)
Byte 36 cycle / (clock)
Byte 12 cycle / (clock)
Byte 36 cycle / (clock)
Byte 24 cycle / (clock)
Byte 24 cycle / (clock)
Byte 36 cycle / (clock)
Byte 12 cycle / (clock)
Byte 36 cycle / (clock)
Byte 12 cycle / (clock)
Byte 24 cycle / (clock)
Byte 24 cycle / (clock)
Byte 24 cycle / (clock)
Byte 24 cycle / (clock)
Byte 24 cycle / (clock)
Byte 24 cycle / (clock)
Byte 24 cycle / (clock)
Byte 12 cycle / (clock)
Byte 24 cycle / (clock)
Byte 24 cycle / (clock)
Byte 24 cycle / (clock)
Byte 24 cycle / (clock)
Byte 24 cycle / (clock)

Byte 24 cycle / (clock)


Byte 36 cycle / (clock)
Byte 36 cycle / (clock)

Byte 36 cycle / (clock)


Byte 36 cycle / (clock)
Byte 36 cycle / (clock)

Byte 36 cycle / (clock)


Byte 36 cycle / (clock)
Byte 36 cycle / (clock)

Byte 36 cycle / (clock)


Byte 12 cycle / (clock)

Byte 36 cycle / (clock)

Byte 24 cycle / (clock)

Byte 24 cycle / (clock)

Byte 24 cycle / (clock)

Byte 24 cycle / (clock)

Byte 24 cycle / (clock)


Byte 24 cycle / (clock)

Byte 24 cycle / (clock)

Byte 12 cycle / (clock)


Line I Addr Code Source

1: $mod51
2:
3: N 0019 data_awal equ 19h ;nama lain alamat memory (19h)
4: N 0020 suhu_jadi equ 20h ;pengganti alamat memory (20h)
5: N 0021 data_komaequ 21h ;pengganti alamat memory (21h)
6: N 0022 koma equ 22h ;pengganti alamat memory (22h)
7: N 0023 satuan equ 23h ;pengganti alamat memory (23h)
8: N 0024 puluhan equ 24h ;pengganti alamat memory (24h)
9:
10:
11:
12: N 0000 org 0000h
13:
14: ;------PENGOLAH SUHU---------------
15: 0 awal:
16: 0 A8 A0 mov r0,p2 ; masukan data Port 2 ke reg 0
17: 2 E8 mov a,r0 ; pindahkan data reg 0 ke akumulator
18: 3 75 F0 0A mov b,#0ah; b di isi 10 desimal
19: 6 84 div ab ; isi a di bagi isi b (hasil di reg a , sisanya di reg b
20: 7 85 F0 21 mov data_ ; pindahkan isi register b ke data koma
21: 000A 24 14 add a,#14h; a di isi 14 h
22: 000C F5 19 mov data_ ;pindahkan data a ke data_awal
23: 000E 75 F0 0A mov b,#0a ; pindahkan 10 ke reg b
24: 11 84 div ab ; isi a di bagi isi b
25: 12 75 F0 06 mov b,#06 ; b di isi 06
26: 15 A4 mul ab ; a di kalikan dengan b
27: 16 25 19 add a,data ; isi a di tambah data awal
28: 18 F5 20 mov suhu_j; isi a pindahkan ke suhu_jadi
29: 001A 54 0F anl a,#0fh ; and kan isi a dengan data 0fh
30: 001C 24 D0 add a,#110; isi a di tambahkan D0h
31: 001E F5 23 mov satuan; isi a di pindahkan ke hasil data satuan
32: 20 E5 20 mov a,suhu; nilai suhu jadi di pindahkan ke reg a
33: 22 54 0F anl a,#0fh ; and kan isi a dengan data 0F h
34: 24 C4 swap a ; nible rendah i tukar neble tinggi
35: 25 24 B0 add a,#10 ; nilai a di tambahkan D0h
36: 27 F5 24 mov puluh ; hasil data puluhan
37: 29 E5 21 mov a,dat ; nilai data_koma di pindahkan ke a
38: 002B 24 E0 add a,#11 ;nilai a di tambahkan D0h
39: 002D F5 22 mov koma,; hasil data koma
40:
41:
42: ;-------DISPLAY SUHU------------------
43:
44: 002F 74 09 mov a,#09 ;masukan nilai a sebesar 09h
45: 31 85 22 90 lagi: mov p1,ko ;data pada koma di keluarkan ke Port 1
46: 34 75 80 01 mov p0,#0 ;pindahkan nilai data #00000001b ke port 0
47: 37 12 00 52 call delay6 ; panggil delay6
48:
49: 003A 85 23 90 mov p1,sa ;
50: 003D 75 80 02 mov p0,#0 ;pindahkan nilai data #00000010b ke port 0
51: 40 12 00 52 call delay6 ;panggil delay6
52:
53: 43 85 24 90 mov p1,pu ;
54: 46 75 80 04 mov p0,#0 ;pindahkan nilai data #00000100b ke port 0
55: 49 12 00 52 call delay6 ;panggil delay6
56:
57: 004C 14 dec a ; kurangkan a -1
58: 004D B4 00 E1 cjne a,#00h; compare jump not equivalen
59: 50 80 AE jmp awal ;lompat ke awal
60:
61: 52 delay6:
62: 52 78 01 mov r0,#0 ;
63: 54 delay7:
64: 54 79 09 mov r1,#0 ;
65: 56 delay8:
66: 56 7A 00 mov r2,#0 ;
67: 58 DA FE djnz r2,$ ;
68: 005A D9 FA djnz r1,del ;
69: 005C D8 F6 djnz r0,del ;
70:
71: 005E 22 ret ;
72: end
73:
74:
75:

LIST OF SYMBOLS
=============================

SYMBOL TYPE LINE


------------------------------------------------------------
??ASEM_51 NUMBER 8051
??VERSION NUMBER 0130
AC BIT D6
ACC DATA E0
AWAL CODE 0 15
B DATA F0
CY BIT D7
DATA_AWAL NUMBER 3
DATA_KOMA NUMBER 5
DELAY6 CODE 52 61
DELAY7 CODE 54 63
DELAY8 CODE 56 65
DPH DATA 83
DPL DATA 82
EA BIT AF
ES BIT AC
ET0 BIT A9
ET1 BIT AB
EX0 BIT A8
EX1 BIT AA
EXTI0 CODE 3
EXTI1 CODE 13
F0 BIT D5
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
KOMA NUMBER 6
LAGI CODE 31 45
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
PS BIT BC
PSW DATA D0
PT0 BIT B9
PT1 BIT BB
PULUHAN NUMBER 8
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
REN BIT 9C
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 4

SYMBOL TYPE LINE


------------------------------------------------------------
RESET CODE 0
RI BIT 98
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
SATUAN NUMBER 7
SBUF DATA 99
SCON DATA 98
SINT CODE 23
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
SUHU_JADI NUMBER 4
T0 BIT B4
T1 BIT B5
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TXD BIT B1
WR BIT B6
0 ke akumulator

il di reg a , sisanya di reg b)

neble tinggi

You might also like