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 XII
Pertemuan XIII
STACK
Pertemuan XV
Pertemuan XIV
Interupsi
Pertemuan XVI
Pertemuan I
Pertemuan X
Pertemuan XI
Pertemuan II
Pertemuan VII
Pewaktuan, Pensinyalan
Pertemuan VI
Pertemuan V
Digital
Pertemuan IV
Pertemuan III
Pertemuan VIII
Pertemuan I
Pemrograman
Micro Stored Programming
Machine Language
RISC vs CISC
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
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
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
Arsitektur Komputer
Bagian pusat pemroses
Storage
Inter
koneksi
Kotak
CPU
I/O
Prosesor
(CPU)
Memory
BUS
Sistem Komputer
I/O
Register
ALU
Internal
Control
BUS
Unit
Driver,
Pin
CPU/Prosesor
Pemrograman
Micro Stored Programming
Dilakukan oleh vendor prosesor
Machine Language
RISC vs CISC
Machine Language
Pemrograman pada tingkat sistem prosesor
atau komputer
Program dalam bentuk rangkaian perintahperintah 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
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
?
Motorola
Z80 PIO
8088
prosesor
80286
8255
8251
6502
interface
Teknik Digital
Rangkaian Elektronika
Assembly
Elektronika Industri
Elektronika Terapan
Pertemuan IIa
Review Sistem Analog
Perbedaan Sistem Analog dan Sistem Digital
Mana yang lebih baik ?
Ilustrasi Driver
Sumber tidak mampu
langsung menjalankan
Beban
Beban tidak dapat
dijalankan
Sumber
(uP-I/O)
Beban
(Motor 12V)
Driver
Ilustrasi Buffer
Beban menyerap arus
yang terlalu besar dari
Sumber
Muncul efek
Sumber terbebani
Sumber
(Sensor)
Beban
(uP-I/O)
Buffer
Perlu ditambahkan
Buffer sebagai Isolator
Sumber
(Sensor Analog)
Beban
(uP-ADC)
SC
Beban
(Loudspeaker)
Sumber
(uP-DAC)
Power
Perlu ditambahkan Power agar
Beban menjadi lebih besar
Op-Amp
Inverting
Non Inverting
Integrator
Differentiator
Comparator
Filter
Low Pass Filter
High Pass Filter
Band Pass Filter
Notch Pass Filter
Stop Band Filter
Pengisian Kapasitor
IR
R
Vi
Vo=Vc
Vc Vi 1 e
t
RC
Contoh Thevenin/Norton
R1
Vi
R3
R2
R4
Vo=?
Cara Thevenin
R1
Vi
R3
R2
R4
Vo=?
Cara Thevenin
Ra=R1// R2
Va
Vi.R2
R1+R2
R3
R4
Vo=?
Cara Thevenin
Ra
Va
R3
R4
Vo=?
Cara Thevenin
Rb=Ra+R3
Va
R4
Vo=?
Cara Thevenin
Rb
Va
R4
Vo=?
Cara Thevenin
Rc=Rb//R4
Vb
Va.R4
Rb+R4
Vo=Vb
Ro=Rc
Cara Norton
R1
Vi
R3
R2
R4
Vo=?
Cara Norton
R3
R2
Ii
R1
Ii=Vi/R1
R4
Vo=?
Cara Norton
R3
R2
Ii
R1
Ii=Vi/R1
R4
Vo=?
Cara Norton
R3
R4
Ii
Ra=R1//R2
Ii=Vi/R1
Vo=?
Cara Norton
Ra=R1//R2
Va
Va=Ii Ra
Va=Vi/R1 x (R1//R2)
R3
R4
Vo=?
Cara Norton
Ra=R1//R2
Va
Va=Ii Ra
Va=Vi/R1 x (R1//R2)
R3
R4
Vo=?
Cara Norton
Rb=Ra+R3
Va
R4
Vo=?
Cara Norton
Ia
Ia=Va/Rb
Rb
R4
Vo=?
Cara Norton
Ia
Ia=Va/Rb
Rb
R4
Vo=?
Cara Norton
Ia
Ia=Va/Rb
Rc=Rb//R4
Vo=?
Cara Norton
Ia
Ia=Va/Rb
Rc=Rb//R4
Vo=?
Cara Norton
Rc=Rb//R4
Vb
Vb=Ia.Rc
Vo=Vb
Ro=Rc
Pertemuan IIb
Review Sistem Digital
Sistem Bilangan
Kode Biner, Octal, Hexadecimal, Decimal
Complement 1s complement, 2s complement
Operasi bilangan
Sinyal Digital
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
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)
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)
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
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
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
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
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
Register Flag
Register Umum
Control Bus
13 pin
Clock
Reset
Address Bus
16 pin
CPU
Data Bus
8 pin
Bi-directional
Kontrol Unit
Kontrol
Data Bus
13 buah
Sinyal-sinyal Kontrol
CPU dan Sistem
(8 input & 5 output)
Instruction
Decode
&
Kontrol
CPU
(Timing)
Instruction
Registers
Kontrol
CPU
(CPU Timing)
Registerregister
CPU
Kontrol
Alamat
+5V
GND CLK
ALU
16-Bit
Bus Alamat
Z80 CPU
http://www.z80.info/z80arki.htm
http://www.z80.info/gfx/z80block.gif
CPU akan membaca/menjalankan tiap data sesuai dengan yang telah ditentukan (oleh pembuat CPU)
Pertemuan IV
Dasar Pemrograman Assembly
Istilah dalam pemrograman Assembly
Mode Pengalamatan
Immediate, Register, Langsung, Tak
Langsung, Indeks
Pembagian Instruksi
Transfer, Aritmatik dan Logic, Percabangan,
Pemanggilan, Input-Output
Contoh-contoh
Register
Berada dalam CPU (Mikroprosesor)
Digunakan untuk menyimpan data selama
proses/program/sub program berjalan
Bersifat sementara
Umumnya selama dalam sub program
Cepat
Memerlukan kode instruksi yang pendek
Memiliki/menggunakan nama tertentu
LD
LD
LD
LD
A,B
A,20H
A,(8000H)
A,(HL)
Pemrograman
dalam bentuk
asembly
78
3E 20
3A 00 80
7E
(M1, 4T)
(M1-M2, 7T)
(M1-M2-M3-M4, 13T)
(M1-M2, 7T)
Memory
Berada di luar CPU, harus ada
CPU hanya dapat memproses dari memory
I/O
Berada di luar CPU
Harus ada kalau ingin berhubungan antara
sistem mikro dengan dunia luar
Tidak bersifat menyimpan data, hanya
melewatkan data
Khusus untuk port output, terkadang dilengkapi
dengan fungsi latch
Alamat
Register dinyatakan dengan nama, sedangkan
memory dan port dinyatakan dengan alamat
Alamat menyatakan
Posisi dari data yang disimpan pada memory
Saluran dari port dimana data akan disalurkan
Untuk z80
Alamat memory berkisar 0000H s/d FFFFH
Alamat port berkisar 00H s/d FFH
Port
Istilah yang digunakan untuk menyatakan saluran dari
peralatan input/output yang digunakan
Anggap, kalau peralatan I/O merupakan penghubung
suatu area dengan dunia luar, maka port dapat dianggap
sebagai pintu atau gerbang-nya
Akan ada beberapa port untuk terhubung dengan dunia
luar, dan dinyatakan dalam alamat port atau nomor port
atau nama port
Contoh Port A dari PPI 8255
PPI adalah nama salah satu perangkat I/O yang memiliki 4 port
dengan nama A, B, C, dan CR (Control Register)
CR bukan pintu atau gerbang yang sesungguhnya. Hanya tempat
untuk menyimpan data konfigurasi
Port (Lanjutan)
Dalam Z80, alamat atau nomor port hanya
dibatasi sebanyak 256 port
Alamat/Nomor port 00H sampai dengan FFH
Data
Menyatakan sesuatu yang
disimpan/diproses/disalurkan, baik berupa suatu
nilai atau kode program
Dapat disimpan di register atau memory
Terkadang port output juga bisa menyimpan
Kode Mesin
Program yang umumnya ditulis dalam bentuk
kode Hexa
Merupakan kode yang dimengerti oleh mesin
(CPU)
Terdiri dari alamat dan kode instruksi (data-data
berupa program yang tersimpan di memory)
Contoh :
0100
0102
Alamat
3E 20
DD 21 8000
Kode Mesin
Opcode
Operation code, kode operasi, kode-kode
tertentu yang dibuat
Menyatakan satu perintah dasar, misalkan isi
register A
Digunakan dalam pemrograman mesin atau
assembly
Contoh :
LD
ADD
SUB
A
A,B
A,B
Operand
Sesuatu yang perlukan sebagai tambahan pada
suatu opcode agar membentuk satu perintah
lengkap
Berupa data atau alamat memory atau I/O
Contoh :
LD A, 20H
data 20H sebagai operand
OUT (80H),A alamat 80H sebagai operand
LD A, (2000H) alamat 2000H sebagai operand
Contoh
LD
LD
LD
OUT
Opcode
A,20H
BC,2000H
(BC),A
(80H),A
Operand
Assembly
3E 20
01 00 20
02
D3 80
Opcode Operand
(Operation Code)
Kode Mesin
Arah Operasi
LD
A,B ;
A B, atau A = B
ADD
A,B ;
A A + B, A = A + B
Catatan Operand
Ada dua jenis cara menuliskan operand
Data langsung (8 bit atau 16 bit atau label)
80H, 2000H, CW, DataMotor
Catatan: Data-data tersebut bisa jadi nanti dalam
proses program dianggap sebagai alamat
A,20H
A,(8000H)
BC,9000H
A,(BC)
Data
Alamat
Data 9000H pada BC akan digunakan sebagai alamat
A,20H
BC,2000H
A,(8000H)
LD
LD
A,B
BC,DE
LD
LD
LD
LD
LD
LD
LD
LD
LD
A,C
A,HL
A,(DE)
BC,0
DE,8000H
A,2000H
HL,(8000H)
A,(8000H)
A,(20H)
Mnemonic
Menyatakan satu perintah tunggal,
termasuk format data atau sesuatu yang
dioperasikan oleh data tersebut
Terdiri dari opcode dan operand (data,
register, memory atau port)
Contoh :
LD
r, n
ADD A, r
LD
r, r
r
n
nn
d
register 8 bit
data 8 bit
data 16 bit
displacement (pergeseran 8 bit)
Instruksi
Menyatakan satu perintah/program
tunggal
Terdiri dari Opcode dan Operand
Contoh :
LD
LD
IN
A,30H
B,A
A,(81H)
Masukkan 30H ke A
Masukkan/salin A ke B
Baca port 81H ke A
Label
Suatu tulisan yang digunakan untuk
menunjukkan posisi dari suatu instruksi
Digunakan untuk menggantikan alamat pada
penulisan bahasa assembly
Terkadang label dapat digunakan sebagai data
Nilai sesungguhnya dari label tidak dapat
diketahui sebelum semua program selesai dan
diterjemahkan ke dalam kode mesin
Ditandai dengan titik dua setelah nama label
Contoh Label
Start:
Tabel:
LD B,20H
LD HL,Tabel
JP (HL)
LD A,10H
ADD A,B
JP Start
Komentar
Suatu tulisan selain instruksi yang digunakan
untuk menjelaskan program
Seharusnya selalu ada, mengingat
pemrograman assembly lebih sulit untuk dibaca
Sebagai dokumentasi
Harus diawali dengan titik koma (;)
Contoh :
LD
CALL
Bahasa Assembly
Artinya bahasa yang dirakit/dibuat untuk
menggantikan kode mesin yang sulit
untuk dibaca/dihafalkan/dimengerti/ditulis
Terdiri dari Label, Opcode, Operand dan
komentar
Contoh :
Mulai:
Assembler
Suatu program yang digunakan untuk
menterjemahkan, atau lebih tepat
mengubah dari bahasa assembly ke
dalam kode mesin
Jika suatu komputer dengan prosesor
tertentu digunakan untuk menterjemahkan
kode dari prosesor lain, maka assembler
tersebut dinamakan Cross Assembler
Pass 2
Penterjemahan instruksi demi instruksi program
assembly berdasarkan mnemonic dan identifier
yang digunakan
Compiler
Suatu program yang digunakan untuk
menterjemahkan, menyusun,
menggabungkan dari bahasa tingkat
tinggi/menengah ke dalam kode mesin
Jika suatu komputer dengan prosesor
tertentu digunakan untuk menterjemahkan
kode dari prosesor lain, maka assembler
tersebut dinamakan Cross Compiler
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
Label
Opc
OperandKomentar
Assembler Directive
Perintah-perintah tambahan yang disertakan
dalam program assembly, tetapi bukan bagian
dari perintah assembly
Digunakan untuk memberitahukan assembler
mengenai apa yang harus dilakukan
Sangat membantu dalam pembuatan program
assembly
Bentuk assembler directive tergantung dari
assebler yang digunakan
EQU Equal
Membuat suatu identifier, atau konstanta
Contoh Program
Simpan
Data
Start:
Nilai:
Buffer:
EQU
EQU
ORG
LD
LD
LD
LD
HALT
;
DEFB
ORG
DEFS
9000H
20H
0H
A,Data
(Simpan),A
A,(Nilai)
(Buffer),A
; Simpan = 9000H
; Data = 20H
; Alamat 0000H
30H
8000H
(2)
; [Nilai] 30H
; Alamat 8000H
; [Buffer] 2 Byte
; [9000H] 20H
; A [Nilai]
; [Buffer] A
Pertemuan VI
Contoh
Isi register A dengan 20H dan register B
dengan 30H
Tukar isi kedua register
Tugas
Buat ilustrasi proses transfer data
Buat program assembly-nya
Buat kode mesinnya
Susun dalam bentuk listing program yang
dimulai dari alamat 0000H
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
A,n
B,n
C,n
A,C
C,A
B,C
C,B
A,B
D,A
C,D
3E nn
06 nn
0E nn
79
A 20H
B 30H
C 20H
A 30H
B 20H
LD A,20H
LD B,30H
LD C,A
LD A,B
LD B,C
HALT
3E 20H
06 30H
4F
78
41
76
ORG 0000H
START:
3E 20
LD A,20H
06 30
LD B,30H
4F
LD C,A
78
LD A,B
41
LD B,C
76
HALT
;
;
;
;
;
;
;
;
Latihan
Buat listing program (program assembly beserta
kode mesinnya) untuk menukarkan isi dari
register A dan B dan menyimpan hasil
penjumlahan keduanya ke register C
Gunakan nilai awal A = 10H dan B = 20H
dengan alamat awal program di 0100H
Gunakan beberapa instruksi yang ada
Hasil akhir seharusnya A = 20H, B = 10H dan C
= 30H
Untuk memudahkan, buat algoritma atau
ilustrasi penyimpanan register
10H
20H
A 10H
20H
A 10H
B 20H
B 20H
C 20H
D 20H
B 10H
B 10H
+
A 30H
A 30H
D 30H
C 30H
A 20H
C 00H
A 20H
0100H
D,B
B,A
A,D
C,A
A,D
ORG
Mulai: LD
LD
ADD
LD
LD
LD
HALT
0100H
C,B
B,A
A,C
D,A
A,C
C,D
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
Immediate
Segera
Data (sumber) tersedia langsung bersamaan
dengan/di dalam instruksi
Contoh
LD
LD
LD
A,20H
- MOV
HL,8000H - MOV
20H,A
salah
A,#20H
DPTR,#8000H
Immediate Extended
Relatif Addressing
Extended Addressing
Indexed Addressing
Alamat ditunjukkan oleh isi dari register
indeks dan ditambahkan dengan
displacement/offset tertentu
Mirip dengan Direct dan Indirect Addressing
Contoh
LD
LD
A,(IX+20H)
(IY+30H),B
Register Addressing
Sumber atau tujuan berasal dari register
Contoh
ADD A,B
LD
B,A
- ADD
- MOV
A,B
B,A
A,(2000H)
MOV A,20H
(8000H),A
A,(Data)
HL,(Data)
B,(Data) Salah, tidak disediakan
Indirect Addressing
Alamat tidak langsung disebutkan dalam
program, tetapi disimpan dalam register
lain
Contoh
LD
A,(HL)
MOV A,@R0
LD
B,(HL)
Implied Addressing
Bit Addressing
Kelebihan
Direct
Praktis jika untuk beberapa lokasi (misal satu
lokasi saja)
Indirect
Jika lokasi memory cukup banyak, dan
contiguous (berurutan, blok memory)
Indexing
Tabel
Transfer data pada lokasi berdekatan
Contoh Indirect
Salin data memory pada lokasi 8000H ke 9000H
sebanyak 1000 byte
LOOP:
LD
LD
LD
LD
LD
INC
INC
DEC
LD
OR
JR
BC,1000
HL,8000H
DE,9000H
A,(HL)
(DE),A
HL
DE
BC
A,B
C
NZ,LOOP
Contoh Indexing
Salin data memory pada lokasi 8000H ke 7FF0H
sebanyak 1000 byte
LOOP:
LD
LD
LD
LD
LD
INC
INC
DEC
LD
OR
JR
BC,1000
HL,8000H
DE,7FF0H
A,(HL)
(DE),A
HL
DE
BC
A,B
C
NZ,LOOP
LD BC,1000H
LD IX,8000H
dibuang
LD A,(IX+0)
LD (IX-10H),A
INC IX
dibuang
sama
Pertemuan VII
Set Instruksi
Pembagian Instruksi
Transfer
Arithmetic and Logic
Percabangan
Perbedaan alamat absolute dan relative
Cara perhitungan alamat relatif
Perhitungan pergeseran byte (syarat, besar byte harus
diketahui)
Perhitungan dengan 2s complement (syarat, alamat harus
diketahui)
Pemanggilan
Input/Output
Pembagian/Jenis Instruksi
Load (LD)
Memindahkan atau menyalin data secara
internal di antara register CPU atau
dengan memori luar
Contoh
LD A,B
LD A,(8000H)
LD (8100H),HL
Exchange
Menukar data antara dua register atau
kelompok register dalam CPU
Contoh
Ex DE,HL
Block Transfer
Memindahkan sekelompok data dalam
suatu lokasi memori ke lokasi lain dari
memori hanya dengan menggunakan satu
instruksi
Contoh
LDI, LDD
LDIR, LDDR
BC,1000
HL,8000H
DE,9000H
LDI
A,(HL)
(DE),A
HL
DE
BC
A,B
C
NZ,LOOP
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
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
Format/Layout Program
Data1
Data2
Hasil
EQU
EQU
EQU
;
ORG
Mulai: LD
9000H
0A000H
8000H
0H
HL,
Format/Layout Program 2
Mulai:
Data1:
Data2:
Hasil:
ORG 0H
LD HL,
ORG 9000H
DEFS (4)
ORG 0A000H
DEFS (4)
ORG 8000H
DEFS (4)
Looping
Pertemuan VIII
Sistem Pewaktuan pada CPUZ80
Siklus CPU
Waktu Eksekusi
Pengertian, dilihat dari cara kerja Control Unit
Perhitungan Waktu Eksekusi
Clock, M1, MREQ, IOREQ, RD, WR, Address BUS, Data BUS
Cara Penggambaran Sinyal Pewaktuan
org
loop: ld
jp
0000
0002
0005
0
a,0eh
loop
3E 0E
C3 00 00
M1
M1 + M2
M1 + M2 + M3 +
M1 + M1
M1 + M1 + M2
M1 + M1 + M2 + M3 +
ADD
LD
LD
INC
LD
LD
A,B
A,20H
HL,0H
IX
A,(IX+0)
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
Contoh
LD
LD
LD
LD
ADD
LD
LD
LD
LD
LD
A,30H
B,20H
A,B
HL,0H
A,C
(80H),A
(HL),A
(30H),HL
(IX+10H),A
A,(IY)
M1 + M2
M1 + M2
M1
M1 + M2 + M3
M1
M1 + M2 + M3
M1 + M2
M1 + M2 + M3
M1 + M1 + M2
M1 + M1 + M2
(4 + 4 + 3
+ M4
+
+
+
+
M4+ M5
M3 + M4
M3 + M4
5 + 3)
Contoh
JP 0000H
JR 0000H
CALL 0000H
RET
PUSH BC
POP HL
JR NZ,0000H
DJNZ 0000H
OUT (00H),A
M14T
M14T
M1 +
M1 +
M15T
M14T
M14T
M15T
M14T
+ M23T + M33T
+ M23T + M35T
M2 + M3 + M4 + M5
M2 + M3
+ M2 + M3
+ M2 + M3
+ M23T [+ M35T]
+ M23T [+ M35T]
+ M23T + M34T
ld hl,(8010h)
L (nn)
H (nn+1)
3E
0C
opcode operand
4T +
3T
7T
opcode
2A
10
80
operandL(nn) H(nn+1)
4T +
3T +
3T +
3T +
: total = (4+3+3+3+3)T 16 T
3T
ld bc,(8010h)
C (nn)
B (nn+1)
ED
2A
10
80
opcode operand
C(nn) B(nn+1)
4T +
4T +
3T +
3T + 3T
: total = (4+4+3+3+3+3)T 20 T
in a,(81h)
A (81h)
DB
81
opcode
4T +
3T
operandA(81h)
+
4T
11T
3T
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=1
13T
B=0
8T
Delay #3
Berapa waktu delay berikut ini ?
LD
B,3
7T
LOOP: DJNZ
LOOP
8T atau
13T
B=3
7T
B=2
13T
B=1
13T
B=0
8T
Delay #n
Berapa waktu delay berikut ini ?
LD
B,n
LOOP: DJNZ
LOOP
N=7T + (n-1).13T + 8T = 15T + (n-1).13T
Berapa waktu delay terbesar ?
Hitung n jika diinginkan delay 100 us
Delay 16 bit #1
Berapa waktu delay berikut ini ?
LD
BC,1
LOOP: DEC
BC
LD
A,B
OR
C
JR
NZ,LOOP
Delay 16 bit #2
Berapa waktu delay berikut ini ?
LD
BC,2
LOOP: DEC
BC
LD
A,B
OR
C
JR
NZ,LOOP
Delay 16 bit #n
Berapa waktu delay berikut ini ?
LD BC,n
LOOP: DEC BC
LD A,B
OR C
JR NZ,LOOP
Berapa waktu delay terbesar ?
Delay 2 Tingkat #1
Berapa waktu delay berikut ini ?
LD
C,1
LOOP1:LD
B,5
LOOP2:DJNZ
LOOP2
DEC
C
JR
NZ,LOOP1
Delay 2 Tingkat #2
Berapa waktu delay berikut ini ?
LD
C,2
LOOP1:LD
B,5
LOOP2:DJNZ
LOOP2
DEC
C
JR
NZ,LOOP1
Delay 2 Tingkat #n
Berapa waktu delay berikut ini ?
LD C,n 7T
LOOP1:LD B,m
LOOP2:DJNZ
LOOP2
M=15T+(n-1)13T
DEC C
4T
JR NZ,LOOP1
7T/12T
N=7T+(n-1)(M+4T+12T)+7T
N=14T+(n-1)(M+16T)
Lanjutan
Contoh
Sebuah program:
0000 3E 20
0002 C3 00 00
LOOP:
LD
JP
ORG 0H
A,20H
LOOP
= 7T
= 10T
T2
T3
T4
T5
T6
T7
T8
T9
Clock
M1
Address
0000H REFSH
M2
0001H
M1
0002H REFSH
M2
M3
0003H
0004H
MREQ
RD
Data
M1
REFSH
3EH
20H
C3H
00H
00H
Pertemuan IX
Sistem Minimum z80
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
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
0000H
Memory Mapping
00H
Total Kapasitas
64kByte
untuk
ROM/RAM
FFFFH
I/O Mapping
Total Kapasitas
256 Byte
untuk
I/O
FFH
Bisa untuk ROM/RAM ?
Pemetaan Alamat
Memory
S/W LD
H/W MREQ, jangkauan 0000H s/d FFFFH
(64 KB)
I/O
S/W IN/OUT
H/W IOREQ, jangkauan 00H s/d FFH (256
Byte)
Pemetaan Alamat
Apakah bisa, alokasi untuk Memory atau
I/O ditambahkan/diperluas/dikembangkan,
sehingga lebih dari 64kByte untuk Memory
dan lebih dari 256 Byte untuk I/O ?
Sistem uP
Jenis-jenis Memory
ROM
ROM :
PROM:
EPROM
EEPROM
SEEPROM
Flash ROM
: 27xxx
: 28xxx
: 24xxx, 29xxx
:
RAM
SRAM : 61xxx, 62xxx
DRAM : 41xxx, 51xxx
Kapasitas Memory
Type
Kap. bit
Kap. Byte
Alamat
XX01
1 kbit
128 Byte
7 pin
A0 A6
0000H ~ 007FH
XX02
2 kbit
256 Byte
8 pin
A0 A7
0000H ~ 00FFH
XX04
4 kbit
512 Byte
9 pin
A0 A8
0000H ~ 01FFH
XX08
8 kbit
1 kByte
10 pin
A0 A9
0000H ~ 03FFH
XX16
16 kbit
2 kByte
11 pin
A0 A10
0000H ~ 07FFH
XX32
32 kbit
4 kByte
12 pin
A0 A11
0000H ~ 0FFFH
XX64
64 kbit
8 kByte
13 pin
A0 A12
0000H ~ 1FFFH
XX128
128 kbit
16 kByte
14 pin
A0 A13
0000H ~ 3FFFH
XX256
256 kbit
32 kByte
15 pin
A0 A14
0000H ~ 7FFFH
XX512
512 kbit
64 kByte
16 pin
A0 A15
0000H ~ FFFFH
RD
WR
CPU
Clock
Address
Bus
Data Bus
RD
WR
CPU
Clock
Address
Bus
Data Bus
Address Bus
CPU
EPROM
RD=0
Data di Bus
Clock
RD
Data
Bus
RD
IN
Address Bus
CPU
RAM
Data diletakkan
di Bus oleh CPU
WR=0
Clock
WR
Data
Bus
WR
WR
Penggunaan EPROM
Tata cara penggunaan jalur sinyal OE (
RD dari CPU)
Tata cara penggunaan jalur sinyal CE
Biasanya dihubungkan ke jalur
sinyal RD digabung dengan sinyal
Address
Pemrograman
(penggunaan
jalur
sinyal
MREQ
(pada
Z-80)
atau semacamnya
Bus
RD
dari PGM) MEMRD
OE
CPU
output
enable
ke OE
MREQ
8 bit
EPROM
CE
Data
Bus
chip
enable
CS CE
RD OE
WR
CPU
MEMWR
ke WR
Bus
MREQ
8 bit
WR
RD
RAM
CS
Data
Bus
chip
select
PPI
Penggunaan I/O
Tata cara penggunaan jalur sinyal WR
(write enable)
Tata cara penggunaan jalur sinyal CS
Biasanya dihubungkan ke jalur
sinyal WR digabung dengan sinyal
(chip select)Address
dari
WR
CPU
IOWR
ke WR
Bus
IOREQ
8 bit
WR
RD
I/O
CS
Data
Bus
chip
select
CLOCK
Address Bus
RESET
CPU
Z80
ROM
(2764)
Power
Supply
Address
Bus
Address
Decoder
untuk
Memori
RAM
(6264)
Address
Bus
I/O
(PPI 8255)
Address
Decoder
untuk I/O
Pertemuan X
Decoder Alamat
Pertemuan X
Hubungan CPU dengan I/O
I/O
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, )
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
LD
PUSH
LD
DJNZ
POP
BC,30
BC
B,10
$
BC
Penyimpanan Data
Transfer Data
LD
HL,DE
PUSH DE
POP HL
Transfer Parameter/Return
LD
HL,5
PUSH
HL
LD
HL,6
PUSH
HL
CALL_tambah
POP
HL
_tambah:
POP
POP
POP
ADD
PUSH
JP
IX
HL
BC
HL,BC
HL
(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
Data
Temporer
RAM
0000H
00FFH
0100H
Misal
EPROM 27256
7FFFH
8000H
Stack Pointer
Misal
RAM 62256
Kosong
FFFFH
ret
: PCL (SP)
PCH (SP+1)
SP SP+2
SP=0000H
org
loop: nop
call
nop
jr
8000h
org
timer: --------ret
8100h
timer
loop
call timer
SP=0000H
nop
jr loop
SP
FF -2
FE
H
nop
ret
Khasus II
SP-2
SP-2
call timer
SP
call loop2
jp main
SP
-4
SP
-4
SP
-6
call loop
SP
-4
SP
SP
-2
main
SP
-4
SP
-6
call timer
Pertemuan XIV
Interupsi
Interupsi
Pengertian Interupsi
Jenis Interupsi
Hardware
Software
Mode Interupsi
Mode 0, Mode 1, Mode 2
0000h
sp,8000h
start
0066H
a,01010101B
0000
0003
31 00 80
C3 03 00
= 10T
= 10T
0066
0068
3E 55
ED 45
= 7T
= 8T
NMI (lanjutan)
+5
NMI
NMI
start
retn
jp start
rutin NMI
0066H
Z80
17
0.1
10K
im
ei
: disable interrupt
im
ei
Contoh Pemrograman
INT (lanjutan)
+5
INT
INT
start
reti
jp start
rutin INT
PCbaru
Z80
16
0.1
10K
Pertemuan XV
INT
AMV-555
Progut Running LED #1
INT Running LED #2
Pertemuan XVI
Latihan
Buat program untuk membangkitkan gelombang PWM
100%
terlebih dulu, untuk memudahkan analisa
dc Buat Flow-chart-nya
PB
rancangan
255
Buat program secara lengkap mulai dari origin 0000H dan
inisialisasi-nya
Diagram Blok
PB
Z80 CPU
Data
(Saklar)
PPI
PA.0
00000000B (0)
00000001B (1)
00000010B (2)
11111110B (254)
11111111B (255)
PWM
dc=20%
dc=0%
dc=0,4%
dc=0,8%
dc=99,6%
dc=100%
10
15
20
25
30
35
40
45
240
245
250
10
15
255
Referensi (PB)
Pembangkit
Gigi Gergaji
(Reg. C)
Saat
Counter=255
Nilai Counter
Berikutnya=0
Saat Counter=0
PA.0=1
(Proses diulang)
PWM (PA.0)
PWM
20
25
START
Init STACK
Flow Chart
Init PPI
ORG
0
LD SP,0
LD A,82H
OUT (PPICR),A
LD C,0
Counter=0
PA.0=1
LOOP:
LD A,1
OUT (PPIPA),A
LOOP2:
IN A,(PPIPB)
SUB C
JR NC,BESAR
LD A,0
OUT (PPIPA),A
BESAR:
INC C
JR NZ,LOOP2
JR LOOP
Baca PB
PB>Counter?
Ya
Counter ++
Ya
Counter0
Tidak
Tidak
PA.0=0
Quiz
Buat program untuk membangkitkan 2 gelombang PWM
100%
100%
PB dulu,
dcuntuk
dc
BuatPAFlow-chart-nya
terlebih
memudahkanPanalisa
.0
PA .1
C
rancangan
255
255
Buat program secara lengkap mulai dari origin 0000H dan
inisialisasi-nya
START
Init STACK
Init PPI
ORG
0
LD SP,0
LD A,8BH
OUT (PPICR),A
LOOP:
LD A,3
OUT (PPIPA),A
LD C,0
LOOP2:
IN A,(PPIPB)
SUB C
JR NC,NEXT
IN A,(PPIPA)
RES 0,A
OUT (PPIPA),A
NEXT:
IN A,(PPIPC)
NEXT2:
INC C
JR NZ,LOOP2
JR LOOP
Baca PB
PB>Counter?
Tidak
PA.0=0
Ya
Baca PC
PC>Counter?
Ya
Counter ++
Ya
Tidak
Counter0
Tidak
PA.1=0
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
M2
Identifikasi
0
Output
Input
Bidirectional
V6
V5
V4
V3
V2
V1
H a r u s 0 , s e b a g a i id e n t ifi k a s i
Untuk identifikasi
0 : Interrupt Disable
1 : Interrupt Enable
Struktur Interrupt
DAISY CHAIN
Data BUS
+5V
1
IEI
2
IEO
IEI
3
IEO
IEI
100
IEO
IEI
IEO
NC
INT
pin 16
Pertemuan XV
Control/Vektor
0 Vektor
1 Control Word
RESET
0 Continued Operation
1 Software Reset
Time Constant
0 Tidak ada Time Constant
1 Time Constant diberikan
Timer Trigger
0 Automatic Triggering
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
Contoh Aplikasi
Simple I/O
LED, Motor dc, Lampu, Beban 220V
Saklar, Debounche, Pulsa, Schemitt Trigger
Pembangkitan PWM
Pengaturan Kecepatan Motor DC
Robot Micro-mouse
Pertemuan XIV
Pengantar 8086
Mode Pengalamatan:
Register, Direct, Immediate, Indirect, Indexed
Pengantar 68000
Lebar Data : 16 bit
Operasi Data : 8 bit, 16 bit, 32 bit
Kapasitas Alamat : 24 bit (16 Mbyte, terbagi dua @
8 Mbyte)
Pemetaan Alamat:
Pemetaan Memory (16 Mbyte, 000000H FFFFFFH)
Mode Pengalamatan:
Register, Direct, Immediate, Indirect, Post-Increment
Indirect, Pre-Decrement Indirect, Indexed, Program
Counter
Pengantar MCS-51
Perbedaan antara sistem Micro-Prosesor
dan sistem Micro-Controller
Contoh-contoh penggunaan
Pengantar Embedded System
Arsitektur MCS-51
Konfigurasi Internal
CPU, RAM, ROM, Interface
Penjelasan Pin-pin
Definisi Pin, parallel pin
RESET, CLOCK
Pertemuan XV
Instruction Set MCS-51
Pembagian Instruksi
Transfer, Aritmatik, Logic, Boolean,
Percabangan
Mode Pengalamatan
Immediate, Langsung, Tak langsung,
Register, Indeks
Contoh Aplikasi
Simple I/O
Pertemuan XVI
Timer/Counter
Serial