Dasar Dasar Mikroprosesor
description
Transcript of Dasar Dasar Mikroprosesor
DASAR-DASAR MIKROPROSESOR
A. Pengertian Mikroprosesor (P)
Mikroprosesor secara umum dapat diterjemahkan sebagai pemroses
mikro/pengolah mikro. Secara fisik mikroprosesor adalah sebuah keping (chip) yg
merupakan perpaduan dari suatu rangkaian elektronika yang rumit yang dirancang /
dibuat untuk mengolah / memproses pekerjaan-pekerjaan yang cukup kompleks.
Jadi, istilah mikro pada mikroprosesor sangat berkait dengan ukuran fisik
mikroprosesor yang terbilang kecil.
B. Perkembangan Mikroprosesor.
Sejarah mencatat bahwa orang-orang Babilonia kuno telah memakai Abacus
(alat hitung yang terbuat dari manik-manik) sekitar 500SM. Lalu sekitar tahun 1642
Blaise Pascal menciptakan mesin hitung yang menggunakan prinsip gigi roda (cikal
bakal kalkulator sekarang).
Perkembangan berikutnya adalah dengan diciptakannya mesin hitung raksasa
(1940-1950), yang dibangun dari relai-relai dan tabung-hampa (vaccum-tube)
berukuran raksasa. Perkembangan berikutnya, memanfaatkan transistor dan
komponen zat padat (solid-state electronic) digunakan untuk membangun mesin
serupa yang berukuran lebih kecil. Akhirnya, perkembangan rangkaian
terpadu/terintegrasi (IC=Integrated Circuit) sekitar 1960, telah mengantar ke
pengembangan mikroprosesor dan sistem komputer berbasis mikroprosesor
(Microprocessor Based Computer System).
1. Mikroprosesor 4 bit
Pada 1971, Intel Corporatioan & Marcion G.Hoff memperkenalkan
mikroprosesor pertama kali yaitu mikroprosesor 4 bit seri 4004, yang memiliki
4096 alamat, masing-masing 4 bit memori dan memiliki 45 buah instruksi yang
berbeda serta hanya digunakan untuk keperluan terbatas, misal video game dan
beberapa alat kendali (controller) sederhana.
2. Mikroprosesor 8 bit
Akhir 1971, dengan menyadari bahwa mikroprosesor adalah produk
komersial, Intel Corporation kembali meluncurkan mikroprosesor 8 bit pertama
yaitu 8008, dengan memori yang lebih besar (16 KB x 8 bit) dan jumlah instruksi
yang lebih banyak (48 instruksi).
Oleh karena pemakaian mikroprosesor 8008 yang makin meningkat dan
meluas maka memori dan jumlah instruksi tersebut menjadi kurang memadai,
sehingga Intel Corp tahun 1973 meluncurkan mikroprosesor 8080
(mikroprosesor 8 bit modern pertama). Setelah itu banyak perusahaan-
perusahaan lain yang juga mengeluarkan mikroprosesor 4 bit & 8 bit mereka
yang pertama. Keistimewaan mikroprosesor ini, selain alamat memori dan
jumlah instruksinya yang lebih besar, peningkatan juga terdapat kecepatan
(speed) yang fantastis dibanding dengan mikroprosesor 8008. Mikroprosesor
8008 melakukan satu operasi internal (kecepatan eksekusi) dalam 20mS, sedang
mikroprosesor 8080 hanya membutuhkan 2,0mS.
Versi yang lebih baru dari 8080, yaitu 8085 yang diluncurkan oleh Intel Corp
tahun 1977, hanya sedikit peningkatan kinerja yang dimiliki oleh 8085 bila
1
dibandingkan dengan 8080 (alamat memori dan jumlah instruksinya sama, clock-
nya 1.3 mS).
3. Mikoprosesor 16 bit
Pada 1978 Intel Corp meluncurkan mikroprosesor 8086. Setahun kemudian
melepas mikroprosesor 8088 ke pasaran. Keduanya adalah 16 bit, dengan
kecepatan eksekusi 400 ns, kapasitas alamat (1 Mb x 8 bit) atau 512 x 16
bit.satu kemajuan penting yang dicapai oleh mikroprosesor 16 bit ini adalah
kemampuan melakukan perkalian dan pembagian secara perangkat keras
(hardware multiplication and division) kemampuan ini tidak dimiliki oleh
mikroprosesor 8 bit, kecuali Motorola MC 6809 yang mampu melakukan
perkalian, tapi tidak untuk pembagian.
Perkembangan mikroprosesor 16 bit tidak berhenti di sini, Intel Corp
kemudian memproduksi 80186, versi 80186 yang lebih canggih (lebih banyak
untuk pemakaian pengendalian). Versi terakhir dari mikroprosesor 80186 adalah
80286 yang memiliki alamat memori 16 Mb, kecepatan clock-nya juga
mengalami peningkatan menjadi 16 MHz.
4. Mikroprosesor 32 bit
Setelah sukses dengan mikroprosesor 16 bit, Intel Corp meluncurkan 2 versi
mikroprosesor 32 bit, yaitu 80386 dan 80486. Kecepatan clock yang lebih tinggi
menjadi kelebihan mikroprosesor ini, selain bus datanya yang lebih lebar dan
ruang memori yang lebih besar (4 Gb).
Mikroprosesor 80486 adalah hasil pengembangan dari mikroprosesor 80386,
dengan prosesor tambahan Co-Processor, untuk keperluan arithmatika, dan 8 Kb
internal cache memory. Mikroprosesor 80386 mengeksekusi sebagian besar
instruksinya dalam 2 clock, sedang 80486 dalam 1 clock. Generasi berikutnya
dari Intel Corp adalah mikroprosesor Pentium, Pentium II dan seterusnya.
C. Arsitektur Dasar Komputer
Arsitektur komputer berhubungan dengan perancangan blok-blok dasar
(memory, processor & input/output device) dan bagaimana interaksi antar blok
tersebut.
Arsitek komputer memilih dan membangun interkoneksi antar blok dengan
mempertimbangkan, antara lain : kecepatan, harga dan kehandalannya. Komputer
berarsitektur Von Neuman terdiri dari 3 komponen utama yaitu : Central Processing
Unit (CPU), memory, dan I/O device (piranti masukan/keluaran).
2
Gambar 1. Arsitektur Dasar Komputer Van Neuman
Keterangan :
1. CPU, adalah otak dari sistem komputer dan berfungsi mengorganisasikan semua
operasi yang terjadi di dalam komputer. Operasi tersebut meliputi operasi
perpindahan/transfer data, operasi aritmatika & logika, serta operasi pengendalian
I/O device serta seluruh sumber daya (resources) yang dikendalikan oleh CPU.
2. Memory, berfungsi sebagai penyimpan data maupun instruksi-instruksi program.
Memori terdapat 2 jenis, yaitu:
a. RAM, untuk menyimpan data dan instruksi-instruksi program yang sedang
dijalankan oleh komputer dan bersifat sementara (temporary), yaitu
data/instruksi akan hilang jika catu daya dimatikan.
b. ROM, untuk menyimpan instruksi-instruksi initial boot up (yaitu instruksi-
instruksi yang dijalankan ketika komputer baru dihidupkan). Instruksi-instruksi
tersebut berfungsi untuk mempersiapkan komputer agar dapat digunakan
sebagaimana mestinya. Instruksi-instruksi tersebut bersifat permanent.
3. Input-Output Devices, berfungsi sebagai piranti penghubung dengan dunia luar
(piranti eksternal). Adapun piranti-piranti tersebut adalah:
Layar Monitor
Printer
Mouse
Keyboard
Scanner, dan lain-lain.
Ketiga komponen itu saling dihubungkan dengan 3 bus yang disebut struktur bus,
yaitu:
Data bus, untuk melewatkan data
Control bus, untuk melewatkan sinyal kendali
Addres bus, untuk melewatkan alamat data
Untuk lebih memperjelas mengenai CPU dapat dijabarkan sbb:
3
Gambar 2. Arsitektur Internal Mikroprosesor (CPU)
a. ALU, berfungsi untuk menangani operasi-operasi aritmatika dan operasi logika.
b. Control Unit, berfungsi mengatur semua proses internal (transfer data, interupsi,
pengendalian jalannya program, control I/O device, serta semua resources pada
mikro prosesor).
c. Register, pada dasarnya register adalah memori yang dapat di akses dengan
sangat cepat. Operasi-operasi aritmatika & logika yang komplek membutuhkan
tempat penyimpan sementara, untuk meyimpan hasil dari tahapan operasi
tersebut. Proses transfer data dari memori ke media penyimpan perlu
penampung sementara.
SISTEM BERDASAR MIKROPROSESOR
A. Mikroprosesor
Mikroproseor adalah merupakan piranti VLSI yang dapat diprogram untuk
melaksanakan sejumlah fungsi dan instruksi. Dalam sebuah sistem mikroprosesor
chip ini disebut unit pengolah pusat / CPU/MPU. CPU terdiri dari dua bagian :
1. Arithmatic and Logic Unit (ALU)
2. Control Unit (CU)
ALU berfungsi melakukan operasi–operasi yang sesuai dengan instruksi yang
diberikan, sedang CU berfungsi dan bertangguang jawab untuk melakukan
penyesuaian pada operasi sejumlah unit di dalam sistem, termasuk mikroprosesornya
dan mengatur pewaktuan instruksi serta aliran data di dalam CPU, juga antara CPU
dengan unit lainnya di dalam sistem. Mikroperosesor ada yang dikemas dalam
bentuk DIL (Dual In-Line) 40 pin. Kapasitas atau ukuran bit, dari suatu mikroprosesor
chip ditentukan oleh jumlah cacah bit data yang dapat ditanganinya. Chip 4 bit
memiliki kapasitas data 4 bit sedang chip 8 bit memiliki kapasitas data 8 bit dan
seterusnya. Jenis yang paling paling banyak digunakan adalah mikroprosesor 8 bit
untuk PC yaitu prosesor Z-80 dari Zilog, 6502 dari Intel dan 6800 dari Motorola.
Mikroprosesor 16 bit seperti Z-80 dari Zilog, 8086 dari Intel dan 6800 dari
Motorola, juga banyak digunakan dalam PC atau komputer pribadi serta piranti-piranti
4
pengendali mini. Organisasi dasar sistem berdasar mikroprosesor 8 bit dapat pada
Gambar 1 di bawah ini :
Gambar : system berdasar mikroprosesor 8-bit
Gambar 1. Organisasi dasar sistem berdasar mikroprosesor (8 bit)
Gambar 1. Menunjukan hubungan antar elemen yang satu dengan elemen yang
lain, dalam sebuah sistem yang umum. Sistem tersebut terdiri dari :
1. CPU (Central Processing Unit)
2. Memory Chip (RAM & ROM)
3. Address Decoder Chip
4. Input-Output Interface Chip ( PIO & UART)
5. Struktur Bus
CPU adalah chip tunggal yang berisi semua rangkaian yang diperlukan untuk
mengartikan dan melaksanakan instruksi program dalam bentuk manipulasi data,
operasi logika dan aritmatika, pewaktuan dan pengendalian sistem.
RAM & ROM adalah berisi sejumlah lokasi memori dimana data dalam bentuk bit
tersimpan. Secara normal setiap lokasi memori akan menyimpan karakter
sebanyak 8-bit (1 byte). Setiap lokasi memori mempunyai alamat unik 16-bit
sehingga memiliki kawasan alamat antara 0000 sampai FFFF atau 216 = 65536 =
64K alamat. Dengan jumlah halaman memori 28 = 256, dan setiap halaman
memori berisi 28 = 256 lokasi memori.
Input-Output Interface Chip, akan menghubungkan sistem ke piranti eksternal,
dalam Gambar 1. diperlihatkan dua tipe piranti I/O yaitu PIO (Parallel Input-Output)
atau sering disebut PIA (Parallel Interface adapter) yang berfungsi sebagai antar-
muka I/O yang dapat diprogram dan bertindak sebagai antar-muka paralel. UART
(Universal Asynchronous Receiver-Transmitter) yang menyediakan antar-muka
seri. Unit I/O interface bersifat bi-directional, yang menyediakan sambungan dari
dan ke sistem dengan piranti-piranti pheriperal seperti untuk keyboard, VDU
(Visual Display Unit) dan transducer atau unit penggerak motor stepper, LED dan
relay.
Address Decoder Chip, akan memilih chip yang sesuai untuk dialamati CPU.
Struktur Bus, bus adalah sekelompok kawat penghubung yang digunakan
sebagai jalur informasi digital yang memiliki fungsi umum. Terdapat tiga jenis bus
dalam sistem berdasar mikroprosesor :
a. Bus Data (Data Bus) berfungsi untuk mentransfer data antara CPU
dan elemen-elemen lain di dalam sistem. Oleh sebab itu, data harus
5
dimasukkan dan dikeluarkan dari mikroprosesor maka bus data harus bersifat
bi-directional.
b. Bus Alamat (Address Bus) berfungsi untuk membawa data alamat
dari lokasi memori, untuk mengambil data agar dapat dibaca, atau untuk
menyimpan agar dapat ditulis ke lokasi memori. Bus alamat juga difungsikan
untuk mengalamati elemen-elemen lain di dalam sistem seperti unit I/O
interface. Bus alamat adalah uni-directional yaitu mampu membawa informasi
digital 16 bit secara serentak .
c. Bus Control (Control Bus), berfungsi membawa semua isyarat kontrol dari CPU.
Jumlah jalur kontrol bergantung pada mikroprosesor yang digunakan dan juga
rancangan sistemnya.
Bus kontrol melakukan 4 fungsi utama:
1. Penyesuai memori
2. Penyesuai I/O
3. Penjadwalan CPU, misalnya : interupsi
4. Tugas lain seperti untuk reset dan detak.
Interupsi
Pada piranti pheriperal seperti printer perlu didahulukan maka program utama
dapat di interupsi secara sementara oleh isyarat kontrol interupsi. Setelah selesai
melayani piranti pheriperal tersebut CPU akan kembali ke program semula yang
dimulai dari titik setelah interupsi. Interupsi ada dua yaitu :
1. Interupsi
IRQ (Interrupt Request) yaitu CPU akan menyelesaikan instruksi yang sedang
dikerjakan sebelum menanggapi instruksi tersebut.
Halt, merupakan jenis lain dari isyarat yang terinterupsi yang akan menghentikan
program utama untuk sementara sehingga sumber luar atau piranti lain dapat
menjalankan program yang berbeda.
2. Reset
Reset merupakan jenis interupsi yang menolak semua masukan dan
menghentikan pelaksanaan program di dalam CPU serta mengawali kembali
mikroprosesor. Gambar 2 menunjukkan rangkaian reset untuk sebuah
mikroprosesor. Jika, tombol Reset ditekan, maka C1 akan dilucuti muatannya dan
pin reset akan bernilai/berlogika 0, sehingga operasi baca dan tulis akan
dihentikan. Jika tombol reset dilepas maka C1 akan terisi muatan lagi melalui R1
sehingga pin reset akan bernilai 1, dan mikroprosesor akan melakukan urutan awal
sehingga CPU akan ke awal program.
Baca dan Tulis
CPU akan menentukan arah transfer data dari dan ke mikroprosesor. Fungsi ini
dilakukan dengan cara membaca dan menulis ke jalur kontrol. Pada operasi baca
yaitu pada saat CPU menerima data dari memori, jalur baca akan aktif sehingga
memungkinkan data dapat ditransfer ke CPU. Pada operasi tulis yaitu pada saat CPU
mengirim data ke memori, jalur tulis akan aktif sehingga data dapat dikirim dari CPU
ke memori.
6
Gambar 2. Rangkaian reset CPU
Isyarat Pulsa Detak
Crystal-controlled oscillator digunakan untuk pulsa detak pewaktuan dari sistem
mikroprosesor. Isyarat kontrol detak menyesuaikan gerakan data dan menentukan
kecepatan operasinya.
Gambar 3. Rangkaian Osilator Detak
Frekuensi detak bervariasi dari kecepatan yang relatif rendah (1 MHz pada
mikroprosesor 6502) sampai yang lebih tinggi (12MHz untuk chip 16 bit 6800).
B. Arsitektur CPU
Gambar 4. Arsitektur CPU Internal (dari mikroprosesor 8 bit disederhanakan)
7
Hubungan ke chip lain dalam sistem dilakukan lewat data bus, address bus &
control bus. Mikroprosesor merupakan inti dari sistem, bekerja menurut daur umpan
dan eksekusi (Fetch and Execute).
Selama fase umpan CPU menerima instruksi dari lokasi memori (tempat
program disimpan). Umpan diterima mikroprosesor yang akan menempatkan alamat
dari lokasi memori pada address bus, sehingga akan mengaktifkan jalur kontrol baca
bekerja. Address decoder chip akan memilih memory chip yang sesuai untuk
meletakkan isi alamat (yaitu instruksi dalam bentuk kata 8 bit tersandi) yang disebut
Op-Code pada data bus. CPU menerima instruksi & menyimpannya ke dalam register
internal yang disebut instruction register (IR).
Selama fase eksekusi, instruksi yang diterima CPU akan disandikan dan
dieksekusi. Yang dilakukan dengan cara CPU membangkitkan isyarat pewaktuan &
kontrol yang diperlukan untuk melaksanakan instruksi tersebut. Dalam fase eksekusi
tersebut terdapat operasi aritmatika sederhana (seperti penjumlahan / pengurangan
atau transfer data yang lebih rumit dari dan ke piranti pheriperal / memory).
Kedua fase fetch and execute, memerlukan waktu >1 pulsa detak (lebih dari
satu pulsa detak). Saat suatu instruksi selesai dilaksanakan alamat bus yang memulai
kembali daur-umpan dan eksekusi (fetch and execute).
1) Penyangga bus
Dalam sistem, bus berfungsi menghubungkan mikroprosesor ke semua
piranti memori dan interface, tapi mikroprosesor dari MOS sering tidak memadai
untuk sistem yang besar, sehingga digunakan penyangga bus, untuk
mempertinggi kemampuan dari penyangga bus. Ada dua jenis penyangga /
penggerak bus, yaitu pengirim (transmitter) untuk menggerakkan bus & penerima
(receiver) untuk mendengarkan bus. Pada bus dua arah (seperti data bus,
pengirim/penerima disebut penyangga dua arah/transreceiver) sering di gunakan
juga.
Gambar 5. Penyangga data dan alamat
Penyannga tiga kondisi juga sering dipakai untuk memutuskan bus dari
mikroprosesor. Cara ini dipakai jika piranti eksternal digunakan untuk
mengendalikan sistem dari CPU on-board. Di dalam CPU hubungan antara elemen-
elemen yang ada dilakukan melaluai data bus internal 8 bit & jalur kontrol dari blok
pewaktuan & logika kontrol. Data bus internal dihubungkan dengan data bus
sistem, lewat penyangga dua arah (transreceiver) logika kontrol dan pewaktuan
dilakukan oleh isyarat kontrol untuk keseluruhan sistem. Satu-satunya isyarat
kontrol diumpankan ke CPU adalah interupsi yang masuk ke dalam instruction
decoder (ID) untuk menghentikan operasi mikroprosesor.
8
2) Unit Aritmatika dan Logika
Berfungsi melakukan fungsi aritmatika dan fungsi logika (seperti operasi
NAND atau OR) pada 2 bilangan, sehingga ALU harus memiliki dua input yaitu :
Input A untuk bilangan 1, & Input B untuk bilangan 2. Kedua bilangan tersebut
pertama kali disimpan dalam 2 register 8 bit, accumulator (ACC) untuk input A dan
sebuah register sementara (Temp) untuk input B setelah operasi ALU selesai,
hasilnya akan disimpan dalam ACC menggantikan isi yang lama.
3) Instruction Register (IR)
IR merupakan register 8 bit yang digunakan untuk menyimpan instruksi
tersandi, yaitu saat instruksi tersebut digunakan atau sampai instruksi berikutnya
diumpankan dan disimpan, begitu seterusnya.
4) Instruction Decoder (ID)
ID yaitu berupa instruksi tersandi adalah kata 8 bit yang dinamakan
Operational Code (Op-Code). Setiap instruksi (seperti tambah atau simpan)
memiliki sandi atau kode yang berbeda atau dengan kata lain setiap
mikroprosesor memilki Op-Code yang berbeda yang disajikan dalam bentuk
instruction set. Op-Code yang tersimpan akan diumpankan ke ID dari IR. Decoder
akan merinci sandi / kode tersebut dan menginstruksikan “ TIMING AND CONTROL
LOGIC” Untuk membangkitkan isyarat pewaktuan dan kontrol yang diperlukan
untuk melaksanakan instruksi tersebut.
5) Program Counter (PC)
PC atau pencacah program digunakan untuk melacak program dan
meyakinkan bahwa CPU menerima instruksi yang sesuai dengan urutan yang
ditentukan oleh program.
Telah diketahui bahwa mikroprosesor akan melaksanakan tugas menurut
urutan tertentu yang disebut program. Program adalah berisi sejumlah instruksi,
dan setiap instruksi berisi Op-Code, sedang data yang akan diproses disebut
Operand. Instruksi-instruksi disusun dalam urutan logika tertentu dan disimpan
secara berurutan pada lokasi memori, yang disebut alamat program. Tabel bawah
ini menggambarkan konstruksi dari program :
PC berupa register 16 bit yang berisi alamat lokasi program, berikut ini
merupakan penjelasan dari tabel di atas :
Untuk memulai program, CPU menempatkan alamat awal (Starting Address)
0A20 (tempat operator 1 disimpan) dalam program, yang selanjutnya akan
ditempatkan pada address bus untuk mengumpan instruksi pertama. Instruksi
9
1 akan diumpankan ke CPU lewat data bus & disimpan dalam IR. Pada kondisi
ini pencacah program akan bertambah menjadi 0A20 + 1 = 0A21, operator 1
tidak memiliki data, sehingga segera dapat dilaksanakan. Setelah instruksi 1
selesai dilaksanakan maka CPU memberitahu pencacah program untuk
mendapatkan isi (0A21) ke dalam bus alamat (address bus) untuk
mengumpankan instruksi 2, dan menyimpannya dalam IR. Jika ini terjadi
pencacah program akan bertambah menjadi 0A21 + 2 = 0A22, yang berisi
data (operand 2). Operator 2 akan disampaikan, tapi tidak bisa diselesaikan
tanpa data yang sesuai yaitu berupa bilangan yang tersimpan dalam suatu
lokasi atau ditambahkan ke bilangan lain yang sudah ada dalam ACC lalu
operand 2 akan diumpankan dengan menempatkan isi pencacah program,
0A22 pada address bus. Operand 2 muncul pada data bus, saat pencacah
program bertambah menjadi 0A23 (0A22 + 1). Saat instruksi 2 selesai
dilaksanakan, pencacah program akan meletakkan isinya yang baru, 0A23 ke
address bus untuk mengumpan instruksi 3, dan seterusnya.
Sebuah instruksi dapat berisi lebih dari 1 operand 8 bit sebagai contoh dua
operand 8 bit diperlukan untuk mengakomodasi alamat 16 bit.
6. General Purpose Register (Register Multi Guna)
Setiap mikroprosesor memiliki sejumlah register multi guna (biasa memiliki
lebar 8 bit, tapi ada yang 16 bit) sebagai tempat penyimpan sementara data /
alamat selama program berlangsung.
C. UART
UART (Universal Asynchronous Receiver-Transmiter) disebut juga ACIA
(Asyncnronous Comunication interface Adapter) memiliki dua mode operasi, yaitu:
a. Mode Transmiter (pegiriman), yaitu UART akan mengambil data paralel dan
mengubahnya dalam aliran data seri yang berisi karakter star, stop dan karakter
yang sama.
b. Mode Receiver (penerimaan), yaitu UART akan mengambil aliran bit seri dan
mengubahnya ke dalam data paralel.
Gambar 7. Sambungan CPU, UART & piranti periperal seperti printer
CPU akan menentukan mode operasi dari UART :
a. Saat mode pengiriman UART menerima data paralel dari CPU & mengubahnya ke
dalam data seri untuk piranti pheriperal.
b. Saat mode penerimaan UART menerima data seri dari CPU dan mengubahnya ke
dalam data paralel untuk piranti pheriperal.
Untuk meyakinkan bahwa pengiriman terjadi saat pheriperal siap menerima
data, maka dalam rangkaian tersebut ditambahkan jalur handshaking. Sebelum CPU
10
mulai mengirim informasi ke piranti pheriperal, maka dikirim dulu pesan Request to
Send, dan pada saat piranti siap menerima data, piranti tersebut akan mengirim
pesan Clear to Send. CPU akan mengosongkan data ke dalam register UART.
Demikian juga sebaliknya saat piranti pheriperal akan mengirim data ke CPU pesan
IRQ (Interrupt Request) dikirimkan ke UART & selanjutnya diteruskan ke CPU.
Berdasarkan diagram blok fungsional dasar di atas, UART terdiri dari 3 elemen
yaitu pengirim, penerima & kontrol logika.
Pengirim, terdiri atas sebuah lanch untuk menjaga data parallel sebelum diubah
kealiran data seri & sebuah register geser (Shift Register) untuk melakukan
pengubahan data paralel ke seri.
Gambar 8. Diagram Blok UART
Penerima, terdiri atas shift register untuk mengubah data seri ke paralel & sebuah
latch untuk menjaga data seri agar stabil sampai CPU memerlukannya.
UART dapat diprogram secara penuh khususnya untuk menentukan mode
operasinya (mode pengiriman atau penerimaan). UART adalah piranti asinkron
yang memerlukan bit awal & akhir untuk setiap kata digital yang dikirimkan dari
dan ke CPU. Operasi sinkron dapat dilakukan jika bit awal & akhir tidak diperlukan.
USART (Universal Synchronous / Asynchronous Receiver-Transmitter) menyediakan
fasilitas untuk sinkron.
D. PIO
Chip Parallel Input-Output menyediakan jalur paralel yang disebut port,
sehingga memungkinkan CPU dapat berinteraksi dengan piranti periperal (yang
memerlukan bit data paralel).
11
Gambar 9. Sambungan antara CPU, PIO & piranti periperal
Pada Gambar 9. tersebut ditunjukkan input/output port 8 bit (P1 s/d P7),
meskipun biasanya terdapat dua atau tiga (input/output) port 8 bit. I/O port bersifat
dua arah dimana setiap bit dapat deprogram sebagai bit keluaran atau bit masukan,
jalur handshake dimanfatkan seperti halnya pada UART.
Pemrograman PIO dapat dilaksanakan dengan menyusun port-prot PIO agar
menyerupai alamat memori, sehingga sebagian ruang memori dipakai secara eksklusif
untuk operasi unit I/O. Teknik ini disebut sebagai memory mapped I/O, digunakan oleh
mikroprosesor seperti 6502 & 6800.
Mikroprosesor lain seperti Z-80 dan 8080 menggunakan instrruksi I/O khusus
untuk menginstruksikan PIO agar melakukan transfer data antara sistem
mikroprosesor dan piranti periperal. Selain itu transfer data dapat dilakukan tanpa
intervensi langsung dari CPU, teknik ini disebut sebagai Direct Memory Access (DMA),
yang memanfaatkan chip pengendali DMA yang memberikan transfer data yang
sangat cepat.
Gambar 10. Diagram Blok PIO
Gambar 10. di atas menunjukkan diagram blok internal dari chip PIO memory
mapped, DDR adalah register 8 bit yang digunakan untuk menentukan arah tiap bit
dari port PIO, apakah bertindak sebagai masukan / keluaran. Contoh di dalam sistem
12
mikroprosesor 6502 logika 0 di dalam DDR menentukan bit tersebut sebagai
masukan, dan logika 1 sebagai keluaran.
Lebih lanjut, OF (hex) akan menentukan P0 – P3 sebagai masukan dan P4 – P7
sebagai keluaran. Output data register berfungsi untuk menjaga data parallel tetap
stabil untuk dibaca piranti periperal, input data register berfungsi untuk menjaga agar
data parelel yang datang tetap stabil sampai CPU siap membacanya.
Himpunan instruksi(Instruction Set), instruksi-instruksi tersebut diumpankan ke
mikroprosesor chip dalam bentuk bilangan biner 8 bit disebut Operational Code (Op-
Code) berikut datanya yang disebut operand. Menulis program dengan sandi mesin
merupakan pekerjaan panjang & menjemukan biasanya program ditulis dengan
menggunakan alphabet, lalu diterjemahkan ke serangkaian Op-Code & operand.
Bentuk paling sederhana dari terjemahannya adalah assembler, yang memanfaatkan
bahasa pemrograman rakitan (Assembly Programing Language).
Dalam bahasa assembler, tiap Op-Code memiliki sandi mnemonic, seperti :
a. LDA untuk load accumulator
b. ADC untuk Add With Carry
c. JMP untuk Jump, dan seterusnya.
Instruction set dapat dikelompokkan menjadi tiga kelompok (sub himpunan)
1. Pengiriman data yang memuat pergerakan data antara CPU dan lokasi memori,
contoh
a. Memuat accumulator dengan isi memory (LDA).
b. Menyimpan isi accumulator ke dalam memory (STA).
c. Memuat register X dengan isi memori (LDX).
2. Aritmatika & logika berisi instruksi-instruksi untuk melakukan operasi aritmatika &
logika, Contoh:
a. Menjumlahkan dua bilangan dengan carry (ADC).
b. Mengurangi dua bilangan dengan carry (SBC).
c. Mengoprasikan AND pada dua bilangan (AND).
d. Mengoprasikan EXOR pada dua bilangan (XOR).
e. Menggeser kanan secara logika (LSR).
f. Menggeser kiri secara aritmatika (ASL).
3. Tes & cabang menyediakan fasilitas bagi mikroprosesor untuk melakukan
serangkaian operasi dengan cara melompat atau mencabang ke bagian lain dari
program, contoh
a. Melompat ke subrutin (JSR).
b. Mencabang jika hasilnya negatif (BMI).
c. Mencabang jika sama (BEQ).
13