Sunteți pe pagina 1din 39

Mikrokontroller

MIKROKONTROLLER AT89S8252
Expanded Mode
Set Instruksi :
1. Transfer Data - Data Bus
2. Operasi bit - Address Bus
3. Aritmatika - Control Bus
4. Logika
5. Percabangan

SISTEM
AT89S8252

Single On Chip
Mode
Feature :
1. Port I/O = 4 bh
2. Ram 256 Byte
Software Pendukung :
3. Flash memory 8KB
1. Assembler
4. EEPROM = 2KB
5. Timer/Counter = 3 bh 2. Downloader
6. Interrupt
7. Serial komunikasi

1
Mikrokontroller

OPERASI BIT

DAFTAR INSTRUKSI

Siklus
No Mnemonik Penjelasan Byte
Mesin
1. CLR C C0 1 1
2. CLR bit bit  0 2 1
3. SETB C C1 1 1
4. SETB bit bit  1 2 1
5. CPL C C  komplemen C 1 1
6. CPL bit bit  komplemen bit 2 1
7. ANL C,bit C  C AND bit 2 2
8. ANL C,/bit C  C AND komplemen bit 2 2
9. ORL C,bit C  C OR bit 2 2
10. ORL C,/bit C  C OR komplemen bit 2 2
11. MOV C,bit C  bit 2 1
12. MOV bit.C bit  C 2 2

Keterangan : C = Carry

LATIHAN

1. AND Logic

a. Tabel Kebenaran b. Fungsi

B A Q Q  A.B
0 0 0
0 1 0
1 0 0
1 1 1

2
Mikrokontroller

c. Diagram Blok d. Program


uC
ORG 0
C START: MOVC,P0.0
P0.0 C ANL C,P0.1
AND P1.0
MOV P1.0,C
P0.1
SJMP START

2. OR Logic

a. Tabel Kebenaran b. Fungsi

B A Q QAB
0 0 0
0 1 1
1 0 1
1 1 1

c. Diagram Blok d. Program


uC
ORG 0
C START: MOVC,P0.0
P0.0 C ORL C,P0.1
OR P1.0
P0.1 MOV P1.0,C
SJMP

3. NAND Logic

a. Tabel Kebenaran b. Fungsi

B A Q QAB
0 0 1
0 1 1
1 0 1 Q  AB
1 1 0

c. Diagram Blok d. Program


uC
ORG 0
C START: MOV C,P0.0
P0.0 C CPL C
OR P1.0
P0.1 ORL C,/P0.1
MOV P1.0,C
SJMP

3
Mikrokontroller

4. NAND Logic

a. Diagram Blok b. Program


uC
ORG 0
C START: MOV C,P0.0
P0.0 C ANL C,P0.1
AND P1.0 CPL C
P0.1 MOV P1.0,C
SJMP

5. AND Logic (3 INPUT)

a. Tabel Kebenaran b. Fungsi

C B A Q
Q  ABC
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1

c. Diagram Blok uC
d. Program

C ORG 0
P0.0 C START: MOV C,P0.0
AND
C ANL C,P0.1
P0.1 AND P1.0
ANL C,P0.2
P0.2 MOV P1.0,C
SJMP START

4
Mikrokontroller

6. AND-OR Combination

a. Tabel Kebenaran b. Fungsi

D C B A Q
Q  ABCD  ABCD  ABCD
0 0 0 0 0 Q  AB
0 0 0 1 0 Q  AB(C  CD)
0 0 1 0 0 Q  AB.(C  D )
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 1
1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
1 1 1 1 1

c. Diagram Blok d. Program


uC
ORG 0
(A) C
P0.0 C00H START: MOV C,P0.0
AND
(B)
ANL C,P0.1
P0.1 MOV 00H,C
AND C
P1.0 MOV C,P0.2
C (Q)
(C) P0.2 C ORL C,P0.3
OR
ANL C,00H
(D) P0.3 MOV P1.0,C
SJMP START
7. AND-OR-NAND Combination

a. Diagram Blok b. Program


uC

C ORG 0
P0.0 C00 START: MOVC,P0.0
AND
ANL C,P0.1
P0.1
C MOV
AND P1.0
C 00H,C
P0.2 C MOV
OR
C,P0.2
P0.3
ORL C,P0.3
ANL C,00H

5
Mikrokontroller

8. EQUIVALEN Function atau XNOR

a. Tabel Kebenaran b. Fungsi

B A Q Q  A.B  A.B
0 0 1
0 1 0
1 0 0
1 1 1

c. Diagram Blok d. Program


uC
ORG 00H
START: MOV C,P0.0
P0.0 C CPL C
EQV P1.0
P0.1 ANL C,/P0.1
MOV 00H,C
MOV C,P0.0
ANL C,P0.1
ORL C,00H
MOV P1.0,C
SJMP START

9. XOR (EXCLUSIVE OR)

a. Tabel Kebenaran b. Fungsi

B A Q Q  A.B  A.B
0 0 0
0 1 1
1 0 1
1 1 0

c. Diagram Blok d. Program

uC
ORG 00H
START: MOV C,P0.1
ANL C,/P0.0
P0.0 C MOV 00H,C
XOR P1.0
MOV C,P0.0
P0.1
ANL C,/P0.1
ORL C,00H
MOV P1.0,C
SJMP START

6
Mikrokontroller

10. R-S FLIP FLOP (Menggunakan Push Button)

a. Tabel Kebenaran c. Fungsi

R S Qn+1 Z  SQ Z  (/ P 0.1)  ( P1.0)


0 0 0 Q  R .Z P1.0  ( P 0.0).( Z )
0 1 0 P1.0  ( P 0.0).[/ P 0.1  P1.0]
1 0 1
1 1 Qn

b. Diagram Blok d. Program


uC
ORG 00H
(R) MOV P1,#0
P0.0
P1.0 START: MOV C,P1.0
AND
(S) Z (Q) ORL C,/P0.1
P0.1 ANL C,P0.0
OR
MOV P1.0,C
SJMP START

-------- tambahan 1------

7
Mikrokontroller

OPERASI PERCABANGAN 1

Siklus
No Mnemonik Penjelasan Byte
Mesin
1. JB bit,rel Jump If Bit is Set 3 2
2. JNB bit,rel Jump If Bit is Not Set 3 2

LATIHAN

1. START/STOP

a. Diagram Blok b. Flowchart

Mulai
uC

START P0.0
Clear P1
LOOP1:
P1.0 LED
STOP P0.1

N Start
active ?
‘1’

‘0’ Y
c. Program
Setb P1.0
LOOP2:

ORG 00H
MOV P1,#00H N Stop
LOOP1: JB P0.0,LOOP1 active ?
‘1’
SETB P1.0
LOOP2: JB P0.1,LOOP2 ‘0’ Y
CLR P1.0
Clear P1.0
SJMP LOOP1

8
Mikrokontroller

2. MEMBALIK ARAH PUTARAN MOTOR

Diagram Blok

uC
LED_CW
CW P0.0 P1.0

LED_CCW
CCW P0.1 P1.1 DRIVER M

LED_ STOP CW CCW


STOP P0.2 P1.2

Kasus 1 : Pembalikan arah secara tidak langsung

b. Flowchart

Mulai
Mulai

Clear P1
Clear P1 LOOP1:
LOOP1:
CW:

CW Y
Setb P1.0
N STOP active ?
‘0’ Clr P1.1
active ? Clr P1.2
‘1’
‘1’ N
CCW:
‘0’ Y

Clear P1 CCW Y
Setb P1.1
active ? ‘0’ Clr P1.0
Clr P1.2
N
Setb P1.2 LOOP2:
LOOP2: ‘1’

CW:

Setb P1.0 STOP N


CW Y
Clr P1.1 active ? ‘1’
active ?
‘0’ Clr P1.2
‘0’ Y
‘1’ N
CCW: Clear P1
Y Setb P1.1
CCW
active ? Clr P1.0
‘0’ Clr P1.2 Setb P1.2

‘1’ N

(a) (b)

9
Mikrokontroller

c. Program

(a) (b)

10
Mikrokontroller

Kasus 2 : Pembalikan arah secara langsung

b. Flowchart c. Program

Mulai

Clear P1
LOOP1:

CW:

CW Y
Setb P1.0
Clr P1.1
active ?
‘0’ Clr P1.2

‘1’ N
CCW:

CCW Y Setb P1.1


active ? Clr P1.0
‘0’ Clr P1.2

‘1’ N LOOP2:

N STOP
active ?
‘1’

‘0’ Y

Clear P1

Setb P1.2

3. REACTION TEST

a. Diagram Blok

uC

A P0.0 P1.0 LED_ A

START P0.1 P1.1 LED_START

B P0.2 P1.2 LED_ B

11
Mikrokontroller

b. Flowchart c. Program

Mulai

ORG 00H
Clear P1
LOOP1: MOV P1,#00H
LOOP1: JB P0.1,LOOP1
MOV P1,#00H
LOOP2: JNB P0.1,LOOP2
N Start SETB P1.1
active ? LOOP3: JNB P0.0,LED_A
‘1’
JNB P0.2,LED_B
‘0’ Y SJMP LOOP3
LED_A: SETB P1.0
Clear P1 SJMP LOOP1
LOOP2: LEDB_ON: SETB P1.2
SJMP LOOP1

Y Start
active ?
‘0’

‘1’ N

Setb P1.1
LOOP3:

LED_A:

Tombol A Y
Setb P1.0
active ? Clr P1.1
‘0’

‘1’ N
LED_B:
Y
Tombol B Setb P1.2
active ? Clr P1.1
‘0’

‘1’ N

4. CONVEYOR
Start bersamaan dari tiga motor ini harus dihindari karena untuk menggerakkan motor memerlukan arus yang besar pada
saat start. Urutan start yang benar adalah konveyor 1  konveyor 2  konveyor 3. Tidak boleh acak karena bila
urutannya terbalik atau acak akan timbul akumulasi obyek yang akan diangkut.

Konveyor 1
Konveyor 2
Konveyor 3
Motor 1
Truk
Motor 2
Motor 3

12
Mikrokontroller

a. Blok Diagram
uC

PB1 P0.0 P1.0 Motor 1

PB2 P0.1
P1.1 Motor 2

PB3 P0.2

P1.2 Motor 3
STOP P0.3

b. Flowchart

Mulai

Clear P1
LOOP1:

OFF:
Y
Stop Clear P1
active ?
‘0’
‘1’ N
M1: LOOP2:
N Y Y
PB1 Setb P1.0 Stop
active ? active ?
‘1’ ‘0’ ‘0’
‘1’ N
M2: LOOP3:
N Y Y
PB2 Stop
active ? Setb P1.1
‘1’ ‘0’ active ?
‘0’
‘1’ N

N
PB3
‘1’ active ?

‘0’ Y

Setb P1.2

13
Mikrokontroller

d. Program

14
Mikrokontroller

OPERASI BYTE

LATIHAN

1. SIMPLE I/O BAGIAN 1

a. Blok Diagram

uC

SAKLAR P0 P1 LED

b. Flowchart c. Program

ORG 00H
Mulai
MOV P1,#00H
LOOP: MOV P1,P0
SJMP LOOP
Clear P1
LOOP1:

P1  P0

2. SIMPLE I/O BAGIAN 2

a. Blok Diagram

uC

A P0.0
P1 LED

B P0.1

15
Mikrokontroller

b. Tabel Kebenaran

B A Output (P1)
0 0 01010101B
0 1 11110000B
1 0 00001111B
1 1 11111111B

c. Flowchart

Mulai

Clear P1

Loop1:

Loop2: Loop3:
Y Y
Saklar Saklar P1 01010101B
A=0? B=0?
‘0’ ‘0’
‘1’ N
Loop4:
Y Saklar P1 00001111B
P1 11110000B
B=0?
‘0’
‘1’ N

P1 11111111B

16
Mikrokontroller

c. Program

17
Mikrokontroller

DELAY
Ada 2 cara untuk membuat delay :
1. Metode looping
2. Memanfatkan fasilitas timer dari mikrokontroller

Delay dengan Metode Looping

Clock 12 MHz f osc = 1 MHz or


: 12
Tosc = 1  s

Execution Time (ET) = Tosc x Machine Cycle (MC)

Contoh : Buat delay = 1 detik


Delay 1 detik = 1.000.000 us
= 2 us x 500.000 = 2 us x 250 x 250 x 8

2 us 250 250 8
DJNZ R0 R1 R2

18
Mikrokontroller

Subroutine Delay_1s : Program :

Delay_1S
Delay_1s: MOV R2,#8
Del_1: MOV R1,#250
R2  8 Del_2: MOV R0,#250
Del_1: Del_3: DJNZ R0,Del_3
DJNZ R1,Del_2
R1  250 DJNZ R2,Del_1
Del_2: RET

R0  250
Del_3:

R0  R0-1

N DJNZ R0,Del_3
R0=0 ?

R1  R1-1

DJNZ R1,Del_2
N
R1=0 ?

R2  R2-1

DJNZ R2,Del_1
N
R2=0 ?

RET

19
Mikrokontroller

LATIHAN :

1. MEMBUAT PULSA DENGAN FREKUENSI 1 HZ


a. Blok Diagram
uC

P1.0 f = 1 Hz

b. Flowchart c. Program

Mulai
LOOP1:

Setb P1.0

Delay_1

Setb
Clr P1.0
P1.0

Delay_1

20
Mikrokontroller

2. CONVEYOR (PENYELESAIAN DG DELAY)


Urutan start yang benar adalah konveyor 1  konveyor 2  konveyor 3.

Konveyor 1
Konveyor 2
Konveyor 3
Motor 1
Truk
Motor 2
Motor 3

a. Blok Diagram b. Flowchart


Mulai
uC
OFF:

P1.0 Motor 1
Clear P1
ON P0.0 LOOP1:

P1.1 Motor 2
N ON
active ?
OFF P0.1 ‘1’
P1.2 Motor 3 ‘0’ Y

Setb P1.0
c. Program
Delay_1

OFF Y
active ?
‘0’
‘1’ N

Setb P1.1

Delay_1

OFF Y
active ?
‘0’
‘1’ N

Setb P1.2
LOOP2:

N Y
OFF
active ? ‘0’
‘1’

21
Mikrokontroller

ROTASI BIT

Instruksi :

RR A  Rotate to Right Acc.

D7 D6 D5 D4 D3 D2 D1 D0

RL A  Rotate to Left Acc.

D7 D6 D5 D4 D3 D2 D1 D0

3. ROTASI BIT

a. Blok Diagram b. Flowchart

LED Mulai

uC
A  01H
LOOP:
P1

P1  A

RL A

Delay_1s
c. Program

22
Mikrokontroller

4. ROTASI BIT KANAN/KIRI

a. Blok Diagram b. Flowchart

LED
Mulai
uC

Ka/Ki A  01H
P0.0 P1 LOOP1:

P1  A

Y Kanan:
P0.0 = 1 ?
‘1’
N ‘0’
c. Program
RL A RR A

LOOP2:

Delay_1s

5. PENGATURAN MOTOR STEPPER

a. Blok Diagram
uC

Right/Left P0.0

Fast/Slow P0.1 P1 LED

Run/Stop P0.2

23
Mikrokontroller

b. Flowchart

Mulai

Clear P1

A  01H
Loop:

N
P0.2 = 1 ?
‘0’
‘1’ Y
N Y Right:
P0.0 = 1 ?
‘0’ ‘1’
N Y LF: N Y RF:
P0.1 = 1 ? P0.1 = 1 ?
‘0’ ‘1’ ‘0’ ‘1’
P1 A P1 A P1 A P1 A

P1
RL AA RL AA
P1 P1
RR AA RR AA
P1

Delay_S Delay_F Delay_S Delay_F

24
Mikrokontroller

C. Program

25
Mikrokontroller

MODUL SEVEN SEGMENT

D4 D3 D2 D1 a

f b
g

e c
JP
dp
P2 P1 d

Keterangan :

P1 : Port untuk data ‘segment’ (a,b,c,…,g,dp)  aktif ‘high’


P2 : Port untuk data kontrol ‘enable’ (mengaktifkan 7-segment : D1, D2, D3, D4)  aktif
‘low’

 Jika Jumper (JP) dipasang, hanya D1 yang aktif

PORT 1 dp g f e d c b a
D7 D6 D5 D4 D3 D2 D1 D0
 Jika Jumper (JP) dilepas,

PORT 1 dp g f e d c b a
D7 D6 D5 D4 D3 D2 D1 D0

PORT 2 X X X X D4 D3 D2 D1
D7 D6 D5 D4 D3 D2 D1 D0

Keterangan : X = don’t care

26
Mikrokontroller

LATIHAN

1. OBSERVASI 7-SEGMENT 1

a. Blok Diagram

uC
7-SEGMENT

SAKLAR P0 P1

b. Flowchart c. Program

Mulai
ORG 00H
MOV P1,#00H
Clear P1 LOOP: MOV P1,P0
LOOP1:
SJMP LOOP
P1  P0

d. Hasil Observasi

DISPLAY 7-
ANGKA BINER
SEGMENT
1
2
3
4
5
6
7
8
9

27
Mikrokontroller

2. MENAMPILKAN ANGKA MELALUI KOMBINASI SAKLAR

a. Blok Diagram KOMBINASI DISPLAY


SAKLAR 7-SEGMENT

uC 0000 0000 0
0000 0001 1
7-SEGMENT
0000 0010 2
0000 0100 3
SAKLAR P0 P1
0000 1000 4
0001 0000 5
0010 0000 6
0100 0000 7
1000 0000 8
1000 0001 9

b. Flowchart

Mulai
LOOP1:

A  P0

Y
A = 00H
P1  Disp’0’
?
A

N
Disp1:
Y
A = 01H P1  Disp’1’
? A

N
Disp2:
Y
A = 02H
P1  Disp’2’
?
A

N
Disp3:
Y
A = 04H P1  Disp’3’
? A

Disp9:
Y
A = 81H P1  Disp’9’
? A

28
Mikrokontroller

3. UP-COUNTER

a. Blok Diagram

uC
7-SEGMENT

START P0 P1

b. Flowchart

Mulai
LOOP1:

A0

P1  Disp.”0”
LOOP2:

N Start
active ?
‘1’
LOOP3: ‘0’ Y

Y Start
‘0’
active ?

‘1’ N

Inc A

A2: A9:
Y Y Y
A1 ? A2 ? A9 ?

N N N

P1  Disp.’1’ P1  Disp.’2’ P1  Disp.’9’

29
Mikrokontroller

c. Program

4. OBSERVASI 7-SEGMENT 2

a. Blok Diagram

4 x 7-SEGMENT
uC
Segment
Saklar P0 P2

Push Button P1 P3
Enable control

30
Mikrokontroller

b. Flowchart c. Program

Mulai

Clear P1
LOOP1:

P2  P0

P3  P1

5. MENAMPILKAN ANGKA 1234

a. Blok Diagram

4 x 7-SEGMENT
uC
Segment
P1

P0
Enable control

6. BRANKAS

a. Blok Diagram

uC
7-SEGMENT
OK P0.0
P1
Close P0.1

Saklar (Input Code) P2

31
Mikrokontroller

b. Diskripsi c. Program
1. Master Code  digunakan sebagai nomor password.
Input Code  digunakan sebagai kode masukan untuk dibandingkan dg master code.
2.

32
Mikrokontroller

KEYPAD MATRIK 3 X 4

HUBUNGAN TOMBOL KEYPAD DAN INPUT/OUTPUT - uC

Tombol Input Output


Keypad Px.6 Px.5 Px.4 Px.3 Px.2 Px.1 Px.0
1 0 1 1
2 1 0 1 0 1 1 1
3 1 1 0
4 0 1 1
5 1 0 1 1 0 1 1
6 1 1 0
7 0 1 1
8 1 0 1 1 1 0 1
9 1 1 0
* 0 1 1
0 1 0 1 1 1 1 0
# 1 1 0

33
Mikrokontroller

SCANNING KEYPAD

a. Blok Diagram
uC
KEYPAD
7-SEGMENT

P0 P1

b. Flowchart
Mulai

P1  00H
LOOP1:

Setb P0.0
Setb P0.1
Setb P0.2
Clr P0.3

A1:
Y
P0.6 = 0 ? Tampil ‘1’
Disp’1’ A

N
A2:
Y
P0.5 = 0 ? Tampil ‘2’
Disp’1’ A

N A3:
Y
P0.4 = 0 ? Tampil ‘3’
Disp’1’ A

Clr P0.2
Setb P0.3

A4:
Y
P0.6 = 0 ? Tampil ‘4’
Disp’1’ A

N
A5:
Y
P0.5 = 0 ? Tampil ‘5’
Disp’1’ A

N
A6:
Y
P0.4 = 0 ? Tampil ‘6’
Disp’1’ A
N

34
Mikrokontroller

Clr P0.1
Setb P0.2

A7:
Y
P0.6 = 0 ? Tampil ‘7’
Disp’1’ A

N
A8:
Y
P0.5 = 0 ? Tampil ‘8’
Disp’1’ A

N
A9:
Y
P0.4 = 0 ? Tampil ‘9’
Disp’1’ A
N

Clr P0.0
Setb P0.1

AH:
Y
P0.6 = 0 ? Tampil ‘H’
Disp’1’ A

N
A0:
Y
P0.5 = 0 ? Tampil ‘0’
Disp’1’ A

N
AL:
Y
P0.4 = 0 ? Tampil ‘L’
Disp’1’ A
N

35
Mikrokontroller

c. Program
org 00h
mov P1,#00h
Loop: setb P0.0 ;0111b
setb P0.1
setb P0.2
clr P0.3
jnb P0.6,A1
jnb P0.5,A2
jnb P0.4,A3
clr P0.2 ;1011b
setb P0.3
jnb P0.6,A4
jnb P0.5,A5
jnb P0.4,A6
clr P0.1 ;1101b
setb P0.2
jnb P0.6,A7
jnb P0.5,A8
jnb P0.4,A9
clr P0.0 ;1110b
setb P0.1
jnb P0.6,AH
jnb P0.5,A0
jnb P0.4,AL
sjmp Loop

A1: mov P1,#00000110B


sjmp Loop
A2: mov P1,#01011011B
sjmp Loop
A3: mov P1,#01001111B
sjmp Loop
A4: mov P1,#01100110B
sjmp Loop
A5: mov P1,#01101101B
sjmp Loop
A6: mov P1,#01111101B
sjmp Loop
A7: mov P1,#00000111B
sjmp Loop
A8: mov P1,#01111111B
sjmp Loop
A9: mov P1,#01101111B
sjmp Loop
AH: mov P1,#01110110B
sjmp Loop
A0: mov P1,#00111111B
sjmp Loop
AL: mov P1,#00111000B
sjmp Loop

36
Mikrokontroller

SET INSTRUKSI
1. Data Transfer
Siklus
No Mnemonik Penjelasan Byte
Mesin
1. MOV A,Rn Move register to accumulator 1 1

2. MOV A, direct Move direct byte to accumulator 2 1

3. MOV A,@Ri Move indirect RAM to accumulator 1 1

4. MOV A,#data Move immediate data to accumulator 2 1

5. MOV Rn,A Move accumulator to register 1 1

6. MOV Rn,direct Move direct byte to register 2 2

7. MOV Rn,#data Move immediate data to register 2 1

8. MOV direct,A Move accumulator to direct byte 2 1

9. MOV direct,Rn Move register to direct byte 2 2

10. MOV direct,direct Move direct byte to direct byte 3 2

11. MOV direct,@Ri Move indirect RAM to direct byte 2 2

12. MOV direct,#data Move immediate data to direct byte 3 2

13. MOV @Ri,A Move accumulator to indiect RAM 1 1

14. MOV @Ri,direct Move direct byte to indirct RAM 2 2

15. MOV @Ri,#data Move immediate data to indirect RAM 2 1

16. MOV DPTR,#data16 Load data pointer with a 16-bit constant 3 2

17. MOVC A,@A+DPTR Move code byte relative to DPTR to accumulator 1 2

18. MOVC A,@A+PC Move code byte relative to PC to accumulator 1 2

19. MOVX A,@Ri Move external RAM (8-bit addr.) to accumulator 1 2

20. MOVX A,@DPTR Move external RAM (16-bit addr.) to accumulator 1 2

21. MOVX @Ri,A Move A to external RAM (8-bit addr.) 1 2

22. MOVX @DPTR,A Move A to external RAM (16-bit addr.) 1 2

23. PUSH direct Push direct byte onto stack 2 2

24. POP direct Pop direct byte from stack 2 2

25. XCH A,Rn Exchange register with accumulator 1 1

26. XCH A,direct Exchange direct byte with accumulator 2 1

27. XCH A,@Ri Exchange indirect RAM with accumulator 1 1

28. XCHD A,@Ri Exchange low-order nibble indirect RAM with A 1 1

37
Mikrokontroller

2. Instruksi Bit (Operasi Bit)


Siklus
No Mnemonik Penjelasan Byte
Mesin
1. CLR C C0 1 1
2. CLR bit bit  0 2 1
3. SETB C C1 1 1
4. SETB bit bit  1 2 1
5. CPL C C  komplemen C 1 1
6. CPL bit bit  komplemen bit 2 1
7. ANL C,bit C  C AND bit 2 2
8. ANL C,/bit C  C AND komplemen bit 2 2
9. ORL C,bit C  C OR bit 2 2
10. ORL C,/bit C  C OR komplemen bit 2 2
11. MOV C,bit C  bit 2 1
12. MOV bit.C bit  C 2 2

3. Instruksi Percabangan
Siklus
No Mnemonik Penjelasan Byte
Mesin
1. ACALL addr11 Absolute Call within 2k byte Page 2 2

2. LCALL addr16 Long Call 3 2

3. RET Return From Subroutine (Non Interoupt) 1 2

4. RETI Return from Interrupt Routine 1 2

5. AJMP addr11 Absolute Jump Within 2k byte Page 2 2

6. LJMP addr16 Long Jump 3 2

7. SJMP rel Short Jump 2 2

8. JMP @A+DPTR Jump To Sum of Accumulator And Data Pointer 1 2

9. JZ rel Jump If Accumulator is Zero 2 2

10. JNZ rel Jump If Aacumulator is Not Zero 2 2

11. CJNE A,direct,rel Compare Memory to Accumulator, Jump If Not Equal 3 2

12. CJNE A,#data,rel Compare Immediate Address Data to Accumulator, Jump If Not Equal 3 2

13. CJNE Rn,#data,rel Compare Immediate Data to Register, Ju,p If Not Equal 3 2

14. CJNE @Ri,#data,rel Compare Indirect Address to Immediate. Data Jump If Not Equal 3 2

15. DJNZ Rn,rel Decrement Register and Jump If Not Zero 2 2

16. DJNZ direct,rel Decrement Memory and Jump If Not Zero 3 2

17. JC rel Jump If Carry is Set 2 2

18. JNC rel Jump If Carry Is Not Set 2 2

19. JB bit,rel Jump If Bit is Set 3 2

20. JNB bit,rel Jump If Bit is Not Set 3 2

21. JBC bit,rel Jump and Clear If Bit is Set 3 2

38
Mikrokontroller

22. NOP No Operation 1 2

39

S-ar putea să vă placă și