download

Matakuliah
Tahun
Versi
: H0194/ Aplikasi Mikroprosesor dan Interfacing
: 2005
: 1.0
Pertemuan 10
Arsitektur Mikrokontroler 8051
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Menjelaskan arsitektur mikrokontroler
8051
Arsitektur Mikrokontroller
8051
Materi:
• Pengenalan Mikrokontroler 8051
• On-Chip Memory dan Register
• Interrupt Control
• Timer/Counter
• Serial Port
• Power Control
Pengenalan Mikrokontroler
8051
T2 P1.0
VCC
T2EX P1.1
P0.0
P1.2
P0.1
P1.3
P0.2
P1.4
P0.3
P1.5
P0.4
P1.6
P0.5
P1.7
P0.6
RST
P0.7
• Definisi Mikrokontroler
• Perbedaan Mikrokontroler dan
Mikroprosesor
RXD
P3.0
TXD
P3.1
INT0
P3.2
INT1
P3.3
T0
P3.4
P2.6
T1
P3.5
P2.5
RW
P3.6
P2.4
RD
P3.7
P2.3
XTAL2
P2.2
XTAL1
P2.1
VSS
P2.0
AT89C52
24PC
0141
EA/VPP
PROG/ALE
PSEN
P2.7
Pengenalan Mikrokontroler
8051
• Blok Diagram 8051
• Komponen:
EXTERNAL
INTERRUPTS
–
–
–
–
–
–
–
–
CPU 8-Bit
On-Chip Osc
Interrupt Control
Internal ROM
Internal RAM
Timer/Counter
4 I/O Ports
Serial Port
INTERRUPT
CONTROL
ROM
128 BYTES
RAM
TIMER 0
TIMER 1
CPU
OSC
BUS
CONTROL
4 I/O PORTS
SERIAL
PORT
TX
P0 P1 P2 P3
ADDRESS/DATA
RX
COUNTER
INPUTS
On-Chip Memory dan Register
• Program Memory (ROM)
0000
Reset
03
0B
13
1B
23
Interrupt Addresses
2B
User's Area
FFFF
On-Chip Memory dan Register
• Data Memory (RAM)
0000
00
Register Bank 0
08
Register Bank 1
10
Register Bank 2
18
Register Bank 3
20
Bit-addressable Area
2F
Scratch Pad
FFFF
On-Chip Memory dan Register
• Special Function Registers (SFR)
F8
F0
B
E8
E0
ACC
D8
D0 PSW
C8 T2CON
C0
B8
IP
B0
P3
A8
IE
A0
P2
98 SCON
90
P1
88 TCON
80
P0
RCAP2L
RCAP2H
TL2
TH2
TL0
DPL
TL1
DPH
TH0
TH1
SBUF
TMOD
SP
PCON
Interrupt Control
• Memiliki 3 jenis interrupt:
– External Interrupt
– Timer/Counter Interrupt
– Serial Interrupt
• Alamat interrupt vector pada 8051:
–
–
–
–
–
Interrupt 0
0003h
Timer 0
000Bh
Interrupt 1
0013h
Timer 1
001Bh
Serial Interrupt
0023h
• Pin interrupt sharing dengan pin port 3
Timer/Counter
• Menghasilkan interrupt timer setelah
interval waktu tertentu
• Dapat juga difungsikan sebagai counter
untuk menghitung jumlah kejadian
• 8051 memiliki 2 timer/counter
Timer/Counter
• Timer Register:
– Timer 0  TL0(8 bit), TH0(8 bit)
– Timer 1  TL1(8 bit), TH1(8 bit)
– Timer 2  RCAP2L (16 bit), RCAP2H (16 bit)
• SFR yang perlu diperhatikan
– IE (EA, ET2, ET1, ET0)
– TCON
• TR0, TR1  Set/Cleared by software to turn
Timer/Counter ON/OFF
– IP (PT2, PT1, PT0)  Only If needed
Timer/Counter
Timer Mode:
• Timer dalam mikrokontroler dapat berfungsi dalam
beberapa mode. Untuk mengubah mode Timer 0 dan
Timer 1, register yang diperlukan adalah TMOD. Khusus
Timer 2, register yang digunakan adalah T2CON.
GATE
C/T
M1
Timer 1
M0
GATE
C/T
M1
M0
Timer 0
GATE  0 artinya timer akan run pada saat TR menjadi 1
1 artinya timer akan run hanya pada saat TR = 1 dan pin
INT bernilai 1
C/T  0 artinya timer dioperasikan sebagai timer
1 artinya timer dioperasikan sebagai counter
Timer/Counter
• M1 dan M0 adalah untuk memilih mode timer
M1
M0 Mode
Keterangan
0
0
0
13-bit Timer/Counter
0
1
1
16-bit Timer/Counter
1
0
2
8-bit Auto-Reload Timer/Counter
1
1
3
(Timer 0) TL0 sebagai timer 8-bit
dikontrol oleh bit kontrol dari timer 0
sedangkan TH0 sebagai timer 8-bit
dikontrol oleh kontrol bit dari timer 1
1
1
3
(Timer 1) Timer/Counter 1 berhenti
Timer/Counter
• Mode 8 bit
Interval 
256  TL012 s
f Osc
• Mode 8 bit auto reload:
Sama dengan yang sebelumnya, tetapi nilai ini diisikan
ke TH0 juga agar pada saat terjadi overflow, nilai TH0
secara otomatis akan diisikan ke TL0.
• Mode16 bit:

65536  TH 0  100h  TL0  12
Interval 
s
f Osc
• Mode16 bit auto reload:
Sama dengan sebelumnya, tetapi khusus untuk Timer 2,
dan nilai reloadnya di berikan di RCAP2H dan RCAP2L
Serial Port
• Dalam komunikasi serial, perlu diperhatikan kecepatan transfer
data atau disebut juga dengan baud rate.
• Untuk membangkitkan baud rate dapat digunakan timer 1 dengan
mode 8 bit auto-reload maupun timer 2 dengan mode 16 bit autoreload.
• SCON
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
• SERIAL MODE:
SM0
SM1
Mode
Description
BaudRate
0
0
0
SHIFT REGISTER
Fosc./12
0
1
1
8-Bit UART
Variable
1
0
2
9-Bit UART
Fosc./64 OR Fosc./32
1
1
3
9-Bit UART
Variable
Serial Port
Baud Rate
• Mode 0
Baud Rate = Fosc./12
• Mode 1
– Using Timer 1:
k  FOSC
k  FOSC
Baud Rate 
TH 1  256 
32 12  (256  TH1 )
384  Baud Rate
Nilai k tergantung pada bit SMOD (Register PCON)
If SMOD = 0, then K = 1
If SMOD = 1, then K = 2  Double BaudRate
Serial Port
Baud Rate
• Mode 1
– Using Timer 2, ada 2 macam:
– Jika Timer 2 diclock dari pin T2 (P1.0)
Baud Rate 
T imer2 overflowRate
16
– Jika Timer 2 diclock dari internal
Baud Rate 
Fosc.
32 * (65536 ( RCAP2 H , RCAP2 L))
RCAP2 H , RCAP2 L  65536
• Mode 2
– If SMOD = 1, then BaudRate = Fosc./32
– If SMOD = 0, then BaudRate = Fosc./64
• Mode 3  Same as Mode 1
Fosc.
32 * Baud Rate