Anda di halaman 1dari 45

TUGAS Hardware : MEMBUAT PAPER RESUME

Materi :
1
2
3
4
5
6
7
8
9
10

Watchdog Timer
Power saving (Powe down mode)
Power saving (Idle mode)
UART (Serial)
Timer
Interrupts
Program Memory Lock Bits
Programming the Flash (Parallel Mode) + Verification
Programming the Flash (Serial Mode) + Verification
External Memory (Program & Data)

Arahan Tugas :

1)
2)
3)

Arahan Tugas :

Membuat resume dari acuan utama file AT89S51.pdf & 89SERIES.pdf


Boleh ditambah acuan lain, asalkan sumbernya disebutkan (+dilampirkan).
Diarahkan secara praktis untuk menjawab 3 pertanyaan: APA? SPESIFIKASI?, BAGAIMANA?

KASI?, BAGAIMANA?

1a

1b

Opcode
(Des)

Opcode
(Biner)

1c

Opcod Mnemo
e
nic
(Hex) (Opcode
-nya)

Mnemonic
(Operand-nya berdasarkan
kategori)

Mnemonic
(Operand-nya
berdasarkan spesifik
instruksi)

1) For 1) Format Tex 1) Form1) Semu1) Format Text


1) Format Text
2) 8 bit
2) Spasi (ada/tidak)
2) Spasi (ada/tidak)
3) 1-spasi antar nibble
3) Huruf (capital/tidak)
3) Huruf (capital/tidak)
4) Subscript
4) Subscript
5) Yg memang TIDAK ADA5)ISINYA,
Yg memang
diisi TIDAK ADA ISINYA, diisi
M'NEMONIC CODE

OPERATION CODE
MHS
BERSAMA >
Andrea Afif
Leksono
14223824

Arif Wijaya
14223827

Cristiander
Joyana
14223893

(Des)

(Biner)

(OPERAND-nya)
(per-kategori)
(spesifik instruksi)

(OPCOD
(Hex) E-nya)

7 0000 0111 07

INC

@Ri

@R1

14 0000 1110 0E

INC

Rn

R6

31 0001 1111 1F

DEC

Rn

R7

32 0010 0000 20

JB

bit,rel

bit addr, code ad

35 0010 0011 23

RL

47 0010 1111 2F

ADD

A,Rn

A,R7

48 0011 0000 30

JNB

bit,rel

bit addr, code ad

52 0011 0100 34

ADDC A, #data

---

60 0011 1100 3C

ADDC A, Rn

A, R4

65 0100 0001 41

AJMP code addr

(P2)

66 0100 0010 42

ORL

data addr, A

dir, A

77 0100 1101 4D

ORL

A, Rn

A, R5

86 0101 0110 56

ANL

A, @Ri

A, @R0

90 0101 1010 5A

ANL

A,R2

A,R2

106 0110 1010 6A

XRL

A,R2

A,R2

Syofwan
Fadillah
14223881

Ikrimah Fahmi
15223732

112 0111 0000 70

JNZ

rel

code addr

115 0111 0011 73

JMP

@A+DPTR

@A+DPTR

120 0111 1000 78

MOV

Rn,#data

R0,#data

139 1000 1011 8B

MOV

direct,Rn

data addr,R3

151 1001 0111 97

SUBB A,@Ri

A,@R1

155 1001 1011 9B

SUBB A,Rn

A,R3

174 1010 1110 AE

MOV

Rn,direct

R6,data addr

189 1011 1101 BD

CJNE

Rn,#data,rel

R5,#data,code ad

201 1100 1001 C9

XCH

A,Rn

A,R1

215 1101 0111 D7

XCHD A,@Rn

A,@R1

222 1101 1110 DE

DJNZ Rn,rel

R6,code addr

233 1110 1001 E9

MOV

A,R1

240 1111 0000 F0


241 1111 0001 F1

MOVX @DPTR,A
ACALL addr11

@DPTR,A
code addr

245 1111 0101 F5

MOV

data addr,A

A,Rn

direct,A

252 1111 1100 FC

MOV

Rn,A

R4,A

5
Operasi (simbolik)

6
Bytes
(1/2/3)

Format
bytes
( 123 / 132 )

Flags
( C,OV,AC, dsb = X / 0 / 1 )

Addressing Mode
utk Operand-1
(register, direct,
indirect-register,
immediate, immediate16, long-address,
absolut, rellative, bit )

1) Forma 1) Format 1) Diisi X, atau 0 (angka nol; bukan1)huruf


Yg memang
O), atauTIDAK ADA ISINYA
2) Konsiste2) Tanpa awalan atau akhiran spasi
capital/tidak)
3) Isinya 1 atau
3) Yg memang TIDAK BERPENGARUH, diisi --- lalu ENTER
4) Subscript
4) Yg 132 di-bold!
mang TIDAK ADA ISINYA, diisi --- lalu ENTER

OPERASI
(simbolik)

FLAGS

FORMAT
BYTES

BYTES

ADDRESSING MO

OV

AC

(Operand-1)

((Ri))((Ri))+1

1 ---

---

---

indirect-register

(R6)(R6)+1

1 ---

---

---

register

(R7)(R7)+1

1 ---

---

---

register

(PC)(PC)+3
IF (bit)=1
THEN
(PC)(PC)+rel

123 ---

---

---

bit

(An+1)(An)n=0-6
(A0)(A7)

1 ---

---

---

---

(A)(A)+(R7)

1X

---

(PC)(PC)+3
IF (bit)=0
THEN
(PC)(PC)+rel

123 ---

---

---

bit

(A) f (A) + (C) + #data

12 X

immediate

(A) f (A) + (C) + (R4)

12 X

register

(PC) f (PC) + 2
(PC10-0)fpage address

132 ---

---

---

bit

(direct) f (direct) V (A)

12 ---

---

---

direct

(A) f (A) V (R5)

1 ---

---

---

register

(A) f (A) ^ ((R0))

1 ---

---

---

indirect-register

ANL
(A) (A) ^ (R2)

---

---

---

---

XRL
(A) (A) V (R2)

---

---

---

---

JNZ
(PC) (PC) + 2
IF (A) = 0
THEN (PC) (PC) +
rel
JMP
(PC) (A) + (DPTR)

---

---

---

direct

---

---

---

indirect-register

MOV
(R0) #data

---

---

---

register

MOV
(direct) (R3)

---

---

---

direct

SUBB
(A) (A) - (C) - ((Ri))

1X

direct

SUBB
(A) (A) - (C) - (Rn)

1X

direct

MOV
(Rn) (direct)

12 ---

---

---

register

(PC) (PC) + 3
IF (Rn) < > data
THEN
(PC) (PC) + relative
offset
IF (Rn) < data
THEN
(C) 1
ELSE
(C) 0

---

---

register

XCH
(A) D ((Rn)

1 ---

---

---

direct

XCHD
(A3-0) D ((Ri3-0))

1 ---

---

---

direct

(PC)(PC)
(R6)(R6)-1
IF (R6)>0 or (R6)<0
THEN
(PC)(PC)+rel

12 ---

---

---

register

(A)(R1)

1 ---

---

---

register

(DPTR)(A)
(PC)(PC)+2
(SP)(SP)+1
((SP))(PC7-0)
((SP))(SP)+1
((SP))(PC15-8)
(PC10-0)page address

1
2

1 --12 ---

-----

-----

indirect-register
absolute

(direct)(A)

12 ---

---

---

direct

123 X

(R4)(A)

1 ---

---

---

register

10

11

12

Addressing Mode
utk Operand-2

Addressing Mode
utk Operand-3

Kategori
(Arith, Log, Transf, Bool, Branch )

1) Yg memang TIDAK
1) YgADA
memang
ISINYA,
TIDAK
diisi ADA ISINYA, diisi --- lalu ENTER

iisi --- lalu ENTER

ADDRESSING MODE
(Operand-2)

KATEGORI
(Operand-3)

---

---

Arith

---

---

Arith

---

---

Arith

rellative

---

Bool

---

---

Log

register

---

Arith

rellative

---

Bool

---

---

Arith

---

---

Arith

bit

---

Branch

---

---

Log

---

---

Log

---

---

Log

register

---

Log

register

---

Log

---

---

Bool

---

---

Bool

immediate

---

Transf

register

---

Transf

indirect regist ---

Arith

register

---

Arith

direct

---

Transf

immediate

addr11

Branch

register

---

Transf

indirect regist ---

Transf

rellative

---

Branch

---

---

Transf

-----

-----

Transf
Branch

---

---

Transf

---

---

Transf

13

14

Deskripsi ( singkat )

Encoding

1) Format Text
2) Antar bit tanpa spasi
3) 1-spasi hanya antar nibble
4) Tiap byte barisnya beda, tapi tetap dalam sel yg sama
5) Subscript

DESKRIPSI SINGKAT

ENCODING

Increment Direct RAM

0000 011i

Increment register

0000 1rrr

Decrement register

0001 1rrr

Jump if direct Bit is set

0010 0000
bit address
rel. Address

Rotate Accumulator Left

0010 0011

Add register to Accumulator

0010 1rrr

Jump if direct Bit is not set

0011 0000
bit address
rel. Address

Menambahkan data immediate ke Accumulator

0011 0100
immediate data

Menambahkan isi register R4 ke Accumulator dengan


0011
Carry
1rrr
Absolute Jump

a10a9a80 0001
a7a6a5a4 a3a2a1a0

OR-kan byte secara langsung ke Accumulator

0100 0101
direct address

OR-kan isi register R5 ke Accumulator

0100 1rrr

AND-kan indirect RAM (Register 0) ke Accumulato 0101 011i


AND Register to Accumulator

0101 1rrr

Exclusive-OR register to Accumulator

0110 0101
direct address

Jump if Accumulator is Not Zero

0111 0000
rel. address

Jump indirect relative to the DPTR

0111 0011

Move immediate data to register

0111 1rrr
immediate data

Move register to direct byte

1000 1rrr
direct address

SUUB subtract menyatakan variabel dan carry flag1001011i


secara
bersamaan dari akumulator, meninggalkan hasil di akumulator.
SUUB subtract menyatakan variabel dan carry flag10011rrr
secara
bersamaan dari akumulator, meninggalkan hasil di akumulator.
Variable byte yang menyatakan operand selanjutnya
10101rrr
adalah dari
salinan atau copyan dari lokasi dan spesifikasi operand pertama.
CJNE membandingkan besaran dari dua operand pertama
1011 1rrrdan
branches jika nilai mereka tidak sama.
xxxx xxxx
xxxx xxxx

XCH banyaknya muatan akumulator dengan konten


11001rrr
XCHD merubah lemahnya perintah bit dari akumula
1101011i
Decrement register and Jump if Not Zero

1101 1rrr
rel. address

Move register to Accumulator

1110 1rrrr

Move Accumuator to External RAM (16-bit address1111 0000


Absolute Subroutine Call
a10a9a81 0001
a7a6a5a4 a3a2a1a0

Move Accumulator to direct byte

1111 0101
direct address

Move Accumulator to register

1111 1rrrr

15

16

17

Osc.

Cycles

Fungsi

1) Format 1) Format Number

etap dalam sel yg sama

OSC.

CYCLES

FUNGSI

12

1 Menambahkan isi pada direct RAM dengan 1

12

1 Menambahkan isi pada Register6 dengan 1

12

1 Mengurangi isi pada Register7 dengan 1

24

2 Jika bit yang ditunjuk pada kondisi set (1) maka akan lompat ke address yang di

12

1 Melakukan putar kiri pada data di Accumulator

12

1 Menambahkan variabel byte pada R7 ke Accumulator,

24

2 Jika bit yang ditunjuk pada kondisi not set (0) maka akan lompat ke address yan

12

1 Penjumlahan Accumulator dan immediate data dengan

12

1 Penjumlahan Accumulator dan register R4 dengan carry

24

2 Absolute Jump

12

1 Logika OR byte dengan accumulator secara langsung

12

1 Logika OR Register R5 dengan Accumulator

12

1 Logika AND Accumulator dengan indirect RAM (R0)

12

1 Logical-AND for bit variables

12

1 Logical Exclusive-OR for byte variables

24

2 Jump if Accumulator Not Zero

24

2 Jump indirect

12

1 Move byte variable

24

2 Move byte variable

12

1 Pengurangan dengan borrow

12

1 Pengurangan dengan borrow

24

1 Memindahkan variabel byte

24

2 Membandingkan besran operan dan meloncati


jika tidak sama

12

1 Menukar accumulator dengan byte variabel

12

1 Menukar digit

24

2 Mengurangi (decrement) dan jump jika tidak zero

12

1 Variabel bit yang ditunjuk oleh operand ke-2 akan di'co

24
24

1 Memindahkan data antara Accumulator dan byte dari d


2 Panggilan tanpa syarat untuk memanggil lokasi subrutin

12

2 Variabel bit yang ditunjuk oleh operand ke-2 akan di'co

12

1 Variabel bit yang ditunjuk oleh operand ke-2 akan di'co

18
Catatan
( berisi a.l: alternatif penamaan operand, dan sisa info penting dari Description )

CATATAN

Addresing Mode yang diperbolehkan: register, direct, atau register-indirect

Ketika instruksi ini digunakan untuk memodifikasi sebuah port output, nilai yang digunakan sebaga

Ketika instruksi ini digunakan untuk memodifikasi sebuah port output, nilai yang digunakan sebaga

ka akan lompat ke address yang ditunjuk, jika tidak set (0) maka tidak akan lompat ke address yang ditunjuk

Instruksi ADD menyebabkan Flag Carry dan Auxiliary-carry menjadi posisi set, berturut-turut, jika c

maka akan lompat ke address yang ditunjuk, jika set (1) maka tidak akan lompat ke address yang ditunjuk, d

Mode addresing operand yang diperbolehkan : register, direct, register-indirect, atau immediate

Carry dan Auxiliary-carry flag masing-masing set (1), jika ada carry-out dari bit 7 atau bit 3 maka c

AJMP melaksanakan program transfer ke alamat yang ditunjuk, dengan alamat tujuannya harus be

Ketika tujuannya adalah Accumulator, sumbernya dapat menggunakan register, direct, register-ind

Ketika instruksi ini digunakan untuk memodifikasi port output, nilai yang digunakan sebagai port d

Ketika instruksi ini digunakan untuk memodifikasi suatu port keluaran, nilai yang digunakan sebag
Only direct addressing is allowed for the source operand.

When this instruction is used to modify an output port, the value used as the original port data is r

This is by far the most flexible operation. Fifteen combinations of source and destination addressin

This is by far the most flexible operation. Fifteen combinations of source and destination addressin
Sumber operand terdiri dari empat mode alamat : register, direct, register-indirect, or immediate.
Sumber operand terdiri dari empat mode alamat : register, direct, register-indirect, or immediate.

Operasi move ini jauh lebih fleksibel : lima belas sumber kombinasi dan mode alamat penempatan

Dua operand pertama diperbolehkan menggunakan empat mode kombinasi pengalamatan: Accum

Tempat operand dapat menggunakan register, direct, or register-indirect addressing.


Dengan XCHD lokasi tidaklangsung alamat internal RAM dari register
instruksi ini digunakan untuk memodifikasi port output, nilai yang digunakan
sebagai port data asli akan dibaca dari latch output data, bukan pin output.

register seharusnya diganti dengan "R1" agar sesuai dengan instruksi


Eksternal RAM pada description sebaiknya diganti indirect DPTR saja
Absolute subroutine call ditunjukan ke page address

maksud dari data byte adalah data address, jadi data dari accumulator dipindahkan ke data addres

register seharusnya diganti dengan "R4" agar sesuai dengan instruksi

yang digunakan sebagai port data asli akan dibaca dari latch data output, bukan dari pin input. Addresing m

yang digunakan sebagai port data asli akan dibaca dari latch data output, bukan dari pin input.
address yang ditunjuk, dan berlanjut ke instruksi selanjutnya

et, berturut-turut, jika carry-out dari bit 7 atau bit 3, dan dihapus jika tidak dari bit 7 atau bit 3. Ketika menam

address yang ditunjuk, dan berlanjut ke instruksi selanjutnya

rect, atau immediate

i bit 7 atau bit 3 maka clear (0), sebaliknya. Ketika menambahkan unsigned integer, Carry flag menjadi over

mat tujuannya harus berada dalam 2 K blok yang sama dari memori program dengan byte pertama dari instr

ster, direct, register-indirect, atau immediate addressing; ketika tujuannya adalah alamat langsung, sumbern

gunakan sebagai port data asli dibaca dari data output latch, bukan pin input.
yang digunakan sebagai port data asli akan dibaca dari keluaran data latch, bukan pin input.

e original port data is read from the output data latch, not the input pins.

d destination addressing modes are allowed

d destination addressing modes are allowed

ndirect, or immediate.

ndirect, or immediate.

de alamat penempatan yang dapat digunakan

i pengalamatan: Accumulator mungkin dibandingkan langsung dengan alamat byte atau data.

ddressing.

ndahkan ke data address

ari pin input. Addresing mode yang diperbolehkan: register, direct, atau register-indirect

ari pin input.

7 atau bit 3. Ketika menambahkan unsigned integer, carry flag mengindikasikan terjadinya overflow. OV men

r, Carry flag menjadi overflow. OV set (1) jika ada carry-out dari bit 6 tapi tidak dari bit 7, atau carry-out dari

an byte pertama dari instruksi AJMP.

alamat langsung, sumbernya dapat menjadi accumulator atau immediate data.

n pin input.

e atau data.

rjadinya overflow. OV menjadi posisi set jika carry-out dari bit 6 tapi tidak lebih dari bit 7. atau carry out pad

i bit 7, atau carry-out dari bit 7 tetapi tidak dari bit 6; sebaliknya OV clear (0).

i bit 7. atau carry out pada bit 7 tapi tidak pada bit 6, selain itu, OV dihapus. Ketika menambahkan signed in

a menambahkan signed integer, OV mengidikasi menghasikan nilai negatif sebagaimana jumlah dari dua ope

mana jumlah dari dua operand positif, atau penjumalahan positif dari dua operand negatif. Mode Addresing y

negatif. Mode Addresing yang diperbolehkan: register, direct, register-indirect, atau immediete.

u immediete.

Anda mungkin juga menyukai