Pengenalan Mikroprosesor
Mikroprosesor
Mikroprosesor adalah sebuah chip (IC=Integrated Circuits) yang di dalamnya
terkandung rangkaian ALU (Arithmetic-Logic Unit), rangkaian CU (Control Unit) dan
kumpulan register-register. Mikroprosesor berisi logika kombinasional dan logika
digital sekuensial yang beroperasi pada angka dan simbol yang diwakili dalam
sistem angka biner.
Mikroprosesor disebut juga dengan CPU (Central Processing Unit) yang digunakan
sebagai otak/pengolah utama dalam sebuah sistem komputer. Perkembangan
Mikroprosesor dapat ditelusuri mulai dari penemuan komponen IC oleh Fairchild
Semikonduktor pada tahun 1959. Kemudian pada tahun 1968, Gordon Moore (ahli
kimia), Robert Noyce (fisikawan) dan Andrew Grove (Investor) mengundurkan diri
dari Fairchild Semikonduktor dan mendirikan perusahaan mereka sendiri yaitu
perusahaan yang kita kenal saat ini, INTEL (Integrated Electronics).
o Arithmetic Logic Unit (ALU)
ALU adalah bagian yang bekerja melaksanakan operasi aritmatika dan operasi
logika. Operasi aritmatika meliputi operasi penjumlahan (ADD atau ADD with Carry),
pengurangan (SUB atau SUB with Borrow), perkalian (MUL), dan pembagian (DIV).
Sedangkan operasi logika meliputi operasi logika AND, OR, NOT, dll.
o Register Unit (RU)
Register adalah sebuah memori tempat menyimpan data dan tempat menyimpan
hasil operasi. Register khusus yang bekerja sebagai tempat penampung hasil
operasi pengolahan pada ALU disebut Akumulator.
o Control Unit (CU)
CU mengendalikan aliran data pada bus data (data bus) dan bus alamat (address
bus), kemudian menafsirkan dan mengatur sinyal yang terdapat pada bus
pengendali (control bus).
Keterangan :
o Port I/O : Untuk menerima data dari peralatan input dan/atau
mengirim data ke peralatan output.
o Memori : Terbagi menjadi 2, yaitu RWM (Read Write Memory)
dan ROM (Read Only Memory). RWM adalah tempat untuk
menyimpan data yang diolah untuk sementara waktu, yang dimana
data akan hilang ketika aliran listrik terputus. Sedangkan ROM
adalah tempat untuk menyimpan data secara permanen, yang
dimana data tidak akan hilang ketika aliran listrik terputus.
o Data Bus : Adalah jalur-jalur perpindahan data antar modul
dalam sistem komputer.
o Control Bus : Untuk mengontrol penggunaan serta akses ke Data
Bus dan Address Bus.
o Address Bus : Untuk menandakan lokasi sumber ataupun tujuan
pada proses transfer data.
Keunggulan Mikroprosesor
o Biaya rendah (Low Cost) – Mikroprosesor tersedia dengan biaya
rendah karena dikemas dalam teknologi sirkuit terintegrasi (chip
IC).
o Kecepatan tinggi – Chip mikroprosesor mampu menjalankan jutaan
instruksi per detik karena teknologi di dalamnya.
o Ukuran kecil – Karena teknologi integrasi skala sangat besar,
mikroprosesor dapat dibuat dalam ukuran yang sangat kecil
sehingga akan mengurangi ukuran seluruh sistem komputer.
o Serba guna (Versatile) – Mikroprosesor sangat fleksibel, chip yang
sama dapat digunakan untuk sejumlah aplikasi hanya dengan
mengubah program.
o Konsumsi Daya Rendah – Mikroprosesor biasanya diproduksi
menggunakan MOSFET (Metal Oxide Semiconductor Field Effect
Transistor) yang bekerja dalam mode saturasi dan mode cut-off
sehingga daya yang dikonsumsi menjadi sangat rendah
dibandingkan dengan yang lainnya.
o Tidak Menghasilkan Panas yang berlebihan – MIkroprosesor tidak
menghasilkan panas yang berlebihan apabila dibandingkan dengan
perangkat tabung vakum.
o Andal (Reliable) – Mikroprosesor sangat andal, tingkat kegagalan
sangat sedikit karena teknologi semikonduktor digunakan.
o Portable – Perangkat atau sistem komputer yang dibuat dengan
mikroprosesor dapat dibuat portabel karena ukurannya yang kecil
dan konsumsi daya yang rendah.
Sumber :
o andalanelektro.id
o teknikelektronika.com
o unnes.ac.id
o CISC (Complex Instruction Set Computer)
CISC adalah jenis arsitektur mikroprosesor yang menggunakan banyak jenis dan
ragam instruksi. CISC menyediakan kemampuan setiap instruksi yang dapat
mengeksekusi operasi low-level, seperti men-load data dari memori, operasi
aritmatika, dan melakukan prosedur penyimpanan ke memori. Mikroprosesor jenis
ini memiliki kemampuan eksekusi cepat. Contoh mikroprosesor dengan arsitektur
CISC adalah Intel 8088, 8085, 8086, Zilog Z-80 CPU, NS 32016, MC6800.
o RISC (Reduce Instruction Set Computer)
RISC merupakan arsitektur instruction set yang menekankan
kepada kesederhanaan instruksi “bekerja sedikit” tetapi tetap memberikan hasil
performa yang tinggi. Hal ini bisa terjadi karena proses eksekusi instruksinya sangat
cepat. Arsitektur ini lebih baru dibandingkan dengan arsitektur CISC. Arsitektur RISC
memiliki sedikit instruksi dan banyak register. Contoh mikroprosesor dengan
arsitektur RISC adalah AMD 2900, MIPS R2000, SUN SPARC, MC 8800, ATMEL
90S1200, 90S2313, 90S2323, 90S2343, 90S4434, 90S8515.
o Mikroprosesor Superscalar
Hardware Arsitektur Mikroprosesor
Dan ada tiga jenis hardware arsitektur mikroprosesor, yaitu Arsitektur I/O
terisolasi, Arsitektur I/O terpetakan dalam Memori, dan Arsitektur Harvard.
o Arsitektur I/O Terisolasi
o Arsitektur I/O Terpetakan dalam Memori
o Arsitektur Harvard
Arsitektur Harvard menggunakan desain yang hampir sama dengan arsitektur I/O
terisolasi. Perbedaannya pada arsitektur Harvard yaitu antara memori program dan
memori data dipisahkan menggunakan perintah akses memori yang berbeda.
Terpisahnya memori program dengan memori data menyebabkan arsitektur Harvard
memiliki kemampuan memori dua kali lipat dibanding dengan kemampuan memori
arsitektur I/O terisolasi.
Sumber :
o uny.ac.id
o dinus.ac.id
o quantumbook.id
BAB 3. Bahasa Assembly
Berbeda halnya dengan bahasa-bahasa tingkat tinggi yang berlaku umum, bahasa
assembly biasanya mendukung secara spesifik untuk suatu ataupun beberapa jenis
arsitektur komputer tertentu. Bahasa assembly memungkinkan programmer
memanfaatkan secara penuh kemampuan suatu perangkat keras tertentu yang
biasanya tidak dapat ataupun terbatas bila dibuat dengan menggunakan bahasa
pemrograman tingkat tinggi.
Mnemonic
Sebuah perintah dalam bahasa assembly biasanya akan diterjemahkan menjadi
sebuah instruksi mnemonic dalam kode mesin. Mnemonic adalah singkatan dari
suatu perintah atau instruksi sebagai piranti untuk membantu ingatan. Contohnya
sebagai berikut :
Setelah selesai menulis program dalam bahasa assembly, bahasa assembly perlu
diterjemahkan menjadi bahasa mesin dalam bentuk kode operasi. Penerjemahan
bahasa assembly ada 2 cara, yaitu manual dan otomatis.
Assembler
Assembler adalah program yang digunakan untuk menerjemahkan mnemonik
bahasa assembly menjadi kode biner yang benar untuk setiap instruksinya.
Ada beberapa dasar alasan menggunakan bahasa assembly dilihat dari sudut
pandang penggunaannya :
o Bahasa assembly dibandingkan dengan bahasa mesin
Bahasa assembly merupakan representasi bahasa mesin yang dirancang agar lebih
mudah dipahami oleh manusia. Dengan menggunakan bahasa assembly, seorang
programmer dapat lebih mudah mengingat instruksi-instruksi dengan menggunakan
simbol yang lebih dimengerti dibandingkan bila menggunakan simbol mnemonic
kode mesin secara langsung.
o Bahasa assembly dibandingkan dengan bahasa tingkat tinggi
Sumber :
o id.wikipedia.org
o uny.ac.id
o academia.edu
BAB 4. Komputer Mikro MPF-I (Mikroprosesor Z80)
Gambar MPF-I
Gambar Diagram Komponen MPF-I
Hubungan antara komponen dan cara kerja komputer mikro MPF-I dapat
digambarkan seperti berikut :
Ketiga bagian pada sistem dihubungkan menggunakan saluran yang disebut bus.
o Bus data sebagai saluran data bersifat dua arah.
o Bus kendali bekerja mengatur arah bus data, jenis komponen yang
diakses, dan kendali interupsi.
o Bus alamat mengatur pemilihan alamat memori atau alamat I/O.
o Mikroprosesor 8 bit dengan arsitektur I/O terisolasi
o 16 bit address bus dan 8 bit data bus dengan kemampuan :
Pengalamatan memori 64 KByte
Pengalamatan I/O 256 byte
o 148 instruksi
o 8 buah register 8 bit sebagai register utama
o 8 buah register 8 bit sebagai register alternatif
o 4 buah register 16 bit
o 2 buah register 8 bit fungsi khusus
o Frekuensi Clock 2,5 MHz – 4 Mhz
o Konsumsi Daya : Aktif 150 mA
o Kemasan PDIP
Gambar Susunan dan Konfigurasi Pin Z-80 CPU
2. MOVE : memindahkan blok memori dari suatu lokasi ke lokasi lainnya. Lokasi
tujuan harus daerah RWM.
3. INS(Insert) : menyisipkan satu byte data pada daerah lokasi RWM.
16. USER KEY : Tombol yang bisa dimanfaatkan oleh pemakai untuk pemrograman
input interface (aktif Low)
21. SZ-H C : Input Heksadesimal : tombol heksadesimal C dan penunjuk flag Sign,
Zerro, Half Carry (Utama)
Berdasarkan gambar di atas, dapat ditetapkan bahwa LED akan menyala jika anoda
segment berlogika 1 dan katoda berlogika 0. Untuk membangun data penyalaan
LED diperlukan data nyala sesuai dengan konfigurasi Port.
0 0 0 0 0 0 0 0 00H
1 0 1 1 1 1 0 1 BDH
0 0 1 1 0 0 0 0 30H
1 0 0 1 1 0 1 1 9BH
1 0 1 1 1 0 1 0 BAH
0 0 1 1 0 1 1 0 36H
1 0 1 0 1 1 1 0 AEH
1 0 1 0 1 1 1 1 AFH
0 0 1 1 1 0 0 0 38H
1 0 1 1 1 1 1 1 BFH
0 0 1 1 1 1 1 0 BEH
0 0 1 1 1 1 1 1 3FH
1 0 1 0 0 1 1 1 A7H
1 0 0 0 1 1 0 1 8DH
1 0 1 1 0 0 1 1 B3H
1 0 0 0 1 1 1 1 8FH
0 0 0 0 1 1 1 1 0FH
1 0 1 0 1 1 0 1 ADH
0 0 1 1 0 1 1 1 37H
1 0 0 0 1 0 0 1 89H
1 0 1 1 0 0 0 1 B1H
1 0 0 1 0 1 1 1 97H
1 0 0 0 0 1 0 1 85H
0 0 1 0 1 0 1 1 2BH
0 0 1 0 0 0 1 1 23H
1 0 1 0 0 0 1 1 A3H
0 0 0 1 1 1 1 1 1FH
0 0 1 1 1 1 1 0 3EH
0 0 0 0 0 0 1 1 03H
1 0 1 0 0 1 1 0 A6H
1 0 0 0 0 1 1 1 87H
1 0 1 1 0 1 0 1 B5H
1 0 1 1 0 1 1 1 B7H
1 0 1 0 1 0 0 1 A9H
0 0 0 0 0 1 1 1 07H
1 0 1 1 0 1 1 0 B6H
1 0 0 0 1 0 1 0 8AH
1 0 0 0 0 0 1 1 83H
1 0 1 0 0 0 1 0 A2H
0 0 1 1 0 0 1 0 32H
0 0 0 0 0 0 1 0 02H
Contoh :
o PB7 berlogika 1 : on
o PB6 berlogika 0 : off
o PB5 berlogika 0 : on
o PB4 berlogika 1 : on
o PB3 berlogika 1 : on
o PB2 berlogika 0 : on
o PB1 berlogika 1 : off
o PB0 berlogika 1 : on
o wikipedia.org
o stmikelrahma.ac.id
o uny.ac.id
BAB 5. Pengenalan Mikrokontroller
Mikrokontroler adalah sebuah komputer kecil yang dikemas dalam bentuk chip IC
(Integrated Circuit) dan dirancang untuk melakukan tugas atau operasi tertentu.
Pada dasarnya, sebuah IC Mikrokontroler terdiri dari satu atau lebih Inti Prosesor
(CPU), Memori (RAM dan ROM) serta perangkat INPUT dan OUTPUT yang dapat
diprogram.
Keterangan :
o CPU
Fungsi utama CPU adalah mengambil dan mendekode instruksi. Instruksi yang
diambil dari memori program harus diterjemahkan atau melakukan decode oleh CPU
tersebut.
o Memory
o Port I/O paralel
o Port Serial
o Timer dan Counter
o ADC
o DAC
o Interrupt Control
Kontrol interupsi atau Interrupt Control digunakan untuk menyediakan interupsi
(penundaan) untuk program kerja.
o Special Functioning Block
1. Mikrokontroler 4 Bit
2. Mikrokontroler 8 Bit
3. Mikrokontroler 16 Bit
4. Mikrokontroler 32 Bit
Kelebihan Mikrokontroler
o Mikrokontroler bertindak sebagai mikrokomputer tanpa harus ada
komponen digital tambahan lainnya
o Dapat mengurangi biaya dan ukuran sistem karena integrasi yang
lengkap dalam sebuah mikrokontroler.
o Penggunaan mikrokontroler sederhana dan mudah untuk
memecahkan masalah dan pemeliharaan sistem.
o Sebagian besar pin dapat diprogram oleh pengguna untuk
melakukan berbagai fungsi.
o Mudah menghubungkan port RAM, ROM dan I / O tambahan.
o Waktu yang diperlukan untuk melakukan operasi rendah.
Kekurangan mikrokontroler
o Mikrokontroler memiliki arsitektur yang lebih kompleks daripada
mikroprosesor.
o Hanya melakukan eksekusi dalam jumlah terbatas dalam waktu
yang bersamaan.
o Kebanyakan hanya digunakan dalam peralatan-peralatan mikro.
o Tidak dapat terhubung dengan perangkat yang berdaya tinggi
secara langsung.
Sumber :
o immersa-lab.com
o teknikelektronika.com
o uny.ac.id
BAB 6. Arsitektur Mikrokontroller
Jika ingin familiar dengan kemampuan sebuah mikrokontroler atau mesin lainnya,
maka langkah yang paling efektif yang harus dilakukan adalah menguasai arsitektur
Mikrokontroler tersebut apapun jenis dan bangsanya. Arsitektur mikrokontroler ini
dapat diketahui dengan lengkap melalui datasheet sesuai dengan jenis
mikrokontrolernya.
Arsitektur Mikrokontroler
Arsitektur yang dimaksud disini adalah rancangan hardware internal yang berkaitan
dengan tipe, jumlah, dan ukuran register serta rangkaian lainnya. Beberapa contoh
arsitektur mikrokontroler :
1. 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. Salah satu tipe mikrokontroler
MCS-51 yang banyak digunakan adalah tipe Atmel 89S51. Atmel 89S51 banyak
digunakan karena memiliki fasilitas on-chip flash memory dan In System
Programming. Beberapa feature lain mikrokontroler Atmel 89S51 adalah : 4K bytes
Flash ROM ; 128 bytes RAM ; 4 port @ 8-bit I/O (Input / Output) port ; 2 buah 16 bit
timer ; Interface komunikasi serial, dll.
Gambar Datasheet Pin Dari Mikrokontroler Atmel 89S51
2. ATmega16
ATmega16 merupakan mikrokontroler CMOS 8-bit buatan Atmel keluarga AVR. AVR
mempunyai 32 register general-purpose, timer/counter dengan metode compare,
interrupt eksternal dan internal, serial UART, programmable Watchdog Timer, ADC
dan PWM internal. Beberapa keistimewaan AVR ATmega16 :
o Saluran Input/Output (I/O) ada 32 buah, yaitu PORTA, PORTB,
PORTC, dan PORTD.
o Analog to Digital Converter 10 bit sebanyak 8 channel pada PORTA.
o 2 buah timer/counter 8-bit dan 1 buah timer/counter 16-bit dengan
prescalers dan kemampuan pembanding.
o Watchdog timer dengan osilator internal.
o Tegangan operasi 2.75V-5.5V pada ATmega16L dan 4.5V-5.5V
pada ATmega16, dan sebagainya.
3. ATmega32
Sumber :
o ATMEL AT89S51 datasheet
o ATMEL ATmega16/L datasheet
o ATMEL ATmega32/L datasheet
o ilearning.me
BAB 7. Pemrograman Mikrokontroller dengan Bahasa Assembly
1. Buat project baru dengan cara klik File > New > Project…
3. Beri nama project yang akan dibuat, pilih lokasi penyimpanannya, dan
centang Create directory for solution. kemudian klik ok
4. Pada kotak dialog Device Selection, pilih jenis perangkat yang digunakan, misal
ATmega328P. kemudian klik ok
.include "m328pdef.inc"
.cseg
.org 0x00
ldi r16,(1<<PINB0) ; load 00000001 into register 16
out DDRB,r16 ; write register 16 to DDRB
out PORTB,r16 ; write register 16 to PORTB
loop: rjmp loop ; stay in infinite loop
5. Masuk ke menu Build > Build Solution(F7), tunggu sampai proses selesai.
6. Apabila program yang dimasukkan benar maka pada tab output akan
menampilkan tampilan berikut :
Sumber :
o medium.com
o embeddednesia.com
o rjhcoding.com
BAB 8. Pemrograman Mikrokontroller dengan Bahasa C
1. Buat project baru dengan cara klik File > New > Project…
3. Beri nama project yang akan dibuat, pilih lokasi penyimpanannya, dan
centang Create directory for solution. kemudian klik ok
4. Pada kotak dialog Device Selection, pilih jenis perangkat yang digunakan, misal
ATmega328P. Kemudian klik ok
#ifndef F_CPU
#define F_CPU 16000000UL //16 MHz clock speed
#endif
#include <avr/io.h>
#include <util/delay.h>
int main(void){
DDRC = 0xFF; //Makes PORTC as Output
while(1) { //infinite loop
6. Apabila program yang dimasukkan benar maka pada tab output akan
menampilkan tampilan berikut :
Sumber :
o medium.com
o embeddednesia.com
o electrosome.com
BAB 9. Timing Mikrokontroller
Timer-0, 8 Bit
Penggunaan fasilitas interrupt sebagai timer ditujukan agar setiap kali menjalankan
instruksi program, akan dikerjakan pada blok interrupt timer. Penggunaan interrupt
ini dipadukan dengan teknik dalam menghitung proses kerja pada sebuah sistem
mikrokontroler. Besarnya kristal yang digunakan berpengaruh terhadap perhitungan
akan banyaknya instruksi yang dikerjakan mikroprosesor dalam satu detik.
Contoh :
Penyelesaian:
= 62745 instruksi/detik
Berikut pengaturan timer pada code wizard AVR :
Guna memfungsikan Timer-0 sebagai waktu tunda suatu kerja program, maka dapat
dituliskan seperti berikut ini :
#include <mega328p.h>
unsigned int x;
x++;
if(x>62745){
x=0;
}
void main(void){
……
TCCR0=0x01;
TCNT0=0x00;
……
Timer-1, 16 Bit
Selain timer 8 bit, mikrokontroler memiliki timer 16 bit yaitu pada timer-1. Secara
ilustrasi pengaturan timer-1 pada code wizard AVR adalah sebagai berikut :
Pada keterangan gambar di atas terdapat mode timer yang terdapat berbagai
macam, diantaranya :
1.
a. Mode Normal : Untuk menghitung saja, membuat delay dan menghitung
selang waktu
b. Mode PWM, phase correct : Memberikan bentuk gelombang
phase correct PWM resolusi tinggi
c. CTC (Clear Timer on Compare Match) : membandingkan nilai TCNT
dengan nilai register OCR, yang kemudian akan di-nol-kan
d. Fast PWM : Memberikan pulsa PWM frekuensi tinggi
Sedangkan pada kolom value merupakan nilai TCNT yang akan digunakan sebagai
nilai pembanding timer. Dalam istilah ini, guna mencari nilai besaran TCNT dikenal
dengan nama Prescaler. Prescaler merupakan faktor penunda atau pembagi clock
sesuai dengan kecepatan pada timer masing-masing. Timer-1 memiliki faktor
prescaler 16 bit (1024), sehingga untuk menentukan besarnya nilai TCNT/Value
dapat dirumuskan sebagai berikut :
Keterangan :
sehingga apabila diinginkan waktu timer-1 satu detik, nilai TCNT dapat dihitung
sebagai berikut :
TCNT = C2F7h
#include <mega328p.h>
bit fl_timer;
TCNT1H=0xC2F7 >> 8;
if(fl_timer==1){
fl_timer=0;
}else{
fl_timer=1;
}
void main(void){
fl_timer=0;
……
TCCR1A=0x00;
TCCR1B=0x05;
TCNT1H=0xC2;
TCNT1L=0xF7 ;
ICR1H=0x00;
…..
Timer-2, 8 Bit
Timer-2 juga merupakan timer 8 bit yang hampir mirip dengan timer-0. Pada timer-2
dapat digunakan rumus berikut untuk menentukan nilai pembanding dari TCNT :
Sehingga agar mencapai waktu 1 detik maka harus dikalikan 7812. Secara
pengaturan codewizardAVR dapat diilustrasikan seperti berikut :
Gambar Konfigurasi Timer-2
#include <mega328p.h>
if(x=7812){
}
…..
ASSR=0x00;
TCCR2=0x02;
TCNT2=0x00;
OCR2=0xFE;
…….
Sumber :
o vdokumen.net
o uny.ac.id
o microchipdeveloper.com
BAB 10. Komunikasi Serial
1. Synchronous Serial
Synchronous serial adalah komunikasi dimana hanya ada satu pihak (pengirim atau
penerima) yang menghasilkan clock dan mengirimkan clock tersebut bersama-sama
dengan data.
2. Asynchronous Serial
Asynchronous serial adalah komunikasi dimana kedua pihak (pengirim dan
penerima) masing-masing menghasilkan clock namun hanya data yang
ditransmisikan, tanpa clock. Agar data yang dikirim sama dengan data yang
diterima, maka kedua frekuensi clock harus sama dan harus terdapat sinkronisasi.
Setelah adanya sinkronisasi, pengirim akan mengirimkan datanya sesuai dengan
frekuensi clock pengirim dan penerima akan membaca data sesuai dengan frekuensi
clock penerima.
Sumber :
o burancr.dx.am
o ugm.ac.id
o sparkfun.com
o researchgate.net