BAB I PENDAHULUAN
Mikroprosesor
Mikr Mikrop opro rose seso sorr adala adalah h gabu gabung ngan an 2 kata kata yaitu yaitu mikr mikro o dan dan pros proses esor or.. Jadi Jadi,, mikrop mikropros roseso esorr adalah adalah sebuah sebuah alat yang yang beruku berukuran ran kecil kecil yang yang diguna digunakan kan untuk untuk mempro memproses ses data data secara secara digital digital.. Selain Selain beruku berukuran ran kecil, kecil, mikrop mikropros roseso esorr memilik memilikii kemamp kemampuan uan komput komputasi asi yang yang lebih lebih rendah rendah diband dibanding ingkan kan dengan dengan komput komputer er yang yang digunakan.
Mikrop Mikropros roseso esorr secara secara umum umum terdiri terdiri dari: dari: ALU ALU (Arithm (Arithmetic etic Logic Logic Unit), Unit), Control and Timing Unit, dan Array Array Register (Register Larik). ALU berfungsi sebagai bagian bagian yang melakukan melakukan operasi operasi aritmatik aritmatik dan logika dalam memproses memproses data. Bagian ini yang melakukan operasi bagian dalam mikroprosesor. Sedangkan Register Larik berf berfun ungs gsii untu untuk k meny menyim impa pan n data data seme sement ntara ara hasi hasill pros proses es oleh oleh mikr mikrop opro rose seso sorr. Fungsinya Fungsinya hampir sama dengan piranti piranti memori mikroproseso mikroprosesorr dengan dengan perbedaan perbedaan bahwa bahwa:: Memori Memori berada berada diluar diluar mikrop mikropros roseso esorr sedang sedangkan kan regist register er berada berada didalam 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 sebaga sebagainy inya, a, tergan tergantun tung g arsite arsitektu kturr mikrop mikropros roseso esorr itu sendir sendiri. i. Arsitek Arsitektur tur mikroprosesor pada saat ini banyak ragamnya, mulai yang paling sederhana hingga yang ang
komp komple lek. k. Dala Dalam m
pemb pembah ahas asan an ini ini
akan akan dije dijela lask skan an tent tentan ang g
arsi arsite tekt ktur ur
mikroprosesor 8085.
1.1.1 Arsitektur mikroprosesor 8085
Mikrop Mikropros roseso esorr 8085 8085 merupa merupakan kan mikrop mikropros roseso esorr 8bit 8bit produk produksi si INTEL, INTEL, diluncurka diluncurkan n sekitar tahun 1970. 1970. Lebih jelasnya lihat situs Sejarah Sejarah Mikroprose Mikroprosesor sor INTEL. Pada jamannya sempat dijadikan sebagai mikroprosesor standar untuk sistem operasi CP/M. Arsitektur mikroprosesor INTEL 8085 diperlihatkan dalam gambar berikut ini:
1
Sumber: Lembar Data INTEL 8085
Mikroprosesor 8085 ini dikemas dalam bentuk DIP (Dual Inline Package) dengan dengan jumlah jumlah penyem penyemat at sebany sebanyak ak 40 buah. buah. Diband Dibanding ingkan kan pendah pendahulu uluny nyaa 8080, 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
secara langsung. Jumlah Bus Data adalah 8bit, dengan demikian dapat menghubungi peripheral dengan lebar data (Data Path Width) 8bit. Mikr Mikrop opro rose seso sorr ini ini tida tidak k memi memilik likii buas buas alama alamatt 16bi 16bitt secar secaraa terpi terpisa sah, h, 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 dibang dibangkit kitkan kan dari dari sinyal sinyal kontrol kontrol /RD (penye (penyemat mat 32), 32), /WR (penye (penyemat mat 31), 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
se c a r a
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 dijalankan oleh komputer komputer.. Sedangkan Sedangkan bahasa Assembly Assembly memakai 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
harus diterjemahkan diterjemahkan dulu menjadi bahasa bahasa mesin dalam bentuk kode biner. biner. Program Program sumber dibuat dengan program editor biasa, misalnya Note Pad pada Windows atau SideKick SideKick pada DOS, selanjutny selanjutnyaa program sumber sumber diterjemahkan diterjemahkan ke bahasa mesin dengan menggunakan program Assembler. 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 tera khir bagian komentar. komentar. Untuk membedakan masing-masing bagian tersebut dibuat ketentuan sebagian berikut: 1.
2.
3.
Masing-ma -masing ba bagian dipi ipisahkan den deng gan sp spasi ata atau u TA TAB, kh khusus untuk operand yang lebih dari satu masing-masing operand dipisahkan dengan koma. Bagian ian-ba -bagian ian ter terssebu ebut ti tidak harus rus sem semu uanya ad ada dal dalam am sebuah baris, jika ada satu bagian yang tidak ada maka spasi spasi atau TAB TAB sebagai pemisah bagian tetap harus ditulis. Bagian Lab Label ditulis mul mulai huruf pertama dari baris, jik jika baris bersangkutan tidak mengandung Label maka label tersebut digantikan dengan spasi atau TAB, yakni sebagai tanda pemisah antara bagian Label dan bagian mnemonic.
Label mewakili nomor memori-program dari instruksi pada baris bersangkutan, pada saat menulis instruksi JUMP, Label ini ditulis dalam bagian operand untuk menyatakan nomor memori-program yang dituju. Dengan demikian Label selalu mewakili nomor memori-program dan harus ditulis dibagian awal baris instruksi. Disamping Label dikenal pula Symbol, yakni satu nama untuk mewakili satu nilai tertentu 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
dari baris instruksi. Mnemonic (arttinya sesuatu yang memudahkan diingat) merupakan singkatan perintah, dikenal dua macam mnemonic, yakni manemonic yang dipakai sebagai instruksi mengendalikan prosesor, misalnya ADD, MOV, DJNZ dan lain sebagainya sebagainya.. Ada pula mnemonic mnemonic yang dipakai dipakai untuk mengatur mengatur kerja dari program Assembler misalnya ORG, EQU atau DB, mnemonis untuk mengatur kerja dari program Assembler Assembler ini dinamakan sebagai ‘Assembler Directive’. Direct ive’. Operand adalah bagian yang letaknya di belakang bagian mnemonic, merupakan pelangkap bagi mnemonic. Kalau sebuah instrksi di-ibaratkan sebagai kalimat perintah, maka mnemonic merupakan subje subjek k (kata (kata kerja) kerja) dan operan operand d merupa merupakan kan objek objek (kata (kata benda) benda) dari dari kalima kalimatt perintah tersebut. Tergantung pada jenis instruksinya, operand bisa berupa berbagai macam hal. Pada instruksi JUMP operand berupa Label yang mewakili nomor memori-program yang dituju misalnya LJMP Start, pada instruksi untuk pemindahan/pengolahan data, operand bisa berupa Symbol yang mewakili data tersebut, misalnya ADD A,#Offset. Banyak instruksi yang operandnya adalah register dari prosesor, misalnya MOV A,R1. Bahkan ada pula instruksi yang tidak mempunyai operand, misalnya RET. Koment Komentar ar merupa merupakan kan bagian bagian yang yang sekeda sekedarr sebagai sebagai catatan catatan,, tidak tidak berber pengaruh pada prosesor juga tidak berpengaruh pada kerja program Assembler, tapi bagian ini sangat penting untuk keperluan dokumentasi.
5
BAB II Perangkat 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 = 2 13 byte Memori memiliki 13 bit bus alamat Mikroprosesor memiliki 16 bit bus alamat A15 0 .. 0
A14 0 .. 0
A13 0 .. 0
A12 0 .. 1
A11 0 .. 1
A10 0 .. 1
ADDRESS DECODER
..
..
..
A2 0 .. 1
A1 0 .. 1
A0 0 .. 1
HEX 0 .. 1
8 KB
MEMORI
Rangkaian Memori Address Decoder
2.2 Pemetaan Input
Alamat input pada 32 H 6
Bit
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
32H
0
0
0
0
1
1
0
0
1
0
ADDRESS DECODER
INPUT
Rangkaian Input dan Address Decoder
7
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
ADDRESS DECODER
INPUT
Rangkaian Output dan Address Decoder
8
2.4 Skema Perangkat Keras MEMORI ADDRESS DECODER
MPU 8085
A15 A14 A13 A12 A11 A10 A9 : A2 A1 A0
CS
A12
:
2764 8 kB
A0
OE WR D0--D7
D7 : D0 MEM R MEM W IOR IOW
INPUT ADDRESS DECODER CS
A1 A0
INPUT RD
D7 —D0
OUTPUT ADDRESS DECODER A1
CS
A0
OUTPUT WR
D7 —D0
9
BAB III Perangkat 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. asembler.
10
A. Flow lowchar chartt Flowchart untuk program utama:
start
A
B
A(0FH)
(30H)A
(30H)A
Call dly-1
ACMA
JMP start
(30H)A
ACMA
Call dly-1
(30H)A
end Call dly-4
(30H)A
ACMA
Call dly-5
ANI 00
(30H)A
Call dly-2
ACMA
(30H)A Call dly-6 ACMA B Call dly-3
A 11
Flow chart untuk sub-program (delay)
DLY-X
Bn
Cn
CC-1 false
C= 0 true BB-1 false
true
B= 0
RET
12
B.Cara Kerja Cara kerja dari program ini adalah : 1. Isi Isi accum accumul ulat ator or seb sebany anyak ak 0F 0FH. 2. Beri Beri delay delay sebe sebesa sarr 0A 0AH (10 mS), kemudian keluarkan melalui port 30 H. 3. Comple Complemen mentka tkan n isi accum accumulat ulator or menja menjadi di F0H. 4. Kemb Kembali ali ke langk langkah ah 2. 5. AND-ka AND-kan n accumul accumulator ator dengan dengan 00H, dan menjadi 00H. 6. Beri Beri delay delay sebe sebesa sarr 1A 1AH (26 mS), kemudian keluarkan melalui port 30 H. 7. Comple Complemen mentka tkan n isi accum accumulat ulator or menja menjadi di FFH. 8. Beri Beri delay delay sebe sebesa sarr 05 05H (5 mS), kemudian keluarkan melalui port 30 H. 9. Comple Complemen mentka tkan n isi accum accumulat ulator or menja menjadi di 00H. 10. Beri delay delay sebesar sebesar 20H (32 mS), kemudian keluarkan melalui port 30 H. 11. Complement Complementkan kan isi accumulator accumulator menjadi FFH. 12. Beri delay delay sebesar sebesar 40H (64 mS), kemudian keluarkan melalui port 30 H. 13. Complement Complementkan kan isi accumulator accumulator menjadi 00H. 14. Beri delay delay sebesar sebesar 50H (80 mS), kemudian keluarkan melalui port 30 H. 15. Kembali 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. Mengis Mengisii regi registe sterr B sebany sebanyak ak n1H. 2. Mengis Mengisii regi registe sterr C sebany sebanyak ak n2H. 3. Kurang Kurangii isi isi regist register er C sampa sampaii beris berisii 00H. 4. Apab Apabil ilaa C belu belum m bern bernil ilai ai 00 00H., kurangi isi register B. 5. Apab Apabil ilaa B belu belum m bern bernil ilai ai 00 00H., kembali ke langkah 2. 6. Apab Apabil ilaa B bern bernil ilai ai 00 00H, kembali ke urutan program utama. Untuk pengisian ke-2 register tersebut digunakan: Program Perintah MVI D,n1 MVI E,n2 DCR E JNZ DLY2 DCR D JNZ DLY1 RET
•
CLOCK CYCLE 7 7 4 10/7 4 10/7 10
TOTAL CC. 7 7n1 4n1n2 n1((n2-1)10+7) 4n1 (n1-1)10+7 10 14n1n2+21n1+11
14n1n2+21n1+11 = X mS
Ket: 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
13
Setelah flow chart selesai, barulah kita bisa menuliskan atau menterjemahkannya ke dalam bahasa assembler atau bahasa mesin yang dapat dimengerti oleh mikroprosesor. mikroprosesor. Dan listing dari program tersebut adalah:
STAR ST ART T:
MVI A,0Fh ,0Fh CALL DLY-1 OUT 30h CMA CALL DLY-1 OUT 30h ANI 00h CALL DLY-2 OUT 30h CMA CALL DLY-3 OUT 30h CMA CALL DLY-4 OUT 30h CMA CALL DLY-5 OUT 30h CMA CALL DLY-6 OUT 30h JMP START
;=================================== DLY-1: MVI B,30 ISI-1: MVI C,23 KRG-1: DCR C
14
JNZ KRG-1 DCR B JNZ ISI-1 RET ;================================== DLY-2: MVI B,45 ISI-2: MVI C,40 KRG-2: DCR C JNZ KRG-2 DCR B JNZ ISI-2 RET ;================================== DLY-3: MVI B,25 ISI-3: MVI C,13 KRG-3: DCR C JNZ KRG-3 DCR B JNZ ISI-3 RET ;=================================== DLY-4: MVI B,60 ISI-4: MVI C,37 KRG-4: DCR C JNZ KRG-4 DCR B JNZ ISI-4 RET ;================================== DLY-5: MVI B,80 ISI-5: MVI C,56 KRG-5: DCR C JNZ KRG-5 DCR B JNZ ISI-5 RET ;================================== DLY-6: MVI B,100 ISI-6: MVI C,56 KRG-6: DCR C JNZ KRG-6 DCR B JNZ ISI-6 RET END
Sedangkan tampilan nyala lampu tersebut adalah: Pola O
00H
15
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 IV Penutup 16
Sekian Sekian isi dari dari makalah makalah ini. Semoga Semoga dengan dengan makalah makalah ini kita dapat dapat lebih lebih mengerti tentang mikroprosesor. Bagaimana cara kerja dari mikroprosesor dan cara membuat program sederhana menggunakan bahasa assembler.
17