Post on 10-Feb-2018
BAB 2 BINAAN DALAMAN PENGAWAL MIKRO
2.1 PENGENALAN
Pengawal Mikro (MC) merupakan sebuah chip yang mengandungi bahagian-bahagian asas
yang penting untuk beroperasi/pengawalan. Bahagian-bahagian ini ialah CPU, ROM,
RAM, port-port I/O dan timer/counter.
Kadang-kadang kita juga boleh menjumpai litar-litar elektronik lain pada sesetengah MC
seperti litar penukar Digital-Analog, penukar Analog-Digital dan PWM (Pulse Width
Modulation untuk kawalan pergerakan motor).
Kini terdapat beberapa syarikat yang terkenal dengan pengeluaran MC seperti Motorola
(MC 68HC11), Microchip (Series PIC14/16/18XX) dan INTEL (ATMEL 89C/S51).
Prepared by Tan KL 2-1
2.2 Keluarga MCS51 Keluaran INTEL
Keluarga MCS51 keluaran Intel ini merupakan MC berbit 8 (8-bit MC) di mana ia boleh
menjalankan kerja pemprosesan sebanyak 8 bit dalam satu masa.
Untuk MC ini, ia dilengkapi dengan ciri-ciri berikut padanya:
i. RO
ii. RA
iii. Ti
iv. Pin
v. Se
Prepared by Tan K
Feature 8051 8052 8031 ROM (program space in bytes) 4K 8K 0K RAM (bytes) 128 256 128 Timers 2 3 2 I/O pins 32 32 32 Serial port 1 1 1
M – Ia merupakan ingatan di mana aturcara yang ditulis disimpan di situ.
- Bagi MC AT89c/s51 yang kita guna, ROMnya adalah jenis flash, bererti
kandungannya boleh ditulis dan dipadam dengan senang dengan menggunakan
programmer.
M – Ia merupakan ingatan sementara di mana kandungan pada ROM akan
dipindahkan ke ingatan ini apabila MC dihidupkan untuk beroperasi.
mer – Ia merupakan komponen di mana ia boleh diprogramkan untuk tujuan
pemasaan, yakni menghasilkan denyutan-denyutan untuk tujuan pengiraan
masa.
I/O – Ia merupakan pin-pin input/output di mana ia membolehkan MC berhubung
dengan dunia luar dan ini akan menjadikan MC lebih berguna lagi.
rial Port – Port ini membolehkan penghantaraan data antara 2 komputer diadakan
jika diperlukan.
- Penghantaran data jenis siri boleh dijalankan dengan menggunakan
port ini.
L 2-2
2.3 Konfigurasi Pin
1234567891011121314151617181920
4039383736353433323130292827262524232221
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST
(RXD)P3.0(TXD)P3.1
(T0)P3.4(T1)P3.5
XTAL2XTAL1
GND
(INT0)P3.2(INT1)P3.3
(RD)P3.7(WR)P3.6
VccP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)EA/VPPALE/PROGPSENP2.7(A15)P2.6(A14)P2.5(A13)P2.4(A12)P2.3(A11)P2.2(A10)P2.1(A9)P2.0(A8)
8051(8031)
1234567891011121314151617181920
4039383736353433323130292827262524232221
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST
(RXD)P3.0(TXD)P3.1
(T0)P3.4(T1)P3.5
XTAL2XTAL1
GND
(INT0)P3.2(INT0)P3.2(INT1)P3.3(INT1)P3.3
(RD)P3.7(RD)P3.7(WR)P3.6(WR)P3.6
VccP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)EA/VPPEA/VPPALE/PROGALE/PROGPSENPSENP2.7(A15)P2.6(A14)P2.5(A13)P2.4(A12)P2.3(A11)P2.2(A10)P2.1(A9)P2.0(A8)
8051(8031)
Pin 1 – 8 Port 1 (mempunyai 8 pin di mana setiap satu boleh dijadikan input atau output)
Pin 9 Pin untuk reset (MC akan diresetkan bila pin ini dibekal dengan logik ”1” - +5V)
Pin 10 -17 Port 3 (mempunyai 8 pin di mana setiap satu boleh dijadikan input atau output)
Fungsi Lain
Pin 10 Untuk komunikasi jenis siri (sebagai pin penerimaan data - Rx)
Pin 11 Untuk komunikasi jenis siri (sebagai pin penghantaran data - Tx)
Pin 12 INT0 (untuk sampukan luar)
Pin 13 INT1 (untuk sampukan luar)
Pin 14 T0 – Timer 0
Pin 15 T1 – Timer 1
Pin 16 WR – tulis kepada RAM tambahan (di luar MC)
Pin 17 RD –baca dari RAM tambahan (di luar MC)
Pin 18 – 19 Terminal untuk memasang Krystal/pengayun untuk penjanaan denyutan klok
Pin 20 Pin untuk bumi
Pin 21 - 28 Port 2
Fungsi Lain
Sebagai Bas Alamat (Byte atas : A8 – A15)
Prepared by Tan KL 2-3Pin 29 PSEN – untuk membaca ROM tambahan (di luar MC)
Pin 30 ALE - Address Latch Enable (digunakan bila berantara-muka dengan RAM
atau ROM tambahan)
Fungsi Lain
VPP – untuk memprogram ingatan Flash ROM di dalam MC
Pin 31 EA – jika ROM tambahan digunakan, pin ini dikehendaki sambung ke bumi.
Jika tiada ROM tambahan, pin ini disambung ke VCC.
Pin 32 – 39 Port 0 (mempunyai 8 pin di mana setiap satu boleh dijadikan input atau
output. Satu perintang Pull-up dikehendaki sambung pada port ini bila ia
digunakan sebagai output)
Fungsi Lain
sebagai byte rendah Bas Alamat (A0 – A7) dan Bas Data (D0 – D7)
Pin 40 Bekalan kuasa,VCC +5V
2.3.1 Struktur Port I/O
Port O (P0 0 – P0.7).
Prepared by Tan KL 2-4
Bas Dalaman 8051
D Q Port
Latch
Write to latch
Read Pin
Flip-flop D
Read latch
Pin Port
Nota Tambahan: Jadual Kebenaran Flip-flop D
A Klok Q 0 0 1 1
Port 0 mempunyai dua fungsi iaitu sebagai 8-bit dwi-arah port I/O (input/output) dan
byte rendah Bas Alamat dan Bas Data
Bila ia digunakan sebagai Port I/O, ia boleh disambung dengan 8 biji get LS TTL apabila
berlogik rendah (“0”) dan berkeadaan tidak menentu (float) bila berlogik tinggi “1”.
Oleh itu sebuah perintang Pull-up dikehendaki sambung pada litar (seperti pin port 1)
apabila ia digunakan sebagai port Output.
Prepared by Tan KL 2-5
. Port 1 (P1 0 – P1.7)
Bas Dalaman 8051
D Q Port
Latch
Write to latch
Pin Port
Read latch
VCC Perintang Pull-UP dalaman
“0”
“1”
OFF
O/P = “1”
ON O/P = “0”
“0”
“1” Flip-flop D
“0”
“1”
“0”
“1”
Port 1 merupakan 8-bit dwi-arah port I/O dan boleh disambung dengan 4 biji get LS
TTL padanya.
Di dalamnya telah dilengkapi dengan perintang Pull-up supaya keadaan tidak menentu
(floating) tidak berlaku apabila ia digunakan sebagai port output.
Port 2 & Port 3 (P2.0 – P2.7 & P3.0 –P3 7).
Bas Dalaman 8051
D Q Port
Latch
Write to latch
Read latch
Fungsi lain
VCC Perintang Pull-UP dalaman
Flip-flop D Pin
Port
Port 2 & Port 3 mempunyai dua fungsi iaitu sebagai Port Input/Output atau sebagai byte
rendah Bas Alamat (A0 – A7 bagi port 2) dan sebagai pin-pin untuk komunikasi/
sampukan/timer (rujuk nota sebelum ini)
2.3.2 Sambungan Asas Untuk Menghidupkan MC 8051
Tiga litar penting yang dikehendaki untuk mengoperasikan MC 8051 seperti di bawah: i. Litar Bekalan Kuasa VCC (+5V)
Litar ini disambungkan untuk menghidupkan litar keseluruhan MC.
Ia menggunakan IC LM7805 sebagai pengatur voltan untuk mendapatkan voltan 5V
daripada voltan masukan 9 – 15V. Dua biji kapasitor dipasang bertujuan untuk
menghapuskan isyarat hingar (noise) dan seterusnya melicinkan voltan keluaran 5V
LM7805
IN OUT GND
0.1uF 0.1uF
40
MC 8051
20
+9 – 15v
ii. Litar Pengayun
Litar ini disambungkan untuk menghasilkan isyarat bentuk sinus yang akan ditukar
kepada bentuk isyarat empat segi
Ia bagaikan tangki minyak kereta yang bertujuan untuk membekalkan minyak kepada
enjin kereta untuk menghidupkan kereta
C2 - 30pF
C1- 30pF
XTAL2 –Pin 18
XTAL1 –Pin 19
GND –Pin 20
Prepared by Tan KL 2-6
Prepared by Tan KL 2-7
iii. Litar RESET (Pin 9)
Litar ini diperlukan untuk mereset (memaksa MC balik ke suruhan pertama semula)
keseluruhan litar MC.
MC memerlukan logik ”1” (+5V) untuk melakukan operasi reset ini.
Apabila MC mula-mula diONkan, MC akan dibekal logik ”1” pada pin 9 ini untuk
meresetkan litar keseluruhan MC. Pada masa yang sama, kapasitor (C) akan dicaskan
sehingga penuh.
Apabila kapasitor penuh dicaskan, ia akan menghalang pengaliran arus ke pin 9 lagi dan
MC akan menghentikan operasi reset. Keadaan pada pin 9 pada masa ini adalah berlogik
rendah (”0”). Maka MC bersedia beroperasi.
Apabila suis (SW) ditekan, arus akan dibekal kepada pin 9 daripada bekalan 5V dan pin 9
ini akan mendapat logik ”1”. Maka keadaan reset berlaku semula. Kapasitor (C) pada masa
itu berada dalam keadaan nyahcas.
Keadaan berulang bila suis itu dilepaskan dalam keadaan tidak ditekan. (kapasitor dicas
semula)
Perintang (R) digunakan dalam litar ini adalah bertujuan susutan voltan pada 5V (logik ”1”) pada pin 9
RESET –Pin 9
C – 4.7uF SW
R – 10K
+5V
MC 8051
RESET –Pin 9
C SW
R
+5V
MC 8051
Kapasitor dalam keadaan menyahcas pada keadaan suis ditekan
RESET –Pin 9
C SW
R
+5V
MC 8051
Ka s
logik “0”
pasitor dalam keadaan penuh dicapada keadaan tepu
logik “1”
RESET –Pin 9
C SW
R
+5V
MC 8051
logik “1”
Kapasitor dalam keadaan mengecas pada keadaan awal
2.4 Ruang Alamat (Address Spaces) Pada MC 8051
Ruang alamat MC 8051 dapat dibahagikan kepada 4 bahagian iaitu:
i. Ingatan Data Dalaman – IDM (Internal Data Memory –RAM Dalaman)
ii. Ingatan Data Luaran – EDM (External Data Memory – RAM Luaran)
iii. Ingatan Kod Dalaman – ICM (Internal Code Memory – ROM Dalaman)
iv. Ingatan Kod Luaran – ECM (External Code Memory – ROM Luaran)
Prepared by Tan KL 2-8
MC 8051
CPU
INTERNAL CODE
MEMORY (4K)
ROM/EPROM
0FFFH 0000H
INTERNAL DATA
MEMORY (128 BYTE)
INTERNAL DATA
MEMORY (128 BYTE)
FFH 7FH 00H
SFRs RAM
EXTERNAL DATA
MEMORY (64K) RAM
0FFFH 0000H
EXTERNAL CODE
MEMORY (64K)
ROM/EPROM
0FFFH 0000H
MOVC
MOVX
MC 8051 membenarkan penyambungan ingatan tambahan di luarnya dan kapasitinya
adalah 64K byte untuk Ingatan Data Luaran (RAM) dan 64K byte juga untuk Ingatan
Kod Luaran (ROM/EPROM). Ini adalah satu kemudahan untuk mana-mana aturcara yang
sangat panjang yang tidak muat pada ingatan yang telah disediakan (128 byte untuk
RAM dalaman dan 4K byte untuk ROM/EPROM dalaman seperti yang ditunjukkan).
2.4.1 Ruang Alamat Bagi Ingatan Data Dalaman (128 Byte Internal Data Memory-
RAM)
Contoh: Bit ini boleh dicapai bila dirujuk sebagai 08H
**Arahan MOV A, 08H libatkan kesemua 8 bit (B0 – B7) pada alamat 08H (R0 di Bank 1) manakala SETB 08H hanya melibatkan bit tunggal sahaja iaitu pada bit 21.0H.
Prepared by Tan KL 2-9
Prepared by Tan KL 2-10
MCS51 mempunyai 128 byte bagi ruangan alamat RAM dalamannya dan ia boleh dibahagi kepada 4 bahagian yang penting iaitu:
i. 4 set register bank di mana setiap bank mempunyai 8 biji register (daftar). Oleh
itu jumlah register adalah 32 biji. Ruang alamatnya adalah dari 00H hingga 18H.
Kita biasa menggunakan register pada bank 0 untuk subroutine lengah masa.
ii. 128 bit ruangan alamat di mana boleh dicapai bit demi bit. Ia bermula dengan
ruang alamat dari 20H hingga 2FH dan biasa digunakan untuk set/reset bitnya.
Contoh: SETB 08H Bit pada 08H menyimpan logik “1” padanya.
iii. 80 lokasi (dari 30H hingga 7FH) adalah penggunaan am. Biasanya digunakan untuk
tujuan operasi Stack.
iv. Bahagian keempat ialah Special Function Register (SFRs) yang berada pada ruang
alamat 80H hingga FFH. Setiap alamat mempunyai 1 byte. Contoh alamat yang
biasa digunakan ialah 80H (Port 0), 90H (Port 1), A0H (Port 2), B0H (Port 3) dan
D0H (PSW – Program Status Word).
2.4.2 Program Status Word (PSW)
PSW merupakan sebuah SFR yang terletak pada alamat D0H.
Setiap bitnya boleh dicapai bit demi bit.
PSW ini mengandungi maklumat-maklumat penting selepas operasi aritmetik. Ia
memberitahu kita mengenai penghasilan pembawa (Carry), Auxiliary Carry, bit limpah
atau jenis pariti (genap atau ganjil) selepas suatu operasi aritmetik. Maklumat-maklumat
ini penting untuk penghasilan aturcara yang berkualiti dan juga untuk pemeriksaan
kesalahan semasa penghantaran data.
Bit Alamat Bagi PSW
Symbol Address Function CY D0H.7 Carry Flag AC D0H.6 Auxiliary Carry Flag F0 D0H.5 General-Purpose Flag RS1 D0H.4 Register Bank Select (MSB) RS0 D0H.3 Register Bank Select (LSB) OV D0H.2 Overflow Flag - D0H.1 User-definable Flag P D0H.0 Parity Flag
Prepared by Tan KL 2-11
Contoh: 6 B16 0110 10112
+ A F16 + 1010 11112
1 1 A16 1 0001 10102
Cara Set dan Reset bit pada kawasan Bit addressable memory
AC CY F0 P RS1 RS0 OV PSW bit0 bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7
Carry, C = 1 Auxiliary Carry, AC = 1
Jumlah bilangan “1” = ganjil, Pariti, P = 1
Overflow, OV = 0
2)
07 06 05 04 03 02 01 00
78 70 68 60 58 50 48 40
38
30
28
20
18
10
08 0F 0E 0D 0C 0B 0A 09 08
17 16 15 14 13 12 11 10
3)
Contoh: SETB 0BH Bit pada 21.3 disetkan iaitu logik “1” pada bit itu
CLR 76H Bit pada2E.6 diresetkan iaitu logik “0” pada bit itu
SETB 39H Bit pada 27.1 disetkan iaitu logik “1” pada bit itu
CLR 1FH Bit pada 23.7 diresetkan iaitu logik “0” pada bit itu
Cara memilih register pada Bank register tertentu
Contoh: SETB PSW.4 ; Bank2 dipilih
MOV R0, #99H ; Lokasi RAM 10H mempunyai data 99H
MOV R1, #85 ; Lokasi RAM 11H mempunyai data 85H
**SETB PSW.4 boleh diganti dengan MOV PSW, #10H, hasil adalah sama
AC CY F0 P RS1 RS0 -
bit0 bit1 Bit2 Bit3 Bit4 Bit5 Bit6
0 0 Bank0 00H – 07H 0 1 Bank1 08H – 0FH 1 0 Bank2 10H – 17H 1 1 Bank3 18H – 1FH
Bit7
OV PSW
Latihan: a. Senaraikan bahagian-bahagian penting yang terdapat pada satu pengawal mikro (MC).
b. Lukiskan gambarajah blok bagi satu pengawal mikro.
c. Terangkan secara ringkas fungsi-fungsi komponen berikut yang terdapat pada sebuah MC.
i. ROM ii. RAM iii. TIMER
iv. Pin Input/Output v. Port Serial
Prepared by Tan KL 2-12
Prepared by Tan KL 2-13
d. Lakarkan struktur-struktur bagi pin Input/Output bagi Port 0 dan Port 1. Nyatakan
perbezaannya?
e. Nyatakan 3 litar asas yang perlu disambung untuk menghidupkan sebuah MC. Lukiskan
litar-litar tersebut.
f. i. Nyatakan bahagian-bahagian ruang alamat pada Ingatan Data Dalaman MC 8051 dan
bezakan fungsi-fungsi setiap satu.
ii. Lakarkan gambarajah blok bagi ruang alamat yang terdapat pada MCS 51.
g. Tentukan keadaan bit Carry (C), Auxiliary Carry (AC) dan Pariti (P) dan Overflow (OV) bagi
masalah berikut:
i. 9 F16 ii. B E16 iii. F F16
+ 1 116 + A 316 + 0 116
h. Nyatakan kandungan PSW untuk mencapai daftar (register) di Bank 2.
i. Berdasarkan aturcara di bawah:
SETB PSW.3 MOV A, #99H MOV R3, #85H ANL A, R3 i. Bank mana dalam RAM digunakan?
ii. Tunjukkan proses setiap arahan yang dilaksanakan.
iii. Nyatakan nilai akhir Accumulator.
j. Berdasarkan aturcara di bawah:
SETB PSW.3 SETB PSW.4 MOV A, #0AFH MOV R5, #7DH ORL A, R5
Prepared by Tan KL 2-14
i. Bank mana dalam RAM digunakan?
ii. Tunjukkan proses setiap arahan yang dilaksanakan.
iii. Nyatakan nilai akhir Accumulator.
k. Berdasarkan aturcara di bawah:
MOV PSW, #90H MOV A, #0FH MOV R0, #ADH ADD A, R0 i. Bank mana dalam RAM digunakan?
ii. Tunjukkan proses setiap arahan yang dilaksanakan.
iii. Nyatakan nilai akhir Accumulator.
g. Nyatakan nama/kedudukan bagi alamat RAM dalaman berikut:
i. 0FH ii. 17H ii. B0H iv. SETB 3BH v. E0H
vi. 90H vii. 16H viii. 82H ix. CLR 0DH x. D0H
xi. 81H xii. SETB 5AH xiii. CLR 3FH xiv. CLR 31H xv. 1BH
h. Nyatakan lokasi alamat bagi nama daftar berikut:
i. Port 3 ii. Stack Point (SP) iii. Port 1 iv. 21.7H
v. 2A.2H vi. R4 di bank 2 vii. Timer Mode (TMOD)
viii. Data Pointer (L) ix. Port 0 x. 27.1H xi. R0 di bank 3
xii. Timer (high 1) xiii. Program Status Word xiv. Port 2
xv. R6 di bank 0 xvi. 2B.2H xvii. Daftar B