Makalah 2
Makalah 2
EruP© 2005/2008/2009/2010/2015
PENS
Aturan Pekuliahan
• Keterlambatan
• Kehadiran
• Tata-tertib
– Pakaian
– Makan/minum
– Ketertiban
• Nilai
– UTS/UAS
– QUIZ
Pokok Bahasan/Pertemuan
2 Jam/Pertemuan
• Pertemuan IX • Pertemuan I
– Set Instruksi z80 – Pengertian, Tujuan, Dasar Kerja
• Pertemuan X Sistem Komputer, Dasar Kerja CPU,
Sejarah
• Pertemuan XI • Pertemuan II
– Interfacing dengan ROM, RAM dan
Dekoder Alamat – Review Sistem Analog
• Pertemuan XII • Pertemuan III
– Digital
• Pertemuan XIII
– Interfacing dengan Simple I/O, PPI, • Pertemuan IV
Dekoder Alamat – Arsitektur CPU z80, Cara kerja CPU
z80, Pin
• Pertemuan XIV
– STACK • Pertemuan V
– Pewaktuan, Pensinyalan
• Pertemuan XV
– Interupsi • Pertemuan VI
– Sistem Minimum z80
• Pertemuan XVI
• Pertemuan VII
– Set Instruksi z80
• Pertemuan VIII
– Set Instruksi z80
Pertemuan I
• Pengarahan Kuliah Mikroprosesor
• Sistem Komputer, Sistem Mikroprosesor
– Pengertian Sistem Komputer, Kalkulator, Mikroprosesor, Prosesor, CPU,
Mikroprosesor, Mikrokontroler
• Arsitektur Komputer, CPU
– Bagian-bagian Komputer, CPU
• Pemrograman
– Micro Stored Programming
– Machine Language
– RISC vs CISC
• Kecepatan Operasi, Kecepatan CPU (MIPS), Lebar Data, Kapasitas
Memori
• Sejarah Sistem Komputer, CPU
• Hubungan CPU dengan bidang keilmuan lain
– Rangkaian analog
– Rangkaian Digital
– Pemrograman Assembly
Pengantar Sistem Komputer
• Sistem Komputer
– Istilah yang menunjukkan, suatu perangkat, entah dibuat dari
apa yang dapat digunakan untuk melakukan
pekerjaan/perhitungan/proses tertentu
• Sistem (Micro) Processor
– Biasanya digunakan, jika sistem tersebut masih memperlihatkan
adanya komponen-komponen dasar pembentuk sistem yang
utamanya terdapat komponen prosesor mikro
• Sistem Minimum
– Mengacu pada sistem, dimana dengan beberapa
komponen/bagian dasar pembentuk sistem (biasanya berupa
sistem Mikroprosesor), sistem tersebut sudah dapat melakukan
tugas/kegunaan tertentu
Komponen Utama Komputer
• CPU (Central Processing Unit)
– Mengacu pada suatu bagian dalam suatu sistem yang
digunakan sebagai pusat pengolah. Biasanya dapat terdiri dari
prosesor saja atau/sampai sub-sistem yang cukup kompleks
• Prosesor
– Mengacu pada nama suatu piranti/komponen yang digunakan
untuk pemrosesan
– Prosesor Komponen utama untuk pemroses data
– Mikroprosesor Prosesor dengan kapasitas/ukuran yang lebih
kecil
• ALU (Arithmetic Logic Unit)
– Bagian dalam dari suatu Prosesor, dimana dasar-dasar operasi
aritmatika dan logika dilakukan
Arsitektur Komputer
• Komputer/sistem komputer (PC atau
lainnya)
• Sistem (mikro) prosesor
• CPU/Prosesor
Bagian Perangkat/Sistem
Komputer (PC atau lainnya)
• Kotak komputer (kotak CPU), Sistem
(Mikro) Prosesor
– Kotak/Rangkaian pemroses
• Media penyimpan
– USB disk, HD Eksternal
• I/O
– Monitor, Printer
• Inter-koneksi
– Kabel USB, kabel Printer, kabel Monitor
Bagian Sistem (Mikro) Prosesor
• CPU (apapun itu yang digunakan sebagai pusat
pengolah), (Mikro) Prosesor
– Z80, Pentium
• Memori (segala sesuatu yang bersifat menyimpan)
– CPU Cache
– Primary Memory RAM/ROM
– Secondary Internal HD, CD ROM
• I/O (segala sesuatu untuk keperluan interaksi komputer
dengan dunia luar)
– Simple I/O PPI-8255, Z80-PIO
– Analog ADC/DAC
– Komunikasi UART, USART
• Inter-koneksi (hubungan, bisa kabel atau lainnya, antara
bagian dengan bagian lainnya) BUS
Sedangkan CPU itu sendiri, juga
terdiri atas
• ALU (pusat pengolah)
• Register (media penyimpan)
• Pin-pin (interaksi CPU dengan komponen
lain)
• Internal Bus (inter-koneksi internal CPU)
Arsitektur Komputer
Bagian pusat pemroses
Sistem Komputer
I/O
Register ALU
Internal
Control
BUS
Sistem (Mikro) Prosesor Unit
Driver,
Pin
CPU/Prosesor
Pemrograman
• Micro Stored Programming
– Dilakukan oleh vendor prosesor
• Machine Language
– RISC vs CISC
• High Level Language
– C Mid Level Language
– BASIC, PASCAL, …
Micro Stored Programming
• Pemrograman pada tingkat CPU/Prosesor
• Masukan/data/program dalam bentuk kode
mesin (1 data) yang masuk dalam CPU
• Digunakan untuk menjalankan/mengendalikan
internal CPU/Prosesor
– Dalam bentuk sinyal-sinyal kendali
• Implementasi pemrograman umumnya dalam
bentuk H/W
Machine Language
• Pemrograman pada tingkat sistem prosesor
atau komputer
• Program dalam bentuk rangkaian perintah-
perintah dasar untuk CPU
• Digunakan untuk menjalankan/mengendalikan
sistem prosesor atau komputer
• RISC vs CISC
– Reduce vs Complex Instructions Set Computer
CISC
• Orientasi pada kekayaan jumlah instruksi
yang disediakan oleh CPU
• Keuntungan
– Memudahkan programmer (terutama program
mesin/assembly)
• Kekurangan
– Besar, mahal, boros daya, panas
RISC
• Orientasi pada kesederhanaan jumlah
instruksi pada CPU
• Keuntungan
– Kecil, murah, hemat daya, tidak panas
– Optimasi pada kecepatan eksekusi
• 1 s/d 2 clock per instruksi
• Kekurangan
– Pemrograman kode mesin/assembly menjadi
panjang
High Level Language
• Orientasi pada kemudahan pemrograman
• Disebut tingkat tinggi karena dekat dengan
bahasa manusia
• Mudah pemrograman
• Tidak terlalu bergantung pada mesin/OS
– Platform independent
• Ada sekian banyak bentuk pemrograman
dengan beragam kegunaan dan
kemampuan
Mid Level Language
• Orientasi pada kemudahan pemrograman tetapi
masih menjaga sisi ukuran kode mesin dan
kecepatan program
– Optimasi penggunaan kode program
– Optimasi kecepatan
• Masih menggunakan beberapa pendekatan
mesin
– Register, Port, Memory langsung
• Dirancang dalam bentuk pemrograman yang
kompak
Ukuran Kinerja Sistem Komputer
• Kecepatan Operasi
– menentukan berapa banyak instruksi yang dapat
diproses per satuan waktu (MIPS)
• Clock ?
• Kapasitas
– Menentukan berapa banyak data yang dapat
ditampung untuk dilakukan pengolahan
• Lebar Data
– Menentukan seberapa besar suatu data yang dapat
diproses dengan sekali proses
Soal
• Kecepatan komputer dipengaruhi oleh apa
?
Sejarah Sistem Komputer
• Kenali riwayatnya
Contoh jenis-jenis Mikroprosesor
• Cara membaca Nomor Komponen
Prosesor Z80 CPU
– Pabrik Pembuat Zilog
Z80 PIO
– Fitur interface
8255
8251
Motorola
6502
Contoh jenis-jenis Mikroprosesor
Sumber Beban
(uP-I/O) (Motor 12V)
Driver
Sumber Beban
(Sensor) (uP-I/O)
Buffer
Perlu ditambahkan
Buffer sebagai Isolator
Review Sistem Analog
• Signal Conditioning
– Rangkaian yang digunakan untuk penguatan arus,
khususnya tegangan, penyesuai kebutuhan sinyal
– Istilah Signal Conditioning muncul karena beban
memerlukan sinyal masukan dalam bentuk dan nilai
tertentu yang harus dipenuhi oleh sumber.
• Jika sumber tidak dapat memenuhi, maka diperlukan
rangkaian penguat, dan mungkin ditambahkan rangkaian
tertentu yang disebut sebagai Signal Conditioning.
– Signal Conditioning dapat berupa penguat tegangan
atau arus atau lain-lain
Ilustrasi Signal Conditioning
Beban memerlukan
sinyal dengan kriteria
tertentu yang tidak dapat
dipenuhi oleh sumber
Hasil pengukuran
tidak memuaskan
Sumber Beban
(Sensor Analog) (uP-ADC)
SC
Sumber Beban
(uP-DAC) (Loudspeaker)
Power
IR
C Vo=Vc
Vi
t
Vc Vi 1 e RC
Contoh Thevenin/Norton
R1 R3
R2 R4 Vo=?
Vi
Cara Thevenin
R1 R3
R2 R4 Vo=?
Vi
Cara Thevenin
Ra=R1// R2 R3
R4 Vo=?
Va Vi.R2
R1+R2
Cara Thevenin
Ra R3
R4 Vo=?
Va
Cara Thevenin
Rb=Ra+R3
R4 Vo=?
Va
Cara Thevenin
Rb
R4 Vo=?
Va
Cara Thevenin
Rc=Rb//R4
Vo=Vb
Vb Va.R4
Ro=Rc
Rb+R4
Cara Norton
R1 R3
R2 R4 Vo=?
Vi
Cara Norton
R3
R2 R4 Vo=?
Ii
R1
Ii=Vi/R1
Cara Norton
R3
R2 R4 Vo=?
Ii
R1
Ii=Vi/R1
Cara Norton
R3
R4 Vo=?
Ii
Ra=R1//R2
Ii=Vi/R1
Cara Norton
Ra=R1//R2 R3
R4 Vo=?
Va
Va=Ii Ra
Va=Vi/R1 x (R1//R2)
Cara Norton
Ra=R1//R2 R3
R4 Vo=?
Va
Va=Ii Ra
Va=Vi/R1 x (R1//R2)
Cara Norton
Rb=Ra+R3
R4 Vo=?
Va
Cara Norton
Ia=Va/Rb R4 Vo=?
Ia Rb
Cara Norton
Ia=Va/Rb R4 Vo=?
Ia Rb
Cara Norton
Ia=Va/Rb Vo=?
Ia Rc=Rb//R4
Cara Norton
Ia=Va/Rb Vo=?
Ia Rc=Rb//R4
Cara Norton
Rc=Rb//R4
Vo=Vb
Vb Vb=Ia.Rc
Ro=Rc
Pertemuan IIb
Review Sistem Digital
• Sistem Bilangan
– Kode Biner, Octal, Hexadecimal, Decimal
– Complement 1’s complement, 2’s complement
– Operasi bilangan
• Sinyal Digital
– Mengapa sistem Digital menggunakan Kode Biner
– Transistor sebagai switching
– Parameter sinyal digital
– Aturan pensinyalan dalam sistem Digital/Mikroprosesor
• Komponen Digital
– Bahan TTL, CMOS, DTL, RTL, DCL
– Perbedaan, penggunaan
• Output State Totem Pole, Open Collector, Tri State, Level tegangan
• Input State Level tegangan, Pull-Up, Pull-Down
• Rangkaian kombinasional, Register, Memori, dll
Review Sistem Digital
• Sistem Digital dapat dibagi menjadi
– Rangkaian Kombinasional
• Rangkaian yang bekerja berdasarkan hubungan input/output
(output merupakan fungsi input)
– Sekuensial
• Rangkaian yang bekerja berdasarkan urut-urutan kegiatan
tertentu (termasuk juga sebagai fungsi dari input)
• Rangkaian Sekuensial dapat dibagi lagi menjadi
– Tak-Sinkron (bekerja tidak berbasis clock untuk semua bagian
secara bersama-sama)
– Sinkron (menggunakan clock untuk menyerempakkan jalan
kerjanya)
Review Sistem Digital
• Output State pada rangkaian digital
– Totem Pole
• Memiliki dua kondisi, H dan L
• Banyak digunakan pada rangkaian digital pada umumnya
– Open Collector
• Memiliki dua kondisi, Open (Z) dan L
• Banyak digunakan untuk driver, konversi tegangan H
(interface antar komponen digital)
– 3-State
• Memiliki tiga kondisi, H, L, dan Open (Z)
• Banyak digunakan untuk sistem yang menerapkan output
parallel (banyak output dijadikan satu sekaligus), atau BUS
(pada sistem prosesor)
Review Sistem Digital
• Input State
– Input state sangat dipengaruhi oleh bahan dari komponen digital
– TTL
• input TTL memiliki impedansi masukan yang rendah, karena input
diambilkan dari kaki Emitor dari Transistor sehingga memerlukan
arus yang cukup besar (sekitar 1mA)
– CMOS
• input CMOS memiliki impedansi yang sangat tinggi, sehingga
hampir-hampir dianggap tidak memerlukan arus input
– Floating-Input
• Pada TTL, floating input berarti HIGH. Sedangkan pada CMOS
dilarang terjadi floating input.
– Meskipun sebenarnya, dari bahan apapun, floating input tetap dilarang
– Pull-Up, Pull-Down
• Untuk mencegah terjadinya floating input, diperlukan Pull-Up/Down
Review Sistem Digital
• Level Tegangan
– Input
• TTL
– L = 0 sampai 0.8
– H = 2 sampai 5
• CMOS
– L = 0 sampai 40% VCC
– H = 60% sampai 100% VCC
– Output
• TTL
– L = 0.2
– H = 4.1
• CMOS
– L=0
– H = VCC
Sistem Bilangan
• Kode bilangan adalah representasi dari suatu
bilangan (angka)
• Jenis Kode Bilangan
– Binary
– Octal
– Decimal
– Hexadecimal
• Konversi Bilangan
– Suatu cara untuk mengubah representasi bilangan
(kode bilangan)
Pertemuan III
Arsitektur CPU Z80
• Pengertian CPU
• Bagian-bagian CPU
– Register
– ALU
– Control Unit
• Johnson Counter
• Rangkaian Kombinasional (Decoder Instruksi)
• Register Instruksi
– System Bus
• Cara kerja CPU
• Penjelasan Pin
– Sinyal-sinyal Kontrol Bagian Fetch
– Sinyal-sinyal Kontrol Bagian Execution
– Micro stored programming
– Contoh Eksekusi perintah penjumlahan (LD A,02H ADD 32H LD B,A)
• System Bus
– Pin
– Pengertian Bus
– Data Bus, Address Bus
Arsitektur CPU
• Bagian-bagian CPU
– ALU, Register, Accumulator, Control Unit,
Timing, Decoder Instruksi, Register Instruksi
– System/Internal BUS
• Cara kerja CPU
– Sinyal Kontrol Siklus Fetch
– Sinyal Kontrol Siklus Eksekusi
Jenis-jenis Register
• Tempat penyimpanan data sementara
untuk keperluan tertentu selama CPU
bekerja
• 8 bit
– A, B, C, D, E, H, L, F, I, R
• 16 bit (pasangan 8 bit)
– AF, BC, DE, HL
• 16 bit
– PC, SP, IX, IY, AF’, BC’, DE’, HL’
Register Khusus
• Fungsi sudah ditentukan, tidak dapat digunakan
untuk keperluan lain
– Isi dari register akan berakibat pada kerja CPU
• F Flag register (ZY, CY, PY, …)
• PC Program counter register
• SP Stack pointer
• I Interrupt register (untuk interrupt vector)
• R Refresh register (untuk alamat refresh)
Register Flag
Register Umum
• A akumulator, untuk operasi ALU
• B counter
• C alamat port
• A, B, C, D, E, H, L umum
• DE, HL, BC menunjukkan alamat
• IX, IY menunjukkan alamat (indeks)
• AF’, BC’, DE’, HL’ register cadangan,
register bayangan
Prinsip Dasar CPU
VCC GND
Address Bus
Control Bus
16 pin
13 pin
CPU
Clock Data Bus
8 pin
Reset Bi-directional
Diagram Blok Arsitektur Z80
8-Bit
Bus
Kontrol Unit
Kontrol
Data Bus
Kontrol
Alamat
16-Bit
+5V GND CLK Bus Alamat
Z80 CPU
http://www.z80.info/z80arki.htm
http://www.z80.info/gfx/z80block.gif
Contoh Ilustrasi Kerja CPU
• Anggap, ada program yang tersimpan pada Memory
Alamat Data
0000 3E
0001 8B
Port A
0002 D3 Port B
Memory PPI 8255
0003 83 Port C
0004 3E CPU
0005 55 Z80
Data BUS
0006 D3
0007 80 Address BUS
Control BUS
0008 76 RD – WR - CS RD – WR - CS
• Assembly
; ini contoh program dalam bahasa assembly
Start:LD A,30H ; Masukkan 30H ke Reg. A
LD B,0 ; Masukkan 0H ke Reg. B
LD C,32 ; Masukkan 20H ke Reg. C
• Listing program
Contoh Format Listing Program
Alamat Data/Kode Label Opc Operand Komentar
C 20H D 20H
B 10H B 10H
+
+
A 30H
A 30H
D 30H A 20H
C 00H A 20H
C 30H
Contoh Program Assembly
ORG 0100H ORG 0100H
Mulai: LD D,B Mulai: LD C,B
LD B,A LD B,A
ADD A,D ADD A,C
LD C,A LD D,A
LD A,D LD A,C
HALT LD C,D
HALT
Pertemuan VIb
Mode Pengalamatan
• Immediate
• Register
• Langsung
• Tak Langsung
– Perbedaan dengan pengalamatan langsung
– Contoh penggunaan, look up tabel dan transfer blok
data
• Indeks
– Perbedaan dengan pengalamatan tak langsung
– Contoh penggunaan, look-up lebih dari satu tabel (X,
Y, Z) dan transfer blok data
Mode Pengalamatan
• Immediate
• Immediate Extended
• Modified Page Zero Addressing
• Relatif Addressing
• Extended Addressing
• Indexed Addressing
• Register Addressing
• Implied Addressing
• Register Indirect Addressing
• Bit Addressing
• Addressing Mode Combinations
Operand
• LD Tujuan,Sumber
LD A,(HL)
LD (DE),A
INC HL
INC DE
DEC BC
LD A,B
OR C
JR NZ,LOOP
…
Perbedaan LDI dan LDD
• LDI
– Jika dilakukan pemindahan atau pergeseran
data dari bawah (alamat tinggi) ke atas
(alamat rendah)
• LDD
– Jika dilakukan pemindahan atau pergeseran
data dari atas (alamat rendah) ke bawah
(alamat tinggi)
Search
• Mencari satu byte tunggal dalam
sekelompok data dalam memori
• Contoh :
– CPI, CPD
– CPIR, CPDR
Arithmetic
• Perintah atau operasi aritmatik sederhana
yang menggunakan akumulator sebagai
data dan menyimpan hasil operasi
• Digunakan bersama-sama dengan register
lain atau lokasi memori tertentu
• Contoh :
– ADD, ADC, SUB, SBC
DAA
Logical
• Operasi logika dasar yang menggunakan
akumulator sebagai data dan menyimpan
hasil operasi
• Digunakan bersama-sama dengan register
lain atau lokasi memori tertentu
• Contoh :
– AND B
– OR C
Shift
• Operasi untuk menggeser ke kiri atau ke
kanan bit demi bit pada suatu register
Rotate
• Operasi untuk menggeser dan bit yang
digeser keluar dimasukkan kembali
melalui sisi lainnya (diputar isi register bit
demi bit)
Bit Manipulation
• Mengubah nilai bit tertentu dari suatu
register atau memori menjadi 1 atau 0
• Memeriksa, apakah suatu bit dari register
atau memori bernilai 1 atau 0
Jump
• Mengalihkan arah eksekusi program ke
nomor baris tertentu (meloncat)
Call
• Mengalihkan arah eksekusi program ke
nomor baris tertentu (meloncat) dan jika
selesai dapat kembali ke posisi semula
sebelum meloncat
Return
• Kembali ke posisi program sebelum
perintah Call atau sebelum interupsi
Input/Output
• Membaca atau mengeluarkan data ke
perangkat input/output
Basic CPU Control
• Melakukan beberapa operasi dasar yang
berkaitan dengan pengaturan kerja dari
CPU, misalkan mengatur mekanisme
interupsi dan sebagainya
Pertemuan VI
• Contoh-contoh
Transfer Data
Aritmatika
• Buat program penjumlahan data 32 bit
– Data tersimpan pada alamat memory 9000H dan
A000H
– Hasil disimpan pada alamat memory 8000H
• Tulis dalam bentuk program assembly
– Gunakan assembler directive
• ORG, untuk alamat awal program
• EQU atau DEFS, untuk definisi alamat data
– Gunakan mekanisme penghentian program yang
benar
• Catatan : Abaikan overflow (carry) yang terakhir
Format/Layout Program
Data1 EQU 9000H
Data2 EQU 0A000H
Hasil EQU 8000H
;
ORG 0H
Mulai: LD HL, …
…
…
Format/Layout Program 2
ORG 0H
Mulai: LD HL, …
…
…
ORG 9000H
Data1: DEFS (4)
ORG 0A000H
Data2: DEFS (4)
ORG 8000H
Hasil: DEFS (4)
Looping
Pertemuan VIII
Sistem Pewaktuan pada CPU-
Z80
• Siklus CPU
– Fetch, Decode, Execute, Next Instruction
• Waktu Eksekusi
– Pengertian, dilihat dari cara kerja Control Unit
– Perhitungan Waktu Eksekusi
• Sinyal Pewaktuan CPU
Operasi Kerja dan Pewaktuan
pada CPU-Z80
• Siklus Kerja CPU
– Fetch Decode Execution Next Instruction
– Pengertian-pengertian
• Waktu Eksekusi CPU
– Pengertian Waktu Eksekusi, dilihat dari cara kerja Control Unit
– Perhitungan Waktu Eksekusi
– Contoh, Pembuatan Timer
• Sinyal Pewaktuan CPU
– Pengertian Sinyal Pewaktuan (Timing Diagram)
• Dilihat dari cara kerja Control Unit
• Dilihat dari keperluan menjalankan Rangkaian lain
• Pin-pin dasar yang perlu diperhatikan untuk mengetahui Sinyal Pewaktuan
– Clock, M1, MREQ, IOREQ, RD, WR, Address BUS, Data BUS
– Cara Penggambaran Sinyal Pewaktuan
• Urutan Pengukuran Sinyal
• Bentuk Gelombang
• Operasi Memory Read
• Operasi Memory Write
• Operasi I/O Read
• Operasi I/O Write
Siklus Kerja / Model Pemrograman
0000 3E 0E
Execute 0002 C3 00 00
0005
PC <-- PC+1
Siklus Mesin (Machine Cycles)
• Proses kerja dari CPU Z80 dibagi dalam
bentuk siklus mesin
– Dimulai dari M1, M2, M3 dan seterusnya
• Siklus M1 terdiri dari
– Fetch Opcode
– Decode
– Execution yang berkaitan dengan operasi
internal CPU
Siklus Mesin (Machine Cycles)
• M2
– Biasanya berupa baca 1 byte data dari
memory
• M3, M4, dan seterusnya
– Dapat berupa baca data dari memory
– Dapat berupa tulis data ke memory
– Dapat berupa baca/tulis data dari I/O
– Dapat berupa operasi tambahan internal CPU
Format Siklus Mesin
• M1 ADD A,B
• M1 + M2 LD A,20H
• M1 + M2 + M3 + … LD HL,0H
• M1 + M1 INC IX
• M1 + M1 + M2 LD A,(IX+0)
• M1 + M1 + M2 + M3 + … LD IX,20H
Memiliki 2 M1
M1 + M1 + … ???
• Karena …
• Contoh
– Yang berkaitan dengan IX dan IY, I, R
– LD dd,(nn)
– LD (nn),dd
– LDI, LDIR, LDD, LDDR, CPI, CPIR, CPD,
CPDR
– NEG, dan lain-lain
Petunjuk Singkat Siklus Mesin
• Ada berapa M1 ?
• Ada data yang harus dibaca, dan berapa
byte ?
• Ada operasi/eksekusi yang memerlukan
siklus tambahan, dan berapa byte ?
– Operasi transfer CPU – Memory
– Operasi transfer CPU – I/O
– Operasi internal CPU yang butuh waktu
Contoh
LD A,30H M1 + M2
LD B,20H M1 + M2
LD A,B M1
LD HL,0H M1 + M2 + M3
ADD A,C M1
LD (80H),A M1 + M2 + M3 + M4
LD (HL),A M1 + M2
LD (30H),HL M1 + M2 + M3 + M4+ M5
LD (IX+10H),A M1 + M1 + M2 + M3 + M4
LD A,(IY) M1 + M1 + M2 + M3 + M4
(4 + 4 + 3 + 5 + 3)
Contoh
JP 0000H M14T + M23T + M33T
JR 0000H M14T + M23T + M35T
CALL 0000H M1 + M2 + M3 + M4 + M5
RET M1 + M2 + M3
PUSH BC M15T + M2 + M3
POP HL M14T + M2 + M3
JR NZ,0000H M14T + M23T [+ M35T]
DJNZ 0000H M15T + M23T [+ M35T]
OUT (00H),A M14T + M23T + M34T
Contoh Analisa Timing
ld a,0ch 3E 0C
opcode operand
4T + 3T 7T
ld hl,(8010h) 2A 10 80
L (nn) opcode operand L(nn) H(nn+1)
H (nn+1) 4T + 3T + 3T + 3T + 3T
: total = (4+3+3+3+3)T 16 T
ld bc,(8010h) ED 2A 10 80
C (nn) opcode operand C(nn) B(nn+1)
B (nn+1) 4T + 4T + 3T + 3T + 3T + 3T
: total = (4+4+3+3+3+3)T 20 T
in a,(81h) DB 81
A (81h) opcode operand A(81h)
4T + 3T + 4T 11T
Delay - Timer
• LOOP: LD A,00000000B
• OUT (PPIPA),A
• LD A,11111111B
• OUT (PPIPA),A
• JP LOOP
• Apa arti Program tersebut ?
• Apa yang salah dengan program tersebut
?
Delay #1
• Berapa waktu delay berikut ini ?
• LD B,1 7T
• LOOP: DJNZ LOOP 8T atau
13T
B=1 7T
B=0 8T
Delay #2
• Berapa waktu delay berikut ini ?
• LD B,2 7T
• LOOP: DJNZ LOOP 8T atau
13T
B=2 7T
B=3 7T
MREQ
RD
M1
REFSH
Pertemuan IX
Sistem Minimum z80
• Pengantar beberapa model CPU
– Sistem BUS Multiplexing/non multiplexing
– Arsitektur internal
• Pin-pin CPU-Z80
– Penjelasan nama-nama pin dan fungsi/cara kerja
– Hubungan (relasi, bukan koneksi) antar pin-pin dengan Komponen lain
– Contoh Rangkaian Step dan DMA
• Power Supply
– Kapasitor Bypass
• Clock, RESET, Rangkaian pendukung
• Sistem Pemetaan
– Pemetaan Alamat
– Pemetaan I/O
Pengantar beberapa model
CPU Sistem BUS
• Non multiplexing
• Multiplexing
• Arsitektur internal
Pin Z80
A0-A15. Address Bus
D0-D7. Data Bus
BUSACK. Bus Acknowledge
BUSREQ. Bus Request
HALT. Halt State
INT. Interrupt Request
IORQ. I/O Request
M1. Machine Cycle One
MREQ. Memory Request
NMI. Non-Maskable Interrupt
RD. Read
WR. Write
RFSH. Refresh Cycle
CLK. Clock
Power Supply
• Kapasitor Bypass
Clock
//www.overunity.com/index.php?action=dlattach%3Btopic=6123.0%3Battach=36260%3Bim
http://www.seekic.com/uploadfile/ic-circuit/2009630233851878.gif
Reset
• Dasar Reset
• Power On Reset
• External Reset
Rangkaian Step
Rangkaian DMA
Halt
Pertemuan X
Pemetaan Alamat
• Memory Mapping
• I/O Mapping
Pemetaan Alamat
Memory Mapping I/O Mapping
0000H
00H
Total Kapasitas
256 Byte
untuk
I/O
Total Kapasitas
64kByte
untuk FFH
ROM/RAM Bisa untuk ROM/RAM ?
Type Kap. bit Kap. Byte Jumlah Add. Pin Add. Alamat
XX01 1 kbit 128 Byte 7 pin A0 … A6 0000H ~ 007FH
CPU CPU
Data Bus Data Bus
Clock Clock
Proses Read Data dari EPROM
Address
Bus
Address Bus
RD=‘0’
CPU EPROM
Clock Data di Bus
Data IN
RD RD
Bus
Proses Write Data ke RAM
Address
Bus
Address Bus
Data diletakkan
di Bus oleh CPU
CPU RAM
Clock WR=‘0’
Data
WR WR WR
Bus
Penggunaan EPROM
• Tata cara penggunaan jalur sinyal OE (
RD dari CPU)
• Tata cara penggunaan jalur sinyal CE
Biasanya dihubungkan ke jalur
• Pemrograman (penggunaan
Address jalur
sinyal RD sinyal
digabung dengan sinyal
MREQ (pada Z-80) atau semacamnya
RD Bus
dari PGM) MEMRD OE
CPU ke OE output
MREQ enable
EPROM
Biasanya dihubungkan ke/dari
8 bit rangkaian dekoder pengalamatan
CE
chip
Data
Bus enable
Sambungan CPU ke ROM
• CPU membaca ROM, dengan
CPU cara: ROM
• Mengaktifkan pin RD dan MREQ
RD
RD
• ROM akan mengeluarkan WR
data
MREQ
jika pin RD
dan CS aktif IOREQ
CS
• Sementara, pin CS dapat langsung
diaktifkan (disambung ke GROUND)
CS CE
RD ROM RD CPU .MREQ
RD OE
RD ROM RD CPU .MREQ
RD ROM RD CPU .MREQ
RD ROM RD CPU MREQ
Penggunaan RAM Static
• Tata cara penggunaan jalur sinyal WR
(write enable)
• Tata cara penggunaan jalur sinyal CS
Biasanya dihubungkan ke jalur
(chip select)Address sinyal WR digabung dengan sinyal
WR Bus MREQ (pada Z-80) atau semacamnya
dari MEMWR WR
CPU Biasanya dihubungkan ke
ke WR RD jalur
MREQ sinyal RD digabung dengan
RAM sinyal
8 bit MREQ (pada Z-80) atau
CS semacamnya
chip Biasanya dihubungkan ke/dari
Data
Bus select rangkaian dekoder pengalamatan
PPI
Penggunaan I/O
• Tata cara penggunaan jalur sinyal WR
(write enable)
• Tata cara penggunaan jalur sinyal CS
Biasanya dihubungkan ke jalur
(chip select)Address sinyal WR digabung dengan sinyal
WR Bus IOREQ (pada Z-80) atau semacamnya
dari IOWR WR
CPU Biasanya dihubungkan ke
ke WR RD jalur
IOREQ sinyal RD digabung dengan
I/O sinyal
8 bit IOREQ (pada Z-80) atau
CS semacamnya
chip
Data Biasanya dihubungkan ke/dari
Bus select rangkaian dekoder pengalamatan
Contoh Blok Diagram Sistem
Minimum Z80
CLOCK Data Bus
Address Bus
RESET CPU
Z80
Address Address
Address
Bus Bus Address
Decoder
untuk Decoder
Memori untuk I/O
Pertemuan X
• Decoder Alamat
Pertemuan X
Hubungan CPU dengan I/O
• I/O
Cara Menggambar Mikro-system
• Sambungan dan Persimpangan Jalur Tunggal
• Konsep Bus
– Persimpangan
– Sambungan
– Belokan/Arah
• Sambungan Pin ke Jalur Tunggal atau Bus
• Pin yang tidak digunakan
– Pin input
– Pin output
• Power Supply
Contoh Rangkaian
Z80-ROM-RAM-PPI
Pertemuan XI
STACK
• Suatu media peyimpanan yang bersifat
Abstrak dengan prinsip kerja LIFO dan
terletak pada RAM (read/write)
• Media Peyimpanan
– Real/Fisik (Register, Memori, Disk, …)
– Abstrak (Stack, Queue, Link-List, Tree, …)
• Prinsip kerja STACK (LIFO)
• Stack Pointer (SP)
– RAM memiliki Data dan Alamat, STACK
memiliki Data dan Pointer
STACK (Lanjutan)
• Instruksi yang berhubungan dengan
STACK
– CALL/RET, PUSH/POP, INT/RETI, NMI/RETN
• Penggunaan STACK
– Fungsi Pemanggilan, Interupsi,
Menyelamatkan isi Register
– Penyimpanan data, Transfer Data, Transfer
Parameter/Return, Ekspresi Aritmatik
Fungsi Pemanggilan/Interupsi
Menyelamatkan Isi Register
• LD BC,30
• PUSH BC
• LD B,10
• DJNZ $
• POP BC
Penyimpanan Data
Transfer Data
• LD HL,DE
– PUSH DE
– POP HL
Transfer Parameter/Return
LD HL,5
• int tambah(int A,B) PUSH HL
LD HL,6
• { PUSH HL
CALL _tambah
• return (A+B); POP HL
…
• } _tambah:
POP IX
• x=tambah(5,6); POP
POP
HL
BC
ADD HL,BC
PUSH HL
JP (IX)
Ekspresi Aritmatik
• 1+2*3+4 diubah menjadi 2 3 * 1 + 4 +
• Ekspresi dimasukkan ke STACK satu
persatu
• Jika ketemu operator, ambil dua data dari
STACK dan operasikan, hasilnya simpan
kembali ke STACK
Struktur Program Konvensional
Awal Program 0000H
(POWER ON/ Page 0 Misal
00FFH
RESET) Main Program EPROM 27256
0100H
Sistem Operasi
7FFFH
Data 8000H
Temporer RAM
Stack Pointer
Misal
Kosong
RAM 62256
FFFFH
Buffer Memory &
Stack Area
8000H
Data Temp.
(Buffer)
RAM 62256
Kegiatan
Stack
FFFFH
STACK POINTER (SP)
• Register yang digunakan sebagai
penunjuk posisi STACK (di RAM) saat ini
• Nilainya berubah oleh instruksi : CALL,
INT (hardware), NMI (hardware), RET,
RETI, RETN, PUSH, POP dan LD
SP,nnnn
call nnnn : (SP-1) PCH ret : PCL (SP)
(SP-2) PCL PCH (SP+1)
PC nnnn SP SP+2
Struktur Program Nest
Khasus I SP=0000H
org 8000h
loop: nop nop
call timer
nop call timer
jr loop ret
SP=0000H
org 8100h
timer: ----- nop
-----
ret jr loop
Khasus II
main
SP
call loop
SP-2
call timer
SP
call timer
org 0000h
ld sp,8000h 0000 31 00 80 = 10T
start: jp start 0003 C3 03 00 = 10T
org 0066H
ld a,01010101B 0066 3E 55 = 7T
retn 0068 ED 45 = 8T
NMI (lanjutan)
+5
NMI
NMI 10K
start Z80
rutin NMI
17
0066H
0.1
retn
jp start
INT (Maskable Interrupt) pin no
16
Ada 3 mode:
• Mode 0 PCbaru = 00<data byte dari BUS>
• Mode 1 PCbaru = 0038H
• Mode 2 PCbaru = <1 byte dari reg I>< data byte dari BUS >
im 0 im 1 im 2
ei ei ei
Perlakuan syarat pe-tidak aktifan:
di : disable interrupt
Contoh Pemrograman
INT (lanjutan)
+5
INT
INT 10K
start Z80
rutin INT
16
PCbaru
0.1
reti
jp start
Pertemuan XV
Contoh: Dual Running LED
Menggunakan INT
• INT
• AMV-555
• Progut – Running LED #1
• INT – Running LED #2
Pertemuan XVI
Latihan
• Buat program untuk membangkitkan gelombang PWM
– Data masukan dari Port B
– Gelombang PWM pada Port A.0
– Dc dari PWM dipengaruhi dari Port B
– Frekuensi PWM bebas
100 %
dc – Buat P
Flow-chart-nya
B
rancangan
terlebih dulu, untuk memudahkan analisa
–255
Buat program secara lengkap mulai dari origin 0000H dan
inisialisasi-nya
Diagram Blok
PA.0 PWM
dc=20%
Cara Kerja PWM
Referensi (PB)
+ PWM (PA.0)
Pembangkit -
Gigi Gergaji
(Reg. C)
PWM
START
Flow Chart
Init STACK
Init PPI
• ORG 0 Counter=0
• LD SP,0
PA.0=1
• LD A,82H
• OUT (PPICR),A
Baca PB
• LD C,0 Tidak
PB>Counter? PA.0=0
Ya
• LOOP:
Counter ++
• LD A,1 Ya Counter≠0
• OUT (PPIPA),A Tidak
Quiz
• Buat program untuk membangkitkan 2 gelombang PWM
– Data masukan dari Port B dan Port C
– Gelombang PWM pada Port A.0 dan Port A.1
– dc dari PWM dipengaruhi dari Port B dan Port C
– Frekuensi PWM bebas
100% 100%
– dc
PA . 0
Buat Flow-chart-nya terlebih dcuntuk
PB dulu, PA . 1 memudahkanPanalisa
C
rancangan 255 255
– Buat program secara lengkap mulai dari origin 0000H dan
inisialisasi-nya
START
Init STACK
Init PPI
• LD SP,0 Counter=0
• LD A,8BH
Baca PB
• OUT (PPICR),A
PB>Counter? Tidak
PA.0=0
• LOOP: Ya
• LD A,3 Baca PC
Tidak
PC>Counter? PA.1=0
• OUT (PPIPA),A
Ya
• LD C,0 Counter ++
Ya
• LOOP2: Tidak
Counter≠0
Interfacing dengan PIO
• Pengantar PIO
– Pengertian PIO
– Blok diagram dan cara kerja PIO
– Perbedaan dengan PPI
• Interfacing dengan PIO
– Rangkain Interfacing
– Inisialisasi
• Contoh Aplikasi
Inisialisasi Z80PIO
• Non Interrupt dan Interrupt
• Ada 4 macam Word Control:
– Mode Control Word
– Interrupt Vector Word
– Interrupt Control Word
– Interrupt Disable/Enable
Mode Control Word
M1 M2 X X 1 1 1 1
Identifikasi
0 0 Output
0 1 Input
1 0 Bidirectional
1 1 Bit-Control (diikuti penulisan set
I/O word)
Interrupt Vector Word
V7 V6 V5 V4 V3 V2 V1 0
H a r u s ‘0 ’, s e b a g a i id e n t if ik a s i
Interrupt Control Word
D7 X X X 0 0 1 1
Untuk identifikasi
Data BUS
+5V
1 2 3 100
IEI IEI IEI IEI NC
IEO IEO IEO IEO
INT
pin 16
Pertemuan XV
Interfacing dengan CTC
• Pengantar CTC
– Pengertian CTC
– Blok Diagram dan Cara Kerja CTC
• Interfacing dengan CTC
– Rangkaian Interfacing
– Inisialisasi
• Contoh Aplikasi CTC
Inisialisasi Z80 CTC
• Ada 2 byte/macam data yang dituliskan
pertamakali:
– Channel Control Word Programming (CCW)
– Time Constant Programming (1 s/d 256)
Cannel Control Word (CCW)
D7 D6 D5 D4 D3 D2 D1 D0
Interrupt Control/Vektor
‘0’ Disable ‘0’ Vektor
‘1’ Enable ‘1’ Control Word
Mode RESET
‘0’ Select Timer Mode ‘0’ Continued Operation
‘1’ Select Counter Mode ‘1’ Software Reset
Nilai Prescaler Time Constant
‘0’ Nilai 16 ‘0’ Tidak ada Time Constant
‘1’ Nilai 256 ‘1’ Time Constant diberikan
CLK/TRG Edge Selection Timer Trigger
‘0’ Falling Edge ‘0’ Automatic Triggering
‘1’ Rising Edge ‘1’ Setelah CLK/TRG yang pertama
Time Constant
• Pada mode “timer”, interval timer
dipengaruhi oleh 3 faktor
1. Periode dari sistem clock (CLK)
2. Faktor Prescaler, P (16/256)
3. Time Constant, T (1 s/d 256)
Interval Timer = CLK x P x T
D7 D6 D5 D4 D3 D2 D1 D0