Download - materi kuliah mikrokontroller
![Page 1: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/1.jpg)
MIKROKONTROLER
Judul Mata Kuliah
![Page 2: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/2.jpg)
APA ITU MIKROKONTROLER?
Mikrokontroler adalah suatu IC dengan
kepadatan yang sangat tinggi, dimana
semua bagian yang diperlukan untuk suatu
kontroler sudah dikemas dalam satu keping
chip
![Page 3: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/3.jpg)
Bagian-bagian Mikrokontroler:
(1) Unit Memori (2) CPU (Central Processing Unit)(3) Bus(4) Unit I/O(5) Pembangkit Clock-Osilator(6) Unit Timer/Counter(7) Piranti Tambahan(8) Program
![Page 4: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/4.jpg)
(1) Unit Memori
Memori adalah bagian mikrokontroler yang berfungsi untuk menyimpan data.
3 hal yang perlu diperhatikan mengenai memori yaitu:
(1) Alamat adalah lokasi tempat memori berada.
(2) Data adalah isi dari memori yang diakses
(3) Jalur kendali (kontrol) adalah jalur yang berisi perintah CPU, apakah suatu lokasi memori akan di baca atau ditulis
![Page 5: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/5.jpg)
Menurut Sifatnya Memori dibagi 2:
(1) Memori menguap (Volatile memory) adalah sifat memori yang akan hilang jika catudaya dimatikan. Memori jenis ini dikenal juga sebagai RAM (random Access Memory)
(2) Memori tidak menguap (Non Volatile Memory)
memori jenis ini tidak akan hilang jika catudaya dimatikan, memori jenis ini dinamakan ROM (Read Only Memory)
![Page 6: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/6.jpg)
(2) CPU (Central Processing Unit)
CPU merupakan pengendali utama dari seluruh aktivitas mikrokontroler. CPU bertugas melakukan eksekusi program dan melakukan koordinasi dengan bagian lain dari mikrokontroler.
Dalam Mikrokontroler terdapat ALU (Arithmetic Logic Unit) yang bertugas melaukan perhitungan aritmatika dan fungsi logic.
Selain itu di dalam CPU terdapat memori sementara yang bisa diakses selama proses eksekusi berlangsung disebut sebagai register
![Page 7: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/7.jpg)
Bus adalah jalur-jalur fisik yang mengubungkan CPU dengan memori dan unit lain dari mikrokontroler.
Jalur-jalur ini tergabung dalam satu grup, jalur inilah yang disebut sebagai Bus
(3) Bus
![Page 8: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/8.jpg)
I/O digunakan untuk mengontrol dan menerima data dari lingkungan luar
2 macam inteface I/Oyang biasa digunakan adalah
1) I/O serial standard RS 232/UART digunakan untuk
komunikasi dengan PC
2) Interface paralel/PIO (setiap pabrik mengeluarkan nama sendiri [PIA (motorolla), PPI (intel), PDC (rockwell)
(4) I/O (input-output port)
![Page 9: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/9.jpg)
(5) Pembangkit Clock - Oscilator
Rangkaian osilator pada mikrokontroler berfungsi sebagai penyedia clock
Clock digunakan oleh mikrokontroler untuk dapat mengeksekusi instruksi program secara serempak (sinkron)
Frekuensi clock yang dibangkitkan oleh osilator akan menentukan waktu yang diperlukan oleh mikrokontroler untuk mengeksekusi suatu instruksi
![Page 10: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/10.jpg)
(6) Unit Timer/Counter
Timer digunakan untuk keperluan menghasilkan:Delay (waktu tunda) yang berfungsi untuk keperluan operasi pewaktuan dan kontrol
Mencacah pulsa
Mengetahui keberadaan proses yang sedang berlangsung dan sebagainya
![Page 11: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/11.jpg)
(7) Komponen Tambahan
Pada mikrokontroler selain komponen standar ada juga komponen tambahan dengan fungsi tambahan pula.
Contoh komponen tambahan adalah: ADC (analog to digital converter) yang berfungsi untuk pengubah analog ke digital. ADC dan komparator sebagai penghubung ke sistem analog
PWM (Pulse Width Modulation) adalah format sinyal output mikrokontroler yang nilainya dinyatakan dalam bentuk lebar pulsa, PWM digunakan untuk pengendali kecepatan motor.
![Page 12: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/12.jpg)
(8) Program (Perangkat Lunak)
Mikrokontroler adalah piranti yang harus di program supaya dapat bekerja, program mikrokontroler ditulis dalam berbagai bahasa.
Program untuk mikrokontroler harus dikompilasi agar mendapatkan hasil file eksekusi dengan ekstensi “.HEX”, “.File” kemudian di download ke memori program dengan perantaraan sebuah programmer.
![Page 13: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/13.jpg)
Mikrokontroler bekerja harus diprogram!, Bahasa Pemrograman MCU ini adalah Low Level Programming , ada 2 bahasa yang digunakan:
1) Bahasa Mesin (machine language) Contoh EP2732b pada Mottorolla MC68HC908GP32 atau MC68705U3
2) Bahasa perakit (Assembly Language), Contoh: ASM51 untuk MCU 89C51 Intel
![Page 14: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/14.jpg)
Interupsi adalah suatu permintaan khusus
kepada mikroposesor untuk melakukan
sesuatu. Bila terjadi interupsi, maka komputer
akan menghentikan dahulu apa yang sedang
dikerjakannya dan melakukan apa yang diminta
oleh yang menginterupsi.
Interupsi
![Page 15: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/15.jpg)
Mikrokontroler adalah single chip computer yang
memiliki kemampuan untuk diprogram dan
digunakan untuk tugas-tugas yang berorientasi
kontrol
Mikrokontroler datang dengan dua alasan utama,
yaitu :
kebutuhan pasar (market need)
perkembangan teknologi baru.
![Page 16: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/16.jpg)
Yang dimaksud dengan kebutuhan pasar adalah
kebutuhan yang luas dari produk-produk
elektronik akan perangkat pintar sebagai
pengontrol dan pemroses data.
Sedangkan yang dimaksud dengan
perkembangan teknologi baru adalah
perkembangan teknologi semikonduktor yang
memungkinkan pembuatan chip dengan
kemampuan komputasi yang sangat cepat,
bentuk yang semakin mungil, dan harga yang
semakin murah
![Page 17: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/17.jpg)
APA PERBEDAAN MIKROKONTROLER DENGAN MIKROPROSESOR ?
Ditinjau dari segi arsitekturnya, mikroprosesor
hanya merupakan single chip CPU, sedangkan
mikrokontroler dalam IC-nya selain CPU juga
terdapat device lain yang memungkinkan
mikrokontroler berfungsi sebagai suatu single chip
computer. Dalam sebuah IC mikrokontroler telah
terdapat ROM, RAM, EPROM, serial interface dan
paralel interface, timer, interrupt controller,
konverter Anlog ke Digital, dan lainnya (tergantung
feature yang melengkapi mikrokontroler tersebut).
![Page 18: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/18.jpg)
Sedangkan dari segi aplikasinya, mikroprosessor
hanya berfungsi sebagai Central Processing Unit
yang menjadi otak komputer, sedangkan
mikrokontroller, dalam bentuknya yang mungil,
pada umumnya ditujukan untuk melakukan tugas–
tugas yang berorientasi kontrol pada rangkaian
yang membutuhkan jumlah komponen minimum
dan biaya rendah (low cost).
PERBEDAAN MIKROKONTROLER DENGAN MIKROPROSESOR (cont..)
![Page 19: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/19.jpg)
APLIKASI MIKROKONTROLER
Mikrokontroler digunakan mulai dari
mainan anak-anak, perangkat elektronik
rumah tangga, perangkat pendukung
otomotif, peralatan industri, peralatan
telekomunikasi, peralatan medis dan
kedokteran, sampai dengan pengendali
robot serta persenjataan militer.
![Page 20: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/20.jpg)
Kehandalan tinggi (high reliability) dan kemudahan integrasi dengan komponen lain (high degree of integration)
Ukuran yang semakin dapat diperkecil (reduced in size)
Penggunaan komponen dipersedikit yang juga akan menyebabkan biaya produksi dapat semakin ditekan
Waktu pembuatan lebih singkat sehingga lebih cepat pula dijual ke pasar sesuai kebutuhan
Konsumsi daya yang rendah
Beberapa keunggulan dari alat-alat yang berbasis mikrokontroler (microcontroller-based solutions) :
![Page 21: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/21.jpg)
Mikrokontroler AT89S52
![Page 22: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/22.jpg)
Apa Kegunaan Mikrokontroler ?
Kegunaan dari mikrokontroler pada
umumnya banyak digunakan untuk
aplikasi sistem kendali atau monitoring,
misalnya sebagai alat kontrol penampil
tulisan, sistem pengukuran jarak jauh
(telemetri), berbagai mainan anak-anak
dan sistem elektronika lainnya
![Page 23: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/23.jpg)
CPU RAM ROM I/OPort
Data Bus (8)
Address Bus (16)
Blok Diagram MIKROPROSESSOR
![Page 24: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/24.jpg)
CPURAMROM
I/O PortSerial PortTimer/Counter
Program aplikasi
Blok Diagram MIKROKONTROLLER
![Page 25: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/25.jpg)
Mikrokontroler MCS-51
Mikrokontroler dengan arsitektur MCS-51
merupakan salah satu jenis arsitektur
mikrokontroler yang paling lama, paling
populer dan paling banyak digunakan di dunia.
Arsitektur ini dikeluarkan pertama kali oleh
Intel dan kemudian menjadi banyak dipakai dan
dipelajari di seluruh dunia.
![Page 26: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/26.jpg)
Di Indonesia, mikrokontroler MCS-51 banyak dipakai karena telah lama populer, mudah untuk didapatkan, dan harganya yang murah.
Berbagai seri mikrokontroler berarsitektur MCS-51 telah diproduksi oleh berbagai vendor dan digunakan di dunia sebagai mikrokontroler yang bersifat low cost dan high performance.
Antar seri mikrokontroler berarsitektur MCS-51 memiliki beragam tipe dan fasilitas, namun kesemuanya memiliki arsitektur yang sama, dan juga set instruksi yang relatif tidak berbeda.
![Page 27: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/27.jpg)
Berikut tabel perbandingan beberapa seri mikrokontroler MCS-51 buatan Atmel.
![Page 28: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/28.jpg)
Keterangan:
Flash adalah suatu jenis Read Only Memory yang biasanya diisi dengan program hasil buatan manusia yang harus dijalankan oleh mikrokontroler
RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk penyimpanan data sementara dan pengolahan data ketika program sedang running
EEPROM (Electrically Erasable Programmable Read Only Memory) adalah memori untuk penyimpanan data secara permanen oleh program yang sedang running
Pin I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran ataupun masukan bagi program
![Page 29: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/29.jpg)
Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa
UART (Universal Asynchronous Receive Transmit) adalah jalur komunikasi data khusus secara serial asynchronous
SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial secara serial synchronous
ISP (In System Programming) adalah kemampuan khusus mikrokontroler untuk dapat diprogram langsung dalam sistem rangkaiannya dengan membutuhkan jumlah pin yang minimal
![Page 30: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/30.jpg)
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.
![Page 31: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/31.jpg)
Blok sistem mikrokontroler MCS-51
![Page 32: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/32.jpg)
Salah satu tipe mikrokontroler arsitektur MCS-51 yang banyak digunakan saat ini adalah tipe Atmel 89S51/52
![Page 33: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/33.jpg)
Pengenalan Mikrokontroller AT89S51/52
Merupakan versi terbaru dibandingkan
mikrokontroler AT89C51 yang telah banyk
digunakn saat ini. Mikrokontroler ini merupakan
mikrokontroler CMOS 8 bit dengan 8 Kbyte Flas
Programmable dan Erasable Read Only Memori
(PEROM). Mikrokontroler ini berteknologi memori
non volatile kerapatan tinggi dari AMTEL yang
kompatibel dengan mikrikontroler standar
industri MCS-51.
![Page 34: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/34.jpg)
![Page 35: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/35.jpg)
Ada Berapa Port Input dan Output ?
Dalam 89S51/52 terdapat 32 jalur port yang dikelompokkan dalam 4 buah port yang masing-masing terdiri dari 8 bit.
Masing-masing bit dapat diprogram secara individual dan bebas sebagai input maupun output dan dapat dikonfigurasikan secara dinamis lewat perangkat lunak.
![Page 36: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/36.jpg)
![Page 37: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/37.jpg)
A. Port 0
Merupakan dual-purpose port (port yang memiliki dua kegunaan). Pada desain yang minimum (sederhana) digunakan sebagai port I/O (Input/Output).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 2Merupakan dual-purpose port. Pada desain minimum digunakan sebagai port I/O. Pada desain lebih lanjut Port ini digunakan untuk mengirim byte alamat bila pengaksesan dilakukan pada memori eksternal. Port 2 terdapat pada pin 21-28.
![Page 38: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/38.jpg)
D. Port 3 Merupakan dual-purpose port. Selain sebagai port I/O
juga mempunyai fungsi khusus yang ditunjukkan pada tabel berikut.
Port Fungsi Khusus
P3.0 RXD, merupakan masukan untuk port serial/receiver
P3.1 TXD, merupakan output dari port serial/transmitter
P3.2 INT0, merupakan masukan untuk interupsi eksternal 0
P3.3 INT1, merupakan masukan untuk interupsi eksternal 1
P3.4 T0, merupakan masukan untuk pulsa eksternal Timer 0
P3.5 T1, merupakan masukan untuk pulsa eksternal Timer 1
P3.6WR, merupakan sinyal tulis (write strobe) untuk menulis data
ke memori data eksternal
P3.7RD, merupakan sinyal baca (read strobe) untuk membaca data
dari memori eksternal
![Page 39: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/39.jpg)
E. PSEN (Program Store Enable)
PSEN atau Program Store Enable adalah sinyal baca pada saat menjalankan program dari memori eksternal. Di dalam aplikasi, PSEN akan dihubungkan dengan sinyal RD memori program eksternal (EEPROM).PSEN terdapat pada pin 29.
F. ALE (Address Latch Enable)
ALE atau Addres Latch Enable adalah pulsa keluaran latch pada proses pengaksesan memori eksternal (program maupun data). Di dalam aplikasi, ALE biasanya dihubungkan dengan masukan latch enable dari IC latch, misalnya 74373.. ALE terdapat pada pin 30.
G. EA (External Access)
EA atau External Access Enable menentukan apakah alamat awal memori program berada di memori eksternal atau internal. Bila dihubungkan dengan GND, alamat awal program memori akan berada di memori eksternal, sebaliknya bila dihubungkan dengan VCC, maka alamat awal memori program AT89S52 akan berada di memori internal. EA terdapat pada pin 31.
![Page 40: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/40.jpg)
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. XTAL2 dan XTAL1
XTAL2 merupakan keluaran dari rangkaian penguat osilator internal. Sedangkan XTAL1 merupakan masukan ke penguat osilator internal. Sebuah kristal dan dua buah kapasitor yang dihubungkan ke pin ini sudah cukup untuk menyediakan sinyal detak (clock) untuk mikrokontroler.
J. Koneksi Power
VCC dan GND merupakan pin untuk tegangan DC. Mikrokontroler AT89S52 membutuhkan tegangan DC sebesar 5 volt agar bisa bekerja dengan baik (standar TTL).
Pin Vcc terdapat pada pin 40 sedangkan ground terdapat pada pin 20.
![Page 41: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/41.jpg)
Rangkaian Sistem Minimum Atmel 89S51 Sistem minimum (sismin) mikrokontroler adalah
rangkaian elektronik minimum yang diperlukan
untuk beroperasinya IC mikrokontroler. Sismin ini
kemudian bisa dihubungkan dengan rangkaian
lain untuk menjalankan fungsi tertentu. Suatu
sismin bisa saja ditambahkan dengan rangkaian
pelengkap lainnya sehingga menjadi suatu sistem
yang lebih lengkap dan memiliki fungsi lebih
banyak.
![Page 42: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/42.jpg)
IC mikrokontroler AT89S
1 XTAL 12 MHz atau 11.0592 MHz
2 kapasitor kertas 33 pF
1 kapasitor elektrolit 10 uF
1 resistor 10 Kohm
Untuk membuat rangkaian sismin Atmel 89S diperlukan beberapa komponen yaitu:
![Page 43: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/43.jpg)
![Page 44: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/44.jpg)
I
![Page 45: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/45.jpg)
Mengenal DT-51
Pada percobaan pemrograman
praktikum, yang akan dipelajari adalah
penggunaan mikrokontroler 89S52 yang
diproduksi oleh Innovative Elektronics
dengan nama DT-51 Minimum sistem.
![Page 46: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/46.jpg)
Mengenal DT-51(cont…)
Minimum sistem mikrokontroler merupakan
sebuah kit mikrokontroler yang sudah dapat
berfungsi sebagai pengontrol suatu sistem
elektronika. Minimum sistem memiliki
kemampuan mengakses memori eksternal,
biasanya menggunakan sebuah IC latch,
yaitu 74HCT573 dan 74HCT08.
![Page 47: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/47.jpg)
Mengenal DT-51(cont…)
DT-51 membutuhkan bantuan PC untuk
mendownload program dan komunikasi
pada bagian akses serial. Kabel serial
akan digunakan untuk menghubungkan
PC dan DT-51 melalui serial port. Serial
port pada PC sering disebut COM1 dan
COM2.
![Page 48: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/48.jpg)
Spesifikasi DT-51 berbasis mikrokontroler berbasis 89S51 standar
industri.
Port serial standar RS 232 untuk komunikasi antara
komputer dengan DT-51.
8 kbyte non volatile memori (EEPROM) untuk
menyimpan program dan data.
4 port input/output (I/O) dengan kapasitas 8 bit tiap
portnya.
Port Liquid Crystal (LCD) umtuk keperluan tampilan.
Control port (bertuliskan CONTROL), meliputi Interrupt
eksternal dan counter eksternal.
![Page 49: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/49.jpg)
Memori eksternal di DT-51
Memori internal Dt-51 sudah diisi
program yang tidak bisa kita tulis ulang.
Oleh karena itu, DT-51 menggunakan
memori eksternal AT28C64B. Memori
jenis ini adalah EEPROM kualitas tinggi
berukuran 64 Kbyte, sehinggan dapat
mmemprogram aplikasi yang lebih besar.
![Page 50: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/50.jpg)
Dasar Program Assembly
Bahasa Assembly adalah bahasa komputer yang
kedudukannya di antara bahasa mesin . Bahasa
mesin adalah kumpulan kode biner yang
merupakan instruksi yang bisa dijalankan oleh
komputer. Sedangkan bahasa Assembly memakai
kode Mnemonic untuk menggantikan kode biner,
agar lebih mudah diingat sehingga lebih
memudahkan penulisan program.
![Page 51: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/51.jpg)
Konstruksi Program Assembly
Program sumber dalam bahasa Assembly
menganut prinsip 1 baris untuk satu perintah,
setiap baris perintah tersebut bisa terdiri atas
beberapa bagian (field), yakni bagian Label,
bagian mnemonic, bagian operand yang bisa
lebih dari satu dan terakhir bagian komentar .
Untuk membedakan masing-masing bagian
tersebut dibuat ketentuan sebagian berikut:
![Page 52: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/52.jpg)
Konstruksi Program Assembly(Cont..)
Masing-masing bagian dipisahkan dengan spasi atau TAB, khusus untuk operand yang lebih dari satu masing-masing operand dipisahkan dengan koma.
Bagian-bagian tersebut tidak harus semuanya ada dalam sebuah baris, jika ada satu bagian yang tidak ada maka spasi atau TAB sebagai pemisah bagian tetap harus ditulis.
Bagian Label ditulis mulai huruf pertama dari baris, jika baris bersangkutan tidak mengandung Label maka label tersebut digantikan dengan spasi atau TAB, yakni sebagai tanda pemisah antara bagian Label dan bagian mnemonic.
![Page 53: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/53.jpg)
Konstruksi Program Assembly(Cont..) Label mewakili nomor memori-program dari
instruksi pada baris bersangkutan, pada saat menulis instruksi JUMP, Label ini ditulis dalam bagian operand untuk menyatakan nomor memori-program yang dituju.
Mnemonic (arttinya sesuatu yang memudahkan diingat) merupakan singkatan perintah.Dikenal dua macam mnemonic, yakni manemonic
yang dipakai sebagai instruksi mengendalikan prosesor, misalnya ADD, MOV, DJNZ dan lain sebagainya. Ada pula mnemonic yang dipakai untuk mengatur kerja dari program Assembler misalnya ORG, EQU atau DB, mnemonis untuk mengatur kerja dari program Assembler ini dinamakan sebagai „Assembler Directive‟.
![Page 54: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/54.jpg)
Konstruksi Program Assembly(Cont..)
Operan dalam pemrograman mikrokontroller adalah data yang tersimpan dalam memori, registerdan input/output (I/O).
operand bisa berupa Symbol yang mewakili data tersebut, misalnya ADD A,#Offset. Banyak instruksi yang operandnya adalah register dari prosesor, misalnya MOV A,R1. Bahkan ada pula instruksi yang tidak mempunyai operand, misalnya RET.
![Page 55: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/55.jpg)
Komentar merupakan bagian yang sekedar
sebagai catatan, tidak berpengaruh pada
prosesor juga tidak berpengaruh pada kerja
program Assembler, tapi bagian ini sangat
penting untuk keperluan dokumentasi.
Konstruksi Program Assembly(Cont..)
![Page 56: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/56.jpg)
Assembler Directive
ORG – singkatan dari ORIGIN, untuk menyatakan nomor memori yang dipakai setelah perintah itu, misalnya ORG $1000 maka memori berikutnya yang dipakai Assembler adalah $1000.
EQU – singkatan dari EQUATE, dipakai untuk menentukan nilai sebuah Symbol.
Misalnya Angka88 EQU 88 memberi nilai 88 pada Symbol Angka88, atau CR EQU $0D mempunyai makna kode ASCII dari CR (Caarriage Return) adalah $08.
![Page 57: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/57.jpg)
DB – singkatan dari DEFINE BYTE, dipakai
untuk memberi nilai tertentu pada memori-
program. Nilai tersebut merupakan nilai 1
byte, bisa berupa angka ataupun kode ASCII.
DB merupakan Assembler Directive yang
dipakai untuk membentuk teks maupun
tabel.
ORG $0200
STRING DB „Atmel AT89C2051‟
Assembler Directive(Cont..)
![Page 58: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/58.jpg)
Intruksi-intruksi pada mikrokontroler
Add >> intruksi ini melakukan penjumlahan pada dua buah data yang terdapat pada alamat register yang ditunjuk oleh intriksi.
Mul(multiply)>> melakukan perkalian data antara dua regisgter
Call>> umtuk melakukan pemanggilan terhadap intruksi yanf terdapat dalam subrutine yang ditunjuk.
CJNE (Compare and Jump if Not Equal)>>melakukan perbvandinganantara data sumber dengan data tujuan. Bila datany sama,maka lanjut keintruksi dibawahnya, bila tidak, maka jump ke alamat yang dituju
![Page 59: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/59.jpg)
Intruksi-intruksi pada mikrokontroler(cont..) Dec(Decrement)>> melakukan opersi
pengurangan dengan nilai 1 pada data yang terdapat pada alamat register yang ditunjuk oleh intruksi dan menyimpannya pada register tersebut.
Div (Divide)>> melakukan operasi pembagian pada dua buah data yang terdapat pada alamat register yang ditunjuk oleh intruksi.
DJNZ (Degrement and Jump if Not Zero)>> melakukan pengurangan pada alamat register serbaguna (R0-R7) dengan nilai 1 dan melompat ke sub rutin jika hasilnya bukan 0.tapi jika sama dengan 0, maka program akan menjalankan intruksi dibawanya.
![Page 60: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/60.jpg)
Intruksi-intruksi pada mikrokontroler
Inc (Increment)>>melakukan penjumlahan dengan nilai 1 pada data yang terdapat pada alamat register yang ditunjuk oleh intruksi dan menyimpannya pada register tersebut.
JMP(Jump)>>melakukan lompatan pada alamat kode yang ditunjuj.
MOV >> melakukan pemindahan data dari alamat register satu ke register lainnya.
Push>>intruksi ini akan menaikkan stack pointer data data pada alamat register yang ditunjuk.
RET (Return)>>intruksi ini digunakan ke subrutin.
![Page 61: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/61.jpg)
Contoh aplikasi dasar
$mod51
ORG 4000H ;menggunakan alamat awal EEPRO DT51
MULAI ;Label MULAI
MOV A,#0FH;Kirim data 0F ke akumulator
MOV P1, A ;Kirim data pada akumulator ke port 1
JMP MULAI ;Loncat ke label MULAI
END
Port sebagai I/O
![Page 62: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/62.jpg)
Program tersebut adalah program yang menerima input dari akumulator, lalu menampilkan outputnya yang berlogika 1 atau 0 di port 1.
Selanjutnya membuat label dengan nama MULAI.
Isi dari label tersebut akan menset data 0FH, lalu dikirim ke akumulator menggunakan perintah MOV.
Untuk terjadi pengulangan terus menerus, kita dapat menggunakan fungsi JMP untuk melompat ke label MULAI.
Program diakhiri menggunakan fungsi END.
Jika program dijalankan maka akan tampil data dimana 4 LED akan menyala di port input. Karena 0F, maka binernya 00001111
![Page 63: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/63.jpg)
$mod51
CSEG
ORG 4000H
LJMP START
ORG 4100H
START
MOV SP, #30H
SETB p1.0
CLR P1.1
SETB P1.2
CLR P1.3
SETB P1.4
CLR P1.5
CLR P1.6
CLR P1.7
SJMP $
END
![Page 64: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/64.jpg)
Jika program dijalankan , maka menyebabkan output LED pada Trainer board Bit ke 0, 2, dan ke 4 akan menyala dan lainnya akan padam.
SJMP $ pada program akan menyebabkan program berputar (looping) pada alamat, dimana perintah SJMP $ berada.
![Page 65: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/65.jpg)
Intruksi-intruksi lompat(JUMP)
Pada saat mikrokontroler menjalankan kelompok
intruksi JUMP, nilai program yang runtun sesuai
dengan aliran program diganti dengan lokasi
memori program baru yang dikehendaki
pemrogram.
![Page 66: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/66.jpg)
Intruksi-intruksi lompatan
JMP
CALL
RET
RETI
![Page 67: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/67.jpg)
Intruksi JMP pada umumnya terdiri dari tiga :
1. SJMP (Short jump)
2. LJPM (Long Jump)
3. AJMP (Absolute Jump)
Yang membedakan antara ketiga nya adalah dalam
format alamat tujuannya dan urutan intruksinya.
![Page 68: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/68.jpg)
SJMP
Panjang intruksinya 2 byte. Jarak lompatan terbatas
pada jangkauan -128 hingga +127 byte
LJMP
Panjang intruksinya 3 byte. Jarak lompatan terbatas
pada jangkauan 64 K
![Page 69: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/69.jpg)
AJMP
Panjang intruksinya 2 byte. Alamat tujuan berada
pada blok 2 K.
Penulisan alamat tujuan lompat bisa langsung dituliskan alamatnya atau menuliskan label.
Dengan menuliskan alamat secara langsung, jika alamat awal berubah, maka alamat tujuan juga harus diperbaharui.
Dengan menggunakan label, hal itu tidak perlu dilakukan
![Page 70: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/70.jpg)
Org 0000H Start Mov A, P1 Mov P0, A Sjmp Start
Contoh
Pada contoh diatas, jika alamat awal berubah menjadi 0100H
Program akan tetap akan bekerja dengan baik karena label
Start akan menjadi 0100H.
![Page 71: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/71.jpg)
Start
Sjmp Start
Jika program dijalankan maka akan terjadi yang tak
berhenti.
Program diatas bisa digantikan dengan mengganti
alamat tujuan lompatan dengan tanda $
Start
Sjmp $
![Page 72: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/72.jpg)
CALL
Digunakan untuk intruksi pemanggilan subrutin
Org 0000HStart clr A Mov A, @A+DPTR Mov P0,A ACALL DELAY ……
DELAY: MOV R0,#2H…… …….…… …….RET
![Page 73: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/73.jpg)
LCALL
Menggunakan format 16 bit, dan subrutinnya bisa
ditulis dalam ruang memori 64 K
ACALL
Menggunakan format 11 bit, dan subrutinnya bisa
ditulis dalam ruang memori 2K
![Page 74: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/74.jpg)
RET / RETI
Sebuah subrutin harus diakhiri dengan intruksi RET,
yang menyatakan perintah untuk kembali (return)
ke intruksi berikutnya setelah intruksi CALL yang
bersangkutan selesai dijalankan dan menjalankan
intruksi tersebut.
Intruksi RETI berfungsi untuk memberitahukan
kepada sistem kontrol intrupsi bahwa intrupsi yang
sedang dijalankan telah selesai.
![Page 75: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/75.jpg)
Register fungsi khusus (SFR)
SFR pada dasarnya adalah memori internal yang
memiliki fungsi tertentu.
Melalui SFR inilah fasilitas-fasilitas internal
mikrokontroler bisa diakses dan dimanfaatkan
dengan cara membaca atau menulis SFR tersebut.
SFR menepati alamat memori 80H –FFH.
![Page 76: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/76.jpg)
Secara garis besar SFR terdiri atas register-regitser
untuk mengatur kerja port (P0-P3), mengatur mode
kerja timer, mengatur kerja port serial , menatur
kerja interupsi dan mengatur kerja prioritas kerja
intrupsi, data pointer untuk mode pengalamayan 16
bit, stack pointer, menyimpan informasi status
program, akumulator dan register B serta registre
untuk fungsi penghematan daya.
Register fungsi khusus (SFR) cont…
![Page 77: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/77.jpg)
Akumulator dan register B
ACC atau akumulator atau register A adalah register
multiguna yang dipakai pada operasi
aritmetika(pembagian,penjumlahan atapun
perkalian), pemindahan data baik mode baik
pengalamatan langsung atau indeks, dan juga
operasi logika(AND, OR dan EXOR).
Selain itu juga diginakan untuk menguji apakah
suatu data itu nol atau tidaks, pembacaan tabel,
dan pembacaan RAM tambahan
Register A menempati alamat E0H. Register A
memiliki identitas ACC0-ACC7 (bit 0 – bit 7)
![Page 78: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/78.jpg)
Register B menempati alamat F0H. Register ini
digunakan bersama-sama dengan register A pada
operasi aritmatika (perkalian dan pembagian) atau
digunakan sebagai register multiguna.
Akumulator dan register B cont…
![Page 79: materi kuliah mikrokontroller](https://reader031.vdocuments.mx/reader031/viewer/2022012301/55cf9dc0550346d033af05b5/html5/thumbnails/79.jpg)
PSW (Program Status Word)
Adalah register yang menyimpan informasi status
program, bit bawaan (carry) pada operasi
aritmatika, bit paritas, bit overflow, bit-bitpemilih
bankregister, dan bit multiguna.
P0 – P3 (Register Port)
Adalah SFR yang mengatur kerja port-port
mikrokontroler (8051). Pada mode akses bit,
register ini bisa di akses dengan identitas PX.n. X
memperlihatkan nomor port (dari 0-3), dan n
memperlihatkan urutan bit yang diakses (bit 0 - 7)