Anda di halaman 1dari 18

MEKATRONIKA A

MCS-51 MICROCONTROLLER

DISUSUN OLEH :
KELOMPOK 6
1. Jimmy Wahyudi (D021191044)
2. MUH. FADEL ASHARI (D021191034)
3. Muh. Ikhsan Hasan (D021191109)

DEPARTEMEN TEKNIK MESIN


FAKULTAS TEKNIK
UNIVERSITAS HASANUDDIN
2021/2022
MIKROKONTROLER MCS-51

MCS-51 adalah mikroprosesor yang digunakan untuk instrumen dan


kendali, yang diotaki oleh CPU 8 bit yang terhubung melalui satu jalur bus dengan
memori penyimpanan berupa RAM dan ROM serta jalur I/O berupa port bit I/O
dan port serial. Selain itu terdapat fasilitas timer/counter internal dan jalur interface
address dan data ke memori eksternal, MCS-51 juga diklaim sebagai standar
mikrokontroler untuk industri yang menguasai lebih dari 60% pasar mikrokontroler
dan menjadi inti bagi terciptanya mikrokontroler produk lainnya.

Konfigurasi dasar mikrokontroler MCS-51 :

- Pararel I/O Port 8 bit (P0-P3)


- Serial Full-Duplex Asyncronous 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
Fungsi Kaki- kaki (Pin Out) MCS-51

- 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 pemograman dan verivikasi 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 pemograman Port 1 juga menerima address rendah selama proses
pemograman 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 pemograman 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 pemograman. Masing- masing pin pada Port ini memiliki fungsi khusus
sebagai berikut.
- RST : merupakan input untuk RESET.
- ALE : Address Latch Enable, digunakan untuk memberikan sinyal latch pada
alamat rendah pada multipleks bus address dan data.
- PSEN : merupakan sinyal read stobe untuk eksternal program memori.
- EA/VPP : merupakan input untuk mode program memori. Jika dihubungkan ke
VCC, program memori adalah internal, jika dihubungkan ke VPP, diperlukan untuk
proses pemograman ROM.
- XTAL1, XTAL2 : merupakan input untuk kristal clock.
Register Mikrokontroler MCS-51
Didalam register mikrokontroler MCS-51 memiliki sejumlah register yang
memiliki fungsi khusus ( spesial function register – SFR) dan register umum
(general purpose register). General purpose register yang dapat diakses adalah 8
byte per bank yaitu register RO-R7, dengan jumlah bank sebanyak 4. Special
Function Register yang terdapat pada mikrokontroler ini memiliki address 080h-
0FFh menggunakan peta memori. Tempat yang kosong pada peta memori tidak
diimplementasikan dalam chip. Pembacaan data pada tempat kosong ini akan
menghasilkan data acak, sedangkan penulisan data pada tempat – tempat kosong
tersebut tidak akan mengakibatkan perubahan apa –apa. Register yang terletak pada
kolom terkini adalah register- register yang dapat dialamati per bit.

d. Port Input/ Output Mikrokontroler MCS-51


Memiliki 2 jenis port I/O pararel dan port I/O serial. Port I/O pararel sebanyak 4
buah dengan nama P0, P1, P2, dan P3. Masing- masing port ini bersifat bidirectional
(dua arah), memiliki latch (dengan ini maka data output akan tetap berada pada
statusnya hingga ada pengiriman data baru), memiliki buffer output sehingga setiap
pin-nya dapat dibebani dengan 4 buah gerbang IC TTL standar (kecuali Port 0
sebanyak 8) dan memiliki buffer input. Dan fungsi dari port sendiri digunakan
khusus untuk mengakses peralatan diluar chip mikrokontroler
Port serialnya bersifat full- duplex (dalam satu saat bisa menerima sekaligus
mengirim data), bisa digunakan untuk shift register, atau Universal Anynchronous
Receiver and Transmitter (UART) dengan data terkirim sepanjang 8 atau 9 bit.
Untuk pembacaanya pada pengiriman data , port serial dapat dilakukan dengan cara
menuliskan data tersebut ke register SBUF (salah satu spesial function register).

Intruksi – intruksi MCS-51


Mikrokontroller MCS-51 memiliki 256 perangkat intruksi. Seluruh instruksi
dapat dikelompokkan dalam 4 bagian yang meliputi instruksi 1 byte sampai 4 byte.
Apabila frekuensi clock mikrokontroller yang digunakan adalah 12 Mhz, kecepatan
pelaksanaan instruksi akan bervariasi dari 1 sampai 4 mikrotik. Intruksi yang
dimiliki oleh mikrokontroller MCS-51 pada dasarnya digolongkan menjadi :
- Instruksi operasi aritmatika
- Operasi logika
- Trasfer data
- Operasi manipulasi boolean
- Perintah percabangan

Seri MCS-51 sederhana, murah dan mudah didapat di pasaran, cukup untuk
aplikasi sederhana bagi pencinta elektronik maupun aplikasi di industri. Chip ini
kemudian dikembangkan menjadi beberapa seri dengan berbagai kemampuan
seperti pada 8031, 80C31, 8051AH dan 8751.

Beberapa perusahaan produsen semikonduktor membuat variannya atas


lisensi Intel, yaitu suatu chip yang dapat menjalankan bahasa dan fitur 8051
ditambah dengan kemampuan dan kemudahan khusus. Perusahaan tersebut antara
lain AMD, Atmel, Dallas, Matra, OKI, Philips, Siemens, ISS. Produk Philips
memberikan tambahan adanya ADC (Analog to Digital Converter) dan generator
PWM (Pulse Width Modulation), sedangkan Dallas mempercepat detak (clock) dan
siklus mesin, Atmel membuat mikrokontroler yang menggunakan
memori Flash dan harganya relatif murah.

PERINTAH DASAR MCS-51


Perintah dasar yang biasa digunakan pada uController MCS-51 adalah sebagai
berikut:

1. clr (clear) (mereset atau memberi nilai 00h pada akumulator)


format : clr a

2. clr rx (mereset atau memberi nilai 00h pada register x)


Contoh: clr r0

3. clr py (mereset atau memberi nilai 00h pada port y)


Contoh: clr p1

4. clr (mereset atau memberi nilai 00h pada alamat tertentu)


Contoh: clr 4ah

5. mov (menyalin isi data pada port x ke dalam akumulator)


format : mov a, px
Contoh: mov a, p3

6. mov px, # (menyalin suatu nilai 8-bit ke port x)


Contoh: mov p0, #0feh

7. mov px, ry (menyalin isi data yang nilainya terdapat pada register y ke dalam
port x)
Contoh: mov p3, r5

8. setb (set bit) (menset atau memberikan logika 1 pada port x.y)
format : setb px.y
Contoh: setb p1.0

Call
Call terbagi menjadi dua format yaitu acall (absolute call) dan lcall (long
call), perbedaannya hanya pada kemampuan jauh dekatnya pemanggilan subrutin.
Seandainya penggunaan acall hanya mampu memanggil sampai alamat 100h maka
untuk lcall dapat lebih dari itu, namun juga untuk penggunaan lcall membutuhkan
memori dan siklus mesin yang lebih banyak.

Saat perintah call dijalankan, isi register PC (Program Counter) akan


disimpan ke dalam stack dan digantikan dengan alamat subrutin yang dipanggil.
Saat subrutin berakhir dengan ditandai perintah ret (return) register PC akan diisi
kembali oleh isi dari stack, dan mikrokontroler akan menjalankan perintah di bawah
baris perintah call tadi.

Format : acall (perintah untuk memanggil program pada subrutin)


Contoh: acall cinta

lcall (perintah untuk memanggil program pada subrutin)


Contoh: lcall komputer

Catatan : Penggunaan subrutin sebaiknya menggunakan kata, untuk kata-katanya


sesuka pemrogram boleh menggunakan nama sendiri, nama kota ataupun nama-
nama lainnya.

jmp (jump)
Jmp juga terbagi menjadi dua format yaitu sjmp (short jump) dan ljmp (long jump),
untuk pengunaannya sama seperti format call pada penjelasan di atas, hanya saja
jump merupakan lompatan sederhana yang tidak dapat mengembalikan nilai
register PC seperti perintah call.

Format : sjmp (lompat atau jalankan langsung program yang berada pada label
suatu subprogram)
Contoh: sjmp kamu
sjmp (lompat atau jalankan langsung program yang berada pada suatu alamat
memori)
Contoh: ljmp 100h

djnz (decrement and jump if not zero) (kurangi nilai isi data pada register x dan bila
nilainya belum mencapai 0 maka akan dilakukan lompatan ke label subprogram)
format : djnz rx,
Contoh: djnz r7, gaul
(kurangi nilai isi data pada register R7 dan bila nilainya belum mencapai 0 maka
dilakukan lompatan ke subprogram dengan label gaul)

jnb (jump if not bit set) (lompat ke label subprogram bila nilai port x.y berlogika
LOW atau mempunyai nilai 0)
format : jnb px.y,
Contoh: jnb p1.0, go

Catatan : jnb hanya bisa dijalankan dengan operand yang berkapasitas 1 bit.

cjne (compare and jump if not equal) (bandingkan apakah nilai akumulator sama
dengan nilai xyz, bila nilainya tidak sama maka lompat ke label subprogram)
format : cjne a, xyz,
Contoh: cjne a, #0fh, keren

cjne rv, xyz, (bandingkan apakah nilai register v sama dengan nilai xyz, bila
nilainya tidak sama maka lompat ke label subprogram)
Contoh: cjne r1, #0ach, ganteng

rr (rotate right) (geser ke kanan 1 bit pada isi akumulator)


rl (rotate left)

format : rr a
rl a (geser ke kiri 1 bit pada isi akumulator)
rr rx (geser ke kanan 1 bit pada isi register x)
rl rx (geser ke kiri 1 bit pada isi register x)
inc (increment) (menambahkan nilai 1 bit pada akumulator)
dec (decrement)
format : inc a
dec a (mengurangi nilai 1 bit pada akumulator)
inc rx (menambahkan nilai 1 bit pada register x)
dec rx (mengurangkan nilai 1 bit pada register x)

Catatan : untuk perintah yang menggunakan decrement, increment, rotate, compare


hanya dapat dilakukan oleh akumulator maupun register saja. Bila nilai pada suatu
port ingin dilakukan perintah diatas maka port tersebut wajib disalin terlebih dahulu
kedalam akumulator atau register dengan menggunakan perintah mov.

 Format penulisan standar bahasa assembly MCS-51 (pada Rigel ReadS51)


:

#include
org 100h
mov p0,#0ffh
mov p1,#0ffh
mov p2,#0ffh
mov p3,#0ffh
;
~ Main Program ~
;
End

Keterangan:

 #include

mengambil file sfr51.inc pada library program Reads51 yang berguna sebagai
referensi alamat memory untuk port, register, akumulator dan lainnya. Dengan ini
dalam penulisan program, tidak perlu perintah inisialisasi, perintah yang seharusnya
mov 0x80,#ffh dapat ditulis mov p0,#0ffh. Sebenarnya masih banyak lagi file
include yang dapat digunakan hanya saja pada penggunaan standar hanya
digunakan sfr51.inc atau sfr52.inc. Cat : sfr51.inc (AT89x51), sfr52.inc (AT89x52).

 org 100h

mempunyai fungsi yang sama dengan perintah a100 pada pemrograman BGC
yaitu memulai program dari alamat memori 100h.

 mov px, #0ffh

men-set suatu port atau berguna untuk mengaktifkan port yang akan digunakan
sebagai input maupun sebagai output. Bila hanya ingin menguji sebuah program
pada suatu simulasi, perintah ini tidak akan banyak berpengaruh pada hasil output
program namun bila ingin diterapkan pada alat nyata, perintah ini wajib disertakan.

 Main Program

Berisi program utama

 End

Mengakhiri baris program

ARSITEKTUR MIKROKONTROLER MCS-


51

Arsitektur mikrokontroler MCS-51 diotaki oleh CPU 8 bit yang terhubung melalui
satu jalur bus dengan memori penyimpanan berupa RAM dan ROM serta jalur I/O
berupa port bit I/O dan port serial. Selain itu terdapat fasilitas timer/counter
internal dan jalur interface address dan data ke memori eksternal.
Blok sistem mikrokontroler MCS-51 adalah sebagai berikut.

Salah satu tipe mikrokontroler arsitektur MCS-51 yang banyak digunakan saat
ini adalah tipe Atmel 89S51. Tipe ini banyak digunakan karena memiliki fasilitas
on-chip flash memory dan In System Programming. Berikut adalah feature-
feature untuk mikrokontroler tipe 89S51 buatan Atmel.

 4K bytes Flash ROM


 128 bytes RAM
 4 port @ 8-bit I/O (Input/Output) port
 2 buah 16 bit timer
 Interface komunikasi serial
 64K pengalamatan code (program) memori
 64K pengalamatan data memori
 Prosesor Boolean (satu bit – satu bit)
 210 lokasi bit-addressable
 Fasilitas In System Programming (ISP)

MEMORY MAP MIKROKONTROLER MCS-51


PENJELASAN FUNGSI PIN MIKROKONTROLER MCS-51
IC mikrokontroler dikemas (packaging) dalam bentuk yang berbeda. Namun
pada dasarnya fungsi kaki yang ada pada IC memiliki persamaan. Gambar salah
satu bentuk IC seri mikrokontroler MCS-51 dapat dilihat berikut.
Berikut adalah penjelasan fungsi tiap kaki yang biasa ada pada seri
mikrokontroler MCS-51.

A. Port 0
Merupakan dual-purpose port (port yang memiliki dua kegunaan). Pada desain
yang minimum (sederhana) digunakan sebagai port I/O (Input/Output). Pada
desain lebih lanjut pada perancangan dengan memori eksternal digunakan
sebagai data dan address yang di-multiplex. Port 0 terdapat pada pin 32-39.

B. Port 1
Merupakan port yang hanya berfungsi sebagai port I/O, kecuali pada IC 89S52
yang menggunakan P1.0 dan P1.1 sebagai input eksternal untuk timer ketiga
(T3). Port 1 terdapat pada pin 1-8.

C. Port 2
Merupakan dual-purpose port. Pada desain minimum digunakan sebagai port I/O.
Pada desain lebih lanjut digunakan sebagai high byte dari address. Port 2 terdapat
pada pin 21-28.

D. Port 3
Merupakan dual-purpose port. Selain sebagai port I/O juga mempunyai fungsi
khusus yang ditunjukkan pada tabel berikut.
PIN FUNGSI KHUSUS

P3.0 RXD ( serial input port )


P3.1 TXD ( serial output port )
P3.2 _INT0 ( external interrupt 0 )
P3.3 _INT1 ( external interrupt 1 )
P3.4 T0 ( timer 0 external input )
P3.5 T1 ( timer 1 external input )
P3.6 _WR ( external data memory write strobe )
P3.7 _RD ( external data memory read strobe )

E. PSEN (Program Store Enable)


PSEN adalah kontrol sinyal yang mengijinkan untuk mengakses program (code)
memori eksternal. Pin ini dihubungkan ke pin OE (Output Enable) dari EPROM.
Sinyal PSEN akan 0 pada tahap fetch (penjemputan) instruksi. PSEN akan selalu
bernilai 0 pada pembacaan program memori internal. PSEN terdapat pada pin 29.

F. ALE (Address Latch Enable)


ALE digunakan untuk men-demultiplex address dan data bus. Ketika
menggunakan program memori eksternal port 0 akan berfungsi sebagai address
dan data bus. Pada setengah paruh pertama memory cycle ALE akan bernilai 1
sehingga mengijinkan penulisan alamat pada register eksternal dan pada setengah
paruh berikutnya akan bernilai satu sehingga port 0 dapat digunakan sebagai data
bus. ALE terdapat pada pin 30.

G. EA (External Access)
Jika EA diberi masukan 1 maka mikrokontroler menjalankan program memori
internal saja. Jika EA diberi masukan 0 (ground) maka mikrokontroler hanya
akan menjalankan program memori eksternal (PSEN akan bernilai 0). EA
terdapat pada pin 31.
H. RST (Reset)
RST pada pin 9 merupakan pin reset. Jika pada pin ini diberi masukan 1 selama
minimal 2 machine cycle maka system akan di-reset dan register-register internal
akan berisi nilai default tertentu dan program kembali mengeksekusi dari alamat
paling awal.

I. On-Chip Oscillator
Mikrokontroler MCS-51 telah memiliki on-chip oscillator yang dapat bekerja
jika di-drive menggunakan kristal. Tambahan kapasitor diperlukan untuk
menstabilkan sistem. Nilai kristal yang biasa digunakan pada 89S51/89S52
adalah sekitar 12 MHz, dan maksimum sampai 24 MHz. On-chip oscillator tidak
hanya dapat di-drive dengan menggunakan kristal, tapi juga dapat digunakan
TTL oscillator.

J. Koneksi Power
Mikrokontroler biasanya beroperasi pada tegangan 3.3 volt atau 5 volt
(tergantung serinya). Pin Vcc terdapat pada pin 40 sedangkan Vss (ground)
terdapat pada pin 20
Reference

Fauzan, Isni. SEKOLAH TINGGI ILMU MANAGEMENT DAN INFORMATIKA


EL-RAHMA YOGYAKARTA.

https://www.academia.edu/34989212/MIKROKONTROLER_MCS_51?auto=do
wnload

Anda mungkin juga menyukai