Mikrokontroler 8051
(Dosen Mata Kuliah : Dr. Hendra Jaya, S.Pd, MT)
OLEH :
WILDAN (1425040015)
MARDIAH (1425040011)
RIANTI RAHMI (1425040004)
ANDI MUHAMMAD
SOSE (1425040007)
PENDIDIKAN TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MAKASSAR
Mikrokontroler 8051
A. Introduksi
Seperti
pada pembahasan sebelumnya, mikrokontroler keluarga
intel MCS-51 memiliki berbagai macam device dan versi. Umumnya anggota keluarga
MCS-51 juga disebut sebagai mikrokontroler 8051.
Berikut dibawah ini fitur penting yang dimiliki
mikrokontroler 8051:
·
MCS-51 merupakan mikrokontoler
Intel keluarga 8-bit yang didesain dengan teknologi HMOS.
·
Frekuensi operasi 12 Mhz tersedia
dalam versi ROM/EPROM/EEPROM.
·
64K memori program dan 64K memori
data yang terpisah
·
Tersedia intruksi perkalian (MUL)
dan pembagian (DIV)
·
Mempunyai prosesor boolean dan
mendukung operasi bitwise
·
Juga tersedia dalam versi CHMOS
·
32 saluran I/O yang bisa
digunakan baik sebagai empat port 8-bit atau 32 I/O
·
16-bit bus alamat yang
termutipleksi dengan Port 1 dan Port 2. Port 0 juga sebagai bus data
B.
Arsitektur MCS-51
Diagram blok mikrokontroler 8051 ditunjukkan pada
gambar dibawah ini.
Gambar 1. Diagram
blok mikrokontroler 8051
Istilah
‘8051’ disini mengacu kepada anggota keluarga MCS-51. Blok fungsional
mikrokontoler 8051 terdiri dari ALU, unit kendali dan pewaktu, RAM/EPROM/ROM,
register, latch dan driver untuk port P0, P1, P2 dan P3. Setiap blok fungsional
tersebut didiskusikan berikut ini
1.
ALU
ALU 8051 menampilkan operasi
aritmatik dan logika pada operand 8-bit. Latch adalah register yang mendapatkan
keluaran dari ALU. Selain memiliki operasi penambahan (ADD) dan pengurangan
(SUB) 8051 juga memiliki operasi perkalian (MUL) dan pembagian (DIV).
Tiap operasi logika bersangkutan
dengan gerbang-gerbang digital didalamnya yang memungkinkan operasi NOT, OR,
NOT dan XOR.
2.
Prosesor boolean
Mikrokontroler 8051 memiliki
sebuah Prosesor Boolean terpisah yang terintegrasi langsung dengan
mikrokontoler tersebut. Prosesor boolean ini memiliki set instruksi sendiri,
latch, dan bit RAM yang dapat dialamati. Flag carry tersedia sebagai
akumulator. Intruksi pemanipulasian bit menampilkan operasi-operasi seperti bit
komplemen, set bit, dan penghapusan bit. Terdapat juga instruksi pengkondisian,
seperti JUMP, IF, BIT, SET, dsb.
Selain itu pula mikrokontroler
ini juga mendukung operasi logika AND, OR. Hasil dari operasi logika tersimpan
pada bit carry yang mana bekerja sebgai akumulator.
3.
Memori data dan program
Mikrokontroler 8051 memiliki
memori program dan memori data yang terpisah. Code program biasanya tersimpan
pada ROM/EPROM. Storage program adalah salah satu faktor yang membedakan antara
anggota keluarga 8051 yang satu dengan yang lainnya. Memori program dari 80C51
adalah 4K ROM, sedangkan memori program 80C52 adalah 8K ROM. 87C51 memiliki
program memori ‘EPROM’ sebesar 4K.
Memori data bisa berupa RAM
internal dan RAM eksternal. Contoh yang memiliki RAM internal adalah 80C51 yang
berkapasitas 128 byte. Beberapa lokasi internal RAM yang juga digunakan untuk pengendalian
operasi periperal seperti pewaktu/pencacah, port serial, interupsi, dsb disebut
sebagai SFR (Spesial Function Register). Ruang RAM eksternal dapat terakses
dalam hampir semua anggota 8051. Untuk mengakses RAM eksternal digunakan alamat
16-bit. Bus alamat (Port 0) dan bus alamat-data (Port2) yang menahan alamat
ini. Orde byte yang lebih rendah dari bus alamat-data merupakan waktu
temultipleksi. Sedangkan multipleksi mengurangi jumlah pin, dan juga mengurangi
kecepatan dari akses memori. Hal ini yang mennjadi alasan mengapa akses memori
data eksternal selalu lebih lambat dibanding dengan pengaksesan RAM internal.
Selanjutnya untuk mengakses memori eksternal kita memerlukan load pointer data
yang mana membutuhkan instruksi ekstra.
4.
Osilator
semua anggota keluarga 8051
menggunakan kristal eksternal sebagai fungsi osilator. Frekuensi operasi bisa
tergantung kepada device itu sendiri. Data sheet device bisa dijadikan rujukan
untuk melihat frekuensi operasi yang sesuai dan mendukung device-device yang akan
digunakan. Sebagai contoh 80C51 beroperasi pada frekuensi 12 MHz. Tetapi itu
tidak menjadi suatu patokan yang tetap karena pada kenyataannya banyak juga
user menggunakan kristal 11,059 MHz.
Selain itu masih banyak lagi
device yang berjalan pada frekuensi dibawah atau diatas 12 MHz. Frekuensi
ringan yang lebih rendah memperkenankan pewaktu membangkitkan frekuensi klok
untuk pengoperasian serial port.
5.
Kendali dan pewaktuan
Gambar 2. Pin Mikrokontroler 8051
Keseluruhan
operasi mikrokontroler 8051 singkron dengan klok. Segala yang terjadi didalam
mikrokontroler tersebut selangkah dengan klok. Terlepas dari pewaktuan
internal, untuk mengakses device diluar chip terdapat pula fitur seperti
pengendali sinyal ALE, PSEN dan RD, WR yang dibangkitkan oleh unit pewatuan dan
kendali.
Kita
dapat dengan mudah melihat pin-pin 8051 terhubung pada keempat port P0, P1, P2,
dan P3. Untuk pin port P0 dan P3 memiliki fungsi-fungsi tambahan. Selain itu
terdapat pin-pin untuk power supply Vcc (Pin 40) dan ground (Pin
20). Pin-pin 18 dan 19 diperuntukkan untuk koneksi ke kristal. Bagian pin yang
terakhir secara berturut-berturut adalah, PSEN (Pin 29), ALE (Pin 30), EA (Pin
31) yang merupakan Program Store Enable, Address Latch Enable, dan External
Access. Berikut adalah pembahasan singkat tentang pin-pin ini.
a.
XTAL2(Pin 18)
Keluaran dari penguatan membalik yang membentuk satu bagian dari osilator dan masukan ke generator clock internal, harus dihubungkan ke XTAL2.
Keluaran dari penguatan membalik yang membentuk satu bagian dari osilator dan masukan ke generator clock internal, harus dihubungkan ke XTAL2.
b.
XTAL1
XTAL1 adalah masukan ke penguatan membalik yang membentuk bagian dari sirkuit osilator. Berkaitan dengan clock external, pin ini harus dihubungkan ke ground.
XTAL1 adalah masukan ke penguatan membalik yang membentuk bagian dari sirkuit osilator. Berkaitan dengan clock external, pin ini harus dihubungkan ke ground.
c.
Vcc (Pin 40)
Pin Vcc
terhubung ke power supply +5V. Arus power supply yang diperkirakan untuk
8031/8051 adalah 125mA. Sedangkan untuk 8751 arus maksimalnya adalah 250 mA.
Untuk 8031/8051 rata-rata efisiensinya adalah 1 W.
d.
Vss (Pin 20)
Vss
merupakan ground. Semua voltase dispesifikasikan berhubungan dengan pin ini.
Sebagai contoh, voltase di pin manapun yang berkenaan dengan Vss
seharusnya berada dalam jangkauan -0.5V hingga +7V.
e.
Port 0 (pin-pin 32-39)
Port 0
adalah saluran I/O 8-bit. Alamat orde rendah dan bus data juga
dimultipleksiikan dengan Port 0. Port ini jenisnya merupakan cerat
terbuka masukan dua arah (open drain bi-directional I/O port) dan harus
menggunakan resistor pull-up selama verifikasi.
f.
Port 1 (Pin-pin 1-8)
Port 1
adalah L/O 8-bit dengan masing-masing P1.0 sampai P1.7 yang bersifat dua arah.
Port 1 sudah terpasang resistor pullup secara internal. Jika logika satu
dituliskan pada Port 1 maka keluaran akan berlogika satu dan dapat digunakan
sebagai masukan.
g.
Port 2 (Pin-pin 21-28)
Port 2
juga merupakan port I/O 8-bit dua arah. Pin-pin Port 2 sudah terpasang resitor
pullup secara internal. Port 2 dimultiplekskan dengan alamat bus yang memiliki
orde lebih tinggi.
h.
Port 3 (Pin-pin 10-17)
Port 3
juga merupakan port I/O 8-bit bersifat dua arah. Pin-pin Port 3 sudah terpasang
resistor pullup secara internal. Ada fungsi-fungsi lain yang dimultipleksikan
dengan pin-pin Port 3. Fungsi-fungsi alternative dapat dilihat pada tabel
dibawah. Fungsi-fungsi tambahan pin-pin Port 3 ini berhubungan dengan
interupsi-interupsi eksternal, serial port, timer/counter dan sinyal-sinyal
baca/tulis.
i.
Pin 9 (RST)
Untuk
me-reset perangkat, pin RST dari 8051 dibuat logika tinggi untuk dua siklus
mesin. Sebuah resistor pull-down 8.2K dari pin RST ke Vss dan sebuah
kapasitor 10µF dari pin RST ke Vcc membentuk sirkuit reset-nya. Nilai-nilai
komponen ini cukup untuk memungkinkan terjadinya penundaan (delay), demikian
dengan tujuan untuk membuat barisan RST berlogika tinggi selama 24 periode
osilator. Untuk mendukung fungsi reset manual, jika diinginkan, sebuat pemicu
dapat ditambahkan di seberang kapasitor 10µF.
j.
ALE (Pin 30)
Keluaran
Address Latch Enable (ALE) digunakan untuk mengunci byte alamat rendah selama
akses memori external. ALE diaktifkan secara periodik dengan kisaran konstan
dari 1/6 frekuensi osilator. Namun, selama akses memori data eksternal, satu
pulsa ALE dilewatkan.
k.
PSEN (Pin 29)
Program
Store Enable (PSEN) adalah sinyal kontrol keluaran, diaktifkan setiap enam
periode osilator ketika mengambil memori program eksternal, pin ini adalah
strobe pembaca bagi memori program eksternal, dan selama eksekusi program
internal, PSEN akan tetap berada dalam posisi logika tinggi.
l.
EA (Pin 31)
Pin akses
eksternal (Eksternal Akses), ketika ditahan dalam posisi logika tinggi,
mengeksekusi perintah dari memori program internal sampai pada alamat 0FFFH;
setelah alamat ini, instruksi-instruksi diambil dari memori program eksternal.
Jika pin berada dalam posisi logika rendah, semua perintah diambil dari memori
eksternal, dan selama operasi normal, pin ini tidak boleh berada dalam posisi mengambang.
C. Struktur Mikrokontroler
Dalam gambar 1 terlihat bahwa
sebuah mikrokontroler terdiri dari beberapa bagian. Bagian-bagian tersebut
saling dihubungkan dengan internal dan pada umumnya terdiri dari 3 macam bus
yaitu address bus, data bus dan control bus. Masing-masing bagian memiliki
fungsi-fungsi sebagai berikut:
1. Register:
Register merupakan suatu tempat penyimpanan (variabel) bilangan bulat
yang terdiri dari 8 atau 16 bit. Pada umumnya register memiliki jumlah yang
banyak, masing-masing ada yang memiliki fungsi khusus dan ada pula yang
memiliki fungsi atau kegunaan secara umum. Register yang memiliki fungsi secara
khusus misalnya register timer yang berisi data penghitungan pulsa untuk
timer, atau register pengatur mode operasi counter (penghitung
pulsa). Sedangkan register yang memiliki fungsi umum digunakan untuk menyimpan
data sementara yang diperlukan untuk proses penghitungan dan proses operasi
mikrokontroler. Register dengan fungsi umum sangat dibutuhkan dalam sistem
mikrokontroler karena mikrokontroler hanya mampu melakukan operasi aritmetik
atau logika hanya pada satu atau dua operand saja, sehingga untuk
operasi-operasi yang melibatkan banyak variabel harus dimanipulasi dengan
menggunakan variabel-variabel register umum.
2.
Accumulator:
Merupakan salah satu register khusus yang berfungsi sebagai operand umum
proses aritmetika dan logika.
3.
Program
Counter:
Merupakan salah satu register khusus yang berfungsi sebagai
pencacah/penghitung eksekusi program mikrokontroler.
4.
ALU (Arithmetic
and Logic Unit):
ALU memiliki kemampuan dalam mengerjakan proses-proses aritmatika
(penjumlahan, pengurangan, perkalian, pembagian) dan operasi logika (misalnya
AND, OR, XOR, NOT) terhadap bilangan bulat 8 atau 16 bit.
5.
Clock
Circuits:
Mikrokontroler merupakan rangkaian logika sekuensial, dimana proses
kerjanya berjalan melalui sinkronisasi clock. Oleh karena itu diperlukan
clock circuits yang menyediakan clock untuk seluruh bagian
rangkaian.
6.
Internal
ROM (Read Only Memory):
Merupakan memori penyimpan data dimana data tersebut tidak dapat diubah
atau dihapus (hanya dapat dibaca). ROM biasanya diisi dengan program untuk
dijalankan oleh mikrokontroler segera setelah power dihidupkan. Data dalam ROM tidak dapat hilang meskipun power dimatikan.
7.
Stack
Pointer:
Stack merupakan bagian dari RAM yang
memiliki metode penyimpanan dan pengambilan data secara khusus. Data yang
disimpan dan dibaca tidak dapat dilakukan dengan cara acak karena data yang
dituliskan ke dalam stack yang berada pada urutan yang terakhir
merupakan data yang pertama kali dibaca kembali. Stack Pointer berisi
offset dimana posisi data stack yang terakhir masuk (atau yang pertama
kali dapat diambil).
8. I/O (Input/Output) Ports:
Merupakan sarana yang digunakan oleh mikrokontroler untuk mengakses peralatan-peralatan
lain di luar sistem. I/O Port berupa pin-pin yang dapat berfungsi untuk
mengeluarkan data digital ataupun sebagai masukan data eksternal.
9. Interrupt Circuits :
Adalah rangkaian yang memiliki fungsi untuk mengendalikan sinyal-sinyal
interupsi baik internal maupun eksternal. Adanya sinyal interupsi akan
menghentikan eksekusi normal program mikrokontroler untuk selanjutnya
menjalankan sub-program untuk melayani interupsi tersebut.
Diagram blok di atas tidak selalu sama untuk setiap jenis mikrokontroler.
Beberapa mikrokontroler menyertakan rangkaian ADC (Analog to Digital
Converter) di dalamnya, ada pula yang menyertakan port I/O serial disamping
port I/O parallel yang sudah ada.
10.
Internal
RAM (Random Acces Memory)
Merupakan memori penyimpan data dimana data tersebut dapat diubah atau
dihapus. RAM biasanya berisi data-data variable dan register. Data yang
tersimpan pada RAM bersifat volatile yaitu akan hilang bila catu daya
yang terhubung padanya dimatikan.
D. Prinsip Kerja Mikrokontroler
Prinsip kerja sebuah
mikrokontroler dapat dijelaskan sebagai berikut:
1.
Berdasarkan
data yang ada pada register Program Counter. Mikrokontroler mengambil data dari
ROM dengan alamat sebagaimana ditunjukkan dalam Program Counter. Selanjutnya
Program Counter ditambah nilainya dengan 1 (increment) secara
otomatis. Data yang diambil tersebut merupakan urutan instruksi program
pengendali mikrokontroler yang sebelumnya telah dituliskan oleh pembuatnya.
2.
Instruksi
tersebut diolah dan dijalankan. Proses pengerjaan bergantung pada jenis
instruksi; bisa membaca, mengubah nilai-nilai dalam register, RAM, isi port
atau melakukan pembacaan dan dilanjutkan dengan pengubahan data.
- Program Counter telah berubah nilainya (baik karena penambahan secara otomatris sebagaimana dijelaskan pada langkah 1 di atas atau karena pengubahan data pada langkah 2). Selanjutnya yang dilakukan mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hingga catu daya dimatikan.
E. Kesimpulan
Berdasarkan uraian di atas dapat disimpulkan bahwa pada dasarnya unjuk
kerja mikrokontroler sangatlah tergantung pada urutan instruksi yang
dijalankannya, yaitu program yang ditulis dalam ROM.
Dengan membuat program yang bermacam-macam, tentunya mikrokontroler
dapat mengerjakan tugas yang bermacam-macam pula. Fasilitas-fasilitas yang ada
misalnya timer/counter, port I/O, serial port, Analog
to Digital Converter (ADC) dapat dimanfaatkan oleh programmer untuk
menghasilkan kinerja yang dikehendaki. Sebagai contoh ADC digunakan oleh
mikrokontroler sebagai alat ukur digital untuk mengukur tegangan sinyal
masukan, selanjutnya hasil pembacaan ADC diolah untuk kemudian dikirimkan ke
sebuah display yang terhubung pada port I/O guna menampilkan hasil pembacaan
yang telah diolah. Proses pengendalian ADC, pemberian sinyal-sinyal yang tepat
pada display, kesemuanya dikerjakan secara berurutan pada program yang ditulis
dalam ROM.
Penulisan program mikrokontroler pada umumnya menggunakan bahasa
assembly untuk mikrokontroler yang bersangkutan (setiap jenis mikrokontroler
memiliki instruksi bahasa assembly yang berbeda-beda). Dengan bantuan sebuah
pesawat komputer (PC), bahasa assembley tersebut diubah menjadi bahasa mesin
mikrokontroler dan selanjutnya disalin ke dalam ROM dari mikrokontroler.





Tidak ada komentar:
Posting Komentar