MIKROPROSESOR 8085

SEMESTER 3

BAB 1

PENDAHULUAN

1.1 SEKILAS TENTANG MIKROPROSESOR 8085
Pada dasarnya sistem berbasis mikroprosesor terdiri atas kumpulan lokasi penyimpanan digital yang sangat tersruktur dan sangat besar disertai sebuah komponen pengendali pusat. Lokasi penyimpanan digital disebut memori, sedangkan pusat pengendali adalah mikroprosesor itu sendiri. Pada siklus pelaksanaan computer, isi beberapa lokasi memori ini dipindahkan atau dimanipulasi. Untuk sistem yang dipelajari disini, lokasi memorinya berukuran 8 bit. Setiap memori dikenali melalui sebuah alamat. CPU atau mikroprosesor yang bertindak sebagai pusat pengendali, juga memiliki lokasi penyimpanan tersendiri, panjangnya 8-bit. Isi lokasi ini juga dapat dipindahkan atau dimanipulasi selama siklus mesin. Lokasi penyimpanan di dalam prosesor disebut register. Register merupakan lokasi penyimpanan data sementara. Register di dalam mikroprosesor sangat penting dalam operasinya.Karena register berada dalam mikroprosesor , maka ia dapat dimanipulasi dengan cepat tanpa memperhatikan chip lainnya. Meskipun detail arsitektur register internal mikroprosesor berbeda antara yang satu dengan lainnya,tetapi beberapa jenis register bersifat umum. Misalnya PC (Program Counter) yang berisi alamat perintah berikutnya yang harus diambil. Ukurannya menentukan banyaknya memori yang dapat menyimpan perintah atau program. Untuk berbagai mikraprosesor yang umum, sebagai contoh, 8080, 8085, Z80, 1802, 6502 atau 6800, memiliki PC berukuran 16-bit yang memberikan jumlah lokasi maksimum sebesar 65.536. Untuk lebih jelas tentang register akan dibahas pada uraian berikutnya.

Teknik Telekomunikasi Nir Kabel

1

MIKROPROSESOR 8085

SEMESTER 3

Intel 8085 dikembangkan dari mikroprosesor 8080 yang juga dikembangkan oleh Intel. Banyak kesamaan yang dimiliki oleh prosesor 8 bit dengan prosesor 8 bit lainnya , seperti Zilog Z80. Zilog Z80 dapat dioperasikan dengan baik menggunakan instruksi yang ada pada 8080. Blok diagram arsitektur dari 8085 diperlihatkan oleh gambar di bawah ini.

Gambar1. Blok Diagram bagian dalam 8085 ALU dalam 8085 menerima masukan dari dua register, yaitu dari akumulator (Register A) and register sementara (TMP). Akumulator selain bertindak sebagai sumber untuk ALU juga bertindak sebagai tujuan keluaran dari berbagai hasil operasi ALU. Register TMP diisi dengan data dari lokasi lainnya selama operasi berlangsung. Perintah khusus ini menentukan berapa besar byte sumber data tersebut. Oleh sebab itu pemrogram tidak dapat mengakses secara

Teknik Telekomunikasi Nir Kabel

2

MIKROPROSESOR 8085

SEMESTER 3

langsung register TMP ini, sehingga register ini disebut juga sebagai register tak tampak. ALU melaksanakan penjumlahan, pengurangan dan berbagai operasi logika khusus pada pasangan byte masukan dalam register A dan register TMP. ALU juga membangkitkan flag bit yang disimpan dalam register bendera. Perubahan bit bendera lainnya yang dihasilkan oleh ALU adalah bendera nol (zero), bendera tanda (sign), bendera sisa tambahan (auxiliary carry), dan bendera paritas (parity). Bendera nol akan di-set jika hasil operasi yang dilakukan oleh ALU adalah nol. Bendera ini bermanfaat bila kita melakukan pengujian apakah nilai kedua byte sama. Dengan cara mengurangkan kedua nilai tersebut, kemudian memeriksa apakah bendera nol di-set. Bendera sisa tambahan akan di set apabila hasil penjumlahan pada bit 3 memberikan sisa (carry). Bendera ini akan sangat berguna saat kita melakukan opersai aritmatika biner terkode decimal (BCD). Bendera paritas akan di-set apabila suatu hasil operasi logika satu yang jumlahnya genap dan me-reset bendera paritas apabila hasilnya berisi logika satu yang jumlahnya ganjil. ALU juga dapat melakukan operasi logika pada kedua byte masukannya. Operasi logika ini antara lain adalah operasi AND, OR, NOT dan XOR. Register flag juga dipengaruhi oleh operasi logika ini, dan setiap hasilnya akan disimpan di akumulator. Mikroprosesor INTEL 8085 merupakan prosesor 8-bit yang diproduksi oleh perusahaan INTEL yang berada di California USA. Prosesor 8085 ini merupakan prosesor sederhana (simple prosesor) yang memiliki kurang dari 80 instruksi. Intel 8085 berkembang dari mikroprosesor 8080 yang populer. Prosesor 8bit ini memiliki banyak kesamaan dengan mikroprosesor 8-bit lainnya, seperti Zilog Z80. Z80 dapat beroperasi dengan baik menggunakan perintah 8080. Lebih lanjut lagi, berbagai mikroprosesor lainnya berbagi kesamaan dengan seri 8080 dan 8085. Kesamaan itu tetap ada pada komponen yang lebih maju seperti 80186, 80286, bahkan 80386. Memori secara fungsional berisi 2 jenis informasi : program dan data.

Teknik Telekomunikasi Nir Kabel

3

MIKROPROSESOR 8085

SEMESTER 3

Program merupakan serangkaian informasi yang telah disandikan dalam bentuk biner, sehingga bias tinggal dalam memori elektronik. Program menetapkan urutan langkah yang harus dilakukan oleh computer. Di bawah pengawasan unit pengendali, masing ± masing instruksi berurutan pada sebuah program diambil dan disimpan dalam sebuah register khusus unit pengendali, dimana instruksi ± instruksi tersebut akan dikode dan dilaksanakan. Misal, instruksi khas dapat berupa penjumlahan isi dua buah register dan menyimpan hasilnya pada register ketiga. Data yang terdapat dalam memori diproses oleh ALU ( Arithmetic and Logical Unit ), unit aritmatik dan logika. Data bias mempunyai berbagai format. Biasanya, data berupa angka atau huruf yang dipresentasikan dalam sistem biner. Istilah memori biasanya menunjukkan berbagai macam jenis memori. Dan dua jenis yang hamper selalu dipakai : memori utama ( main memory ) dan memori masal ( mass memory ). Memori utama digunakan untuk menyimpan program yang sedang dilaksanakan dan data yang diperlukan atau dihasilkan sewaktu pelaksanaannya. Memori misal dipakai untuk menyimpan program dan data atau sebagian daripadanya yang tidak segera dibutuhkan oleh CPU ataupun yang tidak dapat ditampung oleh memori utama. Mengakses memori masal memperlambat kerja computer, terutama bila akses sedanmg diperlukan. Idealnya sebuah program disimpan dalam memori masal secara permanent dan dimuat dalam main memory untuk pelaksanaan. Peralatan memori masal yang khas dan pita magnetic. Dua tipe logika memori ( berdasarkan kemungkinan akses ) : Dihubungi secara acak ( Random Access Memory / RAM ) bisa dibaca atau ditulis. Memori hanya untuk dibaca ( Read Only Memory / ROM ) begitu data telah dimasukkan. RAM tidak mudah terhapus ( non volatail ), tidak bias dipakai untuk menyimpan sementara. Sekali tulis, isinya tetap. Isi RAM mudah terhapus (volatail) dan akan kehilangan isinya jika catu daya terputus. Akibatnya, piringan ( disk ), kaset

Teknik Telekomunikasi Nir Kabel

4

MIKROPROSESOR 8085

SEMESTER 3

diperlukan penyimpanan permanent pada sistem seperti ROM atau memori masal magnetis, atau keduanya.

REGISTER PADA MIKROPROSESOR 8085
Pada prosesor INTEL 8085 terdapat 8 register 8-bit yang dapat diakses oleh pemrogram ,yaitu:  Register A sebagai ³Accumulator Register 8 bit´  Register B  Register C  Register D  Register E  Register F sebagai ³Flag Register´  Register H  Register L Perlu diingat, terdapat satu register 8-bit yang diperuntukkan bagi internal sistem(tidak diakses oleh user), yaitu register 1 (disebut sebagai ³Instruction Register¶). Pada saat prosesor mengambil kode instruksi dari unit memori , pertama-tama menempatkan kode instruksi tersebut pada register 1 tersebut sebelum melaksanakan tahap ³instruction decoding´. Dari ke 8 register tersebut, ada 6 register yang dapat membentuk 3 pasangan register (register pair) yang memiliki kapasitas penyimpanan data 16 bit, ketiga pasangan register tersebut adalah:  Pasangan register BC  Pasangan register DE  Pasangan register HL yang berfungsi sebagai accumulator 16-bit.

Teknik Telekomunikasi Nir Kabel

5

MIKROPROSESOR 8085

SEMESTER 3

Ketiga pasangan register ini sangat penting untuk menunjuk pada alamat tempat data dalam unit memori yang akan diakses oleh prosesor (berfungsi sebagai register pointer). Pasangan register BC Pasangan register DE Pasangan register HL

Reg B Reg D Reg H

Reg C Reg E Reg L

Selain pasangan register !6-bit diatas, prosesor INTEL 8085 juga memiliki register 16 bit yang lain, yaitu:  Register Program Counter (Register PC )  Register Stack Pointer (Register SP ) REGISTER FLAG Register Flag (Register F) merupakan register ³status´ pada prosesor 8085. Register ini memiliki 8-bit tetapi INTEL hanya memanfaatkan 5-bit sebagai bitbit status prosesor. Posisi dari kelima bit tersebut adalah : B7 S Keterangan :  Bit S (Sign-bit) yang berada pada bit ke-7 merupakan bit tanda, bit S ini akan berada pada posisi ³Set´ (S=1) jika hasil operasi aritmatika atau logika yang prosesnya dilakukan pada ALU menghasilkan nilai negative. Sebaliknya, bit S akan berada pada posisi ³Reset´ atau ³Clear´ (S= 0) jika hasil operasi B6 Z B5 B4 Ac B3 B2 P B1 B0 Cy

Teknik Telekomunikasi Nir Kabel

6

MIKROPROSESOR 8085

SEMESTER 3

aritmatika atau logika yang prosesnya dilakukan pada ALU menghasilkan nilai bukan negatif .  Bit Z (Zero-bit) ini berada pada bit ke-6 pada Flag register, bit ini memperlihatkan apakah hasil suatu operasi aritmatika ataupun logika yang tersimpan dalam akumulator nilainya nol. Bit ini akan ³Set´ (Z=1) jika hasil operasi aritmatika maupun logika yang dilakukan dalam ALU adalah nol. Sebaliknya, Bit ini akan ³Reset´ (Z=0) jika operasi aritmatika atau logika yang dilakukan pada ALU nilainya tidak nol.  Bit Ac (Auxiliary carry-bit) berada pada bit ke-6, merupakan bit yang menunjukkan ada atau tidaknya ³carry´ dari posisi B3 ke posisi B4 pada operasi penjumlahan yang dilakukan di ALU. Pada prosesor Z-80 ³auxiliary carry Flag´ ini disebut sebagai ³half carry´ (HC). Ac akan set (AC=1) jika pada suatu proses penjumlahan terdapat carry dari posisi bit B3 ke B4. Sebaliknya Ac akan reset (Ac=0) jika pada suatu proses penjumlahan tidak terjadi carry dari posisi bit B3 ke B4. Jadi , bit Ac ini akan sangat penting pada saat prosesor mengolah data BCD.  Bit P (Parity-bit) berada pada bit ke-2, merupakan bit ³flag´ yang menunjukkan ganjil atau genapnya jumlah logik 1 pada hasil operasi logika atau aritmatika yang dilakukan pada ALU. P akan set (P=1) jika jumlah logik satu yang terdapat pada hasil operasi adalah genap (contoh : 1001 0011, 0000 0101, 1111 0110, dll). Dan sebaliknya P akan reset (P=0) jika jumlah logik 1 yang terdapat pada hasil operasi adalah ganjil (contoh : 1110 1100, 0010 0000, 1111 0001, dll).  Bit Cy (Carry-bit ) yang berada pada posisi bit 0 merupakan bit flag yang menunjukkan ada atau tidaknya ´carry´ atau ³borrow´ pada posisi B7 (bit MSB) dalam suatu operasi aritmatika . Cy berfungsi sebagai bit carry pada opersi penjumlahan dan sebagai bit borrow pada operasi pengurangan. Cy akan set (Cy=1) jika pada posisi bit terbesar (MSB) dihasilkan carry ata u borrow. Sebaliknya Cy akan reset (Cy=0) jika pada posisi bit terbesar (MSB) tidak dihasilkan carry ataupun borrow.

Teknik Telekomunikasi Nir Kabel

7

MIKROPROSESOR 8085

SEMESTER 3

INSTRUCTION SET
Untuk dapat menggunakan suatu mikroprosesor, maka kita harus mengetahui set instruksi dari mikroprosesor yang bersangkutan. Set instruksi dari suatu mikroprosesor berisikan daftar seluruh instruksi-instruksi yang dapat dilakukan oleh mikroprosesor tersebut.. Pada mikroprosesor 8085 terdapat lebih dari 70 instruksi yang terbagi menjadi beberapa kelompok instruksi, yaitu : 1.kelompok instruksi transfer data 2.kelompok instruksi aritmatika 3.kelompok instruksi logika 4.kelompok instruksi ³shift´ dan ³rotate´ 5.kelompok instruksi pencabangan (³branch´) 6.kelompok instruksi input / output dan kontrol

1.3.1 Instruksi Transfer Data Pada bab ini akan sedikit dibahas mengenai instruksi-instruksi kelompok transfer data, seperti ³MOVE´, ³MOVE IMMEDIATE´ (MVI), ³LOAD´, ³STORE´, dan ³EXCHANGE´. Di antara semua kelompok instruksi pada mikroprosesor 8085, kelompok instruksi transfer data menunjukkan bagaimana cara memindahkan data 8 bit dari suatu register ke register lain. Kelompok instruksi transfer data terdiri dari : MOV, MVI, STA, LDA, STAX, LDAX, SPHL, XCHG, XTHL, SHLD, dan LXI. Instruksi-instruksi tersebut tidak mengubah isi register flag.

Fungsi Instruksi MOV dan MVI Kelompok terbesar dari instruksi transfer data adalah kelompok instruksi ³MOVE´. Kelompok instruksi ³MOVE´ terdiri dari semua instruksi pemindahan data 8 bit (1 byte) dari suatu register ke register lain atau dari suatu memori ke register. Register tujuan selalu dituliskan sebelum tanda koma dan register sumber dituliskan setelah tanda koma.

Teknik Telekomunikasi Nir Kabel

8

MIKROPROSESOR 8085

SEMESTER 3

Misalnya, instruksi MOV r1, r2 adalah instruksi untuk mentransfer data dari r2 (register sumber) ke r1 (register tujuan). Pengertian kata ³mentransfer´ di sini adalah ³menggandakan´ atau ³mengkopi´, karena pada akhir pelaksanaan instruksi, isi register tujuan jadi sama dengan isi register sumber. Contoh : Pada instruksi MOV A, B, jika pada sebelum instruksi tersebut dilakukan isi register A ad;ah 3C dan isi register B adalah 7F. Register A Data Flowchart 3C B 7F

START

A

B

STOP

Program Kode Alamat Operasi 6000 6001 78 CF Mnemonik MOV A, B RST 1

Maka setelah instruksi MOV A, B dilaksanakan, isi register A = isi register B = 7F. Instruksi MOV r, M berfungsi untuk mentransfer data dari lokasi memori yang alamatnya berada pada pasangan register HL ke suatu register 8 bit. Untuk memindahkan data dari suatu lokasi memori ke suatu register 8 bit dapat digunakan instruksi MOV r, M. Alamat memori M ditunjukkan oleh isi pasangan register HL.

Teknik Telekomunikasi Nir Kabel

9

MIKROPROSESOR 8085

SEMESTER 3

Contoh : Untuk mentransfer data 8 bit dari lokasi memori pada alamat 8000 ke register B, pertama, isilah register HL dengan 8000 (misalnya dengan instruksi LXI H, 8000), kemudian susulkan instruksi MOV B, M. Register HL Memori Data Flowchart 8000 4C

START

HL 8000 B M

STOP

Program Alamat Kode Operasi 7000 7003 7004 21 00 80 46 CF Mnemonik LXI H, 8000 MOV B, M RST 1

Setelah instruksi MOV B, M tersebut dilaksanakan, maka isi register B akan sama dengan isi (data 8 bit) yang berada pada alamat memori 8000 = 4C. Instruksi MOV M, r merupakan kebalikan dari instruksi MOV r, M. Instruksi MOV M, r ini akan memindahkan data 8 bit yang berada pada suatu register ke suatu lokasi memori yang alamatnya ditunjukkan oleh pasangan register HL.

Teknik Telekomunikasi Nir Kabel

10

MIKROPROSESOR 8085

SEMESTER 3

Contoh : Untuk mentransfer data 8 bit dari register D ke lokasi memori dengan alamat A000, pertama isilah register HL dengan A000 (misalnya dengan instruksi LXI H, A000), kemudian berikan instruksi MOV M, D. Register D Data Memori Flowchart : START 7F A000

LXI H, A000 M D

STOP

Program : Alamat Kode Operasi 8000 8003 8004 21 00 A0 72 CF Mnemonik LXI H, A000 MOV M, D RST 1

Setelah instruksi MOV M, D ini dilaksanakan, maka isi memori alamat A000 akan sama dengan isi register D = 7F. Selain instruksi-instruksi ³MOVE´ seperti tersebut di atas, mikroprosesor 8085 juga mempunyai kelompok instruksi ³MOVE IMMEDIATE´, yaitu instruksi ³MVI r, data 8 bit´ dan instruksi ³MVI M, data 8 bit´. Contoh : Instruksi MVI B, 5C akan mengisi register B dengan data 8 bit 5C (B 5C). Instruksi MVI M, 8 bit, digunakan untuk mengisi data 8 bit pada suatu lokasi memori yang alamatnya ada pada register HL.

Teknik Telekomunikasi Nir Kabel

11

MIKROPROSESOR 8085

SEMESTER 3

START

B 5C

STOP Contoh : Instruksi MVI M, 4F akan mengisi lokasi memori yang alamatnya berada pada pasangan register HL dengan data 4F (M 4F). START

M

4F

STOP

Fungsi Instruksi STA dan LDA Instruksi ³STA alamat´ diperguanakan untuk menyimpan data yang berada pada akumulator (register A) ke dalam unit memori pada lokasi alamat (4digit heksadesimal dari belakang mnemonik STA).

Contoh : Instruksi ³STA D45F´ akan menyimpan isi akumulator ke dalam unit memori pada alamat D45F. Instruksi ³LDA alamat´ digunakan untuk memindahkan data 8 bit dari unit memori lokasi alamat tertentu ke akumulator (register A). START

[D45F]

A

STOP Teknik Telekomunikasi Nir Kabel

12

MIKROPROSESOR 8085

SEMESTER 3

Register A Data Memori Contoh : Instruksi ³LDA D888´ akan memindahkan data yang berada pada alamat D888 ke akumulator (register A). START 4C D45F

A

[D888]

STOP

Memori D888 Data 7F

Register A

Fungsi instruksi STAX dan LDAX Instruksi ³STAX rp´ digunakan untuk menyimpan isi akumulator ke lokasi memori yang alamatnya ditunjukkan oleh suatu pasangan register (rp). Contoh : Instruksi ³STAX B´ akan menyimpan isi akumulator ke lokasi memori yang alamatnya ditunjukkan oleh pasangan register BC. START

Teknik Telekomunikasi Nir Kabel [BC]

A

13

MIKROPROSESOR 8085

SEMESTER 3

Instruksi ³LDAX rp´ berfungsi mengisi akumulator dengan data 8 bit dari lokasi memori yang alamatnya ditunjukkan oleh suatu pasangan register. START

A

[rp]

STOP Contoh : Instruksi ³LDAX D´ akan mengisi akumulator dengan data 8 bit dari lokasi memori yang alamatnya ditunjukkan oleh pasangan register DE. START

A

[DE]

STOP 1.3.2 Instruksi Aritmatika Instruksi aritmatika contohnya adalah penjumlahan, penguranagan, penambahan dengan 1 (increment) dan pengurangan dengan 1 (decrement). Umumnya perintah penjumlahan dan pengurangan melibatkan register A (akumulator) dan register prosesor lainnya atau lokasi memori. Operasi penambahan dengan 1 atau pengurangan dengan satu umumnya dapat dilakukan dalam berbagai register dan lokasi memori melalui penggunaan mode pengalamatan yang berbeda. Setiap operasi ini dapat dilakukan dalam beberapa cara yang berbeda, sehingga pemrograman dapat menyesuaiakan perintah yang digunakan pada aplikasi tertentu. Mikroprosesor terdiri atas sejumlah bit status yang disebut bendera atau flag. Bendera di set atau di reset tergantung pada hasil perintah tertentu.Pemrogram dapat menggunakan bendera untuk membantu pengolahan data.

Teknik Telekomunikasi Nir Kabel

14

MIKROPROSESOR 8085

SEMESTER 3

Pada bagian ini terdapat berbagai intruksi aritmatika diantaranya : ADD, ADI, ADC, ACI, SUB, SUI, SBB, SBI, INR, DCR, INX, DCX, DAD dan DAA.

Intruksi ADD dan SUB Intruksi ADD dipergunakan untuk melakukan operasi penjumlahan 8 bit. Pada operasi tersebut , isi register A (akumulator) akan ditambahkan dengan isi register 8 bit atau isi lokasi memori yang alamatnya ditunjukan oleh pasangan register HL. Contoh : ADD B Perintah ini menyebabkan isi register B ditambahkan ke isi register A (akumulator). Hasil penjumlahan akan disimpan dalam register A (akumulator. Register B tidak berubah sehingga : A S Z AC CY P A+B menyala jika hasilnya negative (MSB dari A = 1) menyala jika hasilnya nol (A semuanya nol) menyala jika sisa dihasilkan dari bit 3 (untuk pemakaian BCD) menyala jika sisa dihasilkan dari bit 7 (sisa keluar MSB) menyala jika hasil merupakan paritas genap Setelah perintah ADD, bit flag akan berubah sebagai berikut :

Tabel dibawah menunjukan contoh lain penggunaan intruksi ADD pada register yang lain : Mnemonik ADD A ADD B ADD C ADD D ADD E ADD H ADD L ADD M Symbol operasi A A A A A A A A A+A A+B A+C A+D A+E A+H A+L A + M atau A A + HL

Teknik Telekomunikasi Nir Kabel

15

MIKROPROSESOR 8085

SEMESTER 3

Intruksi SUB dipergunakan untuk melakukan operasi pengurangan 8 bit.Pada operasi tersebut, isi register A (akumulator) akan dikurangi dengan isi register 8 bit, atau isi lokasi memori yang alamatnya ditunjukan oleh pasangan register HL. Contoh: SUB C Intruksi tersebut menyebabkan isi dari register A (akumulator) dikurangi oleh isi dari register C. Hasil pengurangan akan disimpan di register A (akumulator). A A-C Contoh-contoh yang lain dapat dilihat pada table berikut : Mnemonik SUB A SUB B SUB C SUB D SUB E SUB H SUB L SUB M Symbol operasi A A A A A A A A A±A A±B A±C A±D A±E A±H A±L A±M

Intruksi ADI dan SUI Instruksi ADI dipergunakan untuk menambahkan isi register A (akumulator) dengan data 8 bit secara langsung (immediate data). Contoh : ADI 2Fh Disini 2Fditambahkan ke isi register A (akumulator). Hasilnya disimpan di register A (akumulator) dan semua flag dapat berubah. A A + 2Fh Intruksi SUI dipergunakan dipergunakan untuk mengurangkan isi register A (akumulator) dengan data 8 bit secara langsung (immediate data). Contoh :

Teknik Telekomunikasi Nir Kabel

16

MIKROPROSESOR 8085

SEMESTER 3

SUI 5Ch Disini 5C mengurangi isi register A (akumulator). Hasilnya disimpan di register A (akumulator) dan semua flag dapat berubah. A A ± 5C Jika hasil penjumlahan atau hasil pengurangan lebih besar dari 7Fh (+12 desimal) atau lebih kecil dari 80h (-128 desimal), maka carry/borrow bit akan set (Cy = 1)

Intruksi ADC dan SBB Instruksi ADC dipergunakan untuk menambah isi register dengan data 8 bit dan mengikutsertakan carry BIT (Cy) dari operasi sebelumnya. Data 8 bit tersebut dapat diambil dari suatu register atau suatu lokasi memori yang alamatnya ditunjukan oleh register HL. Contoh : ADC M Isi lokasi memori yang ditunjukan oleh pasangan HL, dijumlahkan ke register A (akumulator), dan bit sisa ditambahkan k eke LSB hasil jumlahnya. Hasil penjumlahan disimpan di register A, dan semua bendera dipengaruhi. A A + (HL) +Cy Contoh penjumlahan bilangan 24 bit (tiga byte). Masing-masing bilangan akan memerlukan tiga lokasi memori dan total operasi penjumlahan akan memerlukan tiga penjumlahan 8 bit terpisah, seperti diperlihatkan dalam gambar berikut :

Teknik Telekomunikasi Nir Kabel

17

MIKROPROSESOR 8085

SEMESTER 3

Contoh lain penggunaan instruksi ADC pada berbagai register ditunjukan dalam table di bawah ini: Mnemonik ADC A ADC B ADC C ADC D ADC E ADC H ADC L ADC M Simbol operasi A A A A A A A A A + A +Cy A + B +Cy A + C +Cy A + D +Cy A + E +Cy A + H +Cy A + L +Cy A + (HL) +Cy

Instruksi SBB berfungsi untuk mengurangi isi register A dengandata 8 bit dan mengikutsertakan Borrow bit (Cy) dari operasi sebelumnya. Data 8 bit tersebut dapat diambil dari suatu register atau suatu lokasi memori yang alametnya ditunjukan oleh register HL. Contoh: SBB D Menyebabkan : A A ± D ± Cy

Contoh lainnya ditunjukan dalam tabel di bawah: Mnemonik SBB A SBB B SBB C SBB D SBB E SBB H SBB L SBB M Simbol operasi A A A A A A A A A ± A ± Cy A ± B ± Cy A ± C ± Cy A ± D ± Cy A ± E ± Cy A ± H ± Cy A ± L ± Cy A ± (HL) ± Cy

Teknik Telekomunikasi Nir Kabel

18

MIKROPROSESOR 8085

SEMESTER 3

Instruksi ACI dan SBI Instruksi ACI berfungsi untuk menambah isi register A dengan data 8 bit secara langsung (immediate data) dan mengikutsertakan carry bit (Cy) dari operasi sebelumnya. Contoh: ACI 4Ch Menyebabkan isi register A (akumulator) akan ditambah 4Ch dan carry. A A + 4Ch + Cy Instruksi SBI berfungsi untuk mengurangi isi register A dengan data 8 bit langsung (immediate data) dan mengikutsertakan Borrow bit (Cy) dari operasi sebelumnya. Contoh : SBI 3Dh Menyebabkan isi register A dikurangi dengan data 3D dan Borrow. A A ± 3D - Cy

Instruksi ADD, ADI, ADC, SUB, SBI, SUI dan SBB akan mempengaruhi regidter flag (S, Z, AC, P, dan Cy).

Instruksi INR dan INX Perintah penambahan 1 sebenarnya hanya menambahkan isi suatu lokasi (register atau memori) dengan 1. Untuk 8085 da 2 perintah yaitu INR dan INX. Semua flag kecuali Cy (sisa) dipengaruhi oleh perintah INR dan tidak ada bendera yang dipengaruhi oleh perintah INX. INR dipergunakan untuk menambah (menaikan) dengan 1 isi dari suatu register 8 bit atau lokasi memori yang alamatnya ditunjukan oleh regidter HL. Contoh : INR B Perintah ini menyebabkan isi register B ditambah dengan satu, atau : B B+1

Teknik Telekomunikasi Nir Kabel

19

MIKROPROSESOR 8085

SEMESTER 3

Contoh lain diperlihatkan pada tabel di bawah ini : Mnemonik INR A INR B INR C INR D INR E INR H INR L INR M Simbol operasi A B C D E H L (HL) A+1 B+1 C+1 D+1 E+1 H+1 L+1 (HL) + 1

INX dipergunakan untuk menambah dengan 1 isi suatu pasangan register (16 bit register). Contoh : INX D Menyebabkan isi pasangan register DE ditambah dengan 1. DE DE + 1

Contoh lain ditunjukan dalam tabel dibawah ini : Mnemonik INX B INX D INX H INX SP Simbol Operasi BC DE HL SP BC + 1 DE + 1 HL + 1 SP + 1

Instruksi DCR dan DCX DCR dipergunakan untuk mengurangi dengan 1 isi dari suatu register 8 bit atau suatu lokasi memori yang alamatnya ditunjukan oleh register HL. Contoh : DCR C Menyebabkan isi register C dikurangi dengan 1 atau : C C ±1

Teknik Telekomunikasi Nir Kabel

20

MIKROPROSESOR 8085

SEMESTER 3

Contoh lain ditunjukan dalan tabel dibawah ini : Mnemonik DCR A DCR B DCR C DCR D DCR E DCR H DCR L DCR M Simbol operasi A B C D E H L (HL) A-1 B-1 C-1 D-1 E-1 H-1 L -1 (HL) - 1

DCX dipergunakan untuk mengurangi dengan 1 isi suatu pasangan register (16 bit register). Contoh : DCX H Menyebabkan isi pasangan register HL dikurangi dengan 1, atau : HL HL - 1 Contoh lain dapat dilihat pada tabel di bawah ini : Mnemonik DCX B DCX D DCX H DCX SP Simbol Operasi BC DE HL SP BC - 1 DE - 1 HL - 1 SP - 1

Instruksi INR dan DCR akan mempengaruhi atau mengubah bit ± bit dari register flag seperti S, Z dan AC tetapi tidak mempengaruhi bit Cy. Instruksi INX dan DCX tidak mempengaruhi bit ± bit dari register flag.

Instruksi DAD Instruksi DAD dipergunakan untuk menambahkan isi pasangan register HL dengan isi suatu pasangan register pada operasi penjumlahan16 bit. Contoh :

Teknik Telekomunikasi Nir Kabel

21

MIKROPROSESOR 8085

SEMESTER 3

DAD D Menyebabkan isi pasangan register HL ditambahkan dengan pasangan regi ter s DE. HL HL + DE Simbol Operasi HL HL HL HL HL + BC HL + DE HL + HL HL + SP Contoh lain dapat dilihat pada tabel di bwah : Mnemonik DAD B DAD D DAD H DAD SP

Instruksi DAD akan mempengaruhi bit Cy dari register flag.

1.3.3 Instruksi Geser Instruksi-instruksi geser digunakan untuk menggeser isi register A. Instruksi-instruksi geser hanya mempengaruhi Carry flag (CY). Instruksi-instruksi geser terbagi menjadi :

1). RAR ( Rotate A Right through carry ) RAR adalah instruksi yang digunakan untuk menggeser isi register A ke kanan melalui carry flag. LSB dari data yang berada pada register A akan mengisi carry flag, sedangkan isi carry flag sebelumnya pindah menjadi MSB.

Contoh : Sebelum instruksi RAR Isi register A = 10001111(2) = 8F(16) Carry flag = 0 Setelah instruksi RAR

Teknik Telekomunikasi Nir Kabel

22

MIKROPROSESOR 8085

SEMESTER 3

Isi register A = 01000111 (2) = 47(16) Carry flag = 1

2). RAL ( Rotate A Left through carry ) RAL adalah instruksi yang digunakan untuk menggeser isi register A ke kiri melalui carry flag. MSB dari data yng berada pada register A akan mengisi carry flag, sedangkan isi carry flag sebelumnya pindah menjadi LSB.

Contoh : Sebelum instruksi RAL Isi register A = 10001111 (2) = 8F(16) Carry flag = 0 Setelah instruksi RAL Isi register A = 00011110 (2) = 1E(16) Carry flag = 1

3). RRC ( Rotate A Right ) RRC adalah instruksi yang digunakan untuk menggeser isi register A ke kanan. LSB akan mengisi MSB dan juga akan mengisi carry flag, sedangkan data sebelumnya yang ada di carry flag akan hilang.

Teknik Telekomunikasi Nir Kabel

23

MIKROPROSESOR 8085

SEMESTER 3

Contoh : Sebelum instruksi RRC Isi register A = 10001111 (2) = 8F(16) Carry flag = 0 Setelah instruksi RRC Isi register A = 11000111 (2) = C7(16) Carry flag = 1

4). RLC ( Rotate A Left ) RLC adalah instruksi yang digunakan untuk menggeser isi register A ke kiri MSB akan mengisi LSB dan juga akan mengisi carry flag, sedangkan data sebelumnya yang ada di carry flag akan hilang.

Contoh : Sebelum instruksi RLC Isi register A = 10001111 (2) = 8F(16) Carry flag = 0 Setelah instruksi RLC Isi register A = 00011111 (2) = 1F(16) Carry flag = 1

Teknik Telekomunikasi Nir Kabel

24

MIKROPROSESOR 8085

SEMESTER 3

1.3.4 Instruksi Logika

1). Instruksi Logika AND Instruksi logika and terbagi menjadi 3 : 1. ANA M ( And Memory with A ) ANA M adalah instruksi yang digunakan untuk melakukan operasi logika and antara isi register A dengan memori. Kemudian hasil operasi disimpan secara otomatis di register A. Contoh : Sebelum instruksi ANA M Isi register A = 10101110 (2) = AE(16) Isi memori alamat 7000 = 01101100 (2) = 6C(16) Setelah instruksi ANA M Isi register A = 00101100 (2) = 2C(16)

2. ANA R ( And Register with A ) ANA R adalah instruksi yang digunakan untuk melakukan operasi logika and antara isi register A dengan isi suatu register lain. Kemudian hasil operasi disimpan secara otomatis di register A. Contoh : Sebelum instruksi ANA R Isi register A = 01011000 (2) = 58(16) Isi register B = 10010011 (2) = 93(16) Setelah instruksi ANA R Isi register A = 00010000 (2) = 10(16)

3. ANI ( And Immediate with A ) ANI adalah instruksi yang digunakan untuk melakukan operasi logika and antara isi register A dengan konstanta. Kemudian hasil operasi disimpan secara otomatis di register A.

Teknik Telekomunikasi Nir Kabel

25

MIKROPROSESOR 8085

SEMESTER 3

Contoh : Sebelum instruksi ANI Isi register A = 01110010 (2) = 72(16) Konstanta = 10011001 (2) = 99(16) Setelah instruksi ANI Isi register A = 00010000 (2) = 10(16) Instruksi logika AND mempengaruhi isi register flag, yaitu Zero flag (Z), Sign flag (S), Parity flag (P), Carry flag selalu dalam kondisi reset (CY = 0) dan Auxiliary Carry selalu dalam kondisi set (AC = 1).

2). Instruksi Logika OR Instruksi logika or terbagi menjadi 3 : 1. ORA M ( Or Memory with A ) ORA M adalah instruksi yang digunakan untuk melakukan operasi logika or antara isi register A dengan memori. Kemudian hasil operasi disimpan secara otomatis di register A. Contoh : Sebelum instruksi ORA M Isi register A = 10101110 (2) = AE(16) Isi memori alamat 8000 = 01101100 (2) = 6C(16) Setelah instruksi ORA M Isi register A = 11101110 (2) = EE(16)

2. ORA R ( Or Register with A ) ORA R adalah instruksi yang digunakan untuk melakukan operasi logika or antara isi register A dengan isi suatu register lain. disimpan secara otomatis di register A. Contoh : Kemudian hasil operasi

Teknik Telekomunikasi Nir Kabel

26

MIKROPROSESOR 8085

SEMESTER 3

Sebelum instruksi ORA R Isi register A = 01011000 (2) = 58(16) Isi register D = 10010011 (2) = 93(16) Setelah instruksi ORA R Isi register A = 11011011 (2) = DB(16)

3. ORI ( Or Immediate with A ) ORI adalah instruksi yang digunakan untuk melakukan operasi logika or antara isi register A dengan konstanta. Kemudian hasil operasi disimpan secara otomatis di register A. Contoh : Sebelum instruksi ORI Isi register A = 01110010 (2) = 72(16) Konstanta = 10011001 (2) = 99(16) Setelah instruksi ORI Isi register A = 11111011 (2) = FB(16) Instruksi logika OR mempengaruhi isi register flag, yaitu Zero flag (Z), Sign flag (S), Parity flag (P), Carry flag selalu dalam kondisi reset (CY = 0) dan Auxiliary Carry selalu dalam kondisi reset (AC = 0).

3). Instruksi Logika Exclusive OR Instruksi logika exclusive or terbagi menjadi 3 : 1. XRA M ( Exclusive Or Memory with A ) XRA M adalah instruksi yang digunakan untuk melakukan operasi logika exclusive or antara isi register A dengan memori. Kemudian hasil operasi disimpan secara otomatis di register A.

Teknik Telekomunikasi Nir Kabel

27

MIKROPROSESOR 8085

SEMESTER 3

Contoh : Sebelum instruksi XRA M Isi register A = 10101110(2) = AE(16) Isi memori alamat 9000 = 01101100 (2) = 6C(16) Setelah instruksi XRA M Isi register A = 11000010 (2) = C2(16)

2. XRA R ( Exclusive Or Register with A ) XRA R adalah instruksi yang digunakan untuk melakukan operasi logika exclusive or antara isi register A dengan isi suatu register lain. Kemudian hasil operasi disimpan secara otomatis di register A. Contoh : Sebelum instruksi XRA R Isi register A = 01011000 (2) = 58(16) Isi register C = 10010011 (2) = 93(16) Setelah instruksi XRA R Isi register A = 11001011 (2) = CB(16)

3. XRI ( Exclusive Or Immediate with A ) XRI adalah instruksi yang digunakan untuk melakukan operasi logika exclusive or antara isi register A dengan konstanta. Kemudian hasil operasi disimpan secara otomatis di register A. Contoh : Sebelum instruksi XRI Isi register A = 01110010 (2) = 72(16) Konstanta = 10011001 (2) = 99(16) Setelah instruksi XRI Isi register A = 11101011 (2) = EB(16)

Teknik Telekomunikasi Nir Kabel

28

MIKROPROSESOR 8085

SEMESTER 3

Instruksi logika Exclusive Or mempengaruhi isi register flag, yaitu Zero flag (Z), Sign flag (S), Parity flag (P), Carry flag selalu dalam kondisi reset (CY = 0) dan Auxiliary Carry selalu dalam kondisi reset (AC = 0).

1.3.5 Instruksi Percabangan Pada mikroprosesor 8085 terdapat instruksi pencabangan, yang digunakan apabila kita ingin melakukan perintah yang sama berulang kali. Proses tersebut dinamakan proses µloop¶, caranya adalah dengan menguji salah satu bit yang terdapat pada register flag. Apabila ingin menguji atau memeriksa salah satu bit pada register flag, maka sebelumnya terlebih dahulu harus diberikan instruksi yang akan mempengaruhi isi dari register flag. Instruksi pencabangan dibagi menjadi dua, yaitu :  Pencabangan bersyarat (conditional) JM, JPE, JPO.  Pencabangan tidak bersyarat 1). JC (Jump if Carry Set) Perintah ini digunakan apabila kita ingin menguji carry bit. Jika carry bit berlogika ³1´, maka program akan melompat ke alamat yang ditulis pada perintah ³JC addr´. Perintah : JMP (jump) dan CALL. Perintah : JC, JNC, JZ, JNZ, JP,

2).

JNC (Jump if Carry Not Set) Perintah ini digunakan apabila kita ingin menguji carry bit. Jika carry bit

berlogika ³0´, maka program akan melompat ke alamat yang ditulis pada perintah ³JNC addr´.

3).

JM (Jump if Minus) Perintah ini digunakan apabila kita ingin menguji sign bit. Program akan

melompat pada alamat tertentu apabila sign bit berlogika ³1´. Contohnya : JM 8005h (apabila sign bit berlogika ³1´ maka program akan melompat ke alamat

Teknik Telekomunikasi Nir Kabel

29

MIKROPROSESOR 8085

SEMESTER 3

8005h, sedangkan apabila sign bit berlogika ³0´ maka program akan berlanjut ke alamat di bawah perintah JM.

4).

JP (Jump if plus) Perintah ini digunakan apabila kita ingin menguji sign bit. Jika sign bit

berlogika ³0¶, maka program akan melompat ke alamat yang ditulis setelah perintah JP.

5).

JZ (Jump if Zero) Perintah ini digunakan apabila kita ingin menguji zero bit. Jika zero bit

berlogika ³1´ maka program akan melompat ke alamat yang ditulis setelah perintah JZ.

6).

JNZ (Jump if not zero) Perintah ini digunakan apabila kita ingin menguji zero bit. Jika zero bit

berlogika ³0¶ maka program akan melompat ke alamat yang ditulis setelah perintah JNZ.

7).

JPE (Jump if Even Parity) Perintah ini digunakan apabila kita ingin menguji parity bit. Jika parity bit

berlogika ³1´, artinya jumlah logika satu dari suatu data hasil operasi yang mempengaruhi register flag berjumlah genap, maka program akan melompat ke alamat yang ditulis setelah perintah JPE.

8).

JPO (Jump if Parity Odd) Perintah ini digunakan apabila kita ingin menguji parity bit. Jika parity bit

berlogika ³0´, artinya jumlah logika satu dari suatu data hasil operasi yang mempengaruhi register flag berjumlah ganjil, maka program akan melompat ke alamat yang ditulis setelah perintah JPO.

Teknik Telekomunikasi Nir Kabel

30

MIKROPROSESOR 8085

SEMESTER 3

9).

JMP (Jump) Perintah ini digunakan apabila kita ingin melompat ke alamat tertentu, akan

tetapi tanpa melibatkan proses pengujian terhadap bit-bit yang terdapat pada register flag. Oleh karena itu, perintah jump dimasukkan ke dalam perintah pencabangan tak bersyarat.

10). CALL Perintah ini digunakan apabila kita ingin menggunakan suatu subrutin. Contohnya CALL 8000h, apabila perintah ini dilakukan maka program akan melompat ke suatu subrutin yang alamatnya 8000h, dan setelah subrutin selesai digunakan maka program akan kembali ke alamat di bawah alamat yang berisi CALL 8000h. Apabila perintah CALL 8000h ditulis pada alamat 9000h maka setelah subrutin digunakan, program akan kembali ke alamat 9001h. PROGRAM UTAMA
LXI H,B204 . . CALL 9000 MOV A,B
LXI B,B204 . . MOV B,C RET

SUBRUTIN

Teknik Telekomunikasi Nir Kabel

31

MIKROPROSESOR 8085

SEMESTER 3

Contoh Program : 1) Buat diagram alir dan program untuk mencari bilangan ganjil terkecil yang ada pada blok memori alamat B204h s/d B23Ch. Simpan hasil pencarian pada register B. Tempatkan program mulai alamat 8000h.  Flowchart
START

Program

Alamat Op-code Label Mnemonik
HL B B204 FF

8000 8003 8005

21 04 B2 06 FF 7E 4F E6 01 CA 12 80 79 B8 D2 12 80 47 2C 7D FE 3D CA 05 80 CF L2 L1

LXI H,B204 MVI B,FF MOV A,M MOV C,A ANI 01 JZ L2 MOV A,C CMP B JNC L2 MOV B,A INR L MOV A,L CPI 3D JZ L1 RST 01

A C A

M A A 01

8006 8007 8009

Z=1

800C 800D

A A

C

÷ B

899E 8011 8012

Cy=0

8013 8014 8016

B

A

L L+1 A L A ÷ 3D

8017

Z=1

STOP

Teknik Telekomunikasi Nir Kabel

32

MIKROPROSESOR 8085

SEMESTER 3

2)

Buat bagan alir dan program untuk mendeteksi kesalahan pariti dari data input yang disimpan pada blok memori I. Asumsikan data tersebut sebagai data hasil pengiriman dari pihak lain dan telah dilengkapi dengan bit parity untuk sistem pariti genap.Simpan hasilnya pada blok memori II dengan mengisi data 00h untuk data yang benar dan mengisi data FFh untuk data yang salah. Alamat blok memori I =A000h s/d A00Fh, dan alamat blok memori II = B000h s/d B00Fh, serta alamat program mulai dari alamat 8000h. 

Flowchart
START

Program

Alamat Op-code Label Mnemonik
HL A00F

8000 8003

21 0F A0 7E C6 00 3E 00 EA 0D 80 3E FF 26 B0 77 26 A0 2D F2 03 80 CF L2 L1

LXI H,A00F MOV A,M ADI 00 MVI A,00 JPE L2 MVI A,FF MVI H,B0 MOV M,A MVI H,A0 DCR L JP L1 RST 1

A A A

M A + 00 00

8004 8006 8008

P=1

800B 800D

A

FF

800F 8010

H M H L

B0 A A0 L-1

8012 8013 8016

S=0

STOP

Teknik Telekomunikasi Nir Kabel

33

MIKROPROSESOR 8085

SEMESTER 3

1.3.5 Instruksi IN dan OUT Instruksi IN dan OUT berfungsi untuk mengatur lalu lintas dengan peralatan I/O. Dalam instruksi OUT, sumber selalu accumulator. Dalam instruksi IN, tujuan adalah accumulator. Di belakang kode operasi IN dan OUT kita hanya perlu mencantumkan nomor pintu (gate number) saja, yaitu alamatnya peralatan I/O (kemana data harus dibawa atau dari mana data harus diambil). Di dalam mikroprosesor 8085, alamat I/O port adalah 51H dan 50H. Untuk alamat saklar 8 bit adalah 51H (alamat port dihubungkan ke saklar). Sedangkan alamat LED 8 bit adalah 50H (alamat port 50 dihubungkan dengan LED). Contoh : 1.Buatlah diagram alir dan program untuk mengaktifkan 8 bit LED secara bergantian mulai dari posisi MSB sampai ke LSB dengan selang waktu 1 detik. ~ Flowchart

Teknik Telekomunikasi Nir Kabel

34

MIKROPROSESOR 8085

SEMESTER 3

~ Program Alamat 8000 8002 8004 8007 800A 800B 800E 8010 8012 Op-Code 3E 80 D3 50 11 E8 03 CD FA 0F 0F D2 02 80 3E 00 D3 50 CF L1 Label Mnemonik MVI A,80 OUT 50 LXI D,03E8 CALL FFA RRC JNC L1 MVI A,00 OUT 50 RST 1

1.4 Sistem Bilangan
Dalam mempelajari sistem bilangan dalam digital, kita tidak mengenal adanya bilangan negatif. Oleh karena itu, kita harus merubah bilangan negatif ke sebuah sistem bilangan. Sistem bilangan ini berlogik 1. Sistem-sistem bilangan itu adalah 1. SBN 2. Komplemen 1 3. Komplemen 2 4. Komplemen 9 5. Komplemen 10 6. Komplemen 15 7. Komplemen 16 menggunakan sign bit yang berfungsi menunjukkan bilangan itu positif atau negatif. Jika positif sign bit

1). SBN
SBN termasuk bilangan biner murni. Bedanya dengan komplemen 1 dan komplemen 2 adalah pemberian bit tambahan pada MSB yang disebut sign bit pada SBN.. Fungsinya adalah membedakan bilangan itu positif atau negatif. Jika suatu biner bernilai negatif, maka sign bit bernilai logik 1.

Teknik Telekomunikasi Nir Kabel

35

MIKROPROSESOR 8085

SEMESTER 3

2).

Komplemen 1 K¶1 dan K¶2 merupakan bilangan biner murni yang hanya terdiri dari 2

kondisi 0 (mati) dan 1 (hidup). Jika suatu bilangan biner bernilai negati, maka nilai-nilai logik pada bilangan tersebut menjadi bernilai logik kebalikannya. Logik 0 menjadi 1 dan logik 1 menjadi 0. Contoh : Biner = - 01001011 SBN = 1 01001011 K¶1 = 1 10110100 3). Komplemen 2 K¶2 hampir mirip seperti K¶1, hanya saja ditambahkan 1 pada LSB-nya. Persamaan K¶2 : K¶2 = K¶1 + 1. K¶1 = K¶2 - 1 Contoh : Biner = - 001010111 SBN = 1 001010111 K¶1 = 1 110101001 4). Komplemen 9 K¶9 dan K¶10 merupakan bilangan basis 10 atau yang kita kenal sebagai bilangan desimal. Jika sign bit suatu bilangan desimal 1 (bernilai negatif), maka nilai K¶9-nya adalah hasil pengurangan dengan angka 9 pada setiap bit (angka) bilangan desimal itu. Persamaan K¶9 : Desimal Murni 0 1 2 3 4 5 6 Komplemen 9 9 8 7 6 5 4 3

Teknik Telekomunikasi Nir Kabel

36

MIKROPROSESOR 8085

SEMESTER 3

7 8 9 Contoh : Desimal murni K¶9 5). = 842952 = 157047 Komplemen 10

2 1 0

Cara mencari nilai K¶10 hampir sama seperti mencari K¶9. K¶10 didapatkan dari hasil penjumlahan K¶9 dengan 1 pada LSB-nya. Persamaan K¶10 : K¶10 = K¶9 + 1 K¶9 = K¶10 - 1 Contoh : Desimal murni K¶9 K¶10 6). = 78529 = 21470 = 21471 Komplemen 15 K¶15 dan K¶16 merupakan bilangan yang berbasis 16. Komplemen dari suatu bilangan heksadesimal adalah pasangan dari bilangan heksa yang jika dijumlahkan bernilai f (15 desimal). Persamaan K¶9 : Heksadesimal 0 1 2 3 4 5 6 7 K¶9 F E D C B A 9 8 Heksadesimal 8 9 A B C D E F K¶9 7 6 5 4 3 2 1 0

Teknik Telekomunikasi Nir Kabel

37

MIKROPROSESOR 8085

SEMESTER 3

Contoh : Heksadesimal K¶9 7). = A742B = 58BD4 Komplemen 16 K¶9 dapat dicari dengan menambah 1 pada LSB bilangan tersebut. Persamaan K¶16 K¶16 = K¶15 + 1 K¶15 = K¶16 ± 1 Contoh : Heksadesimal K¶15 = 2B930 = D46CF

Teknik Telekomunikasi Nir Kabel

38

MIKROPROSESOR 8085

SEMESTER 3

BAB 2

PROGRAM DAN APLIKASI MIKROPROSESOR

2.1 OPERASI ARITMATIKA
2.1.1 Penjumlahan

Contoh pemrogramannya : 1. Buatlah program Penjumlahan 2 bilangan BCD 2 Decade (00-99) Bilangan 1 ada di Reg B. Bilangan 2 ada di Reg C Simpan hasil penjumlahan pada reg HL? Jawab:
START

OP - CODE H L A A A L A A A H 00 B 2600 68 7D L A+C BCD A H A + 00 + Cy BCD A 81 27 6F 7C CE00 27
STOP

MNEMONIC MVI H,00 MOV L,B MOV A,L ADD C DAA MOV L,A MOV A,H ACI 00 DAA MOV H,A RST 1

SIMBOL OPERASI H L A 00 B L

A A+C A L A A BCD A H

A + 00 + Cy A H BCD A

67 CF

STOP

Teknik Telekomunikasi Nir Kabel

39

MIKROPROSESOR 8085

SEMESTER 3

Cat : Karena pada mikroprosesor melakukan operasi baik penjumlahan maupun pengurangan dalam system komplemen dua. Sehingga mikroprosesor 8085 menyediakan instruksi DAA yang memberikan factor koreksi pada saat kita bekerja dengan menggunakan data decimal (BCD), sedangkan pada heksadesimal tidak perlu

menggunakan factor koreksi. 2. Sama dengan soal no 1 tapi penjumlahannya bilangan Hexadecimal (00-FF). Jawab : Sama hanya tinggal buang faktor koreksi bilangan BCD (DAA). START OP - CODE H L A A L A A H 00 B 2600 68 7D L A+C A H A + 00 + Cy A 81 6F 7C CE00 67 CF STOP MNEMONIC MVI H,00 MOV L,B MOV A,L ADD C MOV L,A MOV A,H ACI 00 MOV H,A RST 1 A SIMBOL OPERASI H L A 00 B L

A A+C L A A H

A + 00 + Cy H A

STOP

5. Buatlah diagram alir dan program untuk menambahkan 2 data 16 bit yang berada pada register BC dan DE. Simpan hasil penjumlahan pada reg HL.

Teknik Telekomunikasi Nir Kabel

40

MIKROPROSESOR 8085

SEMESTER 3

MNEMONICS MOV A,C ADD E DAA MOV L,A MOV A,B ADC D DAA MOV H,A RST 1

2.1.2 Pengurangan 1). Buatlah diagram alir dan program untuk mengurangkan data yang ada pada reg B dan reg C (BCD dan heksadesimal) simpan hasilnya pada reg D.

Heksadesimal

BCD

Cat : Karena dalam INTEL 8085 tidak ada program pengurangan secara langsung, maka datnya harus diubah. Pada BCD, nilainya dijadikan dalam K¶9, kemudian baru dikurangkan dengan Reg yang diinginkan

A A A L A A A H

A

Teknik Telekomunikasi Nir Kabel

41

MIKROPROSESOR 8085

SEMESTER 3

setelah itu jadikan K¶10 dengan cara menambahkan dengan 01.dan tifak lupa menggunakan factor koreksi. Sedangkan pada data heksadesimal nilainya dijadikan dalam K¶15. 2). Buatlah diagram alir dan program untuk mendapatkan perhitungan berdasarkan persamaan aritmatika sbb :
A=B+C²D²E+H

Diagram alir

MNEMONICS MVI A, 99 SUB D ADI 01 DAA ADD B DAA MOV L, A MVI A, 99 SUB E ADI 01 DAA ADD C DAA ADD H DAA ADD L DAA RST 1

Teknik Telekomunikasi Nir Kabel

42

MIKROPROSESOR 8085

SEMESTER 3

2.1.3 Perkalian 1). Buatlah diagram alir dan program untuk perkalian 2 data BCD 2 digit yang ada pada reg B dan reg C. Hasil kali disimpan pada reg HL dengan metoda penjumlahan berulang.

LABEL

L1

L2

MNEMONICS LXI HL, 0000 MOV A, B CPI 00 JZ L2 MOV A, C CPI 00 JZ L2 MOV D, C MOV A, L ADD B DAA MOV L, A MOV A, H ADC 00 DAA MOV H, A MVI A, 99 ADD D DAA MOV D, A JNZ L1 RST 1

Teknik Telekomunikasi Nir Kabel

43

MIKROPROSESOR 8085

SEMESTER 3

Metoda pergeseran dan penjumlahan Contoh : 2). Buatlah flowchart dan program untuk mengalikan data berikut : Data 1 Register B
01 34 FF C3 FF

Data 2 Register C
D4 56 10 00 FF

Hasil kali Register HL
00D4 1178 0FF0 0000 FE01

Flowchart: LXI SP,FFFF LXI H,0 PUSH B MVI D,0 MOV E,B MVI B,08 LUP1 : MOV A,C RRC MOV C,A JNC LUP2 DAD D LUP2 : XCHG DAD H XCHG DCR B JNZ LUP1 POP B RST 1

Teknik Telekomunikasi Nir Kabel

44

MIKROPROSESOR 8085

SEMESTER 3

Pada metoda ini Register C digeser ke kanan, diperiksa per bit mulai bit yang paling kanan sampai bit yang paling kiri.

Perkalian dengan Metode Pergeseran dan Penjumlahan Contoh : 1110 0100 x 0000 0000 1110 0000 0111000 Metode Penjumlahan 14 * 10 = 140 (10) reg B 1110 reg C 1010 x 0000 1110 0000 1110 10001100 + = 140 (10) + = 56 (10) 14 * 4 = 56 (10)

Pada metode pergeseran, register pengali yang menjadi acuan. Ada 2 kondisi yang harus dilakukan, yaitu : jika bit 0, geser register B ke kiri sebanyak satu posisi, jika bit 1, register B tambahkan ke register A yang digunakan sebagai penyimpan hasil operasi. Contoh : reg B = reg C = reg B1 = reg B2 = 111000 reg B3 = 1110000 1110 1010 11100

Teknik Telekomunikasi Nir Kabel

45

MIKROPROSESOR 8085

SEMESTER 3

reg A = 0000

11100 + 11100 1110000 + 10001100

Penjelasan penyelesaian : Nilai LSB yang pertama adalah yang paling kanan bernilai bit 0, maka geser register B ke kiri sebanyak satu posisi, sehingga didapatkan : Register B1 = 11100 Nilai LSB yang berikutnya bernilai bit 1, maka tambahkan register B ke register A yang digunakan untuk menyimpan hasil operasi, maka didapatkan : Register B2 = 11100 kali : Register B3 = 111000 Nilai bit yang terakhir adalah bit 1, geser register B kemudian tambahkan isi register B yang telah digeser tadi dengan nilai yang telah ada pada register A tadi sebagai hasil operasi terdahulu, maka didapatkan : Register B4 = 1110000 Maka didapatkan hasil dari seluruh operasi = 10001100 = 140 (10) Catatan : Isi register A awalnya adalah 0 Nilai bit selanjutnya adalah bit 0, maka isi register B harus di geser ke kiri satu

Contoh soal perkalian biner : Buat diagram alir dan program untuk mengalikan 2 data biner 4 bit y ang berada pada register B dan register C. Simpanlah hasil kali pada register A. (range data pada register B dan register C = 00H s/d 0FH)

Teknik Telekomunikasi Nir Kabel

46

MIKROPROSESOR 8085

SEMESTER 3

Flowchart : START

Alamat Op Code Mnemonik A000 A002 A004 XX XX XX XX XX XX XX XX XX XX A009 XXXX XX XX XX XX XX XX XX XX XX XX XX XX A017 XXXX XX XX CF JNZ A004 MOV A, E RST 1 A01A A01C JNC A011 MOV A, E ADD B MOV E, A MOV A, B ADD A MOV B, A DCR D MVI A, 00 MVI D, 04 MOV A, C RRC MOV C, A

A D

00 04

A C RRC C A

A006 A007

Cy = 0

A00C A00E

A

E A+B E A

A

A00F A011 A013

B A A+A B A

A

A014 A016

D D-1

Z=0

A

E

STOP Penjelasan : Pada soal diminta program dan ³flowchart´ untuk mengalikan 2 data biner 4 bit yang berada pada register B dan register C. Hasilnya akan disimpan pada

Teknik Telekomunikasi Nir Kabel

47

MIKROPROSESOR 8085

SEMESTER 3

register A, oleh karena itu isi register A harus dikosongkan terlebih dahulu dengan instruksi A 00 (MVI A, 00). Kita membutuhkan satu register tambahan misalkan register D untuk menampung data biner 4 bit dengan menambahkan instruksi D 04 (MVI D, 04). Ambil satu data yang berada pada register C yang merupakan faktor pengalinya, sebagaimana pada teori terdahulu bahwqa faktor pengali digeser ke kanan untuk mengetahui LSB tersebut memiliki bit 0 atau bit 1. Simpan pada akumulator dengan instruksi A C (MOV A, C). Kemudian geser data pada akumulator tersebut untuk mengetahui LSB-nya bit 0 atau bit 1, dengan memeriksa ³carry´-nya, dimana data tersebut digeser ke kanan satu posisi melalui instruksi RRC. Simpan hasil pergeseran tersebut pada register akumulator kembali dengan instruksi C A (MOV C, A). Periksa isi ³carry´ tersebut, apabila isi ³carry´ tersebut memiliki bit 1 berarti operasi dilanjutkan ke instruksi yang ada di bawahnya., dan apabila ³carry´ = 0, maka instruksi yang akan dilakukan adalah jump ke alamat A011. Sebagaimana operasi sebelumnya apabila ³carry´ = 1 maka operasi dilanjutkan ke instruksi yang ada di bawahnya, yaitu A E (MOV A, E). Di sini kita membutuhkan register E untuk menyimpan data sementara. Tanbahkan data yang ada pada register A dengan data pada register B dengan instruksi A register E kembali E A + B (ADD B), sebagaimana teori terdahulu bahwa kalau A (MOV E, A) B (MOV A, B), A + A (ADD A), ³carry´ = 1, register B tambahkan pada akumulator. Kemudian pindahkan ke Pindahkan data pada register B ke akumulator A kemudian tambahkan kembali dengan isi pada akumulator A kemudian pindahkan kembali ke register B, B A (MOV B, A). Turunkan isi register D, karena sudah dipakai sebanyak satu kali D D ± 1 (DCR D). Periksa ³zero flag´ yang menandakan operasi telah selesai, jika bit ³zero flag´ = 0 maka pindahkan isi register E ke akumulator sebagai hasil

Teknik Telekomunikasi Nir Kabel

48

MIKROPROSESOR 8085

SEMESTER 3

pengoperasian sesuai dengan soal yang diminta, jika ³zero flag´ = 1, ³jump´ ke alamat A004 untuk mengulang operasi sampai didapatkan hasil yang benar.

2.1.4 Pembagian Ada 2 metoda dalam pembagian biner , yaitu : 1. Metoda Pengurangan Berulang 2. Metoda Pergeseran dan Pengulangan 1. Buatlah diagram alir dan program untuk membagi bilangan biner 8 bit yang ada pada register B dengan bilangan biner 8 bit lain yang ada di registerC.Simpan hasil bagi pada register H dan sisa bagi pada register L.
START

LABEL

H L

00 B

A C A : 00 Y C=0 C>0 Z=1 T

L1

L1

A L A: C Y L<C Cy = 1 T L A-C L A H H +1 A Y Cy = 0 T STOP L<C A

L2

MNEMONICS MVI H, 00 MOV L, B MOV A, C CPI 00 JZ L2 MOV A,L CMP C JC L2 MOV A, L SUB C MOV L, A INR H JNC L1 RST 1

L2

Teknik Telekomunikasi Nir Kabel

49

MIKROPROSESOR 8085

SEMESTER 3

Metoda Pengurangan Berulang Buatlah Flowchat dan Program untuk pembagian biner miurni bit berikut : Yang dibagi Register B 0E A7 DF Pembagi Register C D4 04 12 Sisa bagi Register H 05 03 07 Hasil bagi Register L 07 29 0C

FlowChart Program MVI L,00 MOV H,B LUP1 : MOV A,H CNP C JC STP SUB C MOV H,A INR L JMP LUP1 STP : RST 1

Teknik Telekomunikasi Nir Kabel

50

MIKROPROSESOR 8085

SEMESTER 3

Metoda pergeseran dan pengurangan Contoh : Buatlah Flowchart dan program untuk pembagian berikut :

Yang dibagi Register B 55 A7 0E

Pembagi Rgister C 55 04 D4

Sisa bagi Register B 00 03 05

Hasil bagi Register L 01 29 07

START

LXI SP,FFFF MVI H,0 MOV L,B PUSH B MVI B,08 LUP : DAD H MOV A,H CMP C JC LUP2 INR L SUB C MOV B,A LUP : DCR B JNZ LUP1 POP B

SP ? FFFF H ? 00 L ? B SP ? BC B ? 08

HL ? HL + HL A ? H A : C

Cy = 1

L ? L + 1 A ? A ± C H ? A

B ?

B - 1

Z = 0

RST 1

B C ? S ta c k

STOP

Teknik Telekomunikasi Nir Kabel

51

MIKROPROSESOR 8085

SEMESTER 3

Contoh Program Pengurangan BCD Buatlah bagan alir dan program untuk pengurangan berikut :
8523 4782 

4782 harus diubah ke dalam bentuk komplemen 10 K¶10 mengurangkan 9999 dengan 4782 kemudian ditambah 1.

yaitu dengan

Jadi komplemen dari 4782 adalah 5218. Kemudian untuk mencari hasil pengurangan yaitu menjumlahkan 8523 dengan 5218.

9999 4782  5217 0001  5218
8523 5218 
MVI A,99 SUI 82 MOV L,A MVI A,99
START

SUI 47 MOV H,A MVI A,01 ADD L DAA MOV L,A MVI A,00 ADC H DAA MOV H,A MOV A,L ADI 23 DAA MOV L,A MOV A,H ACI 83 DAA MOV H,A RST 01

A ? 99 A ? A - 82 L ? A A ? 99 A ? A - 47 H ? A A ? 01 A ? A + L A ? BCD L ? A A ? 00 A ? A + A + Cy A ? BCD H ? A A ? L A ? A + 23 A ? BCD L ? A A ? H A ? A + 85 + C y A ? BC D H ? A

STO P

Teknik Telekomunikasi Nir Kabel

52

MIKROPROSESOR 8085

SEMESTER 3

2.2 UNIT MEMORI
Fungsi Program Counter Register Program Counter (Reg PC) merupakan register 16-bit yang berfungsi untuk menunjukkan alamat tempat tersimpannya kode operasi yang akan dieksekusi oleh prosesor. Jadi PC selalui berisikan tempat tersimpannya kode instruksi berikutnya yang akan dilakukan oleh prosesor. Saat prosesor sedang melaksanakan instruksi yang pertama, maka pada saat itu PC telah berisi alamat tempat tersimpannya kode instruksi yang kedua. Pada keluarga prosesor INTEL 8086 register ini diberi nama Instrucion Pointer (Register IP).

Fungsi Stack Pointer Register Stack Pointer (Reg SP) merupakan register 16-bit yang berfungsi untuk menunjukkan alamat tempat tersimpannya ³puncak data´ dalam stack. Stack adalah bagian dari unit memori yang digunakan sebagai tempat penyimpanan data sementara. Data yang disimpan atau diamankan de dalam stack berasal dari register 16-bit. Sistem Stack pada mikroprosesor ada dua macam,yaitu:  First In First Out (FIFO)  Last IN First Out (LIFO) Pada prosesor-prosesor INTEL, sistem stack yang digunakan umumnya LIFO. Pada siatem stack ini, data yang akan pertama keluar dari stack adalah data yang masuk terakhir de dalam stack tersebut. Kapasitas data yang masuk maupun keluar pada sistem stack tersebut adalah 16-bit.

Tentang unit memori pada mikroprosesor 8085 Agar komputer dapat bekerja, diperlukan suatu program untuk menjalankannya. Program tersebut harus disimpan dengan cara tertentu agar komputer dapat mengakses setiap perintah secara berurutan. Selain itu juga diperlukan penyimpanan data selama pelaksanaan program. Jenis memori yang

Teknik Telekomunikasi Nir Kabel

53

MIKROPROSESOR 8085

SEMESTER 3

digunakan di sini harus ³cepat´ karena langsung mempengaruhi kecepatan pelaksanaan program. Karena memori ini menyimpan informasi dengan jumlah bit yang relative kecil, biay per detik tidak menjadi masalah. Di sisi lain, seringkali perlu penyimpanan blok informasi berjumlah besar untuk jangka waktu yang lama. Dalam hal ini diperlukan beberapa jenis penyimpanan missal yang biaya per bit-nya harus sangat rendah, meskipun harus dibayar dengan bertambahnya waktu akses.Oleh karena itu, lebih dari satu jenis memori diperlukan dalam hampir semua penerapan. Sebelum menggunakan mikroprosesor 8085 ini, kita harus tahu dan mengenal peta memori yang ada pada sistem tersebut. Dengan mengenal peta memori tersebut kita dapat menempatkan program ke alamat yang tepat yaitu memori yang memang tersedia khusus untuk pemakai (user). Untuk melakukan operasi yang berhubungan dengan mikraprosesor ini, kita biasa menggunakan semacam simulator yang sering disebut ³trainer MIDICOM 8085´. Peta memorinya bisa dilihat seperti gambar berikut: EPROM 2718 PROGRAM MONITOR EPROM 2718 UNTUK PERLUASAN PROGRAM MONITOR RAM 4464 MEMORI MONITOR RAM 4464 DAERAH BASIC RAM 4464 KERJA KERJA

Teknik Telekomunikasi Nir Kabel

54

MIKROPROSESOR 8085

SEMESTER 3

³USER´ RAM

RAM 4464 ³USER´ RAM RAM 4464 ³USER´ RAM RAM 4464 ³USER´ RAM RAM 4464 ³USER´ RAM

2.2.1 Interfacing Memory Unit

Teknik Telekomunikasi Nir Kabel

55

MIKROPROSESOR 8085

SEMESTER 3

Contoh : Merancang suatu rangkaian decoder (dengan 2 cara basic gates dan chip decoder) untuk menghubungkan processor yang memiliki 16 saluran alamat dengan unit memori yang memiliki IC memori dengan input chip select µactive low¶ sebagai berikut : EPROM1 = 2 KByte EPROM2 = 2 KByte RAM1 = 4 KByte RAM2 = 4 KByte
0000 EPROM 07 F F 0800 EPROM 0FFF 1000 1FFF 2000 RAM

a.

RAM 2FFF 3000 K O S O N G

Input A13 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 0 0 0 0 1 1 1 1 A12 0 0 1 1 0 0 1 1 A11 0 1 0 1 0 1 0 1 X3 1 1 1 1 0 0 d d

Output X2 1 1 0 0 1 1 d d X1 1 0 1 1 1 1 d d X0 0 1 1 1 1 1 d d

X0 = A11 + A12 + A11 X1 = A13 + A12 + A11

Teknik Telekomunikasi Nir Kabel

56

MIKROPROSESOR 8085

SEMESTER 3

X2 = A12 X3 = A13

b.

2.2.2 Operasi Pada Blok Memori Operasi pada blok memori merupakan operasi yang sering dilakukan terutama pada program-program yang ditulis dalam bahasa rakitan (assembly).Operasi ini berkaitan dengan dengan data-data yang berada pada satu atau lebih blok memori. Program-program yang berhubungan dengan operasi ini misalnya, mengosongkan blok memori, mengisi blok memori dengan data yang berurutan, dan membalik urutan data. Sebenarnya, suatu lokasi memori terdiri dari sejumlah elemen penyimpan informasi yang biasa disebut flip-flop.Sehingga tidak tepat jika kita akan mengisi suatu blok memori dengan data 00h dan kita menyebutnya dengan mengosongkan

Teknik Telekomunikasi Nir Kabel

57

MIKROPROSESOR 8085

SEMESTER 3

data. Lokasi memori tidak pernah kosong, tetapi berisi data 00h,artinya output seluruh flip-flop di lokasi memori tersebut adalah nol. Untuk lebih menyederhanakan program untuk mengisi suatu blok memori dengan data-data heksadesimal yamg berurutan digunakan ³loop´.Data-data yang diisikan pada masing-masing lokasi memori umumnya berasal dari suatu register yang digunakan sebagai penghitung (counter). Register penghitung tersebut mulamula diisi dengan suatu dat awal yang nilainya merupakan nilai data pada alamat terkecil dari blok memori yang digunakan. Isi register penghitung tersebut akan dipindahkan pada lokasi memori pertama dalam blok memori. Kemudian isi register penghitung dinaikkan dan diisikan pada lokasi memori berikutnya. Begitulah langkah-langkah tersebut terus diulang sampai seluruh lokasi memori terisi semua. Bila kita ingin mengisi suatu blok memori dengan data-data desimal yang berurutan caranya sama dengan mengisi blok memori dengan data-data heksadesimal seperti diatas, hanya perlu menambahkan faktor koreksi agar penghitung selalu menjadi data BCD (decimal) yaitu dengan menuliskan instruksi DAA. Program lain yang sering digunakan pada operasi blok memori adalah membalik urutan suatu data blok memori, artinya data yang ada pada alamat terkecil suatu blok memori ditukarkan dengan data yang ada pada alamat terbesar suatu blok memori. Lalu data kedua dari memori bagian atas ditukar dengan data kedua dari blok memori bagian bawah. Begitulah seterusnya hingga semua data pada suatu blok memori terbalikl urutannya.Untuk lebih jelasnya lihat gambar :

Teknik Telekomunikasi Nir Kabel

58

MIKROPROSESOR 8085

SEMESTER 3

Data 1 Data 2 Data 3 Data 4 Data 5 data sebelum dieksekusi

Data 5 Data 4 Data 3 Data 4 Data 5 data sesudah dieksekusi

Berikut ini akan diberikan beberapa contoh soal dan penyelesaiannya untuk lebih memahami tentang operasi blok memori ini. Contoh 1 : (tentang pengosongan / mengisi suatu blok memori dengan data 00h ) Buatlah diagram alir dan program untuk mengisi suatu blok memori dengan dat 00h mulai alamat A000h sampai A000h ,dan tulis program saudara mulai alamat 1000h. Jawaab Flowchart :
START

A? 00h HL? A000h C? 10h

M? A HL? HL+1 C? C-1

Z=0

STOP

Teknik Telekomunikasi Nir Kabel

59

MIKROPROSESOR 8085

SEMESTER 3

Program : ALAMAT 7000h 7002h 7005h 7107h 7008h 7009h 700Ah 700Dh KODE OPERASI 3E 00 21 00 A0 0E 00 77 23 0D C2 07 70 CF LABEL A 00h HL A000h MNEMONIK MVI A,00h LXI H,A000h MVI C,00h MOV M,A INX H DCR C JNZ 7007 RST 1

C C-1 M HL A HL +1

C C-1 Z=0 STOP

Contoh 2 : ( mengisi blok memori dengan data heksadesimal ) Buatlah bagan alir dan program untuk mengisi suatu blok memori dengan alamat A100h dengan data heksadesimal secara berurutan mulai 00h s.d. 0Fh, tulis program mulai alamat 7100h. Jawab : Flowchart :
START

A? 00h HL? A100h C? 10 M? A HL? HL+1 A? A+1 C? C-1

Z=0

STOP

Teknik Telekomunikasi Nir Kabel

60

MIKROPROSESOR 8085

SEMESTER 3

Program : ALAMAT 7100h 7102h 7105h 7106h 7107h 7108h 7109h 710Ah 710Dh KODE OPERASI 3E 00 21 00 A1 0E 10 77 23 3C 0D C2 06 71 CF LABEL A 00h HL A100h MNEMONIK MVI A,00h LXI H,A100h MVI C,10h MOV M,A INX H INR A DCR C JNZ 7106 RST 1

C 10h M HL A A HL+1 A+1

C C-1 Z=0 STOP

Contoh 3 : ( mengisi blok memori dengan data decimal ) Buatlah diagram alir dan program untuk mengisi blok memori alamat A200h s.d A20Fh dengan data desimal secara berurutan mulai 00 sampai 15, tulis program mulai alamat 7200h. Jawab : Flowchart :

START

A20Fh A? L A? A+00 A? BCD M? A L? L-1 S=0

STOP

Teknik Telekomunikasi Nir Kabel

61

MIKROPROSESOR 8085

SEMESTER 3

Program : ALAMAT 7200h 7203h 7204h 7206h 7207h 7208h 7209 720c KODE OPERASI 21 00 A2 7D C5 00 27 77 2D F2 03 72 CF LABEL HLA200h AL AA+00 ABCD MA LL-1 S=0 STOP MNEMONIK LXI H,A200h MOV A,L ADI 00 DAA MOV M,A DCR L JP 7203 RST 1

Contoh 4 : ( mengubah urutan data dalam suatu blok memori ) Buatlah bagan alir dan program untuk membalik urutan data-data yang berada dalam blok memori alamat A300h sampai A30Fh., tulis program mulai alamat 7300h. Jawab : Flowchart :

Teknik Telekomunikasi Nir Kabel

62

MIKROPROSESOR 8085

SEMESTER 3

Program : ALAMAT 7300h 7303h 7306h 7307h 7308h 7309h 730Ah 730Bh 730Ch 730Dh 730Eh 730Fh 7312h KODE OPERASI 21 00 D3 01 0F A3 0A 55 77 7A 0A 2C 0D 7D 3F DA 06 73 CF LABEL HLD300h BCD30Fh ABC DM MA AD BCA LL+1 CC-1 AL A-:-C CY=1 STOP MNEMONIK LXI H,D300h LXI B,D30Fh LDAX B MOV D,M MOV M,A MOV A,D STAX B INR L DCR C MOVA,L CMP C JC 7306 RST 1

2.3 DATA HEKSADESIMAL DAN DATA DESIMAL
Sebelum mulai membahas tentang penjumlahan data heksadesimal dan data decimal, terlebih dahulu kita harus memahami tentang instruksi-instrukai aritmatika yang telah dibahas dimuka.Untuk lebih jelasnya, kita mulai saja langsung ke contoh soal dan pembahasannya. Contoh 1 ( penjumlahan data heksadesimal ) : Buatlah bagan alir dan program untuk menjumlahkan data-data heksadesimal yang berada pada register-register D, E, H, dan L. Simpan hasilnya pada register A dan gunakan register B untuk menyimpan ³carry bit´. Tulis program tersebut mulai alamat 2000h.

Teknik Telekomunikasi Nir Kabel

63

MIKROPROSESOR 8085

SEMESTER 3

Jawab : Flowchart:

Program : ALAMAT 2000h 2001h 2002h 2003h 2005h 2007h 2008h 8009h 800Ah 800Bh 800Ch 800Eh KODE OPERASI 7A 83 4F 3E 00 CE 00 BA 79 84 4F 78 CE 00 47 LABEL A D A A+E MNEMONIK MOV A,D ADD E MOV C,A MVI A,00 ACI 00 MOV B,A MOV A,C ADD H MOV C,A MOV A,B ACI 00 MOV B,A

C A A 00 A A+00+CY

B A A C A A+H

C A A B A A+00+CY

B A

Teknik Telekomunikasi Nir Kabel

64

MIKROPROSESOR 8085

SEMESTER 3

800Fh 8010h 8011h 8012h 8013h 8015h 8016h 8017h 8019h 801Ah 801Bh

79 85 4F 78 CE 00 4F 78 CE 00 47 79 CF

A C A A+L

MOV A,C ADD L MOV C,A MOV A,B ACI 00 MOV C,A MOV A,B ACI 00 MOV B,A MOV A,C RST 1

C A A B A A+00+CY

C A A B A A+00+CY

B A A C STOP

Contoh 3 (penjumlahan bilangan decimal 2 digit) : Buatlah program untuk menjumlahkan 9 bilangan decimal 2 digit yang berada pada alamat C000h sampai C008h. Simpan hasilnya pada alamat C00Ah dan C009h. Tulis program saudara mulai alamat 8200h. Jawab : Bagan alir:

Teknik Telekomunikasi Nir Kabel

65

MIKROPROSESOR 8085

SEMESTER 3

Program : ALAMAT 8200H 8203H 8205H 8208H 8209H 820AH 820BH 820CH 820DH 820FH 8210H 8211H 8212H 8215H 8216H 8217H 8218H 8219H KODE OPERASI 21 00 D0 16 09 21 00 00 79 86 27 4F 78 CE 00 47 2C 15 C2 08 82 2C 71 2C 70 CF LABEL HL D BC 9 0 D000H MNEMONIK LXI H,C000H MVI D,9 LXI B,00 MOV A,C ADD M DAA MOV C,A MOV A,B ACI 00 MOV B,A INR L DCR D JNZ 8208H INR L MOV M,C INR L MOV M,B RST 1

A C A A+M

A BCD C A A B A A+00+CY

B A L L+1 D Z=0 L L+1 M C L L+1 M B STOP D-1

Teknik Telekomunikasi Nir Kabel

66

MIKROPROSESOR 8085

SEMESTER 3

2.3.1 Sistem Komplemen 9 dan Komplemen 10 Sistem Komplemen 9 Desimal K' 9 0 1 2 3 4 5 6 7 8 9 9 8 7 6 5 4 3 2 1 0

Tabel di atas hanya berlaku untuk bilangan negatif saja. Contoh : bila ada suatu bilangan negatif (-6), maka nilai komplemen 9 dari bilangan tersebut adalah 3. Contoh lain : -5 -7 nilai itu sendiri. Contoh : 8 Contoh : -35 + 13 9 9 (K¶ 9) 8 (K¶ 9) -2 4 (K¶ 9) 2 (K¶ 9) 7 (K¶ 9)

Sedangkan untuk bilangan positif, komplemen 9 dari bilangan tersebut adalah

Operasi penjumlahan menggunakan konsep komplemen 9. 48 48 64 + 112 1 + 13

Teknik Telekomunikasi Nir Kabel

67

MIKROPROSESOR 8085

SEMESTER 3

Pada operasi penjumlahan tersebut terdapat ³carry´ bernilai (1), sehingga dalam konsep komplemen 9 nilai tersebut dijumlahkan dengan bilangan paling kanan atau LSB. Contoh lain : -35 48 + 13 64 48 + 112 1 + 13 -48 35 + -13 -4,345 23,72 + perhitungan biasa : 51 35 + 86 = -13 (10) 23,720 4,345 19,375

95,654 23,720 + 119374 1 + 19,375

Sistem Komplemen 10 Sistem komplemen 10 (K¶ 10) merupakan komplemen 9 yang ditambahkan dengan nilai (1). Sistem komplemen 10, seluruh operasi aritmatika diselesaikan dengan penjumlahan, sehingga dipergunakan instruksi DAA sebagai faktor koreksi. Contoh : Desimal (BCD) 0 12 K' 10 0 12

Teknik Telekomunikasi Nir Kabel

68

MIKROPROSESOR 8085

SEMESTER 3

131 400 2257 5000 6677 9999

131 400 2257 5000 6677 9999

Catatan : ingat bahwa nilai komplemen dari bilangan positif adalah bilangan itu sendiri. Contoh : Desimal (BCD) K' 9 0 23 423 -23 -423 -6000 -6623 -9009 -9999 -5423 0 23 423 76 576 3999 3376 0110 0000 4576 K' 10 0 23 423 77 577 4000 3377 0111 0001 4577

Contoh operasi aritmatika dalam sistem komplemen 10 : Cara penyelesaian :
- pertama-tama operasi pengurangan harus diubah jadi operasi penjumlahan - tanda bilangan dari data pengurang diubah menjadi negatif.

48 -35 +

48 65 + 113 = 13

Teknik Telekomunikasi Nir Kabel

69

MIKROPROSESOR 8085

SEMESTER 3

Catatan : karena komplemen 10, nilai komplemen 9 dari bilangan negatif (±35) adalah 64 ditambahkan dengan nilai (1), sehingga diperoleh hasil dari komplemen 10 adalah 65. Pada sistem komplemen 10, ³carry´ yang muncul pada operasi penjumlahan tidak dihiraukan atau diabaikan saja. Contoh lain : -35 48 + -48 -35 + -83 -48 35 + -13 -432 97 + -335 -843 -279 + 52 65 + 117 = 17 = -83 52 35 + 87 = -13 568 097 + 665 = -335 65 48 + 113 = 13

9157 9721 + 18878 = -1122

Catatan : karena hasil dari penjumlahan tersebut terdiri dari 4 digit sedangkan soal terdiri dari 3 digit maka perlu penambahan angka nol (0) di awalnya. -4,345 23,72 + 95,655 23,720 + 119,375 = 19,375 04,345 + 76,280 + 80,625 = -19,375

4,345 -23,72

Teknik Telekomunikasi Nir Kabel

70

MIKROPROSESOR 8085

SEMESTER 3

2.3.2 Konversi Data Konversi Data Desimal ke Komplemen Sepuluh Untuk dapat mengkonversikan suatu data desimal ke bentuk data dalam komplemen sepuluh, terlebih dahulu harus mencari data dalam komplemen sembilan dari data desimal tersebut, baru setelah itu ditambah 1 untuk mendapatkan nilai komplemen sepuluhnya. Setiap data desimal bernilai positif atau nol mempunyai bentuk yang sama dalam komplemen sembilan maupun sepuluh yaitu data desimal itu sendiri. Berikut ini adalah contoh konversi data desimal ke bentuk data dalam sistem bilangan komplemen sembilan dan sepuluh.

Desimal (BCD) 0 +23 +5423 -23 -6623

Komplemen 9 0 23 5423 76 3376

Komplemen 10 0 23 5423 77 3377

Contoh Soal : a) Buatlah bagan alir dan program mengubah data desimal 2 digit bernilai negatif yang berada pada blok memori alamat D200h ± D20Fh ke dalam bentuk komplemen sepuluh. Simpan hasilnya pada blok memori alamat D300h ± D30Fh. Tulis program mulai alamat 8000h.

Teknik Telekomunikasi Nir Kabel

71

MIKROPROSESOR 8085

SEMESTER 3 

Flowchart
START

HL C

D200 10

A A A A H M H L C

99 A-M A + 01 BCD D3 A D2 L+1 C-1

Z=0

STOP 

Program Alamat 8000 8003 8005 8007 8008 8009 800A 800C 800D 800F 8010 Op - Code Label 21 00 D2 0E 10 3E 99 96 3C 27 36 D3 77 36 D2 2C 0D L1 Mnemonik LXI H,D200 MVI C,10 MVI A,99 SUB M INR A DAA MVI H,D3 MOV M,A MVI H,D2 INR L DCR C

Teknik Telekomunikasi Nir Kabel

72

MIKROPROSESOR 8085

SEMESTER 3

8011 8014

C2 05 80 CF

JNZ L1 RST 01

Konversi Data Komplemen Sepuluh Menjadi Data Desimal Untuk mengkonversikan data dari bentuk komplemen sepuluh menjadi data desimal, maka langkah pertama yang harus dilakukan adalah mengubah data komplemen sepuluh tersebut menjadi data komplemen sembilan terlebih dahulu, baru kemudian diubah menjadi data desimal. Contoh Soal : a) Buatlah bagan alir dan program mengubah data dalam bentuk komplemen sepuluh 2 digit yang berada pada blok memori alamat D400h ± D40Fh ke dalam bentuk desimal. Simpan hasilnya pada blok memori alamat D500h ± D50Fh. Tulis program mulai alamat 8500h.  Flowchart
START

HL C

D400 10

A A B A A H M H L C

M A - 01 A 99 A²B D5 A D4 L+1 C-1

Z=0

STOP

Teknik Telekomunikasi Nir Kabel

73

MIKROPROSESOR 8085

SEMESTER 3 

Program Alamat 8500 8503 8505 8506 8507 8508 850A 850B 850D 850E 8510 8511 8512 8015 Op - Code Label 21 00 D4 0E 10 7E 3D 47 3E 99 90 26 D5 77 26 D4 2C 0D C2 05 80 CF L1 Mnemonik LXI H,D400 MVI C,10 MOV A,M DCR A MOV B,A MVI A,99 SUB B MVI H,D5 MOV M,A MVI H,D4 INR L DCR C JNZ L1 RST 01

Teknik Telekomunikasi Nir Kabel

74

MIKROPROSESOR 8085

SEMESTER 3

2.4 DELAY (PENUNDAAN)
Merancang Program Subrutin Delay Program delay dapat dibuat dengan loop sederhana. Prinsipnya adalah dengan mengatur penggunaan instruksi-instruksi yang jumlah waktu eksekusinya sesuai dengan lamanya delay yang diinginkan. Pada prosesor 8085, lamanya waktu pelaksanaan setiap instruksi tidak sama. Contoh : Lama Instruksi MOV A, B MOV A, M MVI A, 23 MVI M, 23 RST 1 RET CALL ABCD JP 9A2C JMP 9234 NOP CMP C CMP M CPI 42 T = clock periode Pada trainer MIDICOM, frekuensi yang digunakan = 3,072 MHz Tc = 1 detik = 0,325 s 3,072.10 6 Eksekusi 4T 7T 7T 10T 12T 10T 18T 7/10T 10T 4T 4T 7T 7T

Teknik Telekomunikasi Nir Kabel

75

MIKROPROSESOR 8085

SEMESTER 3

Perintah transfer data yang berhubungan antara register dan memori memerlukan waktu yang lebih lama daripada transfer data antara register dan konstanta. Pada perintah JP 9A2C, lama eksekusinya ada 2 keadaan, karena perintah itu bersyarat, dia akan lompat pada saat ³sign bit´ = 0. apabila melakukan lompatan waktunya 10T, sedangkan jika tidak melakukan lompatan waktunya 7T. Secara otomatis/internal, yang dilakukan prosesor apabila bertemu dengan perintah CALL : - menyimpan alamat instruksi berikutnya dalam stack - mengisi program counter dengan alamat subrutin yang akan dilaksanakan. Secara otomatis/internal, yang dilakukan prosesor apabila bertemu dengan perintah RET adalah mengambil alamat dari ³stack´ ke PC. Apabila membuat subrutin, jangan lupa mengakhirinya dengan RET (return). Dalam program subrutin ada return bersyarat dan return tak bersyarat. Contoh return bersyarat adalah RP returnss = 0, RC Contoh return tak bersyarat adalah RET. Contoh : Merancang suatu subrutin delay 1ms untuk digunakan pada modul trainer MIDICOM. Program Pemanggil START _ _ _ CALL A000 _ _ 18Tc (n-1)10Tc n * 4Tc 1 * 7Tc Z=0 return Cy = 1, dst.

D 1 * 7Tc

n

D D-1

RET

Teknik Telekomunikasi Nir Kabel

76

MIKROPROSESOR 8085

SEMESTER 3

Misal subrutin ditulis pada alamat awal A000H Jumlah Mnemonik Clock MVI D,n L1 DCR D JNZ L1 RET 7 4 7 / 10 10 Time

Catatan : Jumlah time clock akan bernilai 7 saat instruksi tidak, dan akan bernilai 10 saat instruksi ya. Delay akan maksimum jika diisi dengan nol (0). Dalam trainer MIDICOM, frekuensi clock yang digunakan = 3,072 MHz. Time Clock = 1 / 3,072.106 = 0,325 s. n = 1, delay = 46 Tc = 46 . 0,325 s = 14,95 s n = 2, delay = 60 Tc = 60 . 0,325 s = 19,5 s dari keterangan yang diperoleh di atas dapat dirumuskan secara umum subrutin delay dengan menggunakan bantuan sebuah register, yaitu : Time delay = (7+10+7+18+4n+10n±10) Tc = (32 + 14n) Tc delay maksimum di dapat pada saat n = 0 (n = 256) n = 0, delay = (14 * 256 + 32) Tc = 3616 Tc = 1,175 ms agar delay = 1 ms, maka :
1000 delay = 0 , 325 Tc = 3076,9 Tc

oleh karena kurang 0,1 Tc

~ 3077 Tc

Teknik Telekomunikasi Nir Kabel

77

MIKROPROSESOR 8085

SEMESTER 3

maka 3077 Tc = 14n + 32 14n = 3077 ± 32 14n = 3045 n=
3045 = 217,5 14

n = 217 = d9(16) Jika n = d9, maka : delay = [ 14 ( 217 ) + 32 ] . 0,325 s = 3070 Tc Pada perhitungan sebelumnya, kita membutuhkan 3077 Tc sedangkan harga n yang dihasilkan hanya 3070, maka ³flowchart´ yang harus dirancang adalah
SUBRUTIN DELAY

D D

D9 D-1

Z=0 D 0
RET

selisih delay yang didapat = 0,1 Tc = 0,0325 s PENGKOREKSI (+7Tc) % error =
0,0325 s x 100% = 0,00325 % 1000 s

Teknik Telekomunikasi Nir Kabel

78

MIKROPROSESOR 8085

SEMESTER 3

Program Delay dengan Bantuan 2 Buah Register

delay

B

n

C

m

C C-1

Z=0

Z=0

(n-1)10Tc

B

B-1

RET

CALL XXXX MVI B, n L1 L2 MVI C, m DCR C JNZ L 2 DCR B

18Tc 1 * 7Tc n * 7 Tc ( m * n ) 4Tc ( 10 mn - 3n ) Tc n * 4Tc

Teknik Telekomunikasi Nir Kabel

79

MIKROPROSESOR 8085

SEMESTER 3

Rumus umum : 14mn + 18n + 32 n = 1 dan m = 1 n=1 m = 10 [ mn ± n ] n=2 2x ke bawah m = 10 18x ³jump´ 1x ke bawah

9x ³jump´ = ( 14mn + 18n + 32 )Tc

Time delay = ( 18 + 10 + 7 ) + 7n + 4mn + 10mn + 3n + 4n + 10n ± 3

n = 256 m = 256 delay = 18 ( 256 ) + 14 ( 256 ) 2 + 32 = 922.144 Tc 299,6968 ms Rumus Umum 18 n + 49mn + 32 Jika n = m = 0 Delay = 18 ( 256 ) + 49 ( 256 ) 2 + 32 = 3.215.904 Tc = 1,045 s agar 1 s = 1.000.000 s 1.000.000 Tc = 3.076.923,077 Tc 0,325 = 3.076.923 Tc kurang 0,077 Tc

Teknik Telekomunikasi Nir Kabel

80

MIKROPROSESOR 8085

SEMESTER 3

Program dengan Bantuan 3 Buah Register delay

B

n

C

m

D

o

D

D-1

Z=0

C C -1

Z=0

B

B-1

Z=0

RET Rumus Umum : =18+7+7m+7mn+4mno+10mno-10mn+7mn+4mn+10mn-10n+7n+4n+10n10+7+10 = 14mno + 18mn + 18n + 32

Teknik Telekomunikasi Nir Kabel

81

MIKROPROSESOR 8085

SEMESTER 3

2.5 METODE LOOK-UP TABLE
Metode ini digunakan untuk suatu sistem yang input dan outputnya random. Contoh pada kehidupan sehari-hari adalah mesin kasir di supermarket, metode look up table-nya terjadi pada saat melakukan cash register, input = kode barang dan output = harga barang. Metode look-up table dibuat dengan tujuan sebagai berikut :
o Menghindari metode perhitungan. o Meningkatkan resolusi.

Pada metode ini harga barang sudah diketahui dalam suatu blok memori, jadi kita hanya perlu menuliskan kode barang, maka secara otomatis kode tersebut akan menunjukkan tempat terdapatnya harga barang pada alamat memori tertentu. Berikut ini adalah contoh tabel kode barang dengan harga barangnya. Nama Kode Barang Barang 0 1 2 3 4 5 6 7 8 9 Semen Paku Asbes Keramik A Keramik B Keramik C Cat A Cat B Baut A Baut B Harga Barang Rp. 40.000 Rp. 10.000 Rp. 49.000 Rp. 30.000 Rp. 70.000 Rp. 20.000 Rp.400.000 Rp. 75.000 Rp. Rp. 200 300

Dari tabel di atas kita bisa membuat tabel datanya, akan tetapi sebelumnya harus ditentukan dahulu berapa alamat memori yang dibutuhkan untuk menyimpan masing-masaing harga. Patokan untuk menentukan berapa alamat

Teknik Telekomunikasi Nir Kabel

82

MIKROPROSESOR 8085

SEMESTER 3

memori yang dibutuhkan adalah harga barang yang paling mahal, kalau pada tabel di atas harga yang paling mahal adalah Rp.400.000. Harga tersebut terdiri dari 6 digit, karena setiap alamat memori pada mikroprosesor 8085 hanya bisa menyimpan data 2 digit, maka kita memerlukan 3 alamat memori untuk menyimpan harga tersebut. Berarti apabila kita memiliki 10 barang dengan harga yang berbeda-beda, diperlukan 30 alamat memori untuk membuat tabel datanya.  Tabel data 00 00 2 A003 4 5 A006 7 8 04 00 00 01 00 90 04 Kode barang = 9 Kode barang = 1 Kode barang = 2 Kode barang = 0

A000 1

A01B 1C 1D

00 03 00

Catatan : Nilai yang lebih tinggi disimpan di alamat yang lebih tinggi juga.

Teknik Telekomunikasi Nir Kabel

83

MIKROPROSESOR 8085

SEMESTER 3 

Tabel pembelian barang Kode Barang 00 03 06 Total Harga Jumlah Harga 07 20 03 ( 6 digit ) BCD

A100 1 2

00 03 06

A200 1 2

07 20 03

Kode Barang (BCD)

Jumlah Barang (BCD)

A300 1 2

A400 1 2

00 00 00

Hasil kali jumlah barang dan harga (BCD)

Total harga awal (BCD)

Untuk membuat programnya perlu ditentukankan beberapa hal, yaitu :
o Jumlah item transaksi = 3 o HLJ pointer alamat ke harga barang. o BCJ pointer alamat kode barang dan jumlah harga.

Teknik Telekomunikasi Nir Kabel

84

MIKROPROSESOR 8085

SEMESTER 3 

Flowchart

L

Teknik Telekomunikasi Nir Kabel

85

MIKROPROSESOR 8085

SEMESTER 3

Teknik Telekomunikasi Nir Kabel

86

MIKROPROSESOR 8085

SEMESTER 3

Pangkat 8 Buatlah program untuk menentukan pangkat 8 dari data input: INPUT
1000 1001 1002 1003 6 7 8 3

OUTPUT
2000 2001 2002 2003 2004 2005

68 ! 1679616

7 8 ! 5764801

3003 3002 3001 3000 4003 4002 4001 4000 + 3003 3002 3001 3000

2006 2007 2008 2009 200A 200B 200C 200D 200E 200F

8 8 | 16777216

38 | 6561

Teknik Telekomunikasi Nir Kabel

87

MIKROPROSESOR 8085

SEMESTER 3

LXI SP,FFFF LXI H,1003 LXI D,200F 1: MOV C,M MOV A,C STA 3000 MVI A,00 STA 3001 STA 3002 STA 3003 MCI B,07 2: CALL SUB DCR B JNZ 2 PUSH H LXI H,3003 3: MOV A,M STAX D DCR E DCR L JP 3 POP H DCR L JP 1 RST 01 SUB: PUSH H PUSH B DCR C LXI H,3003 LUP1 : MOV A,M MVI H,40 MOV M,A MVI H,30 DCR L JP LUP1 LUP2 : MVI B,04 ADI 00 MVI L,00 LUP3 : MOV A,M MVI H,40 ADC M DAA MVI H,30 MOV M,A INR L DCR B JNZ LUP3 DCR C JNZ LUP2 POP B POP H RET 01

Teknik Telekomunikasi Nir Kabel

88

MIKROPROSESOR 8085

SEMESTER 3

2.6 PENGURUTAN DATA (DATA SORTING)
Secara garis besar pengurutan data ada dua macam : 1. 2. Ascending Order yaitu mengurutkan data dari mulai nilai terkecil ke nilai Descending Order yaitu mengurutkan data dari mulai nilai terberas ke Jenis data yang diurutkan dapat berupa data bilangan maupun data karakter. Untuk data berupa bilangan bilangan negative dianggap lebih kecil dari bilangan positif. Untuk data berupa karakter , data yang didahului huruf A dianggap lebih kcil disbanding dengan data yang didahului dengan hurup B. Proses pengurutan data bilangan seringkali diperlukan misalnya untuk mengurutkan data nilai hasil suatu ujian semester mulai dari nilai terkecil ke nilai terbesarataupun dari nilai terbesar ke terkecil. Proses pengurutan karakter seringkali diperlukan misalnya untuk mengurutkan daftar nama mulai dari nama yang didahului dari huruf A sampai kepada nama yang didahului oleh huruf Z. Disusun berdasarkan huruf abjad. Untuk dapat membuat program-program pengurutan data dalam bahasa rakitan yang perlu diperhatikan terutama adalah jenis system bilangan yang dipergunakan pada struktur data. Jika data yang tersedia merupakan bilangan decimal (BCD , maka pengurutan bilangan atau data harus dilakukan berdasarkan garis bilangan yang berlaku dalam system bilanagn decimal. Jika data yang tersedia merupakan bilangan heksa decimal murni maka pengurutan dat harus berdasarkan garis bilangan heksa decimal murni. Dan apabila adata yang diurutkan merupakan bilangan heksadesimal komplemen 16, maka pengurutan data harus berdasarkan garis bilangan yang berlaku dalam system bilangan heksadesimal komplemen 16. Garis bilangan heksadesimal murni terbesar. terkecil.

Teknik Telekomunikasi Nir Kabel

89

MIKROPROSESOR 8085

SEMESTER 3

Garis bilangan heksadesimal komplemen 16

Contoh Ascending Order Buatlah Flowchart dan program untuk mengurutkan turun data heksadesimal pada blok memori D500 sampai D50F. Tempatan hasil pada blok memori E500 sampai E50F. Flowchart

Teknik Telekomunikasi Nir Kabel

90

MIKROPROSESOR 8085

SEMESTER 3

Program LXI H,D50F LUP1 :MOV A,M MVI H,E5 MOV M,A MVI H,D5 DCR L JP LUP1 LXI H,E50F CALL SORT RST 01

SUBRUTIN SORT: MOV D,H LP1: MOV E,L DCR E LP2; LDAX D CMP M JC LP3 MOV B,A MOV A,M MOV M,B STAX D Lp3: DCR E JP LP2 DCR L JNZ LP1 RET

Teknik Telekomunikasi Nir Kabel

91

MIKROPROSESOR 8085

SEMESTER 3

Contoh Descending Order Buatlah flowchart dan program untuk mengurutkan naik data heksa decimal komplemen.

Teknik Telekomunikasi Nir Kabel

92

MIKROPROSESOR 8085

SEMESTER 3

PROGRAM LXI H,200F LUP1: MOV A,M MVI H,30 MOV M,A MVI H,20 DCR L JP LUP1 LXI H,300F CALL SORT RST 01 RET

SUBRUTIN MOV D,H LUP1: LUP2: MOV E,L DCR E LDAX D CMP M JNC LUP3 MOV B,A MOV A,M MOV M,B STAX D LUP3: DCR E JP LUP2 DCR L JNZ LUP1

Teknik Telekomunikasi Nir Kabel

93

MIKROPROSESOR 8085

SEMESTER 3

2.7 SELEKSI DATA
Program seleksi data sangat erat hubungannya dengan proses pengujian bitbit yang berada di dalam µflag register¶, yang tersusun seperti di bawah ini:

S (Sign Flag) Sign flag merupakan bit tanda yang menunjukan tanda bilangan dari hasil operasi aritmatika atau logika yang tersimpan dalam akumulator. S akan berlogik 1 jika hasil operasi merupakan bilangan negatif dan akan berlogik 0 jika hasil operasi merupakan bilangan positif atau nol. Z (Zero Flag) Zero flag merupakan bit flag yang akan memperlihatkan apakah hasil operasi aritmatika atau logika yang tersimpan dalam akumulator nilainya nol. Z akan berlogik 1 jika hasil operasinya adalah nol. Z akan berlogik 0 jika hasil operasi nilainya tidak nol.

AC (Auxilary Carry Flag) Auxilary carry flag menunjukkan ada atau tidaknya carry dari posisi bit b3 ke posisi bit b4 pada operasi penjumlahan ALU. AC akan akan berlogik 1 apabila pada suatu proses penjumlahan terdapat carry dari posisi bit b3 ke posisi bit b4. AC akan berlogik 0 apabila tidak ada carry dari bit b3 ke bit b4.

P (Parity Flag) Parity flag merupakan merupakan bit flag yang menunjukan ganjil atau genapnya jumlah logika 1 pada hasil operasi aritmatika atau logika yang dilakukan dalam ALU. P akan berlogik 1 apabila jumlah logika 1 pada hasil operasi adalah genap. P akan berlogik 0 jika jumlah logika 1 pada hasil operasi adalah ganjil.

Teknik Telekomunikasi Nir Kabel

94

MIKROPROSESOR 8085

SEMESTER 3

CY (Carry atau Borrow Flag) Carry atau Borrow flag merupakan bit flag yang menunjukan ada atau tidaknya carry atau borrow pada posisi bit b7 (MSB) dalam suatu operasi aritmatika. CY berfungsi sebagai bit carry pada operasi penjumlahan dan borrow pada operasi pengurangan. CY akan berlogik 1 apabila pada MSB dihasilkan carry atau borrow. CY akan berlogik 0 apabila pada MSB tidak dihasilkan carry atau borrow.

Penggunaan instruksi seleksi data
y

Menghitung jumlah data ganjil dan genap Untuk menentukan atau mendeteksi suatu data genap atau ganjil dapat dilakukan dengan menguji bit LSB data tersebut. Jika bit pada posisi LSB berlogik 0 ini menunjukan data genap dan sebaliknya jika data tersebut berlogik 1 ini menunjukan data ganjil.

y

Mendeteksi nilai data negatif atau positif Untuk menetukan atau mendeteksi suatu data negatif atau positif dapat dilakukan dengan menguji bit MSB data tersebut. Jika bit pada posisi MSB berlogik 0 ini menunjukan data positif dan sebaliknya jika data tersebut berlogik 1 ini menunjukan data negatif.

y

Mendeteksi nilai data nol Data bernilai nol dapat dengan mudah dideteksi dengan memeriksa zero flag yang terdapat pada flag register. Sebelum instruksi untuk memeriksa keasaan dari zero flag tersebut dilakukan, terlebih dahulu harus diberikan instruksi yang akan mempengaruhi flag register.

y

Mendeteksi kesalahan data Salah satu cara untuk mendeteksi kesalahan dalam pengiriman d digital ata adalah dengan sistem pariti genap ataupun pariti ganjil. Sistem ini menggunakan satu bit tambahan untuk dijadikan bit pariti. Semua informasi

Teknik Telekomunikasi Nir Kabel

95

MIKROPROSESOR 8085

SEMESTER 3

mempunyai jumlah logika 1 sama genap atau ganjil. Contohnya pada sistem pariti genap, jika informasi jumlah bit paritinya genap maka bit pariti akan diberi logik 0 dan jika jumlah bit informasi ganjil maka bit pariti diberi logik 1 agar jumlah logik 1 menjadi genap. Untuk mendeteksi sistem pariti ini dapat dilakukan dengan memeriksa pariti bit pada register flag.

y

Seleksi Range Data Dalam program-program penyeleksian data, seringkali silakukan penyeleksian data yang besarnya dibawah atau diatas nialai tertentu. Penyeleksian ini dapat dilakukan dengan melakukan instuksi perbandingan (compare) yang pada prinsipnya mirip dengan instruksi pengurangan (substraction).

Contoh pemrogramannya : 1. Buat flow chart dan program untuk mendeteksi apakah data yang ada pada reg. B. Jika reg. B bernilai ganjil isilah reg. C dengan FF dan apabila reg B bernilai genap isilah reg C dengan 00.

LABEL

L1

MNEMONICS MOV A, B RRC JC L1 MVI C, 00 MVI C, FF RST 1

2. Buatlah diagram alir dan program untuk mencari nilai terbesar dari 3 data biner murni 8 bit yang ada pada reg B, C, dan D. Jika data terbesar ada pada

Teknik Telekomunikasi Nir Kabel

96

MIKROPROSESOR 8085

SEMESTER 3

reg B isi reg H dengan data BB. Jika data terbesar ada pada reg C isi reg H dengan data CC. Jika data terbesar ada pada reg D isi reg H dengan data DD. LABEL MNEMONICS MOV A, B CMP C JC L1 CMP D JC L2 MVI H, BB RST 1 MOV A, C CMP D JC L2 MVI H, CC RST 1 MVI H, DD RST 1

L1

L2

Teknik Telekomunikasi Nir Kabel

97

MIKROPROSESOR 8085

SEMESTER 3

2.8 SUBRUTIN DAN INSTRUPSI

2.8 1 SUBRUTIN Subrutin adalah suatu keadaan dimana mikroprosesor akan menghentikan secara sementara instruksi yang sedang dilaksanakan untuk bercabang/menuju suatu subrutin (program tertentu yang telah dibuat pada alamat yang berbeda dari alamat program utama) untuk kemudian mikroprosesor akan kembali pada program utama setelah menyelesaikan instruksi-instruksi yang terdapat pada subrutin tersebut. Proses kerja : Apabila mikroprosesor menerima instruksi subrutin (call) maka akan menghentikan secara sementara instruksi yang sedang dilaksanakan kemudian menyimpan alamat setelah instruksi yang telah dihentikannya kedalam Stack Pointer (SP) dan mengganti/mengisi alamat pada Programable Counter (PC) dengan alamat awal subrutin tersebut kemudian mikroprosesor akan kembali ke program utama setelah menemui instruksi RETURN pada subrutin dengan alamat yang berada/tersimpan pada PC. Keuntungan menggunakan subrutin : 1. Dengan penulisan program (subrutin) pada tempat yang berbeda dari program utama, maka subrutin dapat dieksekusi secara berulang-ulang dengan hanya sekali penulisan pada suatu subrutin. 2. Mengurangi jumlah memori alamat yang digunakan karena penulisannya hanya sekali dan dapat digunakan berulang kali.

Subrutin bercabang Suatu subrutin dapat bercabang menuju subrutin kedua ataupun bercabang lagi menuju subrutin ketiga,dst. Adanya tumpukan LIFO) (Last Input First Out) menjamin alamat pulang yang tepat diberikan untuk setiap pengembalian. Instruksi/Format subrutin untuk mempermudah memakai suatu subrutin terdapat beberapa kriteria:

Teknik Telekomunikasi Nir Kabel

98

MIKROPROSESOR 8085

SEMESTER 3

1. Judul subrutin 2. alamat subrutin 3. Input yang digunakan 4. Output yang digunakan 5. Fungsi dari subrutin 6. Register atau unit memori yang berubah

Instruksi Subrutin Instruksi yang digunakan pada suatu subrutin adalah CALL dan RETURN. 1. Instruksi CALL alamat digunakan untuk memanggil suatu subprogram atau rutin. Rutin merupakan Suatu bagian program pendek yang melaksanakan tugas tertentu. Jika rutin digunakan berulang kali dalam suatu program maka dapat ditulis sekali pada memori sebagai subrutin dan dapat dipanggil setiap kali diperlukan. Apabila instruksi CALL dieksekusi maka isi Program Counter akan diganti dengan alamat awal dari subrutin yang dipanggil dalam memori. Instruksi CALL ada 2: Instruksi CALL bersyarat dan tak bersyarat 1. CNZ - Call if zero flag not set 2. CZ - Call if zero 3. CNC - Call if carry flag is 0 4. CC - Call if carry flag is 1 5. CPO - Call if the parity is odd 6. CPE - Call in the parity is even 7. CP -Call if plus 8. CM - Call if minus 2. Untuk mengembalikan ke program utama (setelah menyelesaikan subrutin),

instruksi RETURN sebagai pasangan instruksi CALL. Instruksi RETURN ada 2: Instruksi RETURN bersyarat dan tak bersyarat. Untuk instruksi RETURN tak

Teknik Telekomunikasi Nir Kabel

99

MIKROPROSESOR 8085

SEMESTER 3

bersyarat memiliki format µRET¶, sedangkan untuk yang bersyarat memiliki format : 1. RZ - Return if zero 2. RNC - Return if not carry 3. RC - Return if carry 4. RPO - Return if parity odd 5. RPE - Return if parity even 6. RP - Return if plus 7. RM - Return if minus

2.8.2 INTERUPSI Pengertian adalah Suatu keadaan dimana suatu mikroprosesor akan menghentikan secara sementara instruksi yang sedang dieksekusi (program utama) untuk melayani/bercabang menuju suatu subrutin yang berisi suatu program tertentu yang telah dibuat/diprogram dalam perancangan mikroprosesor dan tidak dapat dihapus/diganti oleh pemakai, untuk kemudian mikroprosesor kembali kepada program utama. Proses Interupsi Bila suatu mikroprosesor menerima permintaan interupsi, maka pertamatam mikroprosesor akan menyelesaikan siklus ambil yang sedang dilaksanakan menyimpan alamat tempat kembalinya program utama ke µPC¶ setelah menyelesaikan suatu interupsi), kemudian mikroprosesor akan memanggil operasi interupsi dimana alamat awal interupsi akan ditunjukkan secara terarah (vektorisasi) seperti yang tertera pada tabel dibawah ini (pada mikroprosesor 8085). Pada proses ini isi dari µPC¶ diganti dengan alamat awal operasi yang bersangkutan. Kemudian pada akhir subrutin pelayanan interupsi, mikroprosesor akan kembali pada program utama dimana sebelumnya alamat telah disimpan pada µPC¶.

Teknik Telekomunikasi Nir Kabel

100

MIKROPROSESOR 8085

SEMESTER 3

Contoh pemrogramannya : 1. Buatlah program subrutin delay 500 s yang akan digunakan pada trainer MIDICOM LABEL L1 MNEMONICS MVI B, 6B DCR B JNZ L1 NOP NOP RET

2. Buatlah program subrutin delay 30 ms yang akan digunakan pada trainer MIDICOM. LABEL MNEMONICS MVI B, C8 MVI C, 1F DCR C JNZ L1 NOP NOP DCR B JNZ L2 MVI D, 12 DCR D JNZ L3 NOP NOP NOP NOP NOP RET

L1

L2

L3

Teknik Telekomunikasi Nir Kabel

101

MIKROPROSESOR 8085

SEMESTER 3

2.9 PROGRAM KALKULATOR
Berikut ini adalah sebuah program yang mampu untuk menjumlahkan dua bilangan desimal.

Teknik Telekomunikasi Nir Kabel

102

MIKROPROSESOR 8085

SEMESTER 3

Subrutin dengan alamat awal A700 adalah subrutin untuk menerima 1 digit (angka desimal) dari keyboard.

Teknik Telekomunikasi Nir Kabel

103

MIKROPROSESOR 8085

SEMESTER 3

2.10 MIDICOM SEBAGAI ³DIGITAL VOLTMETER´
Salah satu aplikasi yang dapat direalisasikan dengan memanfaatkan fasilitas ADC yang sudah tersedia pada trainer MIDICOM adalah ³Digital Voltmeter´. Untuk itu penguasaan terhadap prinsip penggunaan IC ADC sangat diperlukan. ADC berfungsi untuk merubah besaran analog ke besaran digital. DAC berfungsi untuk merubah besaran digital ke besaran analog. Prinsip pemanfaatan IC ADC ADC terbagi menjadi 2 yaitu ADC monopolar dan bipolar. Contoh 1 : Pada suatu ADC monopolar 8 bit, diberikan tegangan referensi sebesar +8 volt. Tentukan : a. Jumlah step b.Besar tegangan per step c. Besar error kuantisasi maksimum d.Level output logika ADC jika pada inputnya diberi tegangan sebagai berikut : Vin Analog output ADC (volt) 2,4 3,0 7,2 0,85 1 8 6 4 B7 B6 B5 B4 B3 B2 B1 B0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0

ADC 8 bit memiliki 28 level kuantisasi = 256 level

Teknik Telekomunikasi Nir Kabel

104

MIKROPROSESOR 8085

SEMESTER 3

Jawab : a. jumlah step = 28 ± 1 = 255 step b.besar tegangan per step = Vref 8V = = 0,031372549 jumlahStep 255

catatan : sebaiknya gunakan sebanyaknya angka di belakang koma, agar didapat hasil yang lebih akurat. c. errror kuantisasi maksimum = ½ . tegangan per step = ½ . 0,031372549 = 0,015686274 d.Untuk menjawab soal bagian (d) adalah dengan cara membagi tegangan input analog dengan besar tegangan per step yang didapat, hasilnya akan berupa bilangan desimal, setelah itu kita ubah menjadi bentuk heksadesimal, kemudian simpan pada tabel yang telah tersedia dalam
2, 4V

bentuk biner. Contoh : 0, 031372549 = 76,5(10) = 4C(16) = 0100 1100 Contoh 2 : Pada suatu ADC bipolar 10 bit diberikan Vref(+) = 9V; Vref(-) = -9V. Tentukan : a. jumlah step = 210 ± 1 = 1023 step b.besar tegangan per step =
Vref 18V = = 0,017595307 jumlahStep 1023

catatan : gunakan sebanyaknya angka di belakang koma, agar didapat hasil yang lebih akurat. Karena memiliki tegangan (+) dan (-), maka tegangan = Vref(+) - Vref(-) = 9volt- (-9volt) = 9volt + 9 volt = 18 volt. c. errror kuantisasi maksimum = ½ . tegangan per step = ½ . 0,017595307 = 0,008797653 d.Untuk menjawab soal bagian (d) adalah dengan cara membagi tegangan input analog dengan besar tegangan per step yang didapat, hasilnya akan berupa bilangan desimal, setelah itu kita ubah menjadi bentuk heksadesimal, kemudian simpan pada tabel yang telah tersedia dalam bentuk biner. Perlu diperhatikan pada tegangan referensi negatif pengerjaannya berbeda, yaitu dengan menggunakan sistem komplemen 2.

Teknik Telekomunikasi Nir Kabel

105

MIKROPROSESOR 8085

SEMESTER 3

4, 25V

Contoh : 0, 017595307 = 241,5(10) = 242(10) (dalam tegangan referensi negatif, pembulatan ke atas) = F2(16) = 1111 0010 SBN : 1 0 1 1 1 1 0 0 1 0 K¶ 1 : 1 1 0 0 0 0 1 1 0 1 K¶ 2 : 1 1 0 0 0 0 1 1 1 0 (masukkan hasilnya pada tabel)

Vin Analog (volt) +42,5 -4,25 +3,0 -3,0 +5,75 -5,75 -9 -7,4

Output ADC

B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1

Perlu diketahui bahwa : Monopolar : 0 ======================= FF Bipolar : -128======= -1=0= 1========= +127 80(16)===== FF=0= 1=========7F (16)

Teknik Telekomunikasi Nir Kabel

106

MIKROPROSESOR 8085

SEMESTER 3

Seperti halnya ADC, DAC juga terbagi menjadi 2 yakni DAC monopolar dan DAC bipolar. Contoh 1 : Pada suatu DAC Monopolar 9 bit diberikan tegangan referensi sebesar +8 volt. Tentukan : a. jumlah step = 29 ± 1 = 511 step b.besar tegangan per step =
Vref 8V = = 0,015655577 jumlahStep 511

catatan : gunakan sebanyaknya angka di belakang koma, agar didapat hasil yang lebih akurat. c. errror kuantisasi maksimum = ½ . tegangan per step = ½ . 0,015655577 = 0,007827788 d.Tentukan tegangan output DAC jika pada inputnya diberikan kombinasi bitbit sebagai berikut : Input DAC Output DAC 0 1 1 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0

B8 B7 B6 B5 B4 B3 B2 B1 B0 (volt) 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 0 1 0 0 5,2 5,5 3,5 0,4 4,5 8 2,99 6,0

Untuk menjawab soal bagian (d) adalah dengan cara mengubah nilai input DAC dari biner ke desimal, kemudian bagi hasil konversi tersebut dengan jumlah step yang didapat kemudian dikalikan dengan tegangan referensi. Dalam soal ini, yaitu sebagai contoh : 1 0 1 0 0 1 1 0 1 = 333(10)

Teknik Telekomunikasi Nir Kabel

107

MIKROPROSESOR 8085

SEMESTER 3

Jadi, 511 x 8 volt = 5,2 volt (masukkan nilai tersebut ke kolom output DAC.

333

Contoh 2 : Pada suatu DAC Bipolar 10 bit diberikan Vref(+) = 9V; Vref(-) = -9V. Tentukan : a. jumlah step = 210 ± 1 = 1023 step b.besar tegangan per step =
Vref 18V = = 0,017595307 jumlahStep 1023

catatan : gunakan sebanyaknya angka di belakang koma, agar didapat hasil yang lebih akurat. c. errror kuantisasi maksimum = ½ . tegangan per step = ½ . 0,017595307 = 0,008797653 d.Tentukan tegangan output DAC jika pada inputnya diberikan kombinasi bitbit sebagai berikut : Input DAC Output 1 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 +42,5 -4,25 +3,0 -3,0 -3,99 -6 -9 4,18

B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 DAC 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1

Untuk menjawab soal bagian (d) adalah sama dengan cara mengubah nilai input DAC dari biner ke desimal, kemudian bagi hasil konversi tersebut dengan jumlah step yang didapat kemudian dikalikan dengan tegangan referensi. Dalam soal ini, yaitu sebagai contoh tegangan reerensi negatif : 1 1 0 0 0 1 1 1 0 1 = 22710)

Teknik Telekomunikasi Nir Kabel

108

MIKROPROSESOR 8085

SEMESTER 3

Jadi, 1023 x 18 volt = -3,99 volt (masukkan nilai tersebut ke kolom output DAC. 1 0 1 0 1 0 1 0 1 1 = -341 -341/1023 . 18 volt = -6 volt

227

0 0 1 1 1 0 1 1 1 0 = 238 238/1023 . 18 volt = 4,18 volt

positif 0 negatif

Perlu diketahui bahwa pada bipolar, tetap yang menjadi patokan awal adalah pada angka nol.

Teknik Telekomunikasi Nir Kabel

109

MIKROPROSESOR 8085

SEMESTER 3

2.11 UNIT PERAGA 7 SEGMENT DAN LED
Pada trainer MIDICOM telah tersedia unit peraga 7 segment yang terdiri dari 8 unit 7 segment display (terdapat 8 karakter). Dari ke8 karakter tersebut setiap saat hanya 1 karakter yang dapat diaktifkan. Port # 40H digunakan sebagai output port yang difungsikan untuk menetukan pola karakter yang akan ditampilkan pada unit peraga 7 segment. Port # 42H dipergunakan untuk memiliki posisi digit (posisi karakter) yang akan diaktifkan. Data-data yang diberikan pada port # 42H adalah sbb :

Sedangkan urutan posisi 7 segment yang harus diberikan pada port # 40H adalah sbb :

Contoh : 1. Untuk menampilkan karakter H pada posisi digit D4 programnya yaitu, sbb : MVI A,00 OUT 42 MVI A,76 OUT 40 RST 1

Teknik Telekomunikasi Nir Kabel

110

MIKROPROSESOR 8085

SEMESTER 3

2. Untuk menampilkan karakter H pada posisi digit D4 programnya yaitu, sbb : MVI A,00 OUT 42 MVI A,76 OUT 40 RST 1

Contoh pemrogramannya : 1. Buat diagram alir dan program untuk up counter yang menghitung secara biner dari 0000 s/d 1111 (modulus 16). Gunakan LED pada posisi L3 s/d L0 sebagai unit output atur agar perubahan output counter terjadi tiap 1 detik.

LABEL L1 L2

MNEMONICS MVI A, 00 OUT 50 LXI DE, 03E8 CALL FFA INR A MVI A, 10 JNZ L2 JMP L1

Teknik Telekomunikasi Nir Kabel

111

MIKROPROSESOR 8085

SEMESTER 3

2. sama seperti no.1 tapi gunakan L7 s/d L4 sebagai output unit. LABEL L1 L2 MNEMONICS MVI B, 00 MOV A,B ADD A ADD A ADD A ADD A OUT 50 LXI DE, 03E8 CALL FFA INR B MVI A, 10 CMP B JNZ L2 JMP L1

3. Buat diagram alir dan program modulus 10 yang menghitung dari 0 ke 9. Atur outputnya yang berubah 1 detik. Gunakan LED dan terminal monitor sebagai output unit. LABEL L1 L2 MNEMONICS MVI B, 00 MOV A, B OUT 50 ADI 30 MOV C, A CALL FEE LXI DE, 03E8 CALL FFA MVI C, 15 CALL FEE INR B MOV A, B CPI 0A JNZ L2 JMP L1

Teknik Telekomunikasi Nir Kabel

112

MIKROPROSESOR 8085

SEMESTER 3

4. Buatlah program untuk menampilkan huruf A pada semua 7 segmen. LABEL L1 L2 MNEMONICS LXI HL, A207 MVI A, 77 OUT 40 MOV A, M OUT 42 LXI DE, 0002 CALL FFA DCR L JP L2 JMP L1

5. Buatlah program untuk menampilkan angka 0 sampai 7. Setiap angka hanya ditampilkan oleh satu 7 segmen. LABEL L1 L2 MNEMONICS LXI HL, A207 MOV A, M OUT 42 MVI H, B2 MOV A, M OUT 40 MVI H, A2 LXI DE, 0002 CALL FFA DCR L JP L2 JMP L1

Teknik Telekomunikasi Nir Kabel

113

MIKROPROSESOR 8085

SEMESTER 3

6. Sama seperti no.5 tetapi setelah 4 detik mati semua.

LABEL L1 L2 L1 L2

MNEMONICS MVI B, F0 LXI HL, A207 MOV A, M OUT 42 MVI H, B2 MOV A, M OUT 40 MVI H, A2 LXI DE, 0002 CALL FFA DCR L JP L2 DCR B JNZ L1 MVI A, 00 OUT 40 RST 1

Teknik Telekomunikasi Nir Kabel

114

MIKROPROSESOR 8085

SEMESTER 3

7. Sama seperti no.5 tetapi setelah 7 detik mati semua.

LABEL L1 L1 L2 L3

L2

L3

MNEMONICS MVI C, 07 MVI B, 3C LXI HL, A207 MOV A, M OUT 42 MVI B, B2 MOV A, M OUT 40 MVI H, A2 LXI DE, 0002 CALL FFA DCR L JP L3 DCR B JNZ L2 DCR C JNZ L1 MVI A, 00 OUT 40 RST 1

Teknik Telekomunikasi Nir Kabel

115

MIKROPROSESOR 8085

SEMESTER 3

8. Buat flow chart seperti no.5 atur agar display berkedip 3 kali per detik.

LABEL L1 L1 L2 L3

L2

L3

MNEMONICS MVI C, 15 MVI B, 0A LXI HL, A207 MOV A, M OUT 42 MVI H, B2 MOV A, M OUT 40 MVI H, A2 LXI DE, 0002 CALL FFA DCR L JP L3 DCR B JNZ L2 MVI A, 00 OUT 40 LXI DE, 00A6 CALL FFA DCR C JNZ L1 RST 1

Teknik Telekomunikasi Nir Kabel

116

MIKROPROSESOR 8085

SEMESTER 3

9. Buat program untuk up counter modulus 21 yang menghitung mulai dari 0 s/d 20 secara berulang dengan selang waktu ½ detik. Tampilkan output counter pada unit peraga 7 segmen. L1

LABEL L1 L2 L3 L2 L3

Unit peraga 7 segmen

MNEMONICS MVI H, D0 MVI B, 00 MVI C, 1E MOV A, B ANI F0 RRC RRC RRC RRC MOV L, A MOV A, M OUT 40 MVI A, 90 OUT 42 LXI DE, 0008 CALL FFA MOV A, B ANI 0F MOV L, A MOV A, M OUT 40 MVI A, 80 OUT 42 LXI DE, 0008 CALL FFA DCR C JNZ L3 MOV A, B ADI 01 DAA MOV B, A CPI 21 JNZ L2 JMP L1

Teknik Telekomunikasi Nir Kabel

117

MIKROPROSESOR 8085

SEMESTER 3

2.12 ADC dan DAC
Salah satu komponen penting dalam sistem akuisisi data adalah pengubah besaran analog ke digital atau disebut juga ADC (Analog to Digital Converter). Pengubah ini akan mengubah besaran-besaran analog menjadi bilangan-bilangan digital sehingga bisa diproses dengan komputer. IC ADC 0804 dianggap dapat memenuhi kebutuhan dari rangkaian yang akan dibuat. IC jenis ini bekerja secara cermat dengan menambahkan sedikit komponen sesuai dengan spesifikasi yang harus diberikan dan dapat mengkonversikan secara cepat suatu masukan tegangan Hal-hal yang juga perlu diperhatikan dalam penggunaan ADC ini adalah tegangan maksimum yang dapat dikonversikan oleh ADC dari rangkaian pengkondisi sinyal, resolusi, pewaktu eksternal ADC, tipe keluaran, ketepatan dan waktu konversinya. Beberapa karakteristik penting ADC : 1. Waktu konversi 2. Resolusi 3. Ketidaklinieran 4. Akurasi

Contoh aplikasi ADC ini bisa kita lihat misalnya pada voltmeter digital, sampling suara dengan komputer, sehingga suara dapat disimpan secara digital dalam disket, dan kamera digital. Konsep pengubah analog ke digital ini adalah sampling (mengambil contoh dalam waktu tertentu) kemudian mewakilinya dengan bilangan digital dengan batas yang sudah diberikan. Ada banyak cara yang dapat digunakan untuk mengubah sinyal analog menjadi sinyal digital yang nilainya proposional. Jenis ADC yang biasa digunakan dalam perancangan adalah jenis successive approximation convertion atau pendekatan bertingkat yang memiliki waktu konversi jauh lebih singkat dan

Teknik Telekomunikasi Nir Kabel

118

MIKROPROSESOR 8085

SEMESTER 3

tidak tergantung pada nilai masukan analognya atau sinyal yang akan diubah. Dalam Gambar 1. memperlihatkan diagram blok ADC tersebut.

Secara singkat prinsip kerja dari konverter A/D adalah semua bit-bit diset kemudian diuji, dan bilamana perlu sesuai dengan kondisi yang telah ditentukan. Dengan rangkaian yang paling cepat, konversi akan diselesaikan sesudah 8 clock, dan keluaran D/A merupakan nilai analog yang ekivalen dengan nilai register SAR. Apabila konversi telah dilaksanakan, rangkaian kembali mengirim sinyal selesai konversi yang berlogika rendah. Sisi turun sinyal ini akan menghasilkan data digital yang ekivalen ke dalam register buffer. Dengan demikian, keluaran digital akan tetap tersimpan sekalipun akan di mulai siklus konversi yang baru. IC ADC 0804 mempunyai dua masukan analog, Vin (+) dan Vin (-), sehingga dapat menerima masukan diferensial. Masukan analog sebenarnya (Vin) sama dengan selisih antara tegangan-tegangan yang dihubungkan dengan ke dua pin masukan yaitu Vin = Vin (+) ± Vin (-). Kalau masukan analog berupa tegangan tunggal, tegangan ini harus dihubungkan dengan Vin (+), sedangkan Vin (-) digroundkan.

Teknik Telekomunikasi Nir Kabel

119

MIKROPROSESOR 8085

SEMESTER 3

Untuk operasi normal, ADC 0804 menggunakan Vcc = +5 Volt sebagai tegangan referensi. Dalam hal ini jangkauan masukan analog mulai dari 0 Volt sampai 5 Volt (skala penuh), karena IC ini adalah SAC 8-bit, resolusinya akan sama dengan (n menyatakan jumlah bit keluaran biner IC analog to digital converter) IC ADC 0804 memiliki generator clock intenal yang harus diaktifkan dengan menghubungkan sebuah resistor eksternal (R) antara pin CLK OUT dan CLK IN serta sebuah kapasitor eksternal (C) antara CLK IN dan ground digital Untuk sinyal clock ini dapat juga digunakan sinyal eksternal yang dihubungkan ke pin CLK IN. ADC 0804 memilik 8 keluaran digital sehingga dapat langsung dihubungkan dengan saluran data mikrokomputer. Masukan (chip select, aktif rendah) digunakan untuk mengaktifkan ADC 0804. Jika berlogika tinggi, ADC 0804 tidak aktif (disable) dan semua keluaran berada dalam keadaan impedansi tinggi. Masukan (write atau start convertion) digunakan untuk memulai proses konversi. Untuk itu harus diberi pulsa logika 0. Sedangkan keluaran (interrupt atauend of convertion) menyatakan akhir konversi. Pada saat dimulai konversi, akan berubah ke logika 1. Di akhir konversi akan kembali ke logika 0.

Mode Operasi ADC0804
1. Mode Opersi Kontinyu Agar ADC0804 dapat dioperasikan pada mode operasi kontinyu (proses membaca terus menerus dan tanpa proses operasi jabat tangan), maka penyemat CS dan RD ditanahkan, sedangkan penyemat WR dan INTR tidak dihubungkan kemanapun. Prinsip kerja operasi kontinyu ini yaitu ADC akan memulai konversi ketika INTR kembali tidak aktif (logika µ1¶). Setelah proses konversi selesai, INTR akan aktif (logika µ0¶). Untuk memulai konversi pertama kali WR harus ditanahkan terlebih dahulu, hal ini digunakan untuk mereset SAR. Namun pada

Teknik Telekomunikasi Nir Kabel

120

MIKROPROSESOR 8085

SEMESTER 3

konversi berikutnya untuk mereset SAR dapat menggunakan sinyal INTR saat aktif (logika µ0¶) dan mulai konversi saat tidak aktif (logika µ1¶).¶ Ketika selesai konversi data hasil konversi akan dikeluarkan secara langsung dari buffer untuk dibaca karena RD ditanahkan. Saat sinyal INTR aktif, sinyal ini digunakan untuk me-reset SAR. Saat INTR kembali tidak aktif (logika µ1¶) proses konversi dimulai kembali

2. Mode Operasi Hand-Shaking ADC0804 dioperasikan pada mode hand shaking . Agar ADC dapat bekerja, CS harus berlogika µ0¶. Ketika WR berlogika µ0¶, register SAR akan direset, sedangkan ketika sinyal WR kembali µ1¶, maka proses konversi segera dimulai. Selama konversi sedang berlangsung, sinyal INTR akan tidak aktif (berlogika µ1¶), sedangkan saat konversi selesai ditandai dengan aktifnya sinyal INTR (logika µ0¶). Setelah proses konversi selesai data hasil konversi tetap tertahan pada buffer ADC. Data hasil konversi tersebut akan dikeluarkan dengan mengirim sinyal RD berlogika µ0¶. Setelah adanya sinyal sinyal RD ini, maka sinyal INTR kembali tidak aktif.

Rancangan Pengubah Analog ke Digital
Sebenarnya rangkaian pengubah analog ke digital dapat dibuat dengan memakai komponen-komponen lepasan, akan tetapi ini akan memakan tempat dan kelinierannya pun tidak bagus. Karena itu dipilih pengubah dalam bentuk IC (Integrated Circuit) yang sudah ada dipasaran. Dari berbagai buku data ternyata didapatkan komponen dengan tipe ADC0804. Komponen ini memakai metode pendekatan berturutan dan hanya memerlukan sedikit komponen luar.Gambar di bawah adalah contoh dari IC pengkonversi dari analog ke digital :.

Teknik Telekomunikasi Nir Kabel

121

MIKROPROSESOR 8085

SEMESTER 3

Teknik Telekomunikasi Nir Kabel

122

MIKROPROSESOR 8085

SEMESTER 3

Analog to digital converter (ADC) dan digital to analog converter (DAC) terbagi menjadi 2 jenis, yaitu : 1. Monopolar, bilangan yang digunakan adalah bilang biner murni (tak bertanda) 2. Bipolar, bilangan yang digunakan adalah bilang biner K¶2 (bertanda) Contoh : Pada ADC 9 bit monopolar, besar tegangan referensi yang digunakan adalah +10V. Tentukan : a) Jumlah step yang tersedia b) Besar tegangan per step c) Kombinasi output ADC jika pada inputnya diberikan tegangan input analog seperti pada tabel Jawab : a) Jml step = (29 ± 1) = 511 step. teg ™ ref 10 = = 19.75mV. jml ™ step 511 V ™ input c) Tabel kombinasi output ADC = jml ™ step b) Teg/step = Teg Input 3.52 4.7 8.0 10.0 2.4 0 5.8 Contoh 2 : Pada ADC 8 bit bipolar, besar tegangan referensi yang digunakan adalah Vref (+) = +10V & Vref (-) = -10V. Tentukan : d) Jumlah step yang tersedia e) Besar tegangan per step 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 Output ADC 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0

Teknik Telekomunikasi Nir Kabel

123

MIKROPROSESOR 8085

SEMESTER 3

f) Kombinasi output ADC jika pada inputnya diberikan tegangan input analog seperti pada tabel 2 Jawab : d) Jml step = (28 ± 1) = 255 step.
teg ™ ref 10 = = 78.74mV. jml ™ step 127 teg ™ ref 10 Teg/step (-) = = = 78.125mV. jml ™ step 128 V ™ input f) Tabel kombinasi output ADC = jml ™ step

e) Teg/step (+)=

Vin (V) -3.52 -4.7 +8.0 -10.0 +2.4 0 +5.8 Contoh 3 : 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0

Output ADC 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1

Pada DAC 8 bit bipolar, besar tegangan referensi yang digunakan adalah Vref (+) = +10V & Vref (-) = -10V. Tentukan : g) Jumlah step yang tersedia h) Besar tegangan per step i) Kombinasi output ADC jika pada inputnya diberikan tegangan input analog seperti pada tabel 3 Jawab : g) Jml step = (28 ± 1) = 255 step. h) Teg/step (+)=
10 teg ™ ref = = 78.74mV. jml ™ step 127 teg ™ ref 10 = = 78.125mV. Teg/step (-) = jml ™ step 128

Teknik Telekomunikasi Nir Kabel

124

MIKROPROSESOR 8085

SEMESTER 3

i) Besar tegangan output DAC = Input DAC 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0

V ™ input jml ™ step

Vo (V) +3.5 -6.5 -0.625 +4.56 +6.69 -6.72 -4.06

PEMROGRAMAN ADC / DAC PADA TRAINER MIDICOM Contoh1 : Buat program untuk membangkitkan pulsa digital seperti pada gambar berikut! 1.

Jawab : Jika Vo DAC = 0V, maka kombinasi inputnya = 0000 0000 (2) Jika Vo DAC = 6V, maka kombinas inputnya = 4B(16) = 0100 1011 (2) Port # 50 = DAC Port #51 = ADC

Teknik Telekomunikasi Nir Kabel

125

MIKROPROSESOR 8085

SEMESTER 3

Program : LABEL MNEMOMICS MVI A,A2 OUT 53 MVI A,08 OUT 53 MVI A,04 OUT 52 L1 MVI A,00 OUT 50 LXI D,0005 CALL FFA MVI A,4B OUT 50 LXI D,0010 CALL FFA JMP L1

2.

Jika Vo DAC = 0V, maka kombinasi inputnya = 0000 0000 (2) Jika Vo DAC = +6V, maka kombinas inputnya = 4B(16) = 0100 1011 (2) Jika Vo DAC = - 6V, maka kombinas inputnya = B5(16) = 1011 0101 (2) Port # 50 = DAC Port #51 = ADC

Teknik Telekomunikasi Nir Kabel

126

MIKROPROSESOR 8085

SEMESTER 3

Arah Horizontal
(t ! 4000Qs

Jumlah step dari -6 s.d +6 V = 150 step
(t ! 4000 Qs ! 26,66 } 27 Qs ! 83Tc 150

Arah Vertikal
(V ! 12volt , jumlahstep ! 150 step (V ! 12V ! 0,08V ! besartegan gan / step 150

Flowchart Delay X Rumus ! (14n  32) ! 52Tc 14n ! 50 n ! 1,4 } 1 jika, n ! 1   elay ! 14  32 ! 46Tc ekurangan ! (52  46) ! 6Tc
DELAY X

Teknik Telekomunikasi Nir Kabel

¡

 

B

1

B

B-1

Z=0

HL

HL - 1

RET

127

MIKROPROSESOR 8085

SEMESTER 3

Delay X = Delay Y
START

A L1

PORT # 50

DELAY

A

A+1 A : 4B

Z=0 L2 PORT # 50 A

DELAY Y

A

A-1 A : B5

Z=0

Teknik Telekomunikasi Nir Kabel

£

¢ ¢ ¢

A PORT # A PORT # A PORT #

A2 3 08 3 04 2

A A A

B5

A

10 Tc

4 Tc 7 Tc 10 Tc

128

MIKROPROSESOR 8085

SEMESTER 3

2.13 KEYBOARD READING
Pada trainer MIDICOM telah disediakan subrutin-subrutin siap pakai ; diantaranya adalah subrutin untuk membaca tombol/karakter keyboard yang kita tekan. Keyboard yang digunakan adalah ASCII keyboard. Alamat awal dari subrutin untuk membaca tombol keyboard tersebut adalah : $0FF1. Register C dipilih sebagai register output yang akan diisi dengan kode ASCII dari tombol keyboard yang ditekan (diaktifkan). A.keyboard reading Contoh penggunaan subrutin :  Tulis program sbb : CALL FF1 RST 1  Eksekusi program di atas, tekan tombol A.  Periksa isi register C ! Berikut ini adalah kode ASCII untuk beberapa karakter, sbb : Karakter Kode ASCII Karakter Kode ASCII A B C D E F G H I J K L M N 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E a b c d e f g h i j k l m n 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E

Teknik Telekomunikasi Nir Kabel

129

MIKROPROSESOR 8085

SEMESTER 3

O P Q R S T U V W X Y Z

4F 50 51 52 53 54 55 56 57 58 59 5A

o p q r s t u v w x y z

6F 70 71 72 73 74 75 76 77 78 79 7A

Karakter Kode ASCII Karakter Kode ASCII 0 1 2 3 4 30 31 32 33 34 5 6 7 8 9 35 36 37 38 39

Karakter Kode ASCII ! ³ # $ % & ^ : ; 21 22 23 24 25 26 27 3A 3B

Karakter ( ) * + < > / [ ]

Kode ASCII 28 29 2A 2B 2C 2D 2F 5B 5D

Teknik Telekomunikasi Nir Kabel

130

MIKROPROSESOR 8085

SEMESTER 3

, . ? @ 1. Tulis program ini : 8800

3C 3D 3F 40

{ } backspace space bar

7B 7D 08 20

B.Menulis karakter ±karakter pada terminal monitor MVI C,41 CALL FFE RST 1 Eksekusi program tersebut ! Amati pada layar monitor apakah karakter µA¶sudah muncul ? 2. Buat program untuk menampilkan kata ³IBU´ pada layar ! 8800 MVI C,49 CALL FEE MVI C,42 CALL FEE MVI C,55 CALL FEE RST 1 3. untuk menampilkan kata yang panjang buatlah program ini : 8800 CALL FFI CALL FEE JMP 9900 RST 1

Teknik Telekomunikasi Nir Kabel

131

MIKROPROSESOR 8085

SEMESTER 3

2.12 KASUS LANJUTAN
Pada Monitor, setiap satu detik ditampilkan 25 frame gambar. Sedangkan pada unit peraga 7 segmen umumnya untuk mendapatkan tampilan yang baik tanpa flicker digunakan 60 frame per detik. 1 detik = 60 frame 1 frame = 8 karakter 1 detik = 480 karakter 1 karakter = 1000 m detik 480

Jadi 1 karakter § 2 m detik Contoh soal: Rancang rangkaian decoder untuk mengendalikan unit peraga 7 segmen yang ada pada trainer MIDICOM. Port 40H untuk mengatur pola karakter dan port 41H untuk memilih posisi karakter. Berikut ini adalah tabel mengenai port bit PB yang sudah ditentukan dari pembuat MIDICOM tersebut : PB 7 50H 40H 10H 00H D0H C0H 90H 80H 0 0 1 0 1 1 1 1 PB 6 1 1 0 0 1 1 0 0 PB 5 0 0 1 0 0 0 0 0 PB 4 1 0 0 0 1 0 1 0 PB 3 0 0 0 0 0 0 0 0 PB 2 0 0 0 0 0 0 0 0 PB 1 0 0 0 0 0 0 0 0 PB 0 0 0 0 0 0 0 0 0

Teknik Telekomunikasi Nir Kabel

132

MIKROPROSESOR 8085

SEMESTER 3

Jawab : Pertama kita harus membuat tabel input dan output (output aktif low):
INPUT PB7 0 0 0 0 1 1 1 1 PB6 1 1 0 0 1 1 0 0 PB5 0 0 0 0 0 0 0 0 PB4 1 0 1 0 1 0 1 0 PB3 0 0 0 0 0 0 0 0 PB2 0 0 0 0 0 0 0 0 PB1 0 0 0 0 0 0 0 0 PB0 0 0 0 0 0 0 0 0 OUTPUT D7 0 1 1 1 1 1 1 1 D6 1 0 1 1 1 1 1 1 D5 1 1 0 1 1 1 1 1 D4 1 1 1 0 1 1 1 1 D3 1 1 1 1 0 1 1 1 D2 1 1 1 1 1 0 1 1 D1 1 1 1 1 1 1 0 1 D0 1 1 1 1 1 1 1 0

Dari tabel input dan output diatas kita dapat membuat input untuk masuk ke decoder, yaitu :

Input 1 = PB7 Input 2 = PB6 Input 3 = PB4 Sebenarnya port bit bisa dibuat lebih sederhana dari yang sudah ditentukan oleh perancang MIDICOM, tetapi karena sudah ditentukan seperti itu mau tidak mau kita harus mengikutinya. Sekarang kita akan mencoba membuat tabel port bit (PB) yang lebih sederhana dan mudah diingat dari yang sudah ada pada traiSner MIDICOM. Tabelnya adalah :

Teknik Telekomunikasi Nir Kabel

133

MIKROPROSESOR 8085

SEMESTER 3

PB 7 07H 06H 05H 04H 03H 02H 01H 00H 0 0 0 0 0 0 0 0

PB 6 0 0 0 0 0 0 0 0

PB 5 0 0 0 0 0 0 0 0

PB 4 0 0 0 0 0 0 0 0

PB 3 0 0 0 0 0 0 0 0

PB 2 1 1 1 1 0 0 0 0

PB 1 1 1 0 0 1 1 0 0

PB 0 1 0 1 0 1 0 1 0

Sedangkan tabel input dan outputnya adalah :
INPUT PB7 0 0 0 0 0 0 0 0 PB6 0 0 0 0 0 0 0 0 PB5 0 0 0 0 0 0 0 0 PB4 0 0 0 0 0 0 0 0 PB3 0 0 0 0 0 0 0 0 PB2 1 1 1 1 0 0 0 0 PB1 1 1 0 0 1 1 0 0 PB0 1 0 1 0 1 0 1 0 OUTPUT D7 0 1 1 1 1 1 1 1 D6 1 0 1 1 1 1 1 1 D5 1 1 0 1 1 1 1 1 D4 1 1 1 0 1 1 1 1 D3 1 1 1 1 0 1 1 1 D2 1 1 1 1 1 0 1 1 D1 1 1 1 1 1 1 0 1 D0 1 1 1 1 1 1 1 0

Dari tabel diatas kita dapat membuat rangkaian untuk input decoder yaitu : Input 1 = PB2 Input 2 = PB1 Input 3 = PB0

Teknik Telekomunikasi Nir Kabel

134

MIKROPROSESOR 8085

SEMESTER 3

Materi berikutnya adalah tentang menampilkan huruf (karakter) pada 7 segmen yang ada pada trainer MIDICOM dengan membuat program untuk menampilkannya. Untuk lebih jelasnya kita langsung masuk ke contoh soal : 1. a. Rancang suatu program untuk menampilkan kata ³ S E L A S A ³ pada unit peraga 7-segmen yang ada pada trainer MIDICOM. b. Seperti no.1 tetapi hanya muncul selama 0,5 detik kemudian stop 2. Seperti no.1 tetapi dengan berkedip 2 kali per detik. 3. Seperti no.2 tetapi hanya yampil selama 5 detik saja kemudian stop. 4. Seperti no.3 tetapi yang berkedip hanya huruf awal dan huruf akhirnya saja (huruf S dan huruf A terakhir saja yang berkedip). Jawab : 1. Sebelum mengerjakan soal ini, kita harus memahami dulu bahwa sebenarnya huruf-huruf diatas tidak tampil atau keluar bersama-sama tetapi keluar secara bergantian, tetapi karena waktu yang sangat cepat sehingga mata kita memandangnya seolah-olah secara bersamaan. D7 D6 S D5 E D4 L D3 A D2 S D1 A D0 -

Sekarang kita misalkan, port yang sudah ditentukan untuk trainer MIDICOM diletakkan pada alamat A000H s.d. A007H karakternya diletakkan pada alamat B000H s.d. B007H. A000H A001H A002H A003H A004H A005H A006H A007H 50 40 10 00 D0 C0 90 80 B000H B001H B002H B003H B004H B005H B006H B007H 00 6D 79 38 77 6D 77 00 dan pola

Teknik Telekomunikasi Nir Kabel

135

MIKROPROSESOR 8085

SEMESTER 3

Bagan alir untuk soal no.1a: Program untuk soal no.1a: LOOP 1 : LXI H,A007 LOOP 2 : MOV A,M MOV PORT#41,A MVI B,0 MOV PORT4#0,A MVI D,E2 CALL FFA MVI H,A0 DCR L JP LOOP 2 JMP LOOP 1 RST 1

Teknik Telekomunikasi Nir Kabel

136

MIKROPROSESOR 8085

SEMESTER 3

Soal no.1b, seperti soal no.1a tetapi hanya muncul 0,5 detik, untuk itulah kita perlu mengurangi jumlah frame menjadi setengahnya yaitu dari 60 frame menjadi 30 frame heksadesimal yang ditulis dengan 1E Program : MVI C,1E LOOP 1 : LXI H,A007 LOOP 2 : MOV A,M MOV PORT#41,A MVI H,B0 MOV A,M MOV PORT#40,A MVI DE,2 CALL FFA MVI H,A0 DCR L JP LOOP 2 DCR C JNZ LOOP 1 MVI A,00 MOV PORT#40,A RST 1 Bagan alir

Dari bagan alir dapat kita lihat adanya clear display sebelum stop karena muncul 0,5 detik dan setelah itu mati.

Teknik Telekomunikasi Nir Kabel

137

MIKROPROSESOR 8085

SEMESTER 3

2. Agar karakter yang ditampilkan dari soal no.1a berkedip 2 kali per detik, kita harus membuat karakter itu muncul selama seperempat detik, kemudian tidak muncul selama seperempat detik berikutnya dst. Untuk itulah frame harus dibuat 1 heksadesimal atau 0F. Bagan alir : Program : LOOP 1 : MVI C,0F LOOP 2 : LXI H,A007 LOOP 3 : MOV A,M MOV PORT#41,A MVI H,B0 MOV A,M MOV PORT#40,A MVI DE,2 CALL FFA MVI H,A0 DCR L JP LOOP 3 DCR C JNZ LOOP 2 DELAY 1 4 DETIK JMP LOOP 1
4

dari 60 yaitu sebesar 15

Teknik Telekomunikasi Nir Kabel

138

MIKROPROSESOR 8085

SEMESTER 3

3 . Soal no.3 berhubungan dengan soal no.2, kalau no.2 berkedip dua kali dalam satu detik secara terus menerus, sedangkan pada no.3 berkedip dua kali dalam satu detik tetapi selama 5 detik saja. Untuk soal seperti ini kita membuat program seperti pada no.2 dan ditambah dengan menambahkan counter agar muncul selama 5 detik saja. Karena kita sudah membuat untuk program selama 1 saat muncul dan 1
4 2

detik, yaitu pada 1

4

detik

detik saat tak muncul maka counter yang

digunakan 10 heksadesimal atau ditulis A agar setelah 5 detik program berhenti.

Teknik Telekomunikasi Nir Kabel

139

MIKROPROSESOR 8085

SEMESTER 3

Flowchart :

Teknik Telekomunikasi Nir Kabel

140

MVI B,AH LOOP 1 : LOOP 2 : LOOP 3 :
MIKROPROSESOR 8085

MVI C,0F LXI H,A00F MOV A,M
SEMESTER MOV PORT#41,A 3

MVI H,B0 MOV A,M MOV PORT#40,A MVI DE,2 CALL FFA MVI H,A0 DCR L 3. Untuk harus memori menempatkan karakter yang soal no.4 menambah kita unit untuk pola baru. JP LOOP 3 DCR C JNZ LOOP 2 MVI A,00 MOV PORT#40,A DELAY 1 DCR B JNZ LOOP 1 RST 1
4

Seperti telah diketahui sebelumnya, pada alamat memori B000 s.d..B007 ditempatkan menampilkan SELASA huruf yang dan untuk karakter supaya terlihat
4

DETIK

S dan huruf A terakhir

berkedip maka pada 1

detik berikutnya ³karena soal ini berhubungan dengan soal no.3´ karakter yang ditampilkan adalah ELAS dan 1
4

detik berikutnya

kembali lagi ke SELASA dst selama 5 detik. Misal , untuk menempatkan karakter yang baru ditempatkan pada alamat memori C000 s.d. C007, lihat gambar berikut : C000 C001 C002 00 00 79

Teknik Telekomunikasi Nir Kabel

141

MIKROPROSESOR 8085

SEMESTER 3

C003 C004 C005 C006 C007

38 77 6D 00 00

Teknik Telekomunikasi Nir Kabel

142

MIKROPROSESOR 8085

SEMESTER 3

Teknik Telekomunikasi Nir Kabel

143

MIKROPROSESOR 8085

SEMESTER 3

Program : MVI B,AH LOOP 1 : LOOP 2 : LOOP 3 : MVI C,0F LXI H,A00F MOV A,M MOV PORT#41,A MVI H,B0 MOV A,M MOV PORT#40,A MVI DE,2 CALL FFA MVI H,A0 DCR L JP LOOP 3 DCR C JNZ LOOP 2 MVI C,0F

LOOP 4: LOOP 6:

LXI H,A00F MOV A,M MOV PORT#41,A MVI H,B0 MOV A,M MOV PORT#40,A MVI DE,4 CALL FFA MVI H,A0 DCR L JP LOOP 6 DCR C JNZ LOOP 4 DCR B JNZ LOOP 1

Teknik Telekomunikasi Nir Kabel

144

MIKROPROSESOR 8085

SEMESTER 3

BAB 3

PROGRAMMABLE PERIPHERAL INTERFACE ( PPI )
3.1 PPI 8255 (PROGRAMMABLE PERIPHERAL INTERFACE) Dalam perancangan sistem, seringkali kita menggunakan komputer sebagai alat pengontrol terhadap sistem yang kita buat. Komunikasi antara komputer dengan alat yang dikontrol dijembatani oleh suatu rangkaian yang disebut dengan rangkaian antarmuka. Rangkaian antarmuka yang banyak digunakan dan banyak terdapat di pasaran adalah kartu antarmuka yang menggunakan IC PPI 8255.PPI 8255 adalah IC yang dirancang untuk membuat port masukan dan keluaran paralel, IC ini mempunyai 24 bit I/O yang terorganisir menjadi 3 port 8 bit ( 24 jalur ) dengan nama Port A, Port B, dan Port C.

Teknik Telekomunikasi Nir Kabel

145

MIKROPROSESOR 8085

SEMESTER 3

D7 ¡V D0 RESET CS RD WR A0 ¡V A1 PA 7 PA 0 PB 7 PB 0 Vcc GND

RESET INPUT CHIP SELECT READ INPUT WRITE INPUT PORT ADDRESS PORT A (BIT) PORT B (BIT) PORT C (BIT) 5 VOLTS 0 VOLTS

Konfigurasi dari 24 jalur I/O ini bisa digunakan untuk masukan, keluaran, ataupun biderectional ( dua arah ). Pada I/O yang dikontrol secara software akan lebih mudah bila dibandingkan dengan pengontrolan secara hardware. Untuk memilih port 8255 digunakan dua buah address pin, yaitu A1 dan A0, dengan kombinasi sebagai berikut : A1=0; A0=0; ==> memilih port A A1=0; A0=1; ==> memilih port B A1=1; A0=0; ==> memilih port C A1=1; A0=1; ==> memilih Control Word ( CW ) CS harus dibuat rendah pada saat pembacaan atau penulisan pada PPI ini. Sinyal reset bila aktif akan membersihkan seluruh register internal PPI dan membuat PPI berfungsi dalam mode masukan ( mode input ). Pemilihan konfigurasi port masukan atau keluaran pada IC 8255 ini dilakukan dengan cara mengirim control word melalui D7 s/d D0 pada saat A1 dan A0 masing-masing berlogic 1. Tabel operasi 8255 adalah sebagai berikut :

Teknik Telekomunikasi Nir Kabel

146

MIKROPROSESOR 8085

SEMESTER 3

A1 A0 0 0 1 0 0 1 1 X 1 X 0 1 0 0 1 0 1 X 1 X

RD 0 0 0 1 1 1 1 X 0 1

WE 1 1 1 0 0 0 0 X 1 1

CS 0 0 0 0 0 0 0 X 0 0

Keterangan Port A ke bus data Port B ke bus data Port C ke bus data Bus data ke port A Bus data ke port B Bus data ke port C Bus data ke bus kontrol Bus data three state Ilegal Bus data three state

3.2 PERANTARAAN PPI 8255
Misalnya kita akan menyimpan alamat I/O PPI pada alamat 300H s/d 303H. Maka pengaturan port-portnya adalah sebagai berikut : Port A = 300H; Port B = 301H; Port C = 302H dan Control Word = 303H Untuk mengirim data ke port A yang telah diprogram sebagai port keluaran dapat digunakan instruksi : MOV DX, 300H MOV AL, data_out OUT DX,AL

Teknik Telekomunikasi Nir Kabel

147

MIKROPROSESOR 8085

SEMESTER 3

Sedangkan bila telah diprogram sebagai masukan, untuk membaca data dari port A dapat dilakukan dengan instruksi berikut ini: MOV DX,300H IN AL,DX Hal yang sama juga dapat digunakan untuk port B dengan alamat 301H dan port C dengan alamat 302H. Mengenai register dari mikroprosesor yang digunakan untuk tempat menyimpan alamat dan data terserah pemogram, asalkan register tersebut sesuai dengan operasi yang akan dilakukan. Ada tiga mode utama yang dapat diprogramkan ke PPI, yaitu : 1. Mode 0 Mode 0 adalah mode operasi masukan dan keluaran yang paling sederhana (basic input/ output operation). Pada mode ini tiap port pada PPI hanya dapat digunakan sebagai masukan atau keluaran. Dalam mode 0, 24 jalur I/O dibagi menjadi 2 group (lihat gambar 2.6), yaitu group A dan group B. Group A terdiri dari 8 jalur port A dan 4 jalur port C upper. Group B terdiri dari 8 jalur port B dan 4 jalur port C lower2. 2. Mode 1 Mode 1 adalah mode operasi masukan dan keluaran yang terkontrol (strobed input/output operation). Pada mode ini port A dan port B dapat digunakan sebagai masukan atau keluaran, tergantung kontrol dari port C. Dalam mode 1, PPI hanya menggunakan dua buah port yaitu port A dan port B. Untuk operasi masukan atau keluaran, masing-masing port mentransfer data bersamaan dengan adanya Strobe atau sinyal Handshaking. Port A dan Port B menggunakan semua bit dari port C.

Teknik Telekomunikasi Nir Kabel

148

MIKROPROSESOR 8085

SEMESTER 3

3. Mode 2 Mode 2 adalah mode operasi masukan dan keluaran secara dua arah (bidirectional input/output operation). Pada mode ini, port A sebagai bus data dua arah yang dikontrol oleh port C. Dalam mode ini hanya port A yang dapat digunakan, namun operasi yang dilakukan dapat dua arah ( biderectional ) dengan data yang berbeda untuk setiap operasi tulis atau operasi baca. Mode 1 dan 2 adalah mode operasi yang memerlukan sinyal kontrol input/output atau handshaking signal (sinyal jabat tangan) yaitu sinyal yang menyatakan kesiapan alat untuk dikenai proses baca atau tulis. Gambaran mode operasi pada PPI 8255 dapat dilihat dalam Gambar 3.
Blok B Port B Blok A Port A

PPI 8255
Port C

PB7-PB0

PC3-PC0

PC7-PC4

PA7-PA0

a). PPI 8255
Port B Port C Port A

PB7-PB0

ontrol atau I/O

PPI 8255
Port B Port C Port A

PB7-PB0

Gambar 3. Mode Operasi PPI 8255, a). mode 0, b), mode 1, c). mode 2.

Teknik Telekomunikasi Nir Kabel

¤

I/O

ontrol

¤

¤

ontrol atau I/O

PA7-PA0

b).

PA7-PA0

c).

149

MIKROPROSESOR 8085

SEMESTER 3

Diantara ketiga mode operasi di atas, mode 0 adalah mode yang paling sering digunakan karena kemudahannya. Dengan mode 0, perangkat lunak tidak perlu membaca data port kontrol secara terus menerus untuk menentukan proses baca/tulis terhadap alat. Kapanpun kita ingin membaca atau menulis data pada port dapat langsung dilakukan saat itu juga Gambar dibawah ini memperlihatkan dua buah group kontrol port, yaitu group A dan group B.

Kontrol group A mengontrol mode transfer data (dari atau ke) 8 bit port A dan 4 bit dari port C upper. Sedangkan kontrol group B mengontrol mode transfer data (dari atau ke) 8 bit port B dan 4 bit dari port C lower. Kontrol data yang

Teknik Telekomunikasi Nir Kabel

150

MIKROPROSESOR 8085

SEMESTER 3

dituliskan dari kontrol register akan menentukan karakteristik pengoperasian PPI. Pada gambar tersebut terlihat D5-D7 digunakan untuk mengontrol grup B. D7 menentukan port C lower (PC0-PC3), logic1 diprogram untuk masukan sedangkan logic 0 diprogram sebagai keluaran. D6 menentukan port B (PB0PB7), logic1 diprogram untuk masukan sedangkan logic 0 diprogram sebagai keluaran. D5 digunakan untuk memilih mode port B yang diinginkan, yakni mode 0 atau mode 1. D1 sampai D4 digunakan untuk mengontrol grup A. D4 menentukan port C upper (PC4-PC7), logic 1 diprogram sebagai masukan dan logic 0 dipogram sebagai keluaran. D3 menentukan port A (PA0-PA7), logic1 diprogram untuk masukan sedangkan logic 0 diprogram sebagai keluaran. Sedangkan D1 dan D2 akan menentukan mode untuk group A; bila 00 berarti modus 0, bila 01 berarti modus 1, dan bila 1X berarti modus 2. Modus 0 dinamakan simple input/output. Bila diprogram sebagai keluaran, data yang ada di port keluaran akan ditahan, sedangkan bila diprogram sebagai port masukan, masukan ini tidak ditahan. Sedangkan D0 adalah modus set flag. D0 ini harus selalu berlogic 1 agar PPI dapat beroperasi. Contoh soal : Rancang suatu memory decoder dengan IC decoder untuk menghubungkan suatu prosesor yang memiliki 24 saluran alamat dengan unit memory yang ada :  EPROM I 16 Kbyte  EPROM II 16 Kbyte  RAM I 16 Kbyte  RAM II 16 Kbyte  Input chip select dari semua IC memory adalah ³ aktif Low ³ .

Teknik Telekomunikasi Nir Kabel

151

MIKROPROSESOR 8085

SEMESTER 3

Jawab; Mencari input yang digunakan : FPB dari 64 dan 16 =>16 maka ada 4 kelompok sehingga jumlah bit yang digunakan 2 byte Maka input yang digunakan : A14 , A15 EPROM 16 Kb EPROM 16 Kb RAM 16 Kb RAM 16 Kb Kosong Don¶t care Input A15 0 0 1 1 A14 0 1 0 1 Cs0 0 1 1 1 Alamat : 10000 - FFFFF Tabel Kebenaran : Output Cs1 1 0 1 1 Alamat : 0C000 - 0FFFF Alamat : 08000 - 0BFFF Alamat : 04000 - 07FFF Memory Map Alamat : 00000 - 03FFF

Cs2 1 1 0 1

Cs3 1 1 1 0

Rangkaian Decoder :

EPROM I

EPROM II

RAM I

RAM II

A14
MIKROPROSESOR

A15

Teknik Telekomunikasi Nir Kabel

152

MIKROPROSESOR 8085

SEMESTER 3

BAB 4

TRAINER MIDICOM
Untuk melakukan percobaan ± percobaan mikroprosesor diperlukan suatu trainer mikroprosesor yang mudah dioperasikan dan fungsinya dapat dikembangkan sesuai dengan kemampuan pemrogram. Trainer yang digunakan yaitu trainer MIDICOM yang berbasis mikroprosesr INTEL 8085. Trainer MIDICOM dipilih karena alasan-alasan berikut :

# #

Struktur organisasinya mudah dipelajari Diagram blok untuk sistem mikroprosesor ini sesuai dengan tata letak komponen pada board

# #

Dirancang khusus untuk keperluan di pendidikan Trainer tersebut telah dilengkapi dengan fasilitas input /output, seperti monitor dan ASCII keyboard sehingga memudahkan proses belajar

#

Telah mempunyai fasilitas untuk interfacing dan assembler Penggunaan mikroprosesor INTEL 8085 pada trainer MIDICOM ini sangat

menguntungkan karena dengan memahami mikroprosesor tersebut akan mempermudah pemakai untuk mempelajari prosesor-prosesor generasi yang lebih baru seperti INTEL 8088, INTEL 80286 dan lain- lain Sebelum kita dapat menggunakan suatu sistem mikroprosesor, maka terlebih dahulu kita harus mengenal peta memori yang dipakai dalam sistem tersebut. Karena dengan mengetahui peta memori, kita dapat menempatkan program dan atau data pada alamat-alamat yang tersedia khusus untuk pemakai. Pada trainer MIDICOM peta memorinya disusun seperti gambar dibawah ini :

Teknik Telekomunikasi Nir Kabel

153

MIKROPROSESOR 8085

SEMESTER 3

Dari peta memori tersebut kita dapat mengetahui bahwa program monitor menempati daerah EPROM yang hanya bisa dibaca tetapi tidak bisa ditulis. Daerah RAM yang menempati alamat 6000h sampai dengan 67FFh dipergunakan sebagai memori kerja monitor dan selanjutnya mulai alamat 6800h sampai dengan

Teknik Telekomunikasi Nir Kabel

154

MIKROPROSESOR 8085

SEMESTER 3

6FFFh digunakan untuk daerah kerja BASIC. Untuk program dan data, pemrogram dapat memanfaatkan daerah RAM mulai dari alamat 7000h ± FFFFh. Dalam daerah tersebut dapat saja dimasukkan lebih dari satu program asal saja penempatannya tidak tumpang tindih. Dengan demikian, program yang akan dimasukkan data ditempatkan pada alamat-alamat antara 7000h dan FFFFh.

A.

Cara menghidupkan trainer MIDICOM Untuk menghidupkan trainer MIDICOM pertama - tama periksa apakah

kabel penghubung daya telah terpasang dengan benar. Kemudian ubah posisi saklar yang terletak di sudut kiri atas modul ke posisi ON. Pada saat saklar daya diubah ke posisi ON unit peraga akan menampilkan : Ln. 85 Keterangan : Ln = menunjukkan pabrik pembuatnya (Lucas Nulle) 85 = menunjukkan jenis prosesor yang dipergunakan (INTEL 8085) 3.2 = menunjukkan versi dari monitor program Namun, setiap kali tombol RESET ditekan maka unit peraga akan menampilkan pola yang sama. Pola tersebut akan selalu ditampilkan setiap kali prosesor memasuki program monitor yang artinya trainer siap menerima instruksi. 3.2

B.

Melihat dan mengganti isi register Untuk melihat data yang ada pada suatu register, maka pertama-tama

tekanlah tombol REG, kemudian tekanlah tombol-tombol huruf yang sesuai dengan nama register yang akan kita lihat. Untuk melihat isi register yang lainnya, tekanlah tombol + satu kali, maka unit peraga akan menampilkan data yang berada pada register berikutnya. Dan sebaliknya untuk fungsi tombol - . Sedangkan untuk mengganti isi suatu register, pertama-tama tekanlan tombol REG , kemudian register yang kita ingin ubah misalnya A, setelah itu tekanlah tombol - tombol angka yang sesuai dengan yang diinginkan misalnya 2A.

Teknik Telekomunikasi Nir Kabel

155

MIKROPROSESOR 8085

SEMESTER 3

C.

Melihat dan mengubah isi suatu lokasi memori (RAM) Untuk melihat data yang berada pada suatu lokasi memori baik itu pada

RAM maupun ROM, yaitu dengan menekan tombol MEM . Setelah itu, unit peraga akan menampilkan 4 digit, yang harus kita isi dengan alamat yanga akan kita tuju. Setelah diisi alamatnya, tekanlah tombol + untuk menampilkan data yang berada pada alamat tersebut. Sedangkan untuk mengubah data yang berada pada alamat memori sama seperti pada mengganti data pada register.

D.

Menyisipkan data ke dalam suatu blok memori Untuk menyisipkan data pada suatu blok memori tanpa harus mengubah

semua data yang akan disisipkan pada alamat-alamat tertentu. Dapat dilaksanakan dengan menekan tombol INS (insert), dilanjutkan dengan memasukkan alamat awal dari kode/data yang akan disisipkan (4 digit). Kemudian tekan tombol + dilanjutkan dengan memasukkan alamat terakhir dari blok memori yang akan disisipkan data baru. Setelah selesai tekanlah tombol EX. Contoh Masukkan data secara berurutan mulai dari 00h sampai dengan 05h ( datadata yang harus dimasukkan adalah 00h, 01h, 02h, 03h, 04h dan 05h ) pada blok memori mulai dari alamat 8000h sampai dengan alamat 8005h, catat hasilnya pada tabel berikut ini :

Register Data

A 9C

B 5F

C BE

D 9C

PC 800A

Teknik Telekomunikasi Nir Kabel

156

MIKROPROSESOR 8085

SEMESTER 3

Sisipkan tiga byte data baru ke dalam blok memori di atas (data yang harus disisipkan adalah 2Ah, 7Ch dan F2h) pada lokasi mulai alamat 8002h (yaitu alamat 8002h, 8003h dan 8004h). Tekan tombol berikut :

Keterangan : # # # 8002 adalah alamat awal tempat data baru akan disisipkan 8005 adalah alamat akhir dari blok memori sebelum data beru disisipkan 2Ah, 7Ch dan F2h adalah data-data baru yang akan disisipkan pada blok memori alamat 8000h sampai 8005h

E.

Menjalankan program Untuk menjalankan program tekanlah tombol GO, kemudian

masukan alamat awal dari program yang akan dieksekusi. Dan selanjutnya tekan tombol EX sebagai perintah dimulainya pelaksanaan proses eksekusi tersebut. Contoh Untuk melaksanakan program yan dimulai dengan alamat awal 7000h tombol, tombol yang harus ditekan adalah :

F.

Menggandakan (meng-copy) suatu blok memori Untuk menggandakan suatu blok memori yang berisikan data atau program

dapat dilakukan dengan menggunakan instruksi copy (CPY). Setelah kita mengetahui cara kerja dan fungsi yang terdapat pada trainer MIDICOM, kita dapat membuat program yang kita inginkan.

Teknik Telekomunikasi Nir Kabel

157

Sign up to vote on this title
UsefulNot useful