Anda di halaman 1dari 42

Bahasa pemrograman

Agus Pracoyo

Bahasa Pemrograman Microprocessor

Bahasa Pemrograman dibagi 3: 1. Bahasa tingkat tinggi (high level language) C BASIC PASCAL 1. Bahasa Assambly 2. Bahasa tingkat mesin (low level language)

Compiler Bahasa Tingkat Tinggi pd Microprocessor/Microcontroller


1. 2. 3. 4. 5. 6. BASCOM Code Vision MikroC MikroBASIC MikroPASCAL C (AVR Stodio)

Proses kompilasi dari bhs tingkat tinggi ke hex


Tulis program pd. EDITOR Proses kompilasi oleh compiler

File HEX

Down loadder

Bahasa Assambly
Bahasa Assambly dibagi 2 ruas: Opcode Operand

Kode operasi

Bagian yg dioperasikan
Contoh: LD A, 3AH ; isi Acc dengan data immediate 3AH Operand : bagian yang dioperasikan Opcode : Kode operasi yang hrs dilakukan oleh uP

Bahasa tingkat mesin


Bahasa tingkat mesin adalah level bahasa terendah, yaitu bahasa pemrograman dalam bentuk bilangan biner Contoh: Address 0000h 0001h 0003h 0005h

Menemonic INC A LD A, 4Ah LD B, 3Eh LD HL, 234Bh

Machine code (HEX) 3Ch 3Eh 4Ah 06h 3Eh 21h 4Bh 23h

Jika program tersebut disimpan di dlm memory: Memory:


Address Program Counter (PC) 0000h 0001h 0002h 0003h 0004h 0005h 0006h Isi 3Ch : 0011 1100b 3Eh : 0011 1110b 4Ah : 0100 1010b 06h : 0000 0110b 3Eh : 0011 1110b 21h : 0010 0001b 4Bh : 0100 1011b

0007h

23h : 0010 0011b

Arsitektur dasar sistem minimum

Z80-Microprocessor Architecrure

Proses eksekusi CPU


1. Program Counter mengeluarkan address awal ke Memory Address Register

2. Memory Address Register (MAR) mengeluarkan address ke address bus menuju memory

3. Instruksi diambil dari address memory ybs dimasukkan ke Memory Buffer Register (MBR)

4. Data yang berupa instruksi oleh MBR dikirim ke Instruction Register (IR) untuk diterjemahkan (decode)

5. Secara normal siklus ini akan berurutan jika tidak ada interrupt atau instruksi melompat (jump)

Hardware design Agus Pracoyo

Konfigurasi pin Z80

Arsitektur dasar sistem minimum

Langkah-langkah perancangan sistem


1. Memahami fungsi pin-pin Microprocessor 2. Memahami timing diagram Microprocessor 3. Memahami Memory RAM EEPROM EPROM 4. Memahami timing diagram baca/tulis memory 5. Memahami peripheral Parallel I/O Serial I/O Counter/Timer 6. Memahami timing diagram baca/tulis I/O 7. Memahami proses decode address

Fungsi pin-pin Z80


D0-D7 Data Bus (input / output, aktif tinggi, Tristate). D7-D0 merupakan data bus 8-bit dua arah, yang digunakan untuk pertukaran data dengan memori dan I / O. A15 A0 Bus Alamat (output, aktif high, Tristate). A15-A0 membentuk sebuah bus alamat 16-bit. Bus Address memberikan alamat untuk pertukaran data memory hingga 64 Kbytes dan untuk pertukaran data unit input/output.
MREQ Permintaan memory (output, aktif rendah, Tristate). MREQ menunjukkan bahwa bus alamat memegang alamat yang valid untuk membaca atau menulis memori.

IORQ Permintaan Input / Output (output, aktif rendah, Tristate). IORQ menunjukkan bahwa bagian bawah dari bus alamat memegang alamat I / O valid untuk operasi membaca atau menulis. IORQ juga dihasilkan bersamaan dengan M1 selama siklus mengakui permintaan interupsi untuk menunjukkan bahwa vektor interrupt dapat ditempatkan pada bus data.
M1 Machine Cycle One (output, Rendah aktif). M1, bersamasama dengan MREQ, menunjukkan bahwa siklus mesin saat ini adalah siklus opcode fetch dari eksekusi instruksi. M1 bersama dengan IORQ, menunjukkan interrupt mengakui siklus.

RD Baca (output, aktif rendah, Tristate). RD menunjukkan bahwa CPU ingin membaca data dari memori atau I / O device, tergantung bersamaan dengan MREQ atau IOREQ BUSACK Bus Acknowledge (output, aktif rendah). Bus Acknowledge menunjukkan kepada perangkat peminta bahwa address bus, data bus CPU, dan kontrol sinyal MREQ, IORQ RD, dan WR telah berada dalam keadaan impedansi tinggi. devais eksternal kini dapat mengendalikan bus-bus ini.

BUSREQ Bus request (input, aktif rendah). Permintaan Bus memiliki prioritas lebih tinggi daripada NMI (Non Maskable Interrupt) dan selalu diakui pada akhir siklus mesin. BUSREQ memaksa address bus , data bus, dan sinyal kendali MREQ ,IORQ, RD, dan WR untuk menuju keadaan impedansi tinggi sehingga perangkat lain dapat mengendalikannya. INT Interrupt Request (input, aktif rendah). Permintaan interrupt dibangkitkan oleh I / O device. CPU melayani permintaan pada akhir instruksi jika dalam kondisi Enable.

NMI Non-Maskable Interrupt (input, aktif transisi turun). NMI memiliki prioritas lebih tinggi dari INT. NMI selalu diakui pada akhir siklus instruksi, tergantung pada status interrupt (EI/DI), dan otomatis memaksa CPU untuk restart pada lokasi 0066H.

Timing diagram Z80-CPU


Agus Pracoyo

Timing diagram dasar

Instruction Opcode Fetch

Memory Read / Write Cycle

I/O Read/Write Cycles

Memory Agus Pracoyo

Sel Memory ROM

Contoh EEPROM 2864

Fungsi Pin

Diagram waktu operasi read

Diagram kompleksitas ROM

RAM block diagram

Contoh RAM 6264

Siklus baca

Siklus tulis

Unit Input/Output Agus Pracoyo

PPI-8255

Diagram waktu siklus baca/tulis