Anda di halaman 1dari 47

BAB 1.

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).

Konstruksi Internal Mikroprosesor


Sebuah mikroprosesor secara internal dikonstruksi dari tiga bagian penting yaitu :

Gambar Konstruksi Internal Mikroprosesor


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).

Diagram Blok Sistem Mikroprosesor


Mikroprosesor sebagai sebuah chip tidak bisa bekerja sendiri sehingga memerlukan
unit lain, yaitu unit memori dan unit I/O. Dengan menggabungkan CPU, Memory
Unit, dan I/O unit terbangun sebuah sistem yang disebut dengan sistem
mikroprosesor.

Gambar Diagram Blok Sistem Mikroprosesor

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

BAB 2. Arsitektur Mikroprosesor

Arsitektur mikroprosesor berkaitan dengan rancangan software dan hardware


internal sebuah mikroprosesor. Berikut merupakan software dan hardware arsitektur
mikroprosesor :

Software Arsitektur Mikroprosesor


Ada tiga jenis software arsitektur mikroprosesor, yaitu Complex Instruction Set
Computer (CISC), Reduce Instruction Set Computer (RISC), dan Mikroprosesor
Superscalar.


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.

Gambar Mikroprosesor Z-80


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.

Gambar Mikroprosesor ATMEL 90S1200


o Mikroprosesor Superscalar

Mikroprosesor dengan arsitektur superscalar adalah mikroprosesor yang


menggunakan instruksi-instruksi biasa (aritmatika, floating point, store, branch) tetapi
bisa diinisialisasi secara simultan dan dapat dieksekusi secara independen. Contoh
mikroprosesor dengan arsitektur superskalar antara lain: IBM RS 6000, Intel pentium
L4142580 (CISC dengan konsep superscalar).

Gambar Mikroprosesor Intel Pentium L4142580

 
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

Mikroprosesor dengan arsitektur I/O terisolasi menggunakan desain pengalamatan


atau pemetaan I/O terpisah dengan pengalamatan memori. Pengalamatan I/O
menggunakan sebagian dari jumlah address bus sedangkan pengalamatan memori
menggunakan semua address bus. Mikroprosesor dengan arsitektur ini memiliki
pengendalian yang terpisah dan bergantian. Pada saat mikroprosesor mengakses
memori, maka I/O harus off. Sebaliknya pada saat mikroprosesor mengakses I/O,
maka memori harus off.


o Arsitektur I/O Terpetakan dalam Memori

Mikroprosesor dengan arsitektur I/O terpetakan dalam memori menyatukan


komponen I/O dalam pengalamatan bersama dengan komponen memori. Arsitektur
ini menggunakan instruksi tipe memori untuk mengakses komponen I/O. I/O yang
dipetakan dalam memori memungkinkan CPU menggunakan instruksi yang sama
untuk alih data ke memori seperti yang digunakan untuk alih data ke I/O.


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

Bahasa assembly adalah bahasa pemrograman tingkat rendah yang digunakan


dalam pemrograman komputer, mikroprosesor, pengendali mikro, dan perangkat
lainnya yang dapat diprogram. Bahasa assembly mengimplementasikan
representasi atas kode mesin dalam bentuk simbol-simbol yang secara relatif lebih
dapat dipahami oleh manusia.

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 :

LOAD                                 disingkat      LD              artinya salinkan

ADD                                   disingkat      ADD           artinya jumlahkan

ADD with Carry                disingkat      ADC           artinya jumlahkan sertakan


carry

SUBTRACT                       disingkat      SUB           artinya kurangkan

SUBTRACT with Carry    disingkat      SBC           artinya kurangkan sertakan


carry

COMPLEMENT                disingkat      CPL           artinya not-kan

Konstruksi program bahasa assembly biasanya ditulis seperti 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.

Cara manual yaitu dengan menerjemahkan setiap instruksi bahasa assembly


menjadi bahasa mesin melalui set instruksi yang disediakan. Sedangkan cara
otomatis yaitu dengan menggunakan Assembler.

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

Bahasa assembly memungkinkan programmer untuk mengontrol serta


memanfaatkan secara penuh kapabilitas yang terdapat pada suatu perangkat keras,
berbeda halnya dengan bahasa pemrograman tingkat tinggi yang memiliki banyak
keterbatasan dalam pemanfaatan secara penuh suatu perangkat keras.

Sumber :


o id.wikipedia.org
o uny.ac.id
o academia.edu
BAB 4. Komputer Mikro MPF-I (Mikroprosesor Z80)

Micro-Professor (MPF-I) merupakan komputer mikro yang diperkenalkan pada tahun


1981 oleh Multitech (yang pada 1987 berganti nama menjadi Acer). MPF-I dirancang
secara khusus untuk mengajarkan dasar-dasar kode mesin dan bahasa assembly
dengan menggunakan mikroprosesor Zilog Z80. Program dimasukkan ke MPF-I
menggunakan kode mesin Z80 dalam format heksadesimal, kemudian monitor MPF-
I menampilkan alamat dan data yang disimpan di alamat tersebut secara bersamaan
menggunakan tampilan seven segment.

Gambar MPF-I
Gambar Diagram Komponen MPF-I

Hubungan antara komponen dan cara kerja komputer mikro MPF-I dapat
digambarkan seperti berikut :

Bagian Utama Komputer Mikro MPF-I 


1. CPU         menggunakan mikroprosesor Z-80. 

2. Memori   menggunakan EPROM 2764/27256 dan RWM 6116.

3. I/O           menggunakan PPI 8255, Z-80 PIO dan Z80-CTC. 

    – Peralatan Input Keypad 36 tombol.

    – Peralatan Output Monitor Display Seven Segment 6 digit berwarna merah,


Speaker 1,6 inchi 4 ohm, Power               supply 5 Volt DC dan arus sebesar 500
mA, Audio Tape Interface (MIC dan EAR). 

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.

Mikroprosesor Zilog Z-80 CPU adalah mikroprosesor 8 bit buatan Zilog


dengan gambaran kerja :


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

Gambar Blok Diagram Arsitektur Z-80 CPU

Fungsi tombol pada MPF-I


1. RS : reset atau kembali ke keadaan awal dari sistem.

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.

4. SBR(Set Breakpoint) : melakukan pengaturan titik henti pada saat menjalankan


program 

5. PC(Program Counter) : memanggil alamat cacahan alamat program

6. MONI(Monitor) : menghentikan program yang tereksekusi oleh pemakai


segera/langsung

7. Rela(Relatif) : Menghitung nilai relatif lompatan perintah Jump Relatif (JR)

8. DEL(Delete) : menghapus satu byte data pada suatu lokasi memori 

9. CBR(Clear Breakpoint) : menghilangkan break point program pemakai 

10. REG(Register) : Memilih register 

11. INTR(Interrupt) : input interupsi 

12. TAPE WR(Tape Write) : menyimpan program ke audio tape recorder

13. STEP : eksekusi satu langkah perintah program

14. – : mundur satu alamat memori atau satu register  

15. DATA : kesiapan memasukkan data ke Memori (RWM) atau Register

16. USER KEY : Tombol yang bisa dimanfaatkan oleh pemakai untuk pemrograman
input interface (aktif Low) 

17. TAPE RD(Tape Read) : membaca program dari audio tape recorder

18. GO : Eksekusi seluruh program 

19. + : maju satu alamat memori atau satu register

20. ADDR(Address) : set alamat memori  

21. SZ-H C : Input Heksadesimal : tombol heksadesimal C dan penunjuk flag Sign,
Zerro, Half Carry (Utama)

22. PNC D : Input Heksadesimal : tombol heksadesimal D dan penunjuk flag


Parity/Overflow, Non Carry dan Carry   (Utama)
23. SZ-H’ E : Input Heksadesimal : tombol heksadesimal E dan penunjuk flag Sign,
Zerro, Half Carry (Alternatif)

24. PNC’ F : Input Heksadesimal : tombol heksadesimal F dan penunjuk flag


Parity/Overflow, Non Carry dan Carry (Alternatif)

25. IX 8 : Input Heksadesimal : tombol heksadesimal 8 dan pemilih register indeks IX

26. IY 9 : Input Heksadesimal : tombol heksadesimal 9 dan pemilih register indeks IY

27. SP A : Input Heksadesimal : tombol heksadesimal A dan pemilih register SP


(Stack Pointer)

28. I-IF B : Input Heksadesimal : tombol heksadesimal B dan pemilih register B

29. AF’ 4 : Input Heksadesimal : tombol heksadesimal 4 dan pemilih register AF’

30. BC’ 5 : Input Heksadesimal : tombol heksadesimal 5 dan pemilih register BC’

31. DE’ 6 : Input Heksadesimal : tombol heksadesimal 6 dan pemilih register DE’

32. HL’ 7 : Input Heksadesimal : tombol heksadesimal 7 dan pemilih register HL’

33. AF 0 : Input Heksadesimal : tombol heksadesimal 0 dan pemilih register AF

34. BC 1 : Input Heksadesimal : tombol heksadesimal 1 dan pemilih register BC

35. DE 2 : Input Heksadesimal : tombol heksadesimal 2 dan pemilih register DE

36. HL 3 : Input Heksadesimal : tombol heksadesimal 3 dan pemilih register HL

Format Data Display


Monitor MPF-1 menggunakan 6 buah seven segment dan Keypad menggunakan
konfigurasi matrik 6×6 seperti gambar berikut :
Gambar Konfigurasi Internal Keypad

Gambar Konfigurasi LED Sseven Segment Common Cathoda

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.

Untuk memudahkan penjabaran data penyalaan segment untuk tiap karakter


dapat diformulasikan menggunakan tabel berikut :

PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 Data

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 :

Menyalakan karakter angka 2 pada LED seven segment :


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

Sehingga data yang dibentuk adalah 9BH.


Gambar Konfigurasi Angka 2 Seven Segment

Contoh program assembly-nya :

Addr  Op-Code No. Label Assembly  Keterangan

1800 3E 9B LD A, 9BH AFH = data nyala angka 2 


dikeluarkan ke PORTB
1802 D3 01 OUT PORTB, A

1804 3E C2 LD A, E0H E0H = data pemilih LED1


dikeluarkan di PORTC
1806 D3 02 OUT PORTC, A

1808 76 HALT Berhenti


Sumber :


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.

Gambar Chip Mikrokontroler

Gambar Struktur Diagram Mikrokontroler

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

Memori Ini digunakan untuk menyimpan data dan program.


o Port I/O paralel

Port Input / Output paralel digunakan untuk mendorong atau menghubungkan


berbagai perangkat seperti LCD, LED, printer, memori dan perangkat
INPUT/OUTPUT lainnya ke mikrokontroler.


o Port Serial

Port serial menyediakan berbagai antarmuka serial antara mikrokontroler dan


periferal lain seperti port paralel.


o Timer dan Counter

Pengatur waktu (Timer) dan Penghitung (Counter) menyediakan semua fungsi


pengaturan waktu dan penghitungan di dalam mikrokontroler.


o ADC

Konverter ADC digunakan untuk mengubah sinyal analog ke bentuk digital.


o DAC

DAC mengubah sinyal digital menjadi format analog.


o Interrupt Control
Kontrol interupsi atau Interrupt Control digunakan untuk menyediakan interupsi
(penundaan) untuk program kerja.


o Special Functioning Block

Beberapa Mikrokontroler yang hanya dapat digunakan untuk beberapa aplikasi


khusus (misalnya sistem Robotik), pengontrol ini memiliki beberapa port tambahan
untuk melakukan operasi khusus tersebut.

Mikrokontroler Berdasarkan Jumlah Bit Data yang Dapat


Diolah
Mikrokontroler biasa digunakan untuk mengontrol kerja mesin atau sistem dengan
menggunakan program yang disimpan pada sebuah ROM. Mikrokontroler dapat
dibedakan berdasarkan jumlah bit data yang dapat diolah :

1. Mikrokontroler 4 Bit

Mikrokontroler 4 bit merupakan mikrokontroler dengan jumlah bit data terkecil.


Mikrokontroler jenis ini diproduksi untuk meminimalkan jumlah pin dan ukuran
kemasan.

2. Mikrokontroler 8 Bit

Mikrokontroler 8 bit merupakan mikrokontroler yang paling banyak digunakan untuk


pekerjaan-pekerjaan perhitungan skala kecil. Dalam komunikasi data, Data ASCII
serial juga disimpan dalam ukuran 8 bit. Kebanyakan IC memori dan fungsi logika
dibangun menggunakan data 8 bit sehingga interface bus data menjadi sangat
mudah dibangun.

3. Mikrokontroler 16 Bit

Keterbatasan-keterbatasan yang ada pada mikrokontroler 8 bit berkaitan dengan


semakin kompleksnya pengolahan data dan pengendalian serta kecepatan respon
disempurnakan dengan menggunakan mikrokontroler 16 bit. Mikrokontroler 16 bit
digunakan untuk mengatur tangan robot dan aplikasi Digital Signal
Processing (DSP).

4. Mikrokontroler 32 Bit

Mikrokontroler 32 bit ditargetkan untuk aplikasi Robot, Instrumen cerdas,


Avionics, Image Processing, Telekomunikasi, Automobil, dan sebagainya. Program-
program aplikasinya bekerja pada sebuah sistem operasi.
 

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. 

Gambar Datasheet Pin Dari Mikrokontroler ATMEGA328P

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.

Gambar Datasheet Pin Dari Mikrokontroler ATmega16L

3. ATmega32

Mikrokontroler ATmega32 adalah mikrokontroler yang diproduksi oleh Atmel.


Mikrokontroler ini memiliki clock dan kerjanya tinggi sampai 16 MHz. Ukuran flash
memorinya cukup besar, kapasitas SRAM sebesar 2 KiloByte, 32 buah port I/O yang
sangat memadai untuk berinteraksi dengan LCD dan keypad. Selain untuk general
I/O, pin PD1 dan PD0 ATmega32 berfungsi mengirim dan menerima bit secara
serial. Pengubahan fungsi ini dibuat dengan mengubah nilai beberapa register serial.
Untuk menekankan fungsi ini, pin PD1 disebut TxD dan pin PD0 disebut RxD. Nilai
UBRR dan clock sistem menentukan laju bit pengirim dan penerima serial.
Gambar Datasheet Pin Dari Mikrokontroler ATmega 32L

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

Pemrograman dengan bahasa Assembly dan bahasa C bisa menggunakan Atmel


Studio (gratis). Langkah-langkah menggunakannya adalah sebagai berikut :

1. Buat project baru dengan cara klik File > New > Project…

2. Pada bagian sebelah kiri pilih Assembler, Lalu pilih AVR Assembler Project

Gambar New Project Atmel Studio bahasa assembly

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

Contoh program Menyalakan LED 

.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.

Gambar Menu Build

6. Apabila program yang dimasukkan benar maka pada tab output akan
menampilkan tampilan berikut :

Gambar Tab Output

Hasil build tadi bisa disimulasikan pada program Circuit Simulator seperti Proteus.

Contoh hasil yang disimulasikan :


Gambar Hasil Simulasi Program Menyalakan LED Dengan Bahasa Assembly

Sumber :


o medium.com
o embeddednesia.com
o rjhcoding.com
BAB 8. Pemrograman Mikrokontroller dengan Bahasa C

Langkah-langkah menggunakan Atmel Studio :

1. Buat project baru dengan cara klik File > New > Project…

2. Pada bagian sebelah kiri pilih C/C++, Lalu pilih GCC C Executable Project 

Gambar New Project Atmel Studio bahasa C/C++

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

Contoh program LED Blink

#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

      PORTC = 0xFF;             //Turns ON All LEDs


      _delay_ms(1000);              //1 second delay
      PORTC= 0x00;          //Turns OFF All LEDs
      _delay_ms(1000);              //1 second delay
   }
}

5. Masuk ke menu Build > Build Solution(F7), tunggu sampai proses selesai.

Gambar Menu Build

6. Apabila program yang dimasukkan benar maka pada tab output akan
menampilkan tampilan berikut :

Gambar Tab Output


 

Hasil build tadi bisa disimulasikan pada program Circuit Simulator seperti Proteus.

Contoh hasil yang disimulasikan :

Gambar Hasil Simulasi Program LED Blink Dengan Bahasa C

Sumber :


o medium.com
o embeddednesia.com
o electrosome.com
BAB 9. Timing Mikrokontroller

Timer merupakan salah satu fasilitas yang dimiliki oleh mikrokontroler, yang


berfungsi untuk membuat perhitungan waktu menyerupai real time (waktu
sebenarnya). Sebelumnya kita mengenal perintah delay digunakan untuk menunda
berdasarkan lamanya waktu, akan tetapi delay memiliki konfigurasi pengolahan
waktu berdasarkan Kristal yang dipakai/dipasang. Apabila dengan konstanta delay
yang sama (misal: delay_ms (1000);), digunakan pada dua rangkaian yang memiliki
Kristal yang berbeda, maka akan menghasilkan waktu tundaan yang berbeda.
Semakin besar Kristal yang digunakan, maka delay akan dikerjakan semakin cepat
dan sebaliknya.

Timer merupakan teknik pemrograman yang menggunakan perintah interrupt agar


selalu dikerjakan. Pada sebuah mikrokontroler keluarga AVR biasanya terdapat 3
buah macam timer atau lebih, yaitu Timer-0, Timer-1 dan Timer-2 yang memiliki
keunggulan dan fungsi masing-masing.

Gambar Menu Timer Pada CodeWizardAVR


 

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 :

Sebuah sistem minimum mikrokontroler dengan menggunakan kristal 16MHz,


berapa instruksi yang dapat dikerjakan mikrokontroler dalam waktu 1 detik?

Penyelesaian:

Mikroprosesor dalam mikrokontroler AVR memiliki Timer-0 dengan kecepatan data 8


bit, sehingga dapat dihitung kecepatan pengolahan instruksi per program tiap satu
detik adalah :

besarnya_kristal / kecepatan_timer-0 = 16MHz / (2 8  – 1)

                                                            = 62745 instruksi/detik

 
Berikut pengaturan timer pada code wizard AVR :

Gambar Konfigurasi Timer-0

Secara sub program, pengaturan di atas menjadi seperti berikut :


Gambar Program Yang Digenerate Setelah Pengaturan

Guna memfungsikan Timer-0 sebagai waktu tunda suatu kerja program, maka dapat
dituliskan seperti berikut ini :

#include &lt;mega328p.h&gt;

interrupt [TIM0_OVF] void timer0_ovf_isr(void){

   unsigned int x;

   x++;

   if(x&gt;62745){

      …………….. (aksi yang dikerjakan setelah tunda 1 detik)

      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 :

Gambar Konfigurasi Timer-1

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 :

TCNT = (1 + FFFFh) – (Ttimer * fCLK / N)

Keterangan :

TCNT         : Nilai timer (hexa)

fCLK           : Frekuensi Clock (Crystal)

Ttimer        : Waktu timer yang diinginkan (detik)

N                : Prescaler (1, 8, 64, 256, atau 1024)

1 + FFFFh : Nilai maksimum timer (overflow saat FFFFh ke 0000h)

sehingga apabila diinginkan waktu timer-1 satu detik, nilai TCNT dapat dihitung
sebagai berikut :

TCNT = (1 + FFFFh) – (1 * 16MHz / 1024)

TCNT = 10000h – 15625d

TCNT = 10000h – 3D09h (nilai desimal diubah ke hexa)

TCNT = C2F7h 
 

Sehingga nilai C2F7h digunakan sebagai nilai TCNT pada pengaturan


CodeWizardAVR. Sebagai contoh, apabila diinginkan untuk membuat dua buah aksi
yang berbeda dengan selang waktu 1 detik, dapat dituliskan sebagai berikut :

#include &lt;mega328p.h&gt;

bit fl_timer;

interrupt [TIM1_OVF] void timer1_ovf_isr(void){

   // Reinitialize Timer1 value

   TCNT1H=0xC2F7 &gt;&gt; 8;

   TCNT1L=0xC2F7 &amp; 0xff;

   if(fl_timer==1){

      ………… (aksi ke-1 yang dikerjakan)

      fl_timer=0;

   }else{

      ………… (aksi ke-2 yang dikerjakan)

      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 :

CompareValue = (Ttimer * f_Crystal / Prescaler)

FEh                    = (Ttimer * 16MHz / 8)

254d                  = Ttimer * 2000000

Ttimer                 = 254d / 2000000

Ttimer                 = 0.000128 second = 128 µs

Sehingga agar mencapai waktu 1 detik maka harus dikalikan 7812. Secara
pengaturan codewizardAVR dapat diilustrasikan seperti berikut :
Gambar Konfigurasi Timer-2

Secara program dapat dituliskan seperti berikut :

#include &lt;mega328p.h&gt;

unsigned int x=0;

interrupt [TIM2_COMPA] void timer2_compa_isr(void)

   // Place your code here


   x++;

   if(x=7812){

      ………. (aksi yang dikerjakan)

   }

void main (void){

   …..

   ASSR=0x00;

   TCCR2=0x02;

   TCNT2=0x00;

   OCR2=0xFE;

   …….

Sumber :


o vdokumen.net
o uny.ac.id
o microchipdeveloper.com
BAB 10. Komunikasi Serial

Komunikasi serial adalah komunikasi yang pengiriman datanya per-bit secara


berurutan dan bergantian sehingga lebih lambat dibandingkan komunikasi paralel.
Komunikasi ini mempunyai suatu kelebihan yaitu hanya membutuhkan satu jalur dan
kabel yang sedikit dibandingkan dengan komunikasi paralel. 

Gambar Diagram Komunikasi Serial

Komunikasi serial ada dua macam, asynchronous serial dan synchronous 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.

Contoh penggunaan synchronous serial terdapat pada transmisi data keyboard. 

Gambar Diagram Komunikasi Synchronous Serial

 
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.

Contoh penggunaan asynchronous serial adalah pada Universal Asynchronous


Receiver Transmitter (UART) yang digunakan pada serial port (COM) komputer.

Gambar Diagram Komunikasi Asynchronous Serial

Kelebihan Komunikasi Serial



o Pada penggunaan kabel yang panjang, maka masalah cable
loss  tidak akan menjadi masalah besar daripada menggunakan
kabel paralel.
o Jumlah kabel serial lebih sedikit.
o Banyaknya device saat ini menggunakan teknologi infrared untuk
komunikasi data, dalam hal ini pengiriman datanya dilakukan
secara serial.
o Banyak mikrokontroler yang dilengkapi dengan komunikasi serial.

Kekurangan Komunikasi Serial



o Dari Segi perangkat keras: adanya proses konversi data paralel
menjadi serial atau sebaliknya menggunakan piranti tambahan
yang disebut UART (Universal Asynchronous Receiver/Transmitter).
o Dari Segi perangkat lunak: lebih banyak register yang digunakan
atau terlibat.

Sumber :


o burancr.dx.am
o ugm.ac.id
o sparkfun.com
o researchgate.net

Anda mungkin juga menyukai