Top Banner
BAB I PENDAHULUAN 1.1 Mikroprosesor Mikroprosesor adalah gabungan 2 kata yaitu mikro dan prosesor. Jadi, mikroprosesor adalah sebuah alat yang berukuran kecil yang digunakan untuk memproses data secara digital. Selain berukuran kecil, mikroprosesor memiliki kemampuan komputasi yang lebih rendah dibandingkan dengan komputer yang digunakan. Mikroprosesor secara umum terdiri dari: ALU (Arithmetic Logic Unit), Control and Timing Unit, dan Array Register (Register Larik). ALU berfungsi sebagai bagian yang melakukan operasi aritmatik dan logika dalam memproses data. Bagian ini yang melakukan operasi bagian dalam mikroprosesor. Sedangkan Register Larik berfungsi untuk menyimpan data sementara hasil proses oleh mikroprosesor. Fungsinya hampir sama dengan piranti memori mikroprosesor dengan perbedaan bahwa: Memori berada diluar mikroprosesor sedangkan register berada didalam mikroprosesor, Memori diidentifikasi dengan alamat sedangkan register diidentifikasi oleh nama register oleh mikroprosesor. Bagian Timing & Control berfungsi sebagai pembangkit daur-waktu untuk antarmuka dengan peripheral pada bus alamat, data dan kontrol. Selain itu mengendalikan bus-bus tambahan lainnya seperti interupsi, DMA dan lain sebagainya, tergantung arsitektur mikroprosesor itu sendiri. Arsitektur mikroprosesor pada saat ini banyak ragamnya, mulai yang paling sederhana hingga yang komplek. Dalam pembahasan ini akan dijelaskan tentang arsitektur mikroprosesor 8085. 1.1.1 Arsitektur mikroprosesor 8085 Mikroprosesor 8085 merupakan mikroprosesor 8bit produksi INTEL, diluncurkan sekitar tahun 1970. Lebih jelasnya lihat situs Sejarah Mikroprosesor INTEL. Pada jamannya sempat dijadikan sebagai mikroprosesor standar untuk sistem operasi CP/M. Arsitektur mikroprosesor INTEL 8085 diperlihatkan dalam gambar berikut ini: 1
17

14684664 mikroprosesor

Jun 25, 2015

Download

Technology

Abe Mubarok
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 14684664 mikroprosesor

BAB I

PENDAHULUAN

1.1 Mikroprosesor

Mikroprosesor adalah gabungan 2 kata yaitu mikro dan prosesor. Jadi,

mikroprosesor adalah sebuah alat yang berukuran kecil yang digunakan untuk

memproses data secara digital. Selain berukuran kecil, mikroprosesor memiliki

kemampuan komputasi yang lebih rendah dibandingkan dengan komputer yang

digunakan.

Mikroprosesor secara umum terdiri dari: ALU (Arithmetic Logic Unit),

Control and Timing Unit, dan Array Register (Register Larik). ALU berfungsi sebagai

bagian yang melakukan operasi aritmatik dan logika dalam memproses data. Bagian

ini yang melakukan operasi bagian dalam mikroprosesor. Sedangkan Register Larik

berfungsi untuk menyimpan data sementara hasil proses oleh mikroprosesor.

Fungsinya hampir sama dengan piranti memori mikroprosesor dengan perbedaan

bahwa: Memori berada diluar mikroprosesor sedangkan register berada didalam

mikroprosesor, Memori diidentifikasi dengan alamat sedangkan register diidentifikasi

oleh nama register oleh mikroprosesor. Bagian Timing & Control berfungsi sebagai

pembangkit daur-waktu untuk antarmuka dengan peripheral pada bus alamat, data dan

kontrol. Selain itu mengendalikan bus-bus tambahan lainnya seperti interupsi, DMA

dan lain sebagainya, tergantung arsitektur mikroprosesor itu sendiri. Arsitektur

mikroprosesor pada saat ini banyak ragamnya, mulai yang paling sederhana hingga

yang komplek. Dalam pembahasan ini akan dijelaskan tentang arsitektur

mikroprosesor 8085.

1.1.1 Arsitektur mikroprosesor 8085

Mikroprosesor 8085 merupakan mikroprosesor 8bit produksi INTEL,

diluncurkan sekitar tahun 1970. Lebih jelasnya lihat situs Sejarah Mikroprosesor

INTEL. Pada jamannya sempat dijadikan sebagai mikroprosesor standar untuk sistem

operasi CP/M. Arsitektur mikroprosesor INTEL 8085 diperlihatkan dalam gambar

berikut ini:

1

Page 2: 14684664 mikroprosesor

Sumber: Lembar Data INTEL 8085

Mikroprosesor 8085 ini dikemas dalam bentuk DIP (Dual Inline Package)

dengan jumlah penyemat sebanyak 40 buah. Dibandingkan pendahulunya 8080,

mikroprosesor 8085 hanya membutuhkan sumber tegangan.

Susunan penyemat mikroprosesor 8085

Mikroprosesor 8085 memiliki jumlah Bus Alamat sebanyak 16bit dengan

demikian dapat mengakses memori secara langsung sebanyak 216 alamat memori

atau sebanyak 65535 alamat, sering disebut sebagai 64K x 8Bit atau 64KByte memori

2

Page 3: 14684664 mikroprosesor

secara langsung. Jumlah Bus Data adalah 8bit, dengan demikian dapat menghubungi

peripheral dengan lebar data (Data Path Width) 8bit.

Mikroprosesor ini tidak memiliki buas alamat 16bit secara terpisah,

melainkan bus alamat byte terendah (low significant byte) yaitu A0..A7 dimultiplek

dengan Bus Data D0..D7. Dengan demikian mikroprosesor 8085 belum siap dijadikan

sebagai Unit Mikroprosesor (MPU - Microprocessor Unit). Selain itu bus kontrol

peripheral /MEMR, /MEMW, /IOR, dan /IOW belum terpisah sepenuhnya dan harus

dibangkitkan dari sinyal kontrol /RD (penyemat 32), /WR (penyemat 31), IO/M

(penyemat 34). Agar siap dijadikan sebagai MPU diperlukan beberapa komponen

tambahan yaitu rangkaian bus demultiplexer (pemisahan bus D0..D7 dan A0..A7) dan

rangkaian dekoder sinyal kontrol.

Register yang dimiliki mikroprosesor 8085 adalah:

o Register B, C, D, E, H, L. Dapat diperlakukan sebagai register 8bit atau pasangan

register 8bit menjadi 16bit yaitu BC, DE dan HL. Register ini disebut sebagai User

Register artinya register yang diperuntukkan pengguna agar bisa dilibatkan dalam

pemrograman.

o Register SP (Stack Pointer), berfungsi sebagai pointer tumpukan yaitu penyimpanan

data dalam memori yang disusun secara bertumpuk.

o Register PC (Program Counter), berfungsi sebagai pointer alamat program yang

akan dieksekusi.

1.2 Bahasa Assembly

Bahasa Assembly adalah bahasa komputer yang kedudukannya di antara bahasa

mesin dan bahasa level tinggi misalnya bahasa C atau Pascal. Bahasa C atau Pascal

dikatakan sebagai bahasa level tinggi karena memakai kata-kata dan pernyataan yang

mudah dimengerti manusia, meskipun masih jauh berbeda dengan bahasa manusia

sesungguhnya. Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi

yang bisa dijalankan oleh komputer. Sedangkan bahasa Assembly memakai kode

Mnemonic untuk menggantikan kode biner, agar lebih mudah diingat sehingga lebih

memudahkan penulisan program.

Program yang ditulis dengan bahasa Assembly terdiri dari label; kode mnemonic

dan lain sebagainya, pada umumnya dinamakan sebagai program sumber (Source

Code) yang belum bisa diterima oleh prosesor untuk dijalankan sebagai program, tapi

3

Page 4: 14684664 mikroprosesor

harus diterjemahkan dulu menjadi bahasa mesin dalam bentuk kode biner. Program

sumber dibuat dengan program editor biasa, misalnya Note Pad pada Windows atau

SideKick pada DOS, selanjutnya program sumber diterjemahkan ke bahasa mesin

dengan menggunakan program Assembler.

Bagan kerja proses Assembly

1.2.1 Konstruksi Program Assemble

Program sumber dalam bahasa Assembly menganut prinsip 1 baris untuk satu perintah, setiap baris perintah tersebut bisa terdiri atas beberapa bagian (field), yakni bagian Label, bagian mnemonic, bagian operand yang bisa lebih dari satu dan terakhir bagian komentar.

Untuk membedakan masing-masing bagian tersebut dibuat ketentuan sebagian berikut:

1. Masing-masing bagian dipisahkan dengan spasi atau TAB, khusus untuk operand yang lebih dari satu masing-masing operand dipisah-kan dengan koma.

2. Bagian-bagian tersebut tidak harus semuanya ada dalam sebuah ba-ris, jika ada satu bagian yang tidak ada maka spasi atau TAB seba-gai pemisah bagian tetap harus ditulis.

3. Bagian Label ditulis mulai huruf pertama dari baris, jika baris bersangkutan tidak mengandung Label maka label tersebut diganti-kan dengan spasi atau TAB, yakni sebagai tanda pemisah antara ba-gian Label dan bagian mnemonic.

Label mewakili nomor memori-program dari instruksi pada baris bersangku-tan, pada saat menulis instruksi JUMP, Label ini ditulis dalam bagian operand untuk menyatakan nomor memori-program yang dituju. Dengan demikian Label selalu me-wakili nomor memori-program dan harus ditulis dibagian awal baris instruksi. Di-samping Label dikenal pula Symbol, yakni satu nama untuk mewakili satu nilai ter-tentu dan nilai yang diwakili bisa apa saja tidak harus nomor memori-program. Cara penulisan Symbol sama dengan cara penulisan Label, harus dimulai di huruf pertama

4

Page 5: 14684664 mikroprosesor

dari baris instruksi. Mnemonic (arttinya sesuatu yang memudahkan diingat) merupa-kan singkatan perintah, dikenal dua macam mnemonic, yakni manemonic yang dipa-kai sebagai instruksi mengendalikan prosesor, misalnya ADD, MOV, DJNZ dan lain sebagainya. Ada pula mnemonic yang dipakai untuk mengatur kerja dari program Assembler misalnya ORG, EQU atau DB, mnemonis untuk mengatur kerja dari pro-gram Assembler ini dinamakan sebagai ‘Assembler Directive’. Operand adalah bagian yang letaknya di belakang bagian mnemonic, merupakan pelangkap bagi mnemonic. Kalau sebuah instrksi di-ibaratkan sebagai kalimat perintah, maka mnemonic merupa-kan subjek (kata kerja) dan operand merupakan objek (kata benda) dari kalimat perintah tersebut. Tergantung pada jenis instruksinya, operand bisa berupa berbagai macam hal. Pada instruksi JUMP operand berupa Label yang mewakili nomor memo-ri-program yang dituju misalnya LJMP Start, pada instruksi untuk pemindahan/pen-golahan data, operand bisa berupa Symbol yang mewakili data tersebut, misalnya ADD A,#Offset. Banyak instruksi yang operandnya adalah register dari prosesor, mi-salnya MOV A,R1. Bahkan ada pula instruksi yang tidak mempunyai operand, misal-nya RET. Komentar merupakan bagian yang sekedar sebagai catatan, tidak ber-pengaruh pada prosesor juga tidak berpengaruh pada kerja program Assembler, tapi bagian ini sangat penting untuk keperluan dokumentasi.

5

Page 6: 14684664 mikroprosesor

BAB IIPerangkat Keras

Perangkat keras mikroprosesor terdiri dari:

1. MPU 8085

2. ROM 8 KB

3. Input unit

4. Output unit

Alamat memori pada 0000 H – 1FFF H

Input unit pada 32 H

Output unit pada 30 H

2.1 Pemetaan Memori

Kapasitas memori 8KB = 213 byte

Memori memiliki 13 bit bus alamat

Mikroprosesor memiliki 16 bit bus alamat

A15 A14 A13 A12 A11 A10 .. .. .. A2 A1 A0 HEX0 0 0 0 0 0 0 0 0 0.. .. .. .. .. .. .. .. .. ..0 0 0 1 1 1 1 1 1 1

8

KB

Rangkaian Memori Address Decoder

2.2 Pemetaan Input

Alamat input pada 32 H

6

MEMORIADDRESSDECODER

Page 7: 14684664 mikroprosesor

Bit A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

32H 0 0 0 0 1 1 0 0 1 0

Rangkaian Input dan Address Decoder

7

INPUTADDRESSDECODER

Page 8: 14684664 mikroprosesor

2.3 Pemetaan Output

Alamat output pada 30 H

Bit A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

30H 0 0 0 0 1 1 0 0 0 0

Rangkaian Output dan Address Decoder

8

INPUTADDRESSDECODER

Page 9: 14684664 mikroprosesor

2.4 Skema Perangkat Keras

9

MPU8085

A0

A1

A2

A9

A10

A12

A15

A14

A13

:

A11

D7

D0

:

MEM R

MEM W

IOR

IOW

27648 kB

D0--D

7OE WR

CS

A0

A12

:

INPUTD

7—D

0RD

A1

A0

CS

OUTPUTD

7—D

0WR

A1

A0

CS

MEMORI ADDRESS DECODER

INPUT ADDRESS DECODER

OUTPUTADDRESS DECODER

Page 10: 14684664 mikroprosesor

BAB IIIPerangkat Lunak

Diberikan tabel seperti berikut:0AH

0FH

0AH

F0H

1AH

00H

05H

FFH

20H

00H

40H

FFH

50H

00H

00

ket: Urutan program dari atas ke bawah adalah ketentuan delay dalam heksa dan kemudian nyala lampu dari port output yang dikeluarkan melalui port output dalam heksa.

Untuk mengatur nyala lampu seperti tabel di atas, maka yang pertama harus kita persiapkan adalah logika pemrograman atau alur algoritma pemrograman yang biasa disebut flowchart.

Setelah selesai dengan flowchart, barulah kita mulai dengan listing algoritma progaram dengan menggunakan bahasa asembler.

10

Page 11: 14684664 mikroprosesor

A. Flowchart

Flowchart untuk program utama:

11

JMP start

start

A(0FH)

(30H)A

Call dly-1

ACMA

Call dly-1

(30H)A

ANI 00

Call dly-2

(30H)A

ACMA

Call dly-3

A

A

(30H)A

ACMA

ACMA

ACMA

(30H)A

(30H)A

Call dly-4

Call dly-6

Call dly-5

B

B

end

(30H)A

Page 12: 14684664 mikroprosesor

Flow chart untuk sub-program (delay)

false

true

false true

12

DLY-X

Bn1

Cn2

CC-1

BB-1

RET

C = 0

B = 0

Page 13: 14684664 mikroprosesor

B.Cara KerjaCara kerja dari program ini adalah :1. Isi accumulator sebanyak 0FH.2. Beri delay sebesar 0AH (10 mS), kemudian keluarkan melalui port 30H.

3. Complementkan isi accumulator menjadi F0H.

4. Kembali ke langkah 2.5. AND-kan accumulator dengan 00H, dan menjadi 00H.

6. Beri delay sebesar 1AH (26 mS), kemudian keluarkan melalui port 30H.

7. Complementkan isi accumulator menjadi FFH.

8. Beri delay sebesar 05H (5 mS), kemudian keluarkan melalui port 30H.

9. Complementkan isi accumulator menjadi 00H.

10. Beri delay sebesar 20H (32 mS), kemudian keluarkan melalui port 30H.

11. Complementkan isi accumulator menjadi FFH.

12. Beri delay sebesar 40H (64 mS), kemudian keluarkan melalui port 30H.

13. Complementkan isi accumulator menjadi 00H.

14. Beri delay sebesar 50H (80 mS), kemudian keluarkan melalui port 30H.

15. Kembali ke awal.

Sedangkan untuk memberikan delay adalah dari setiap ketentuan tabel bisa kita lakukan dengan cara mengisi register B dan C dan kemudian dikosongkan dengan logika seperti flowchart di atas.

Cara keja dari delay ini sendiri adalah:1. Mengisi register B sebanyak n1H.

2. Mengisi register C sebanyak n2H.

3. Kurangi isi register C sampai berisi 00H.

4. Apabila C belum bernilai 00H., kurangi isi register B.5. Apabila B belum bernilai 00H., kembali ke langkah 2.6. Apabila B bernilai 00H, kembali ke urutan program utama.Untuk pengisian ke-2 register tersebut digunakan:

• 14n1n2+21n1+11 = X mSKet:Karena frekuensi running 1 MHz, maka 1 clock cycle = 10-6 s

n1H, n2H diisi sesuai dengan perhitungan yang didapat.

X mS adalah delay dalam satuan mili second (10-3 second) yang dikehendaki oleh user.

C. Program <kompilasi>

13

Program Perintah CLOCK CYCLE TOTAL CC.MVI D,n1 7 7MVI E,n2 7 7n1

DCR E 4 4n1n2

JNZ DLY2 10/7 n1((n2-1)10+7)DCR D 4 4n1

JNZ DLY1 10/7 (n1-1)10+7RET 10 10

14n1n2+21n1+11

Page 14: 14684664 mikroprosesor

Setelah flow chart selesai, barulah kita bisa menuliskan atau menterjemahkannya ke dalam bahasa assembler atau bahasa mesin yang dapat dimengerti oleh mikroprosesor.

Dan listing dari program tersebut adalah:

START: MVI A,0FhCALL DLY-1OUT 30hCMACALL DLY-1OUT 30hANI 00hCALL DLY-2OUT 30hCMACALL DLY-3OUT 30hCMACALL DLY-4OUT 30hCMACALL DLY-5OUT 30hCMACALL DLY-6OUT 30hJMP START

;===================================DLY-1: MVI B,30ISI-1: MVI C,23KRG-1: DCR C

14

Page 15: 14684664 mikroprosesor

JNZ KRG-1DCR BJNZ ISI-1

RET;==================================DLY-2: MVI B,45ISI-2: MVI C,40KRG-2: DCR C

JNZ KRG-2DCR BJNZ ISI-2

RET;==================================DLY-3: MVI B,25ISI-3: MVI C,13KRG-3: DCR C

JNZ KRG-3DCR BJNZ ISI-3

RET;===================================DLY-4: MVI B,60ISI-4: MVI C,37KRG-4: DCR C

JNZ KRG-4DCR BJNZ ISI-4

RET;==================================DLY-5: MVI B,80ISI-5: MVI C,56KRG-5: DCR C

JNZ KRG-5DCR BJNZ ISI-5

RET;==================================DLY-6: MVI B,100ISI-6: MVI C,56KRG-6: DCR C

JNZ KRG-6DCR BJNZ ISI-6

RETEND

Sedangkan tampilan nyala lampu tersebut adalah:

Pola O 00H

15

Page 16: 14684664 mikroprosesor

Pola 1 0FH

Pola 2 F0H

Pola 3 00H

Pola 4 FFH

Pola 5 00H

Pola 6 00H

Pola 7 0FH

Pola 8 F0H

Pola 19 00H

Pola 10 FFH

Pola 11 00H

Pola 12 FFH

Pola 13 00H

Pola 14 0FH

Ket:

: Lampu mati

: Lampu hidup

Pola 0 adalah tampilan sebelum program dijalankan.Saat program dijalankan setelah pola 14, nyala lampu akan kembali ke pola 1

BAB IVPenutup

16

Page 17: 14684664 mikroprosesor

Sekian isi dari makalah ini. Semoga dengan makalah ini kita dapat lebih mengerti tentang mikroprosesor. Bagaimana cara kerja dari mikroprosesor dan cara membuat program sederhana menggunakan bahasa assembler.

17