BELAJAR SENDIRI MIKROKONTROLER LENGKAP (Volume 1)
BAB KONSEP DASAR MIKROKONTROLER
1. Umum.
Dengan memahami
bagian-bagian utama dan fungsi bagian-bagian utama dari mikrokontroler secara
umum untuk keluarga tertentu merupakan pedoman pemahaman konsep dasar bagaimana prinsip kerja suatu
mikrokontroler.
2. Deskripsi Mikrokontroler. Pemahaman konsep dasar dari mikrokontroler ditunjukkan pada Gambar 2.1
Diagram blok mikrokontroler umum.
Gambar 2.1
Diagram blok mikrokontroler umum
Masing-masing bagian tersebut saling dihubungkan melalui
internal bus, umumnya terdiri dari 3 bus yaitu address bus, data bus dan
control bus.
Masing-masing bagian memiliki fungsi-fungsi :
a. Register. Register adalah suatu tempat penyimpanan (variabel) bilangan bulat 8 atau 16 bit. Pada
umumnya register jumlahnya banyak, masing-masing
ada yang memiliki fungsi khusus dan ada pula yang memiliki kegunaan umum. Register yang memiliki
fungsi khusus misalnya adalah register timer yang berisi data
penghitungan pulsa untuk timer, atau
register pengatur mode operasi counter (pencacah pulsa). Sedangkan
register yang bersifat umum
digunakan untuk menyimpan data sementara yang diperlukan untuk proses
penghitungan dan proses operasi mikrokontroler. Register dengan kegunaan umum
dibutuhkan mengingat pada saat yang bersamaan mikrokontroler
hanya mampu melakukan operasi aritmatika 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.
b. Accumulator.
Merupakan salah satu register khusus yang berfungsi sebagai operand umum proses aritmetika dan logika.
c. Program
Counter. Merupakan salah satu
register khusus yang berfungsi
sebagai pencacah/penghitung eksekusi program mikrokontroler.
d. ALU (Arithmetic and Logic Unit). ALU memiliki kemampuan mengerjakan
proses-proses aritmatika (penjumlahan, pengurangan, perkalian, pembagian)
dan operasi logika (misalnya AND,
OR, XOR, NOT) terhadap bilangan bulat 8
atau 16 bit.
d. Clock
Circuits. Mikrokontroler adalah rangkaian logika sekuensial, dimana
proses kerjanya berjalan melalui sinkronisasi clock. Karenanya diperlukan clock circuits yang menyediakan clock bagi seluruh bagian rangkaian.
e. Internal ROM (Read Only Memory). Merupakan
memori penyimpan data yang
isinya tidak dapat diubah atau dihapus (hanya dapat dibaca). ROM biasanya
diisi dengan program untuk menjalankan mikrokontroler
segera setelah power dinyalakan, dan berisi data-data
konstanta yang diperlukan oleh program.
Isi ROM tidak dapat hilang walaupun power
dimatikan.
f. Internal RAM (Random
Access Memory). Merupakan memori penyimpan data yang isinya dapat diubah
atau dihapus. RAM biasanya berisi data-data variabel dan register. Data yang
tersimpan pada RAM bersifat
hilang jika catu daya yang terhubung padanya dimatikan.
g. Stack
Pointer. Stack adalah bagian dari
RAM yang memiliki metode penyimpanan dan pengambilan data secara khusus. Data
yang disimpan dan dibaca tidak dapat dilakukan
dengan metode acak. Karena data yang masuk ke dalam
stack pada urutan yang terakhir adalah data yang pertama kali dibaca kembali. Stack
Pointer berisi offset dimana posisi data stack yang terakhir masuk
(atau yang pertama kali dapat diambil).
h. I/O (input/output) Ports. Merupakan sarana yang dipergunakan oleh mikrokontroler untuk mengakses
peralatan-peralatan lain di luar dirinya, berupa pin-pin yang dapat berfungsi
untuk mengeluarkan data digital ataupun
menginputkan data.
i. 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 tersebut tidaklah 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 di samping
port I/O paralel yang sudah ada.
3. Cara Kerja Mikrokontroler. Prinsip kerja mikrokontroler
adalah :
a. Berdasarkan nilai yang
berada pada register Program Counter,
mikrokontroler mengambil data pada ROM dengan address sebagaimana nilai yang
tertera pada Program Counter.
Selanjutnya Program Counter ditambah nilainya dengan 1 (increment) secara otomatis. Data yang diambil tersebut adalah urutan instruksi program
pengendali mikrokontroler yang sebelumnya telah
dibuat oleh pemakai.
b. Instruksi tersebut diolah
dan dijalankan. Proses pengerjaan bergantung pada
jenis instruksi: bisa membaca, mengubah nilai-nilai pada register, RAM, isi port atau melakukan pembacaan
dan dilanjutkan dengan pengubahan data.
c. Program Counter telah berubah nilainya (baik karena penambahan otomatis sebagaimana pada langkah 1 di
atas atau karena pengubahan pada langkah
b. Selanjutnya yang dilakukan mikrokontroler adalah mengulang kembali siklus ini pada langkah 1.
Demikian seterusnya hingga power dimatikan.
Dari
pengertian di atas dapat disimpulkan bahwa pada dasarnya unjuk kerja
mikrokontroler sangatlah bergantung pada urutan instruksi yang dijalankannya,
yaitu program yang ditulis di ROM.
Dengan
membuat program yang bermacam-macam, maka tentunya mikrokontroler dapat
mengerjakan proses yang bermacam-macam pula. Fasilitas-fasilitas yang ada
misalnya timer/counter, port I/O, serial
port, Analog to Digital Converter (ADC)
dapat dimanfaatkan oleh program untuk menghasilkan proses yang diinginkan. Misalnya saja ADC dipergunakan oleh sebuah
mikrokontroler pengendali alat ukur digital untuk mengukur tegangan sinyal
input. Kemudian hasil pembacaan ADC diolah untuk kemudian dikirimkan ke sebuah
display yang terhubung pada port I/O, menampilkan hasil pembacaan yang telah
diolah. Proses pengendalian ADC, pemberian sinyal-sinyal yang tepat pada
display, kesemuanya dikerjakan secara berurutan pada program yang ditulis di
ROM.
Penulisan
program mikrokontroler pada umumnya adalah menggunakan bahasa assembly untuk
mikrokontroler yang bersangkutan (setiap mikrokontroler memiliki instruksi
bahasa assembly yang berlainan). Kemudian dengan bantuan sebuah komputer,
bahasa assembly tersebut diubah menjadi bahasa mesin mikrokontroler, dan
disalin ke dalam ROM mikrokontroler.
Pada buku
ini akan dibahas mikrokontroler dari keluarga MCS-51, dengan beberapa contoh
aplikasi sederhana. Selanjutnya dari pengertian yang didapat, diharapkan dapat dikembangkan
sendiri aplikasi-aplikasi lain sebagaimana yang diinginkan.
BAB KELUARGA MIKROKONTROLER MCS-51
4. Umum. Keluarga mikrokontroler MCS-51 terdiri dari 8031, 8032, 8051,
8052, 8751, 8752, 8951 dan 8952. Masing-masing berbeda dalam konfigurasi
internalnya. Perbedaan pokok adalah bahwa 8031 dan 8032 tidak memiliki internal
ROM, 8751 dan 8752 jenis internal ROM-nya adalah EPROM (Erasable & Programmable ROM) sedangkan 8951 dan 8952 jenis
internal ROM-nya adalah PEROM (Flash
Programmable and Erasable ROM).
Keluarga mikrokontroler MCS-51 memiliki konfigurasi dasar
sebagai berikut :
a. Parallel
I/O Port 8 bit (P0-P3)
b. Serial
Full-Duplex Asynchronous I/O Port
c. Internal
Random Access Memory (RAM) sejumlah 128 byte (8051, 8031, 8751) atau 256 byte
(8052, 8032, 8752)
d. Internal
Read Only Memory (ROM) sejumlah 4 kilobyte (8051, 8751) atau 8 kilobyte (8052, 8752)
e. Programmable Timer/Counter sejumlah 2 (8051, 8031, 8751) atau 3
(8052, 8032, 8752)
f. 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.
Tabel 3.1 Keluarga MCS-51
Device
|
Internal memory Program
|
Internal Memory data
|
Timers/Event Counters
|
Interrupts
|
8052AH
|
8KX8
RAM
|
256X8
RAM
|
3 X
16 BIT
|
6
|
8051AH
|
4KX8
ROM
|
128X8
RAM
|
2 X
16 BIT
|
5
|
8051
|
4KX8
ROM
|
128X8
RAM
|
2 X
16 BIT
|
5
|
8032AH
|
None
|
256X8
RAM
|
3 X
16 BIT
|
6
|
8031AH
|
None
|
128X8
RAM
|
2 X
16 BIT
|
5
|
8031
|
None
|
128X8
RAM
|
2 X
16 BIT
|
5
|
8751H
|
4KX8
EPROM
|
128X8
RAM
|
2 X
16 BIT
|
5
|
8751H-12
|
4KX8
EPROM
|
128X8
RAM
|
2 X
16 BIT
|
5
|
8751H-88
|
4KX8
EPROM
|
128X8
RAM
|
2 X
16 BIT
|
5
|
AT89C51
|
4KX8
PEROM
|
128X8
RAM
|
2 X
16 BIT
|
5
|
5. Arsitektur MCS-51.
a. Diagram
blok MCS-51. Diagram
blok arsitektur MCS-51 dapat dilihat pada gambar 2.1. Pada diagram blok tersebut dapat disimpulkan bahwa untuk
aplikasi yang tidak membutuhkan adanya
RAM dan/atau ROM dengan skala besar, maka MCS-51 telah 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 komputer IBM PC, atau peralatan lainnya baik langsung
lewat kabel ataupun melalui modem dengan saluran telepon, radio, atau bahkan
serat optik. 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. Rangkaian
clock internal yang dimiliki MCS-51
menjadikan cukup hanya ditambahkan sebuah kristal osilator dan dua buah
kapasitor untuk menghasilkan clock bagi seluruh sistem rangkaian.
Untuk kebutuhan ROM dan RAM yang
besar, sistem MCS- 51 mengijinkan
penggunaan RAM dan ROM masing-masing sebesar maksimal 64 Kilo
byte, cukup besar untuk
aplikasi-aplikasi umum mikrokontroler.
Gambar 3.1 Diagram blok MCS-51
b. Fungsi
kaki-kaki (pin out) MCS-51.
Pin Out MCS-51 dapat dilihat pada gambar di bawah ini :
Gambar 3.2
Pin-out 8031
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 3.1 Fungsi Pin-pin Port 3
Port Pin
|
Fungsi Alternatif
|
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/counter 0 external input)
|
P3.5
|
T1 (timer/counter 1 external input)
|
P3.6
|
-WR (external data memory write
strobe)
|
P3.7
|
-RD (external data memory read
strobe)
|
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.
cemana cara mbuat blognya bro
ReplyDeleteArtikelnya bagus. Kunjungi blog saya berisi tutorial dan seputar teknologi.
ReplyDeleteTerima kasih.
www.mes-teknologi.blogspot.com
Sangat membantu thank you
ReplyDelete