Documente Academic
Documente Profesional
Documente Cultură
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 C0 1 1
2. CLR bit bit 0 2 1
3. SETB C C1 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
B A Q Q A.B
0 0 0
0 1 0
1 0 0
1 1 1
2
Mikrokontroller
2. OR Logic
B A Q QAB
0 0 0
0 1 1
1 0 1
1 1 1
3. NAND Logic
B A Q QAB
0 0 1
0 1 1
1 0 1 Q AB
1 1 0
3
Mikrokontroller
4. NAND Logic
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
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 ORG 0
P0.0 C00 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
B A Q Q A.B A.B
0 0 1
0 1 0
1 0 0
1 1 1
B A Q Q A.B A.B
0 0 0
0 1 1
1 0 1
1 1 0
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
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
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
Diagram Blok
uC
LED_CW
CW P0.0 P1.0
LED_CCW
CCW P0.1 P1.1 DRIVER M
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:
‘1’ N
(a) (b)
9
Mikrokontroller
c. Program
(a) (b)
10
Mikrokontroller
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:
‘1’ N LOOP2:
N STOP
active ?
‘1’
‘0’ Y
Clear P1
Setb P1.2
3. REACTION TEST
a. Diagram Blok
uC
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
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
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
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
2 us 250 250 8
DJNZ R0 R1 R2
18
Mikrokontroller
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 :
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
Konveyor 1
Konveyor 2
Konveyor 3
Motor 1
Truk
Motor 2
Motor 3
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 :
D7 D6 D5 D4 D3 D2 D1 D0
D7 D6 D5 D4 D3 D2 D1 D0
3. ROTASI BIT
LED Mulai
uC
A 01H
LOOP:
P1
P1 A
RL A
Delay_1s
c. Program
22
Mikrokontroller
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
a. Blok Diagram
uC
Right/Left P0.0
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
24
Mikrokontroller
C. Program
25
Mikrokontroller
D4 D3 D2 D1 a
f b
g
e c
JP
dp
P2 P1 d
Keterangan :
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
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
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:
A0
P1 Disp.”0”
LOOP2:
N Start
active ?
‘1’
LOOP3: ‘0’ Y
Y Start
‘0’
active ?
‘1’ N
Inc A
A2: A9:
Y Y Y
A1 ? A2 ? A9 ?
N N N
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
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
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
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
36
Mikrokontroller
SET INSTRUKSI
1. Data Transfer
Siklus
No Mnemonik Penjelasan Byte
Mesin
1. MOV A,Rn Move register to accumulator 1 1
37
Mikrokontroller
3. Instruksi Percabangan
Siklus
No Mnemonik Penjelasan Byte
Mesin
1. ACALL addr11 Absolute Call within 2k byte Page 2 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
38
Mikrokontroller
39