SISTEM INPUT- OUTPUT

BAB IV SISTEM INPUT- OUTPUT

Pendahuluan

Pada bab ini akan diuraikan tujuan perkuliahan dan sistem input-output yang dimulai dari komponen input/output yang paling sederhana antara lain: mikro switchs (saklar- saklar), Led, Keyboard, Seven segmen, Sensor/transducer, masukan-keluaran serial, dan masukan-keluaran paralel.

Tujuan

Setelah mempelajari bab ini, diharapkan mahasiswa mampu untuk :

1. Memahami komponen input/output (masukan/keluaran).

2. Memahami sistem input/output (sistem masukan/keluaran).

3. Memberikan contoh-contoh komponen input/output (masukan keluaran).

4. Memahami karakter setiap sistem input/ouput (masukan/keluaran).

4.1. Komponen input/output

Komponen input/ouput merupakan suatu rangkaian masukan atau keluaran dengan berbagai macam bentuk dan karakter yang berbeda-beda serta bekerja dengan level tegangan yang bervariasi. Komponen input/ouput agar dapat bekerja dan berhubungan dengan mikroprosesor dilengkapi dengan rangkaian antar muka (Interface).

Rangkaian interface dapat diartikan sebagai rangkaian penghubung yang menghubungkan antara komponen yang satu dengan komponen yang lainnya, sehingga dapat dilakukan transfer data antara komponen-komponen tersebut. Ini dapat dibangun atau dirancang dengan rangkaian perangkat keras dan perangkat lunak (program).

Dalam proses interfacing antara sistem mikroprosesor dengan piranti luar dibutuhkan beberapa fungsi seperti, data buffering, address decoding, command decoding, status decoding, dan sistem control dan timing. Semua ini dibutuhkan untuk mensinkronikasikan kerja sistem supaya sinergi. Karena tanpa pengendali dan sinkronisasi menyebabkan berbagai masalah akan timbul dalam proses input/output. Masalah-masalah ini disebabkan oleh perbedaan kecepatan operasi, perbedaan level sinyal atau tegangan yang dibutuhkan, keanekaragaman peripheral dan berbagai karakternya, dan stuktur sinyal yang kompleks. Oleh karena itu dibutuhkan suatu bagian input/output yang sesuai.

Komunikasi antara komponen I/O dengan mikroprtosesor tidak jauh berbeda antara komunikasi memori dengan mikroprosesor, hanya pada I/O prosesnya lebih kompleks dari pada memori. Dibawah ini digambarkan hubungan antara mikroprosesor dengan komponen input/output dan peripheral.

Komando Bus Alamat

I/O

µP

Bus data

Komponen

Peripheral

I/O Status

Bus Kontrol

Gambar 12. Diagram Blok Hubungan Mikroprosesor dengan komponen I/O dan peripheral.

Prosedur yang harus dilaksanakan: (1).Central Processing Unit (CPU) harus menempatkan alamat bus untuk memilih komponen I/O yang diinginkan. (2) CPU menunggu data atau menempatkan data pada bus data. (3) CPU membaca atau mengirim data sampai selesai.

Pada teknik interface digunakan tiga metoda, yaitu metoda Programmed I/O, Interupsi, dan Direct Memory Acess (DMA). Dengan uraian sebagai berikut :

1. Metoda programmed I/O, CPU menjalankan proses tertentu untuk melalukan pelayanan tehadap peralatan yang mana yang akan dilayanani. CPU melakukan pengajuan pertanyaan pada setiap komponen I/O secara berkala dan menerima jawabannya. Proses ini disebut prosedur “Handshaking” atau prosedur jabatangan. Sebagai contoh, misalnya proses pembacaan data dari alat luar. Pertama alat luar mengirim sinyal “data ready” dan data ke komponen I/O. Komponen I/O akan menahan data dan sinyal tersebut sampai CPU menerima sinyal dan membaca data. Setelah membaca selesai, CPU mengirim sinyal input “ACK” ke peripheral (ke I/O) yang menunjukkan bahwa pembacaan data telah selesai. CPU senantiasa mengontrol peripheral melalui program secara sinkron.

2. Metoda Interupsi, adalah suatu metoda instruksi yang merubah program yang sedang dilaksanakan menuju ke suatu cabang tertentu pada lokasi memori tertentu untuk melaksanakan program tertentu. Setelah selesai menjalankan program interupsi, maka CPU akan melanjutkan operasi yang sedang dilakukan sebelum terjadi interupsi. Interupsi dapat dibagi dua jenis, yaitu hardware dan interupsi software. Sistem interupsi pada suatu mikroprosesor ada berbagai macam jenis, hal ini akan tergantung pada jenis mikroprosesornya. Interupsi juga tergantung pada sipat pioritas atau tingkat pioritas, maka CPU akan mengidentifikasi interupsi dan merespon interupsi yang mempunyai pioritas tinggi. Interupsi ada yang dapat dihalangi dan yang tidak dapat dihalangi.

3. Direct Memory Access, adalah suatu metoda I/O yang menggunakan rangkaian khusus, yaitu DMA Controller (DMAC) dimana operasinya akan melaksanakan proses I/O dengan mengambil alih pengontrolan bus-bus dari CPU. Transfer data antara memori dan alat luar dapat dilaksanakan tanpa melalui CPU, tetapi dengan menggunakan DMAC. Contoh, atas permintaan peripheral atau komponen I/O. DMAC akan mengirim sinyal DMA request ke CPU. Selanjutnya CPU akan mengeluarkan sinyal DMA ACK ke DMAC dan mengaktifkan Buffer (tri state buffer) hingga bus berada pada kondisi impedansi tinggi, hal ini berarti DMAC dapat mengambil alih pengontrolan ketiga bus.

Masukan mikro switch (saklar kecil) dapat terkoneksi terhadap mikroprosesor bila level tegangan sesuai dengan level tegangan yang dikehendaki oleh miklroprosesor, misalkan Level TTL untuk logika “0” (0,0 – 0,8 V) atau logika “1” ( 2,0 – 5,0 V). Agar suatu piranti berbasis saklar (mikro switch) dapat digunakan sebagai piranti masukan maka saklar tersebut supaya kompatibel dengan TTL harus di- “ pull-Up” seperti pada gambar dibawah ini. Hal ini untuk menyakinkan bahwa ketika saklar terbuka sinyal keluaran menjadi berlogika “1” dan ketika saklar tertutup yang terkoneksi ke ground yang menghasilkan logika “0”. Nilai R pull-Up berkisar antara 1 K ohm s/d 10 K ohm.

Gambar. 13. Rangkaian Pull-Up.

Piranti keluaran lebih bervareatif dibandingkan dengan piranti masukan. Piranti keluaran ini harus diperhatikan level tegangannya apakah kompartibel dengan TTL , seperti Led, Seven segment , LCD, dan sebagainya. Hal ini perlu dirancang rangkaian interface- nya.

4.2. Input/output Paralel

Rangkaian dasar sebagai masukan paralel, misalnya switch toggle 8 bit ekternal yang dikoneksikan ke masukan penyangga 74ALS244. Keluaran penyangga dihubungkan ke bus data dari suatu mikroprosesor yang mempunyai jalur data 8 bit (D 0 –D 7 ), misalkan ke mikroprosesor 8088. Pada gambar diatas, mikroprosesor untuk membaca data (isi) dari 8 saklar yang terhubung ke bus mikroprosesor ketika sinyak control SEL berlogika “0”. Jadi, ketika Rangkaian dasar sebagai masukan paralel, misalnya switch toggle 8 bit ekternal yang dikoneksikan ke masukan penyangga 74ALS244. Keluaran penyangga dihubungkan ke bus data dari suatu mikroprosesor yang mempunyai jalur data 8 bit (D 0 –D 7 ), misalkan ke mikroprosesor 8088. Pada gambar diatas, mikroprosesor untuk membaca data (isi) dari 8 saklar yang terhubung ke bus mikroprosesor ketika sinyak control SEL berlogika “0”. Jadi, ketika

Gambar 14. Hubungan antara masukan dengan penyangga dan data bus mikroprosesor.

Data 16 bit atau 32 bit dapat diantarmuka ke macam-macam tipe mikroprosesor tergantung pada jenis mikroprosesornya. Di dalam penggunaannya tidak semudah yang dicontohkan diatas, tetapi perlu adanya penyangga yang berkapasitas 16 bit atau 32 bit, bahkan 64 bit.

Antarmuka keluaran dasar yang akan menerima data dari mikroprosesor melalui jalur data bus, tetapi tidak secara langsung harus menggunakan penyangga, misalnya penyangga 74LS374 yang diperlihatkan pada gambar 15.

Gambar 15. Hubungan antara keluaran dengan latch dan mikroprosesor

Delapan LED terhubung ke mikroprosesor melalui kumpulan delapan latch data (IC74A374). Latch menyimpan keluaran angka oleh mikroprosesor dari bus data sehingga LED dapat dinyalakan dengan suatu angka biner 8 bit. Latch dibutuhkan untuk menahan data karena ketika mikroprosesor menjalankan suatu instruksi OUT, data hanya berada pada bus data selama kurang dari 1 µs. Tanpa latch led tidak akan menyala.

Ketika instruksi OUT dijalankan data dari Register A ditransfer ke latch melalui bus data. Masukan D dari latch 74LS374 terhubung ke bus data untuk menerima data keluaran, dan data keluaran Q dari latch dihubungkan ke LED. Ketika keluaran Q berlogika “0”, LED akan menyala. Setiap kali instruksi OUT dijalankan sinyal SEL ke latch menjadi aktif, menerima data keluaran ke latch dari suatu bagian 8 bit bus data. Data ditahan hingga instruksi OUT berikutnya dijalankan. Ketika instruksi keluaran dijalankan dalam rangkaian ini, data register A muncul pada LED.

Alat masukan - keluaran paralel yang dapat diprogram (PIO) yang menyediakan fungsi: pendekodean alamat, pembaferan masukan-keluaran data dan multipleks, status untuk “jabat tangan” dan fungsi pengendalian yang lainnya. Dekoder alamat memilih sebuah register intern yang akan dibaca atau ditulis. Register ini dapat menahan masukan, menahan keluaran, dan register arah (status).

PIO selain dapat diprogram, pada bagian I/O-nya dapat digunakan fungsi arah data yang sifatnya dua arah, artinya dapat sebagai input atau sebagai output. Selanjutnya, PIO memultipleks hubungannya dengan bus data mikroprosesor kepada dua arah atau lebih gerbang 8 bit, termasuk saluran pengendali untuk peripheral I/O.

Sebagai contoh Peripheral Interface Adapter (PIA) 6820 adalah masukan/keluaran paralel yang dapat dipogram mempunyai enam register terdiri dari dua pasang masing- masing berisi tiga register pada tiap gerbang (pintu I/O), yaitu satu pasang untuk gerbang A dan satu pasang lagi untuk gerbang B.

Peripheral Programmable Interface ( PPI ) 8255 adalah masukan/keluaran paralel yang dapat diprogram, pada dasarnya PPI 8255 ini terdiri dari tiga bagian (port) atau gerbang I/O 8 bit, yaitu port A, port B, dan port C.

Tiap port mempunyai 2 blok I/O yang terpisah dan tiap blok dihubungkan ke bus data internal PPI 8255. Melalui bus data internal informasi dapat dikirim dan diterima pada PPI 8255. PPI 8255 mempunyai 2 blok pengontrol, yaitu pengontrol bagian A dan pengontrol bagian B yang menentukan bagaimana ketiga port I/O dioperasikan. Bagian C terdiri dari 2 port 4 bit salah satu dari bagian ini digunakan bersama-sama dengan bagian A dan yang lainnya dengan bagian B.

4.3. Input-output Serial

Beberapa alat memerlukan hubungan serial seperti teletip, peraga video, hubungan data melalui telepon, pita, dan piringan. Data dilewatkan bit per bit melalui sebuah saluran. Ada standar interface untuk transmisi data serial.

Sistem mikroprosesor adalah sistem paralel, maka perlu mengubah sebuah byte data delapan bit menjadi bentuk serial sebelum keluaran dan dari bentuk serial menjadi masukan. Ada beberapa input/output serial yang sudah berbentuk integrated circuit (IC), yaitu: Universal Synchronous Asynchrounous Reciever Transmtter (USART) (8251), Asynchronous Communication Interface Adapter (ACIA) 6850, dan Universal Asynchronous Receiver Transmitter (UART).

UART merupakan pengubah serial ke paralel dan paralel ke serial. UART mempunyai dua fungsi mengambil data paralel dan mengubahnya menjadi suatu arus bit serial dengan star, paritas, dan karakter penghenti dan mengambil suatu arus bit serial dan mengubahnya menjadi data paralel.

UART

Masukan Serial Detak

Penerima

Keluaran Paralel

Jalankan/Reset

Paralel

Keluaran I/O Serial

Pengirim

Detak

Sinyal Pengendali

Gambar 16. Diagram Blok UART

ACIA adalah adaptor perantara dengan hubungan tak serempak yang dilengkapi dengan masukan keluaran paralel dan serial serta rangkaian fungsi pengendali standar EIA RS 232 C. Data serial yang masuk dan keluar adalah sinyal-sinyal compatible dengan TTL dan harus disangga untuk menggerakan alat-alat serial. ACIA dilengkapi dengan modem.

4.4. Sensor / Transducer

Definisi secara umum, Transducer adalah suatu alat atau device yang bila digerakan oleh energi di dalam sebuah sistem transmisi, menyalurkan energi dalam bentuk yang sama atau dalam bentuk yang berlainan ke sistem transmisi yang lain. Bentuk energi tersebut antara lain: listrik, mekanik, cahaya, panas, tekanan, kecepatan, percepatan, dan kimia.

Transducer merupakan komponen input (masukan) bagi suatu sistem mikroprosesor atau komputer. Transducer tersebut agar dapat berhubungan atau berkomunikasi dengan mikroprosesor harus ada rangkaian interface atau rangkaian pengkondisi sinyal karena ada Transducer merupakan komponen input (masukan) bagi suatu sistem mikroprosesor atau komputer. Transducer tersebut agar dapat berhubungan atau berkomunikasi dengan mikroprosesor harus ada rangkaian interface atau rangkaian pengkondisi sinyal karena ada

Sebagai contoh, Thermocouple adalah sebuah transducer yang dapat menghasilkan tegangan, bila kedua ujung titik pertemuan logam tersebut dipanasi, menghasilkan tegangan dalam satuan µ V atau m V. Bila akan dimasukan ke mikroprosesor sinyalnya harus disesuaikan dulu atau dikondisikan.

4.5. Ringkasan

1. Komponen input/output adalah komponen masukan/keluaran dengan berbagai macam bentuknya serta sifatnya yang berbeda-beda.

2. Micro switch dan Led merupakan komponen input dan output yang paling sederhanan.Bila ingin berkomunikasi dengan mikroprosesor maka harus ada rangkaian penyangga/buffer.

3. Komponen input/output paralel dan serial yang dapat diprogram antara lain: SIO, PIO, CTC, PPI 8255, PIA 6820, ACIA 6850, USART, dan UART. Komponen input/output ini sudah dilengkapai dengan berbagai sinyal pengontrol, penyangga, sinyal sinkronisasi, dan sinyal pengendali.

4. Transducer merupakan masukan bagi suatu sistem, bila dihubungkan dengan mikroprosesor harus dilengkapi dengan rangkaian pengkondisi sinyal.

4.6. Soal latihan

1. Jelaskan yang dimaksud komponen input/output?

2. Berikan contoh komponen input/output yang paling sederhana dan jelaskan cara kerjany?

3. Mengapa, bila masukan akan dihubungkan dengan sistem mikroprosesor atau computer harus ada rangkaian pengendali dan rangkaian Interface.?

4. Jelaskan perbedaan antara masukan/keluran seri dan paralel ?

5. Jelaskan fungsi komponen dari USART ?

6. Bagaimana cara membuat program inisialisasi pada PPI 8255?.

7. Jelaskan keunggulan dan kelemahan masing-masing dari sistem komponen input/output paralel dan serial. ?

8. Jelaskan yanmg dimaksud ACIA.?

9. Jelaskan yang dimaksud MODEM ?

10. Jelaskan yang dimaksud transducer atau sensor ?

BAB V ARSITEKTUR DAN KONFIGURASI MIKROPROSESOR

(MIKROPROSESOR 8085)

5.1 Pendahuluan

Mikroprosessor 8085 mempunyai 10 buah register yang dapat diisi oleh programmer secara langsung, dimana 6 buah register ini dapat disusun membentuk 6 buah register 8 bit atau 3 buah register 16-bit. 4 Register yang lain adalah merupakan register khusus yang disusun secara terpisah.

Diagram blok dari Arsitektur dalam dari Mikroprosessor 8085 ditunjukkan pada gambar berikut :

RST55 RST75

INTR INTA

Interrupt Control

Serial I/O Control

8 bit Internal data bus

Accumulator Tem. Reg.

Flag (5)

Instruction reg.

(Areg.) (8)

Flip - flops

Instruction Decoder and

Stack Pointer array

Encoding

(16) Program Counter

(16) Incrementer/decrementer

Power

+5V

Address latch (16)

Supply

GND

Timing and control

CLK

Address buffer (8) Data/Address buffer (8) X 2 GEN

S 0 S 1 IO/M

HLDA

RESET

A 8-15

AD 0-7

OUT

Address bus Address bus

READY

HOLD

RESET IN

Gambar 5.1 Diagram Blok Arsitektur Mikroprosessor 8085

5.2 Saluran Data, Alamat dan Kendali (Data Bus, Address Bus, Control Bus)

Saluran Data terdiri dari 8-bit dimana saluran ini dibedakan atas saluran internal yaitu saluran yang terdapat didalam CPU dan saluran eksternal yang dihubungkan ke serpih-serpih pendukung lainnya seperti memori, peralatan I/O, dan sebagainya. Saluran ini berfungsi untuk mentrasfer data baik yang dikeluarkan maupun yang masuk ke Mikroprosesor (bi-direktional).

Saluran-saluran kendali eksternal yang terdiri dari RD, WR, ALE, SO, SI, IO/M , HLDA, Reset In, Reset Out. Saluran-saluran ini masing-masing satu jalur, yang berfungsi untuk Saluran-saluran kendali eksternal yang terdiri dari RD, WR, ALE, SO, SI, IO/M , HLDA, Reset In, Reset Out. Saluran-saluran ini masing-masing satu jalur, yang berfungsi untuk

Saluran alamat terdiri dari 16-bit yang dibagi atas dua bagian yaitu AD0-AD7 yang merupakan saluran alamat byte rendah dan sekaligus saluran data, serta A8-A15 yang merupakan saluran alamat byte tinggi. Alamat rendah dimultipleksagar dapat berfungsi sebagai saluran alamat dan juga saluran data dimana keadaan ini dikendalikan oleh ALE. Saluran alamat terdiri dari 16-bit

sehingga jangkauan alamat memori adalah sebesar 2 16 atau 65.536 lokasi alamat. Saluran data terdiri dari 8-bit, yang bearti CPU menerima, mengirim dan mengolah data sebanyak 8-bit secara

serentak.

5.3 Pengendali dan Pewaktu (Timing and Control Unit)

Unit ini terdiri dari sebuah osilator dan sebuah pengendali pengurut. Osilator menghasilkan sinyal detak (clock) yang berfungsi untuk men-sinkronkan kerja CPU dengan register atau memori. Unit ini juga menghasilkan clock untuk perangkat pendukung yaitu Clock Out.

Pengendali –pengurut juga menghasilkan sinyal kendali yang diperlukan untuk pengendali internal maupun eksternal. Operasi pengedali-pengurut ini diatur oleh program-mikro yang terdapat dalam sebuah ROM/EPROM. ROM ini berisikan semua program-mikro yang diperlukan dalam eksekusi instruksi. Selama instruksi-mikro dibaca dari ROM kendali, sinyal-sinyal kendali disalurkan kepada bus-bus data internal dan eksternal. Efek yang ditimbulkannya adalah memindahkan data antar register, melaksanakan operasi aritmatik-logik, memasukkan atau mengeluarkan data dan sebagainya tergantung instruksi yang diberikan.

5.4 Unit Operasi Aritmatik dan Logika (ALU)

Bagian Aritmatika dan Kontrol dari computer biasanya disebut sebagai Central Processing Unit (CPU). Mungkin istilah ini muncul ketika awal-awal computer mainframe yang besar di mana bagian computer masih terpusat.

Fungsi Utama CPU adalah : • Mengambil atau menjemput instruksi dari memori dan menerjemahkannya

(decode) kemudian mengeksekusi perintah yang sudah diterjemahkan tersebut.

• Mentransfer informasi ke dan dari memori data atau unit masukan-keluaran

(I/O) yang dibutuhkan pada eksekusi suatu instruksi. • Menanggapi sinyal control dari luar, yang dikenal sebagai interrupt yang

mungkin dapat menginterupsi operasi yang normal dan mungkin dapat menyebabkan urutan-urutan program atau instruksi yang baru yang harus dilakukan oleh computer.

Dalam melakukan fungsi-fungsi tersebut maka CPU dilengkapi dengan :

1. Pada bagian Aritmatika : ALU (Arithmetic Logic Unit) Akumulator

2. Pada bagian Kontrol : Register Instruksi Decoder

Segala operasi aritmatika dan Logika dilakukan di dalam ALU. Operasi- operasi yang dapat dilakukan ALU adalah :

1. Penjumlahan (Add), Penambahan Satu (Increment)

2. Pengurangan (Subtract), Pengurangan Satu (Decrement)

3. Logika OR, EX-OR, AND, dan NOT (Complement)

4. Perbandingan (Compare)

5. Pergeseran ke kiri atau ke kanan atu bit (Shift)

6. Berputar ke kiri atau ke kanan (Rotate).

5.5 Register Mikroprosessor 8085.

Seperti yang telah disebutkan sebelumnya, Mikroprosessor 8085 mempunyai 10 buah register dimana register-register ini dibagi atas dua kelompok, yaitu : - General Purpose Register (Register Serba Guna) - Special Purpose Register (Register Khusus).

1. Register Serba Guna ( General Purpose Register )

Dikatakan serba guna kerena pemakaian register ini bersifat umum. Susunan dari register- register ini seperti sebuah RAM kecil (8-bit atau 16-bit) di dalam CPU. Register ini dapat digunakan sebagai tempat penyalinan data sementara atau sebagai tempat penyimpanan hasil operasi mikroprosesor. Register serba guna ini terdiri dari 6 buah register 8-bit yang disebut dengan register B, C, D, E, H, dan L. Untuk pengoperasian 16-bit register ini dapat berpasangan menjadi pasangan register BC, DE, HL.

2. Register Khusus (Special Purpose Register)

Dikatakan khusus karena fungsinya secara khusus. Register khusus ini terdiri atas 4 bagian yaitu : Akumulator, Register Bendera, Program Counter (PC), Stack Pointer (SP).

- Akumulator (Accumulator) Akumulator disebut juga dengan Register A yang merupakan register yang amat penting,

kerena register ini berfungsi sebagai tempat penyimpanan hasil setiap operasi aritmatik-logik dan juga sebagai tempat masukan untuk ALU. Data bus internal yang dihubungkan ke ACC ini merupakan dua arah (bidirectional) yang bearti akumulator ini berpasangan dengan register Bendera (Flag).

- Register Bendera (Flag Register, F) Register Bendera berfungsi sebagai indikator atau menyatakan keadaan dari hasil operasi

ALU. Register ini terdiri dari 8-bit tetapi hanya 5-bit yang dipakai yaitu: Zero (Z), Sign (S), Parity (P), Carry (Cy) dan Auxilary Carry (AC). Susunan bit daru Register Bendera digambarkan sebagai berikut:

Cy x = tidak dipakai

SZ

AC x

Gambar 5.2 Register Bendera (Flag)

Isi Register Bendera akan berubah sesuai dengan hasil operasi aritmatik-logika. - Sign Bit (S) :

S=0 ;

bila hasilnya positif

S=1 ;

bila hasilnya negative

- Zero Bit (Z) :

Z=1 ;

bila hasilnya sama dengan 0

Z=0 ;

bila hasilnya tidak sama dengan 0

- Auxilary Carry Bit (AC)

AC = 1; Jika terjadi carry dari 4 bit rendah (low nibble) ke 4 bit tinggi (high-nibble) dan jika ada borrow dari high nible ke low nible.

AC = 0; Jika sebaliknya. - Parity Bit (P) :

P = 1;

bila hasil operasi berparity genap.

P = 0;

bila hasil operasi berparity ganjil.

- Carry Bit (AC) :

Cy = 1; bila hasil penjumlahan melebihi 8-bit.

bila hasil pengurangan ada borrow.

Cy = 0;

bila tidak terjadi borrow atau carry.

- Program Counter (PC) Pengeksekusian suatu program adalah pelaksanaan instruksi demi instruksi, dimana instruksi ini telah terlebih dahulu disimpan di dalam memori. Jadi untuk melaksanakan instruksi tersebut dibutuhkan suatu alamat yang menunjukkan lokasi penyimpanan instruksi tersebut di dalam memori. Alamat lokasi memori yang akan dituju ini diambil dari program counter. Program Counter ini merupakan register 16-bit, dengan demikian jangkauan alamatnya adalah 2 16

= 64 kByte. - Stack Pointer Stack merupakan bagian dari memori yang dialokasikan untuk menyimpan data dan alamat, misalnya saat instruksi PUSH atau CALL. Alamat awal dari stack ini ditandai oleh Stack Pointer. Stack dapat diakses dengan menggunakan program. Penumpukan data pada Stack ini mempunyai sifat LIFO (Last In – First Out). Pemindahan data dari register CPU ke Stack dapat dilaksanakan dengan instruksi PUSH dan yang sebaliknya adalah POP. Stack Pointer (SP) merupakan register

16-bit dengan demikian jangkauan alamat adalah sebesar 2 16 = 64 kByte.

5.6 Pengendalian Interupsi (Interrupt Control)

Mikroprosessor 8085 mempunyai 5 (lima) masukan untuk permintaan interupsi hardware yaitu : TRAP, RST, 7.5, RST 6.5, RST 5.5 dan INTR, dimana setiap interupsi ini mempunyai peringkat prioritas. Jika ada sinyal interupsi maka CPU akan mengeluarkan sinyal INTAL yang merupakan pemberitahuan bahwa interupsi tersebut dikenali dan kemudian CPU akan mengerjakan program dimana alamatnya sesuai dengan alamat vektor interupsi tersebut. Urutan prioritas dan Mikroprosessor 8085 mempunyai 5 (lima) masukan untuk permintaan interupsi hardware yaitu : TRAP, RST, 7.5, RST 6.5, RST 5.5 dan INTR, dimana setiap interupsi ini mempunyai peringkat prioritas. Jika ada sinyal interupsi maka CPU akan mengeluarkan sinyal INTAL yang merupakan pemberitahuan bahwa interupsi tersebut dikenali dan kemudian CPU akan mengerjakan program dimana alamatnya sesuai dengan alamat vektor interupsi tersebut. Urutan prioritas dan

Interupsi TRAP merupakan interupsi Non-maskabel yaitu interupsi yang tidak dapat dihalangi sedangkan interupsi RST 7.5, RST 6.5, RST 5.5 merupakan interupsi maskabel yaitu interupsi yang dapat dihalangi.

Tabel 5.1 Interupsi 8085

Interupsi

Lokasi Subroutine

Prioritas

TRAP 0024 H Pertama RST 7.5

003C H Kedua RST 6.5

0034 H Ketiga RST 5.5

002C H Keempat INTR

Dilengkapi pemakai

Kelima

3. Konfigurasi Pin Mikroprosessor 8085

Mikroprosessor 8085 dibuat dalam bentuk kemasan DIP (Dual-Inline Package) dengan 40 penyemat (Pin), dimana bentuk fisik dari chip ini digambarkan pada gambar 5.3. Beberapa istilah yang berhubungan dengan konfigurasi penyemat ini adalah : - Aktip Rendah, Aktip Tinggi:

Suatu penyemet disebut aktip rendah (Low) jika untuk mengaktipkan penyemat ini diperlukan logika 0, dan sebaliknya jika yang diperlukan adalah logika 1 maka penyemat ini disebut aktip tinggi (High). Aktip rendah ditandai dengan garis stirp atas.

- Input (masukan): suatu penyemat disebut sebagai input bila penyemat ini hanya berfungsi untuk menyalurkan data kedalam CPU. - Output (keluaran) : Disebut sebagai output bila penyemat berfungsi hanya untuk mengeluarkan data keluar dari CPU. - Input / Output (masukan / keluaran) : Dimana input / output bila penyemat tersebut berfungsi menyalurkan data ke dan dari dalam CPU. - Tri-state (3-keadaan).

Ketiga keadaan ini adalah logik 0,1,dan keadan mengembang (floating) atau impedasi tinggi.

X1 1 40 V cc

X2 HOLD RESET OUT HLDA SOD CLOCK OUT SID RESET IN TRAP READY RST 7.5

IO/M RST 6.5

Gambar 5.3 Konfigurasi Pin Mikroprosessor 8085

Keterangan Pin : Vcc

: Supply tegangan, + 5.0 V

Vss

: Ground, 0 V.

A8 – A15 (Address Bus) : Output, Tri-state; merupakan 8-bit bagian MSB dari lokasi alamat memori atau alamat I/O. selama keadaan operasi Hold, Halt, Reset, Output keadaan impedansi tinggi.

ADO - AD7 : Input/Output; Saat periode siklus clock pertama (T-state) berfungsi sebagai saluran alamat rendah dari memori atau I/O dan selama periodeclock ke dua dan ketiga berfungsi sebagai saluran data.

ALE (Address Latch Enable) : Output Sinyal ini dihasilkan pada saat periode clock pertama dari siklus mesin, yang menandakan bahwa ADO-AD7 berisi alamat. Sehingga saat ini alamat diberikan ke peralatan memori atau I/O. Pada saat sisi turun dari signal ALE ADO-ad7 berfungsi sebagai saluran data. ALE tidak pernah tri state.

SO, S1, dan I/O : Output ; Menunjukkan status selama siklus mesin, yang ditunjukkan pada tabel berikut,

0 0 1 Menulis data ke memori 0 1 0 Membaca memori 1 0 1 Menulis I/O 1 1 0 Membaca I/O 0 1 1 Memanggil Op-Code 1 1 1 Pemberitahuan Interupsi

0 0 Halt

Hold dan Reset

* = Impedansi tinggi (tri-state) x = Illegal

RD (Read) : Output, Tri-state, aktip rendah; Level rendah pada penyemat ini menunjukkan Memori atau piranti I/O yang dipilih sedang dibaca dan kemudian saluran data siap untuk menstrasfer data ke CPU. Selama keadaan Hold, Halt dan reset penyemat ini tri-state.

WR (Write) : Output, tri-stste, aktip rendah; Level rendah pada penyemat ini menunjukkan data yang terdapat pada saluran data dituliskan ke lokasi memori atau perangkat I/O yang terpilih. Selama keadaan Hold, Halt dan Reset penyemat ini tri-state.

READY : Input, aktip tinggi ; Jika logika 1 pada saat siklus baca atau tulis bearti memori atau piranti I/O siap mengirim atau menerima data. Jika penyemat ini mendapat logika 0, CPU akan menunggu selama beberapa siklus clock hingga mendapat logika 1.

HOLD Input, aktip tinggi ; Input ini menunjukkan bahwa unit lain akan memerlukan saluran alamat atau data. Selama menerima permintaan CPU akan melepaskan saluran alamat dan data setelah alamat atau data telah komplit di transfer, tetapi proses didalam CPU dapat berjalan terus. CPU memperoleh kembali saluran alamat atau data setelah mendapat logika rendah.

HLDA (Hold Acknowledge) : Output, aktip tinggi ; Output ini menunjukkan bahwa CPU telah menerima sinyal permintaan Hold, dan CPU akan melepaskan busnya pada siklus berikutnya. HLDA logika rendah jika sinyal HOLD telah rendah. CPU kembali mengambil alih saluran alamat dan data setelah satu setengah periode clock setelah HLDA rendah.

INTR (Interrupt Request) : Input, jenis trigger level tinggi; Input ini digunakan sebagai input interupsi pemakai umum. Jika penyemat ini aktip maka Program Counter (PC) akan berhenti menaikkan alamat dan sinyal INTAL akan dikeluarkan oleh CPU. INTR ini dapat dilumpuhkan (disable) dan dijalankan (enable) oleh soft ware. INTR juga dapat digagalkan oleh sinyal RESET dan jika interupsi telah ada.

RST 5.5 RST 6.5, RST 7.5 : Input, jenis triger untuk RST 7.5 di “latch” pada sat waktu naik dan selama level tinggi untuk RST 6.5 dan RST 5.5; ketika interupsi ini pewaktu (timing)-nya sama dengan INTR, tetapi mempunyai suatu efek otomatis ke suatu instruksi RESTART RST 5.5 RST 6.5, RST 7.5 : Input, jenis triger untuk RST 7.5 di “latch” pada sat waktu naik dan selama level tinggi untuk RST 6.5 dan RST 5.5; ketika interupsi ini pewaktu (timing)-nya sama dengan INTR, tetapi mempunyai suatu efek otomatis ke suatu instruksi RESTART

TRAP : Input, Jenis trigger waktu naik dan level tinggi ; Input ini merupakan Interupsi yang tidak dapat dicegah (non-maskable) RESTART yang mempunyai prioritas paling tinggi (lihat tabel 1). Interupsi ini diperiksa dengan cara yang sama dengan interupsi RST 5.5 – 7.5.

INTA(Interupt Acknowledge): Output, aktip rendah; digunakan untuk mengantikan sinyal RD setelah CPU menerima sinyal interupsi. Sinyal ini sebenarnya pemberitahuan bahwa interupsi telah diterima.

RESET IN : Input, aktip rendah ; selama RESET Program Counter (PC) berisi alamat 0000 H , flip-flop INTA dan HLDA dalam keadaan reset, saluran alamat, data dan kendali akan berimpedansi tinggi. RESET IN merupakan masukan Schmitt-trigeger yang dapat dihasilkan oleh rangkaian R-C untuk menghasilkan waktu tunda (delay) RESET pada saat power on. Saat power hidup, RESET IN harus tetap rendah selama 10 ms.

RESET OUT : Output, aktip tinggi ; menunjukkan CPU dalam keadaan reset. RESET OUT dihasilkan beberapa saat setelah ada RESET IN. RESET OUT juga digunakan untuk mereset sistem komputer mikro.

SID (Serial Input Data) : Input; Input ini berguna sebagai saluran data masukan secara serial. Logika dari input ini ditransfer ke bit-7 dari Accumulator setiap instruksi RIM dilaksanakan.

SOD (Serial Output Data) : Output ; Penyemat ini digunakan sebagai saluran pentranferan data secara serial. Keluaran dari SOD ini adalah keadaan logika dari bit-7 Accumulator setiap instruksi SIM dilaksanakan. SOD ini diset atau direset sesuai format Acc saat instruksi SIM.

X1, X2 : Pin ini digunakan sebagai penghubung CPU ke suatu penghasil frekuensi : seperti kristal, kombinasi LC atau RC. Kristal atau kombinasi LC dihubungkan pada X1 dan X2 ini secara langsung untuk menghasilkan internal clock.

CLOCK OUT : Keluaran dari pin ini menghasilkan frekuensi, setengah dari frekuensi yang masuk dari penyemat X1, X2.

1. Diagram Waktu Kerja. Dalam melaksanakan instruksinya setiap Mikroprosesor memerlukan suatu sinyal clock, damana besarnya frekuensi ini akan mempengaruhi kecepatan pelaksanaan dari suatu instruksi. Mikroprosesor 8085 A mempunyai range periode clock dari 320 ns hingga 2000 ns, dengan demikian CPU 8085 hanya memerlukan waktu sebesar 1,28 HS untuk melaksanakan instruksi ADD B(ADD B memerlukan 4T) jika periode T 320 ns.

Pelaksanaan suatu instruksi diatur oleh periode clock yang disebut dengan STATE (keadaan T) yang merupakan tahapan pelaksanaan instruksi. Urutan dari tahapan ini disebut dengan siklus mesin (M) yang masing-masing terdiri dari 3 keadaan t kecuali siklus 1 (M1) yang terdiri dari 4T hingga 6T (tahapan). Satu instruksi membutuhkan 1 hingga 5 siklus mesin, dimana kelima siklus ini disebut dengan nama M1, M2, M3, M4 dan M% yang ditunjukkan seperti pada gambar berikut.

Tahap Pengambilan kode operasi Tahap Pembacaan/ Penulisan Data

Gambar 5.4 Urutan Tahapan pada Siklus Mesin Mikroprosessor 8085

Soal dan latihan

1. Tuliskan register serbaguna 8bit dan register serbaguna 16bit mikroprosesor 8085 ! 2. Jelaskan mengapa mikroprosesor 8085 hanya mampu menjangkau 65.536 lokasi alamat! 3. Jika akan melakukan pengolahan data dengan cara membandingkan data tersebut dengan

data lain menggunakan mikroprosesor, maka pada blok manakah, mikroprosesor akan melakukan operasi tersebut? Jelaskan!

4. Tuliskan kaki mana saja dari mikroprosesor 8085 yang aktif low! 5. Jelaskan fungsi pin ALE (Address Latch Enable) ! 6. Jelaskan fungsi register akumulator! 7. Jelaskan fungsi flag register! 8. Jelaskan perbedaan maskabel interupsi dan non-maskabel interupsi, beserta contohnya! 9. Jelaskan maksud LIFO pada stack pointer!

10. Jelaskan cara mengetahui hasil operasi aritmatika pada register A bernilai positif atau negative!

BAB VI PENGANTAR ALGORITMA PEMROGRAMAN

6.1 Pendahuluan

Beberapa istilah yang perlu diketahui dalam dunia pemograman antara lain adalah : Program, Pemograman dan Bahasa Pemograman. Program adalah kumpulan instruksi/perintah yang disusun sebagai satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa pemograman sehingga dapat dieksekusi oleh computer. Pemograman adalah proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan suatu bahasa pemograman.

Bahasa Pemograman berfungsi sebagai media untuk menyusun dan memahami suatu program computer serta sebagai alat komunikasi antara programmer dengan computer. Bahasa Pemograman digolongkan menjadi beberapa tingkatan yaitu :

1. Bahasa Mesin Bahasa yang langsung bisa dipahami oleh computer, yaitu 0 dan 1 sama persis seperti pada rangkaian digital, karena pada dasarnya computer adalah kesatuan dari system yang didalamnya berupa rangakaian digital.

2. Bahasa Tingkat Rendah (Low Level Language) Bahasa Tingkat Rendah merupakan bahasa pemograman yang berorientasi pada mesin. Disebut tingkat rendah karena bahasa ini lebih dekat ke bahasa mesin daripada bahasa manusia. Bahasa mesin biasanya berupa mnemonics (symbol) yang dapat diterjemahkan langsung ke bahasa mesin dan merupakan singkatan dari perintah tertentu sepertu MOV sinkatan dari “Move”, JMP yang merupakan singkatan dari “Jump”, contoh dari bahasa tingkat rendah adalah Assembler

3. Bahasa Tingkat Menengah Yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata

bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||. Ada sebagian para pakar yang menyebutkan bahasa C sebagai bahasa tingkat menengah (Middle Level Language), karena dianggap bahasa C adalah bahasa tingkat tinggi yang mempunyai kelebihan hampir menyamai bahasa assembly karena kelengkapan fungsinya dalam mengakses perangkat keras.

4. Bahasa Tingkat Tinggi (High Level Language) Bahasa Tingkat Tinggi lebih dekat ke bahasa manusia dari pada bahasa mesin. Bahasa tingkat tinggi merupakan bahasa pemograman yang memiliki aturan-aturan gramatikal dalam penulisan ekspresi atau pernyataan dengan standar yang mudah dipahami oleh manusia. Yang tergolong bahasa tingkat tinggi antara lain : BASIC, Fortran, COBOL, Pascal, Prolog, C, dll..

6.2 Algorithma

Algoritma berasal dari kata algoris dan ritmis, yang pertama kali diungkapkan oleh Abu Ja ’far Mohammed Ibn Musa al Khowarismi (825 M) dalam buku Al-Jabr Wa-al Muqabla. Dalam bidang pemograman Algoritma didefinisikan sebagai suatu metode khusus yang tepat dan terdiri dari serangkaian langkah yang terstruktur dan dituliskan secara sistematis yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan computer. Algoritma merupakan pola pikir terstruktur yang berisi tahap-tahap penyelesaian masalah yang dapat disajikan dengan teknik tulisan maupun dengan gambar. Penyajian algoritma dalam bentuk tulisan biasanya menggunakan metode Structure English atau Pseudo Code (kode semu). Penyajiann algoritma dalam bentuk gambar biasanya menggunakan flowchart (diagram alir).

Sebelum membuat sebuah program, programmer harus mendefinisikan masalah yang ada untuk menghasilkan program yang bagus, dimana bahasa mikroprosessor, bahasa mesin dan hexadecimal Op-code harus diinstruksikan sebelumnya. Sebagai contoh suatu bagian dari instruksi untuk penjumlahan dan pengurangan, pada Instruksi set mikroprosessor 8085 tidak mengetahui instruksi aritmatika yang lain (perkalian atau pembagian), sehingga harus didefinisikan terlebih dahulu bagaimana membuat perkalian dengan instruksi yang ada yaitu penjumlahan dan pengurangan. Sebenarnya operasi perkalian tidak cocok dalam struktur proses bilangan biner, jadi utnuk proses perkalian harus diubah oleh programmer ke dalam proses penjumlahan.

Contoh :

5 x 4 = 20

Factor 1 Factor 2 Hasil

Berarti masalah perkalian dapat diselesaikan dengan menjumlah bilangan factor 1 sebanyak Factor 2.

Sebelum memulai membuat Flowchart dan Program, perlu membuat terlebih dahulu dalam bentuk Algoritma secara tertulis, sebagai contoh untuk program perkalian yaitu 5 dikalikan dengan 4, urutan langkahnya adalah :

1. Isi Register A dengan data 00 (untuk mengosongkan isi Akumulator)

2. Isi Register B dengan data 5(Factor 1)

3. Isi Register C dengan data 4(Factor 2)

4. Jumlahkan Register B dengan Register A, dan isikan hasilnya ke register A.

5. Kurangi 1 dari data Register C.

6. Periksa, apakah Register C = 0 ; Jika tidak kembali lompat ke langkah keempat.

7. Jika Register C = 0, maka program selesai/stop dan kembali ke program utama.

Dari langkah-langkah pada algoritma ini, dapat dibuat langsung ke sebuah program dengan format bahasa tertentu atau membuat flowchart terlebih dahulu.

6.2.1 Flow Chart

Flow chart atau diagram alir merupakan salah satu cara untuk menginterpretasikan algoritma dari sebuah program, teknik penulisan flowchart diaungkapkan dengan menggunakan symbol berupa gambar, sehingga akan lebih mudah dimengerti, berikut adalah symbol-simbol dari flowchart,

KETERANGAN LAMBANG

Mulai / Selesai (Terminator)

KETERANGAN LAMBANG

Aliran Data

Input / Output

Proses

Percabangan (Decision)

Pemberian nilai awal suatu variabel (Preparation), Inisialisasi, fungsi FOR

Memangggil prosedur / fungsi (Call)

Connector (di halaman yang sama)

Connector (di halaman lain)

Sequence process

KETERANGAN LAMBANG

Perulangan

Jika contoh soal 5x4 = 20 dinyatakan dalam bentuk flowchar maka akan terlihat seperti

berikut,

Soal dan latihan

1. Apa yang dimaksud dengan :

a. Program.

b. Pemograman

c. Algorithma

2. Jelaskan jenis jenis flow chart

3. Sebutkan berapa tingkatan dalam Bahasa Pemograman dan jelaskan.

4. Buatlah sebuah Algoritma secara tertulis untuk perkalian sebuah bilangan 6 dengan bilangan 8 dan buat flowchartnya.

5. Buatlah sebuah Algoritma secara tertulis untuk pembagian sebuah bilangan 12 dengan bilangan 3 dan buat flowchartnya.