Upload
genk-sue
View
144
Download
10
Embed Size (px)
Citation preview
Mikrokontroller 8051
Mempunyai 8-bit Microcontroller optimum untuk kontrol aplikasi.
Merupakan Microcontroller karena Anda dapat membuat satu sistem cip yang terdiri dari : Program & Memori Data
Port I/O
Komunikasi Serial
Counter/Timer
Kontrol Logika Interrupt
Keunggulan dari IC8051
- 8 Bit jalur data dan ALU.
- Interface yang mudah.
- Menggunakan 12 sampai 24 MHz.
( 1 µsec sampai 500 ns for satu siklus intruksi).
- Set intruksi penuh terdiri :
Perkalian dan Pembagian.
Set Bit, reset, and tes (Intruksi Bolean).
- berbagai jenis mode pengalamatan.
Bagian dari IC 8051 (cont'd)
- 4K X 8 ROM – Memori Program.
- 128 x 8 RAM - Memori Data.
- Special function registers.
- Port I/O Serial.
- 32 I/O .
- Dua counter masing - masing 16 bit timer.
IC 8051
VSS VCC RST
P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0
PO RT0
ADDRESS ANDDATA BUS
XTAL1
XTAL2
ALE
EA
PSEN
P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0
RxD TxD INT0INT1T0T1WRRD
SECONDARYFUNCTIONS
PORT3
P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0
PORT2
ADDRESSBUS
P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0
PORT1
Blok Diagram IC 80C51
Kontrol Interrupt
Interrupt Eksternal
CPU
OSC
Timer 1
Timer 0
Port SerialPort I/OKontrol Bus
InputCounter
P0 P3P1
4k byteROM
128 byteRAM
P2(Address/Data)
TXD RXD
Pengalamatan
- 64K X 8 ROM – Memori Program.
- 64K x 8 RAM - Memory Data External.
- 256 x 8 RAM - Memory Data Internal.
- 128 x 8 Special function registers (SFRs).
- bit addressing
Memori Data Internal - 128 bytes RAM.
- Range pengalamatan Langsung:
00 sampai 7F hexadecimal.
- Range pengalamatan Tidak Langsung :
00 sampai FF hexadecimal.
- Bagian yang dapat dialamati perbit :
20 sampai 2F hexadecimal .
- Empat register banks:
00 sampai 1F hexadecimal.
Internal Memori Data
7F
30
2F
20
R0
R1
R2
R3
R4
R5
R6
R7
REGISTER BANK 1
REGISTER BANK 2
END 8051 RAM
BIT ADDRESSABLE
REGISTER BANK 3
00
1F
0F
17
18
08
07
20
REGISTER BANK 0
07 . . . . . . . . . 00
FF . . . . . . . . . F8
Memori Data Eksternal
- 64K byte alamat.
- Pengalamatan Tidak Langsung melalui R0 dan R1 dalam 256 byte segment.
- Sisa pengalamatan tidak langsung melalui dptr
Perluasan Bus Eksternal
8051
PORT 2
PORT 0
ALE
P3.7
P3.6
PSEN
A15 - A8: Alamat Byte Tinggi
AD7 - AD0: Data dan Alamt Byte Rendah
ALE: Address latch enable
RD: Read strobe
WR: Write strobe
PSEN: Program store enable
8051 Timing
State 1 State 2 State 3 State 4 State 5 State 6 State 1 State 2
XTAL2
ALE
_____PSEN
P0
P2
Datasampled
PCL out PCL out
Datasampled
PCL out
Datasampled
PCH out PCH out
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
Memori Program Eksternal
8051
PORT2
ALE
PORT0
PSEN
ADDRESS
LATCH
ROM(S)
ADDRESS INPUTS
DATA
OUTPUTS
OE
A15 - A8
A7 - A0
D7 - D0
AD7 - AD0
Memori Data Eksternal· 64K byte jarak alamat.
· Pengalamatan Tidak Langsung melalui R0 dan R1 dalam 256 byte segment.
· Seluruh jarak dalam pengalamatan tidak langsung melalui data pointer DPTR.
8051
PORT 2
ALE
PORT 0
WRRD
RAM(S) or I/O
CE
DATA OUTPUTS
ADDRESS INPUTS
R/WOE
ADDRESS LATCH
DECODE
Reset· Pin RST adalah Input Schmitt trigger.
· Eksternal reset is asinkron ke internal clock.
· Pin RST harus tinggi selama dua siklus mesin saat osilator dijalankan.
· RAM Internal tidak terpengaruh oleh reset, tapi tidak menentukan kenaikan tegangan.
· Pins Port dalam keadaan acak selama osilator bekerja dan algoritma menulis 1's
kepadanya.
· Pengesetan Reset PC sampai 0000.
· Rangkaian Reset :
8051
RST
+5V
8.2K
10uF
80C51
RST
+5V
2.2uF
Register dengan Fungsi Khusus- 128 byte alamat , pengalamatan langsung pada 80
sampai FF hex.
- 16 alamat adalah dapat dialamati perbit :
Set, Clear, AND, OR, MOV
(ini berakhir di 0 atau 8).
- berisi :
Register CPU dengan tujuan khusus.
Registers Control I/O.
Port I/O.
Register Fungsi KhususF8
F0 B
E8
E0 ACC
D8
D0 PSW
C8
C0
B8 IP
B0 P3
A8 IE
A0 P2
98 SCON SBUF
90 P1
88 TCON TMOD TL0 TL1 TH0 TH1
80 P0 SP DPH DPL PCON
Bit Addressable
Register Fungsi Khusus
Registers CPU :
- ACC : Accumulator.
- B : B register.
- PSW : Program Status Word.
- SP : Stack Pointer.
- DPTR : Data Pointer (DPH, DPL).
Control Interrupt :
-IE : Interrupt Enable.
-IP : Interrupt Priority.
Port I/O :
- P0 : Port 0.
- P1 : Port 1.
- P2 : Port 2.
- P3 : Port 3.
Fungsi Register Spesial (cont'd)
Pewaktu:
- TMOD : Timer mode.
- TCON : Timer control.
- TH0 : Timer 0 high byte.
- TL0 : Timer 0 low byte.
- TH1 : Timer 1 high byte.
- TL1 : Timer 1 low byte.
Serial I/O:
- SCON : Serial port control.
- SBUF : Serial data registers.
Lain-lain:
- PCON : Power control & misc.
PSW : Program Status WordCY AC F0 RS1 RS0 OV ---- P
- CY : Carry Flag.
- AC : Auxiliary Carry Flag.
- F0 : Flag 0 (tidak digunakan).
- RS1 : Register Select 1.
- RS0 : Register Select 0.
- OV : aritmetic overflow flag
- P : Accumulator Parity flag.
RS1 RSO Bank Register Alamat
0 0 0 00h - 07h
0 1 1 08h - 0Fh
1 0 2 10h - 17h
1 1 3 18h - 1Fh
Ports I/O
- Empat 8-bit ports I/O.
- Mempunyai fungsi alternatif lebih.
- Quasi-bidirectional:
Ketika port latch bernilai 1. Dapat digunakan sebagai input (30Kohm rata-rata pullup).
Port 0- Seperti port I/O :
Tidak ada pullup, outputnya bersifat
open drain
- Berfungsi sebagai Multiplexed data bus:
tristate bus dengan pullup
8-bit bus instruksi, ditentukan oleh PSEN.
Adalah Byte rendah dari bus alamat, diindikasikan oleh ALE.
8-bit bus data, ditentukan oleh WR dan RD.
- 3.2 mA outputs (tentang 8 LSTTL loads).
Port 1
Seperti port I/O :
Standar quasi-bidirectional.
- Fungsi alternatif:
Hanya beberapa derivativ.
- 1.6 mA output (sekitar 4 LSTTL loads).
Port 2
- Seperti port I/O :
Standar quasi-bidirectional.
- Fungsi alternatif:
Bit tertinggi dari alamat bus untuk program eksternal dan data memori
- 1.6 mA output (sekitar 4 LSTTL loads).
Port 3
- Seperti port I/O :
Standar quasi-bidirectional
- Fungsi alternatif:
Serial I/O - TXD, RXD
Timer clocks - T0, T1
Interrupts - INT0, INT1
Data memory - RD, WR
- 1.6 mA outputs (sekitar 4 LSTTL loads).
Mnemonics Operands Bytes/Cycles
ADD A, Rn 1/1
ADDC A, direct 2/1
SUBB A, @Ri 1/1
A, #data 2/1
INC A 1/1
DEC Rn 1/1
direct 2/1
@Ri 1/1
INC DPTR 1/2
MUL AB 1/4
DIV AB 1/4
DA A 1/1
Instruction Set : Arithmetic
Instruction Set : LogicMnemonic Operands
Bytes/Cycles
ANL A, Rn 1/1
ORL A, direct 2/1
XRL A, @Ri 1/1
A, #data 2/1
direct, A 2/1
direct, #data 3/2
C, bit 2/2
C, /bit 2/2
CLR A 1/1
CPL C 1/1
bit 2/1
Instruction Set : Logic (cont'd)Mnemonic Operands
Bytes/Cycles
RL A 1/1
RLC A 1/1
RR A 1/1
RRC A 1/1
SWAP A 1/1
SETB C 1/1
CLR bit
CPL
2/1
Instruction Set : Transfer DataMnemonic Operands
Bytes/Cycles
MOV A, Rn 1/1
A, direct 2/1
A, @Ri 1/1
A, #data 2/1
Rn, A 1/1
Rn , direct 2/2
Rn, #data 2/1
direct, A 2/1
direct, Rn 2/2
direct, direct 3/2
direct, @Ri 2/2
direct, #data 3/2
Instruction Set : Transfer Data (cont'd)
Mnemonic Operands Bytes/Cycles
MOV @Ri, A 1/1
@Ri, direct 2/2
@Ri, #data 2/1
DPTR, #data16 3/2
C, bit 2/1
bit, C 2/2
MOVX A,@DPTR 1/2
@DPTR,A 1/2
A,@Ri 1/2
@Ri,A 1/2
Instruction Set : Transfer Data (cont'd)
Mnemonic Operands Bytes/Cycles
MOVC A, @A+DPTR 1/2
A, @A+PC 1/2
PUSH direct 2/2
POP direct 2/2
XCH A, Rn 1/1
A, direct 2/1
A, @Ri 1/1
XCHD A, @Ri 1/1
Set Instruksi : PercabanganMnemonic Operands
Bytes/Cycles
LCALL addr16 3/2
ACALL addr11 2/2
RET - 1/2
RETI - 1/2
LJMP addr16 3/2
AJMP addr11 2/2
SJMP rel 2/2
JMP @A+DPTR 1/2
JZ rel 2/2
JNZ rel 2/2
Set Instruksi : Percabangan (cont'd)Mnemonic Operands
Bytes/Cycles
CJNE A, direct, rel 3/2
A, #data, rel 3/2
Rn, #data, rel 3/2
@Ri,#data,rel 3/2
DJNZ Rn, rel 2/2
direct, rel 3/2
NOP - 1/1
JC rel 2/2
JNC rel 2/2
JB bit, rel 3/2
JNB bit, rel 3/2
JBC bit, rel 3/2