Keluarga Mikrokontroler MCS-51 terdiri dari 8051, 8031, 8751, 8052, 8032, dan 8752. Masing masing berbeda dalam konfigurasi internalnya. Perbedaan pokok adalah bahwa 8031 dan 8032 tidak memiliki internal ROM, sedangkan 8751 dan 8752 jenis internal ROM-nya adalah EPROM (Erasable & Programmable ROM).
Keluarga Mikrokontroler MCS-51 memiliki konfigurasi dasar sebagai
berikut :
Parallel I/O Port 8 bit (P0-P3)
Serial Full-Duplex Asynchronous I/O Port
Internal Random Access Memory (RAM) sejumlah 128 byte (8051,
8031, 8751) atau 256 byte (8052, 8032, 8752)
Internal Read Only Memory (ROM) sejumlah 4 kilobyte (8051, 8751)
atau 8 kilobyte (8052, 8752)
Programmable Timer/Counter sejumlah 2 (8051, 8031, 8751) atau 3
(8052, 8032, 8752)
System Interrupt dengan 2 sumber interrupt eksternal dan 4 sumber interrupt internal
Dengan fasilitas yang cukup lengkap semacam itu, maka dimungkinkan penggunaan mikrokontroler ini dalam konfigurasi single chip, dimana hanya dibutuhkan satu chip untuk menjalankan seluruh sistem rangkaian.
1. Arsitektur MCS-51
MCS-51 dapat dipergunakan dalam konfigurasi single chip. Fasilitas Parallel Port yang dimiliki dapat dipergunakan untuk mengendalikan peralatan eksternal atau menginputkan data yang diperlukan. Port serial dapat dipergunakan untuk mengakses sistem komunikasi data dengan dunia luar, misalnya dengan computer atau laptop. Timer/counter yang ada dapat dipergunakan untuk mencacah pulsa, menghitung lama pulsa, atau sebagai pewaktu umum. Sedangkan sistem interrupt membuat MCS-51 dapat dipakai pada aplikasi-aplikasi yang mendekati sistem dengan proses real-time.
Gambar 1.1. Diagram blok MCS-51
2. Fungsi kaki-kaki (pin out) MCS-51
Fungsi kaki-kaki 8031 :
VSS : dihubungkan dengan ground rangkaian
VCC : dihubungkan dengan tegangan catu +5 V
Port 0 : merupakan Port I/O 8 bit dua-arah. Port ini digunakan sebagai multipleks bus alamat rendah dan bus data selama pengaksesan ke eksternal memori. Setiap pin-nya dapat mengendalikan langsung 4 beban TTL. Port 0 juga menerima dan mengeluarkan code byte selama proses pemrograman dan verifikasi ROM/EPROM internal.
Port 1 : merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung. Setiap pin dapat diakses secara operasi tiap bit atau byte bergantung pemrogram. Port 1 juga menerima address rendah selama proses pemrograman dan verifikasi ROM/EPROM internal.
Port 2 : merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung. Port ini digunakan sebagai bus alamat tinggi selama pengaksesan ke eksternal memori. Port 2 juga menerima
address tinggi selama proses pemrograman dan
verifikasi ROM/EPROM internal.
Port 3 : merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung. Setiap pin dapat diakses secara operasi tiap bit atau byte bergantung pemrogram. Masing-masing pin pada Port ini memiliki fungsi khusus sebagai berikut :
Tabel 2.1.Fungsi Pin-pin Port 3
RST : merupakan input untuk RESET.
ALE : Address Latch Enable, digunakan untuk memberikan sinyal latch pada alamat rendah pada multipleks bus adress dan data.
PSEN : merupakan sinyal read strobe untuk eksternal program memori.
EA/VPP : merupakan input untuk mode program memori. jika dihubungkan ke ground , program memori adalah eksternal, jika dihubungkan ke VCC, program memori adalah internal, jika dihubungkan ke VPP, diperlukan untuk proses pemrograman ROM.
XTAL1, XTAL2 : merupakan input untuk kristal clock.
3. Register
Sebagaimana semua mikrokontroler, MCS-51 memiliki sejumlah register yang memiliki fungsi khusus (special function register - SFR) dan register umum (general purpose register). General purpose register yang dapat diakses adalah 8 byte per bank yaitu register R0-R7, dengan jumlah bank sebanyak 4. Special Function Register yang terdapat pada mikrokontroler ini memiliki address 080h-0FFh dengan peta memori seperti pada gambar 3.1.
Gambar 3.1. Peta memori Special Function Registers
4. Organisasi Memori
Pada keluarga MCS-51 di Pisahkan antara program memori dan data memori. Masing-masing dapat mengalamati sampai 64 Kilobyte, dengan masing-masing byte lebar datanya 8 bit.
a. Program memori Program memori hanya dapat dibaca, tidak dapat ditulis. Di sini tersimpan program yang akan dijalankan oleh MCS-51 dan data-data konstanta. Sinyal pembacaan EPROM eksternal adalah dari pin -PSEN. Pada MCS-51 ada dua tipe organisasi memori dari program memori, yaitu :
Pengaksesan program memori sebagian berasal dari internal EPROM yang menempati alamat terendah dan alamat berikutnya dari EPROM eksternal. Sebagai contoh untuk MCS-51 dengan model EPROM internal seperti 8051, 8051AH, 8751, alamat 4 Kbyte program memori terendah adalah ROM internal dan alamat berikutnya adalah pada EPROM eksternal.
Pengaksesan program memori yang semuanya dari eksternal EPROM.
Gambar 2.3. Organisasi Program Memori
b. Data memori
Data memori merupakan tempat penyimpanan data variabel, operasi stack dan sebagainya. Data memori dapat dibaca dan ditulis. Sinyal pembacaan untuk eksternal RAM berasal dari pin -RD dan untuk penulisan berasal dari pin-WR. Peta data memori digambarkan sebagai berikut :
Gambar 2.4. Organisasi data memori
Alamat 00H-FFH (untuk 8051) merupakan alamat dari internal RAM yang dapat dialamati dalam dua mode. Pada alamat 00H - 7FH dapat dialamati dalam mode direct maupun indirect addressing. Alamat 80H - FFH hanya dapat dialamati dalam mode direct addressing. Di luar alamat tersebut merupakan alamat eksternal RAM.
5. Instruksi-instruksi MCS-51
Sebuah mikrokontroler tidak akan bekerja bila tidak diberikan program kepadanya. Program tersebut memberitahu mikrokontroler tentang apa yang harus dia lakukan.Dengan aturan penulisan bahasa assembly-nya tidak jauh berbeda dengan bahasa assembly untuk Komputer.
Mikrokontroler MCS-51 memiliki 256 perangkat instruksi. Seluruh instruksi dapat dikelompokkan dalam 4 bagian yang meliputi instruksi 1 byte sampai 4 byte. Apabila frekuensi clock mikrokontroler yang digunakan adalah 12 Mhz, kecepatan pelaksanaan instruksi akan bervariasi dari 1 sampai 4 mikrodetik.
Instruksi yang dimiliki oleh mikrokontroler MCS-51 pada dasarnya digolongkan menjadi :
instruksi operasi aritmatika
operasi logika
transfer data
operasi manipulasi boolean
perintah percabangan
6. Tutorial aplikasi Mikrokontroller MCS-51
1. Buatlah rangkaian berikut di Proteus
Gambar 6.1 Aplikasi DIPSWITCH dan LED
Perhatikan gambar 6.1 di atas. Delapan buah LED sebagai keluaran terhubung ke port 2. LED akan menyala jika pada port keluaran diberi logika HIGH ‘1’dan padam jika diberi logika LOW ‘0’. Untuk mengaktifkan konfigurasi seperti gambar 1.1, pin LED pada posisi 0.
DIPSWITCH digunakan sebagai input digit dan mempunyai logika ‘0’ apabila saklar ke arah ON dan ‘1’ jika ke arah OFF.
2. Ketikkan di sembarang editor yang anda miliki listing program berikut:
3. Setelah itu ubah program assembler yang dieditor tadi ke bentuk hexagonal menggunakan program MIDE-51
4. Upload program ke mikrokontroller MCS-51
5. Maka program akan berfungsi seperti pada gambar
Berikut adalah Video Tutorialnya:
Setelah Rangkaian tersebut selesai jangan lupa untuk menyimpannya. Sekian penjelasan tentang Mikrokontroller MCS-51 dan tutorialnya
Untuk Rangkaian, Program, Buku dan Presentasi bisa di download: disini
Untuk semua rangkaian pada
bab ini menggunakan rangkaian utama sistem minimum 8088 dengan RAM 6116 (2 KB)
pada lokasi address 00000H s/d 007FFH dan ROM 27128 (16 KB) pada lokasi address
FC000H s/d FFFFFH. Pada sistem minimum ini menggunakan gabungan Peta Memori dan
I-O dengan lokasi komponen I-O pada address 20000H s/d 20003H. Dengan menggunakan
cara yang sama pada teori bab VI Perancangan sistem maka dihasilkan rancangan
decoder 74LS139seperti tabel 5
berikut;
Tabel 5 Tabel kebenaran
peta memori dan I-O
INPUT
OUTPUT
B (A16)
A(A15)
Y3
Y2
Y1
Y0
0
0
1
1
1
0
(CS-RAM)
0
1
1
1
0
1
1
0
1
0
(CS-PPI)
1
1
1
1
0
(CS-ROM)
1
1
1
Aplikasi led dan switch
Adapun rangkaian lengkap
untuk aplikasi led dan switch adalah seperti gambar 1. Diagram alir program
led berjalan seperti pada gambar 2. Dan hasil simulasi menggunakan program
emulator emu86 seperti pada gambar 3. Contoh-contoh program untuk rangkaian
aplikasi led dan switch adalah sebagai berikut;
1.Program
led
; PROGRAM1.ASM DIGUNAKAN UNTUK APLIKASI LED DI PORT A ; BERJALAN
DARI KANAN KE KIRI
CODE_SEG SEGMENT; code_seg sebagai segment
ASSUME
CS:CODE_SEG,DS:CODE_SEG,SS:CODE_SEG
ORG 100H; program ditulis mulai
;origin 100h
start: jmp
mulai; Awal program pada Org
0100H
porta equ 00h; Alamat port A,B,C
portb equ 01h; dan ctrlword disesuaikan
portc equ 02h; dengan hardwarenya
cw equ 03h
mulai:
mov al,80h; inisialisasi PPI 8255
mov dx,cw; mode 0
out dx,al;
Port A, B dan C = output
call ledmati
ulangi:
mov al,1
movcx,8
balik:
mov dx,porta
out dx,al
call delay
shl al,1
loop balik
jmpulangi
;-------------------------------------
; prosedur untuk mematikan semua port
;-------------------------------------
ledmati proc near
mov al,0
mov dx,porta
out dx,al
ret
ledmati endp
;-----------------------
;prosedur
delay
;-----------------------
delay proc near; Procedure delay
push cx; simpan cx
mov
cx,7fffh; isi cx dengan lama delay
loop $; looping sampai cx=0
pop cx; keluarkan kembali cx
ret; kembali ke program utama
delay endp; akhir procedure delay
; ROM 27128
ORG
40F0H; alamat yang dituju setelah
reset
DB
0EAH; JMP reset ke
DW
0100H; alamat offset 0100h
DW
0FBF0H; alamat segmen 0FBFh
CODE_SEG ENDS; batas segment code_seg
END
START; akhir program
Gambar 1: Rangkaian Aplikasi LED dan Switch
Gambar 2: Diagram alir Program Aplikasi LED dan Switch
contoh program dan rangkaiannya bisa didownload: disini