Anda di halaman 1dari 56

Oleh :

M.Eng. Firmansyah David

















Jurusan Teknik Elektro Institut Teknologi Padang
Semester Genap



BAHAN KULIAH
MIKROPROSESOR & TEKNIK MIKROKOMPUTER



Materi Kuliah dan Jadwal

1. Pendahuluan
Pertemuan ke 1
2. Dasar Mikroprosessor
Pertemuan ke 2 & 3
3. Bagian dan cara kerja Mikroprosessor
Pertemuan ke 4 & 5
4. Mikroprosessor 8 bit
Pertemuan ke 6 & 7
5. Perencanaan Hardware
Pertemuan ke 8 & 9
6. Analog Digital Converter (ADC)
Pertemuan ke 10
7. Ujian Tengah Semester (UTS)
8. Digital Analog Converter (DAC)
Pertemuan ke 11
9. Aplikasi Sistem Mikroprosessor
Pertemuan ke 12 & 13
10. Interfacing Mikroprosessor
(a) Interfacing dengan device analog
Pertemuan ke 14
(b) Interfacing dengan device digital
Pertemuan ke 15
(c) Interfacing dengan device tegangan tinggi
Pertemuan ke 16
12 . Ujian Akhir Semester (UAS)




1. Pendahuluan
(a) Perkenalan
(b) Sistematika Perkuliahan : 3 sks/ Pertemuan
(c) Sistematika Penilaian
Ujian Tengah Semester (UTS) = ......%
Tugas Mata Kuliah = .......%
Ujian Akhir Semester (UAS) =........%
Total = 100 %
2. Dasar Mikroprosessor (MP)
a) Menjelaskan Pengertian MP
b) Menjelaskan Pengertian Bus
c) Menjelaskan Sistem Bilangan
i. Menjelaskan prinsip digit
ii. Menjelaskan notasi posisi
iii. Menjelaskan Heksadesimal Kode-biner
iv. Menjelaskan Binary Coded Decimal
v. Data Ukuran Byte
3. Bagian dan Cara kerja Mikroprosessor
a) Arsitektur Internal MP
b) Pengalamatan Memori Mode Real
c) Pengenalan Pengalamatan Memori Mode Protected
d) Paging Memori
4. Mikroprosessor 8 bit
a) Menjelaskan versi MP 8 bit 8008
b) Menjelaskan Programmable Pheripheral Interface (PPI 8255)
c) Menjelaskan Programmable Interval Timer (PIT 8253)
d) Menjelaskan Programmable Interrupt Controller (PIC 8259)
5. Perencanaan Hardware
a) Menjelaskan Perencanaan Unit memori dan peralatan I/O



b) Sistem Minimum
6. Analog Digital Converter (ADC)
a) Menjelaskan konsep ADC
b) Menjelaskan Struktur ADC
c) Menjelaskan Aplikasi ADC
7. UTS
8. Digital Analog Converter (DAC)
a) Menjelaskan konsep dasar DAC
b) Menjelaskan Practical Operation DAC
c) Menjelaskan Tipe DAC.
d) Menjelaskan Performansi dari DAC
9. Aplikasi Sistem Mikroprosessor
a) Aplikasi I/O
b) Aplikasi Display
11. Interfacing Mikroprosessor
a) Interfacing dengan device analog
b) Interfacing dengan device digital
c) Interfacing dengan device tegangan tinggi
11. UAS



1
PERTEMUAN KE 2 & 3
DASAR MIKROPROSESSOR

a. Pengertian Mikroprosessor (MP)
Mikroprosessor adalah elemen kendali pada sistem komputer yang juga biasa
disebut sebagai CPU (Central Processing Unit) atau unit pemrosesan terpusat. Disamping itu
MP berfungsi untuk mengatur memori dan sistem Input/Output (I/O) melalui suatu
hubungan yang disebut dengan bus. Bus nantinya berfungsi untuk memilih I/O atau
peralatan memori, mentransfer data bolak balik antara peralatan I/O atau sistem memori
dan MP.
Tiga fungsi utama MP pada sistem komputer yakni:
a. Mentransfer data antara MP dengan MP atau dengan memori atau dengan
sistem I/O.
b. Menjalankan operasi aritmatika dan operasi logika sederhana.
c. Menentukan aliran program melalui keputusan sederhana.
Kemampuan MP untuk mentransfer dan menjalankan ratusan juta perintah dalam
satu detik dari suatu perangkat lunak (yang berisi perintah perintah) diartikan sebagai
kekuatan sebuah MP. Operasi operasi aritmatika dan logika sederhana dapat dilihat pada
Tabel 1.
Tabel 1 Operasi operasi aritmatika dan logika sederhana
Operasi Keterangan
Penambahan
Pengurangan
Perkalian
Pembagian
AND Perkalian Logika
OR Penambahan Logika
NOT Inversi Logika
NEG Inversi Arimatika
Shift
Rotate




2
Operasi operasi pada Tabel 1 merupakan operasi dasar tetapi program yang kompleks
dapat diselesaikan. Dalam penentuan keputusan MP dapat diamati pada Tabel 2.
Tabel 2 Penentuan keputusan dalam sistem MP
(MP 8086 80486 dan Pentium/Pentium Pro)
Keputusan Keterangan
Zero Uji apakah bilangan nol atau tidak nol
Sign Uji apakah bilangan positif atau negatif
Carry Uji apakah ada carry atau borrow setelah pengurangan
Parity Uji apakah bilangan untuk jumlah bilangan satu, apakah genap atau ganjil
Overflow
Uji Overflow yang menunjukkan suatu hasil yang bertanda tidak benar
setelah penambahan atau pengurangan.

Keputusan keputusan dibuat berdasarkan angka angka sehingga MP dapat
memutuskan jika angka angka tersebut nol, positif, dan sebagainya. Keputusan
keputusan sederhana ini nantinya akan memungkinkan MP untuk memodifikasi aliran
program, jadi program program terlihat berpikir melalui keputusan keputusan
sederhana ini.

b. Pengertian BUS
Bus merupakan kumpulan kabel kabel yang sejenis yang menghubungkan
komponen komponen pada sistem komputer. Bus berfungsi menghubungkan bagian
bagian sistem komputer, mentransfer data, alamat dan mengontrol informasi antara MP
dengan memori dan sistem I/O. Pada Gambar 1 terlihat kinerja bus bus menghubungkan
bermacam macam komponen seperti MP, RAM, ROM dan beberapa piranti I/O.
Bus kontrol berisi baris yang memilih memori atau I/O dan membuatnya
melaksanakan operasi membaca (read) atau menulis (write). Pada kebanyakan sistem
komputer, ada empat hubungan bus kontrol: MRDC (Memory Read Control) atau kontrol
baca memori, MWTC (Memory Write Control) yaitu kontrol tulis memori), IORC ( IO Read
Control baca I/O), dan IOWC (I/O write control yaitu kontrol tulis I/O). Garis atas yang
menunjukkan bahwa sinyal kontrol adalah aktif rendah; yakni, sinyal akan aktif pada saat



3
logika 0 muncul pada jalur kontrol. Contoh: jika IOWC = 0, MP menulis data dari bus data ke
piranti I/O yang alamatnya ada di bus alamat.
MP membaca isi dari lokasi memori dengan mengirim alamat memori melalui bus
alamat. Selanjutnya bus alamat mengirim MRDC yang menyebabkan memori membaca
data. Akhirnya data yang terbaca dari memori diteruskan ke MP melalui bus data. Setiap kali
memori menulis, I/O tulis atau I/O baca terjadi, urutan kejadian sama berlangsung , yang
berbeda adalah sinyal kontrolnya dan aliran data mengalir keluar MP melalui bus data untuk
operasi tulis.

Gambar 1 Diagram Blok dari sistem komputer yang memperlihatkan
susunan bus alamat, data, dan kontrol

c. Sistem Bilangan
1) Digit
Sebelum bilangan bilangan diubah dari satu sistem bilangan ke sistem bilangan
yang lain, maka digit dari sistem bilangan harus sudah dimengerti. Digit pertama dari
seluruh sistem bilangan selalu 0, sebagai contoh, basis bilangan oktal (8) terditi dari 0
hingga 7; basis biner (2) terdiri dari 0 hingga 1. Jika basis bilangan lebih dari 10, maka digit
tambahannya menggunakan huruf huruf dari abjad, mulai dengan huruf A. Sebagai
MP










MWTC
MRDC
IOWC
IORC
Memori
ROM
Memori Baca
Tulis RAM
Keyboard
Bus Alamat
Bus Data



4
contoh, bilangan basis 12 terdiri dari 12 digit; 0 sampai 9, diikuti dengan huruf A untuk
bilangan 10 dan B untuk bilangan 11.
2) Notasi Posisi
Notasi posisi dapat dicontohkan seperti bilangan desimal 132: bilangan ini
mempunyai 1 sebagai ratusan, 3 puluhan, dan 2 satuan). Mungkin yang tidak dipelajari
adalah nilai exponen dari setiap posisi; posisi satuan yang memiliki nilai 10
0
atau 1; posisi
sepuluh memiliki nilai 10
1
atau 10; dan posisi seratus memiliki nilai 10
2
atau 100.
Pemangkatan sangat penting untuk dimengerti dalam sistem bilangan. Posisi sebelah kiri
dari titik radix (basis bilangan), disebut titik desimal (decimal point) hanya dalam sistem
bilangan desimal, adalah posisi satuan dalam berbagai sistem bilangan. Contoh, posisi
sebelah kiri dari titik biner (binary point) adalah 2
0
atau 1; sedangkan posisi sebelah kiri dari
oktal adalah 8
0
atau 1.
Posisi sebelah kiri dari posisi satuan adalah basis bilangan yang meningkat pada
pangkat pertama; dalam sistem desimal, 10
1
atau 10. Dalam sistem biner, 2
1
atau 2 dalam
sistem bilangan oktal 8
1
atau 8. Oleh karena itu, desimal 11 mempunyai nilai yang berbeda
dengan biner 11. Desimal 11 terdiri dari 1 puluhan dan 1 satuan, dan mempunyai nilai 11;
sedangkan bilangan biner 11 terdiri dari 1 duaan ditambah 1 satuan, dengan nilai 3 satuan.
Bilangan oktal 11mempunyai nilai 9 satuan.
Contoh 1: bilangan biner 110,101 dalam biner ditulis (110,101
2
). Juga diperlihatkan
pangkat dan nilai dari setiap posisi digit. Untuk mengubah bilangan biner ke desimal,
tambahkan nilai dari setiap digit untuk membentuk bilangan desimal.
Pangkat
2
2
2
1
2
0
2
1
2
2
2
3

Bobot 4 2 1 0,5 0,25 0,125
Bilangan 1 1 0 1 0 1
Nilai
Numerik
4 2 0 0,5 0 0,125




5
Dengan jumlah nilai numerik sebesar 6,625. Konversi dari desimal ke sistem bilangan lain
lebih sulit diselesaikan dibandingkan dengan konversi ke desimal. Untuk mengkonversi
bilangan bulat ke sistem bilangan lain, bagilah dengan radiks dan simpan sisanya sebagai
digit penting dari hasilnya. Adapun langkahnya sebagai berikut:
1. Bagi bilangan desimal dengan radiks (bilangan radiks),
2. Simpan sisanya (sisa pertama akan menjadi digit terakhir dari hasil konversi,
3. Ulangi langkah 1 dan 2 sampai bilangan desimalnya menjadi nol.
Contoh 2 : 10 : 2 = 5 sisa 0
5 : 2 = 2 sisa 1
2 : 2 = 1 sisa 0
1 : 2 = 0 sisa 1 hasil 1010
3) Heksadesimal Kode-Biner
Binary-coded hexadecimal (BCH) digunakan untuk menampilkan data hexadesimal
dalam kode biner. Bilangan BCH adalah bilangan heksadesimal yang ditulis sedemikian rupa
sehingga setiap digit ditampilkan oleh 4-bit bilangan biner. Nilai digit BCH ada di Tabel 3
dibawah ini:
Tabel 3 Kode BCH
Digit Hexadesimal Kode BCH
0 0000
1 0001
2 0010
3 0011
4 0100
... ...
9 1001
A 1010
B 1011
C 1100
D 1101



6
E 1110
F 1111

Contoh 3 : 2AC = 0010 1010 1100
4) Binary Coded Decimal (BCD)
Informasi BCD disimpan dalam bentuk packed atau unpacked. Data BCD packed
disimpan dalam bentuk dua digit per byte, sedangkan data BCD unpacked disimpan 1
digit per byte. Rentang digit BCD antara 00002 10012, atau desimal 0 9, BCD unpacked
sering digunakan oleh keypad atau keyboard, sedangkan BCD packed digunakan untuk
beberapa instruksi termasuk dalam penjumlahan dan pengurangan BCD dalam kumpulan
intruksi MP. Tabel 4 memperlihatkan data BCD packed dan unpacked. Dalam semua kasus,
konvensi penyimpanan data LSB (Least Significant Bit, yaitu bit yang paling tidak significant)
dipatuhi. Artinya bahwa untuk menyimpan bilangan 83 kedalam memori, pertama kali 3
disimpan, baru kemudian diikuti dengan 8. Juga diingat bahwa pada data BCD packed, huruf
H (heksadesimal) mengikuti bilangan untuk menjamin bahwa assembler menyimpan nilai
BCD dan bukannya nilai desimal pada data BCD packed. Perhatikan bagaimana bilangan
disimpan dalam memori sebagai unpacked, satu digit perbyte, atau packed sebagai dua digit
perbyte.
Table 4 Data BCD packed dan unpacked

5) Data ukuran Byte
Data ukuran byte disimpan dalam bentuk unsigned dan signed integer (bilangan
bulat tak bertanda dan bertanda). Gambar 2 mengilustrasikan bentuk tersebut. Perbedaan
dalam bentuk ini adalah bobot dari bit posisi paling kiri. Untuk unsigned integer nilainya 128
dan untuk signed integer nilainya -128. Dalam format signed, bit yang paling kiri adalah bit
tanda bilangan. Kisaran dari unsigned integer adalah 00H FHH (0 255). Signed Integer
Desimal Packed Unpacked
12 0001 0010 0000 0001 0000 0010
623 0000 0110 0010 0011 0000 0110 0000 0010 0000 0011
910 0000 1001 0001 0000 0000 1001 0000 0001 0000 0000



7
berkisar dari -128 ke 0 dan dari 0 ke + 127. Bilangan negatif akan disajikan dlam bentuk
seperti ini, tapi disimpan dalam bentuk komplemen dua. Metode untuk mengevaluasi
bilangan bertanda (signed number), adalah dengan menggunakan bobot dari setiap posisi
bit, ini lebih mudah dibanding dengan menggunakan metode komplemen. Hal ini khususnya
berlaku dalam desain kalkulator untuk pemograman. Kapan pun bilangan akan
dikomplemenkan, tandanya akan berubah dari negatif ke positif. Contohnya bilangan
00001000 adalah +8, nilai negatifnya -8 didapat dari komplemen dua dari +8. Komplemen
satu ini didapat dengan menginversikan setiap posisi bit dari nol menjadi satu, dan dari satu
menjadi nol. Setelah komplemen satu terbentuk, komplemen dua didapat dengan
menambahkan satu dengan +1. Contoh 4 memperlihatkan bagaimana bilangan
dikomplemenduakan menggunakan teknik ini:
Contoh 4: +8 = 00001000
11110111 (komplemen 1)
+ 1
-8 = 11111000




8
PERTEMUAN KE 4
BAGIAN & CARA KERJA MIKROPROSESSOR

a. Arsitektur Internal MP
Konfigurasi internal MP harus diketahui sebelum membuat program. Nantinya akan
dijelaskan dengan rinci fungsi dan maksud setiap register register internal. Model
pemograman 8086 sampai Pentium II termasuk Visible Program karena register
registernya digunakan selama pemograman aplikasi dan ditentukan oleh instruksi. Register
lainnya merupakan invisible program karena register register itu tidak mampu dialamati
selama pemograman aplikasi, namun dapat digunakan tak langsung selama pemograman
sistem.
Nama 32 bit Nama 8 bit & 16 bit
EAX AH AX AL Akumulator
EBX BH BX BL Base Index
ECX CH CX CL Count
EDX DH DX DL Data
ESP SP Stack Pointer
EBP BP Base Pointer
EDI DI Destination Index
ESI SI Source Index

EIP IP Instruction Pointer
EFLAGS FLAGS Flag

CS Kode
DS Data
ES Ekstra
SS Stack
FS
GS

Gambar 2 Model Pemograman MP Intel 8086 sampai Pentium II



9

Gambar 2 memperlihatkan model pemograman MP 8086 sampai Pentium II . 8086, 8088
dan 80826 sebelumnya berisi arsitektur internal 16 bit, subset dari register yang
diperlihatkan Gambar 2. MP 80386, 80486, Pentium, Pentium Pro dan Pentium II terdiri dari
arsitektur internal 32 bit penuh. Arsitektur 8086 sampai 80286 sepenuhnya kompatibel ke
atas dengan 80386 sampai Pentium II. Area yang diarsir dalam ilustrasi ini mewakili register
register yang tidak tersedia pada MP 8086, 8088, atau 80286; dan merupakan perbaikan
perbaikan yang akan ditemukan pada MP 80386, 80486, Pentium, Pentium Pro, dan
Pentium II.
Ada beberapa register yang tergolong general purpose atau multipurpose,
sedangkan yang lain mempunyai kegunaan yang khusus. Yang termasuk register register
multiguna antara lain EAX, EBX, ECX, EDX, EBP, EDI dan ESI. Register register ini mampu
menyimpan data berbagai ukuran (byte, word, atau doubleword) dan hampir bisa
digunakan untuk semua tujuan, seperti tertulis di program.
1) Register register Multiguna
EAX (Akumulator) dirujuk sebagai register 32 bit (EAX), sebagai register 16 bit
(AX), atau 2 register 8 bit (AH dan AL). Akumulator digunakan untuk instruksi instruksi
perkalian, pembagian dan beberapa instruksi penyesuaian. Dalam MP 80386 keatas,
register EAX juga dapat menyimpan alamat offset sebuah lokasi dalam sistem memori.
EBX (Base Index) dapat diamati sebagai EBX, BX, BH, BL. Register BX dapat
menyimpan alamat offset sebuah lokasi memori dalam sistem memori semua versi MP.
Dalam MP 80386 ke atas, EBX juga dapat mengalamati data memori.
ECX (Count) ECX merupakan register serbaguna yang digunakan instruksi
perhitungan. Dalam MP 80386 ke atas, register ECX dapat juga menyimpan alamat offset
data memori. Instruksi insruksi yang menggunakan penghitungan merupakan instruksi
string yang diulang (REP/REPE/REPNE); dan instruksi pergeseran, perputaran, dan instruksi
LOOP/ LOOPD. Instruksi pergeseran dan perputaran menggunakan CL, instruksi string
berulang memakai CX, dan instruksi LOOP/LOOPD menggunakan CX atau ECX.



10
EAX (Data) merupakan register serbaguna yang dapat digunakan untuk
menyimpan hasil perkalian dan menyimpan sisa dalam pembagian. Dalam MP 80386 ke
atas, register ini juga mampu mengalamati data memori.
EBP (Base Pointer) menunjuk sebuah lokasi memori yang dalam semua versi MP
digunakan untuk mentransfer data memori. Register ini diamati sebagai EBP dan BP.
EDI (Destination index) EDI sering mengalamati data tujuan string untuk beberapa
instruksi string. EDI juga berfungsi sebagai register serbaguna 32 bit (EDI) atau 16 bit (DI)
ESI (Source Index) ESI digunakan sebagai ESI atau SI. Register Indeks sumber sering
mengalamati sumber data string untuk beberapa instruksi string. Seperti EDI, ESI juga
berfungsi sebagai register serbaguna. Sebagai register 16 bit dialamati sebagai SI; sebagai
register 32 bit dialamati sebagai ESI.

31 21 20 19 18 17 16 14 13 12 11 10 9 8 7 6 4 2 0
ID VIP VIF AC VM RF NT IOP
1
IOP
0
O D I T S Z A P C

8086/8088/80186/80
188



80286




80386/8986DX



80486 SX



Pentium /Pentium II


Gambar 3 EFLAG dan FLAG count register untuk seluruh kerabat MP 80X86 dan Pentium



11
EFLAGS menunjukkan kondisi MP dan mengontrol operasinya.
2) Register untuk tujuan khusus
EIP (Instruction Pointer) EIP mengalamati instruksi selanjutnya dalam sebuah
bagian memori yang didefenisikan sebagai segmen kode. Register ini merupakan IP (16
bit) ketika MP dioperasikan dalam mode real namun menjadi EIP (32 bit) bila MP 80386
keatas dioperasikan dalam mode terlindung. Penunjuk instruksi, yang menunjuk ke instruksi
selanjutnya dalam satu program, digunakan oleh MP untuk mendapatkan instruksi
berurutan berikutnya dalam satu program yang lokasinya terletak dalam segmen kode.
Penunjuk instruksi dapat dimodifikasi dengan instruksi jump atau call.
ESP (Stack Pointer) ESP mengalamati sebuah lokasi memori yang disebut stack.
Memori stack menyimpan data melalui penunjuk ini dan akan dijelaskan dengan instruksi
yang mengalamati data stack. Register disebut SP jika digunakan sebagai register 16 bit
dan disebut register ESP jika digunakan sebagai register 32 bit.Gambar 3 memperlihatkan
register register flag semua versi MP. Register FLAG ( 16 bit) terdapat dalam MP 8086
80286 dan register EFLAG (32 bit) yaitu extended FLAG terdapat dalam MP 80386 ke atas.
C (Carry) Carry menyimpan carry setelah penambahan, atau borrow setelah
pengurangan. Flag carry juga menunjukkan kondisi error seperti yang diperintahkan oleh
program dan prosedur. Hal ini sangat benar bagi fungsi panggil DOS yang akan diuraikan
lebih rinci pada bab bab selanjutnya.
P (Paritas) Paritas merupakan 0 logika untuk paritas ganjil dan 1 logika untuk
paritas genap. Paritas adalah jumlah angka satu dalam bilangan yang mnyatakan genap atau
ganjil. Jika sebuah bilangan terdiri dari 3 bilangan biner bit satu, maka termasuk paritas
ganjil. Jika terdiri dari nol bit satu, maka termasuk paritas genap. Flag paritas jarang
ditemukan dalam aplikasi pemograman modern dan telah diimplementasikan dalam MP
Intel generasi pertama untuk mengecek data dalam komunikasi data.
A (auxiliary carry) carry tambahan menampung carry setengah penambahan
setelah penambahan, atau borrow setelah pengurangan antar posisi bit 3 dan 4. Flag bit
khusus ini diuji oleh instruksi DAA dan DAS untuk menyesuaikan nilai AL setelah
penambahan dan pengurangan suatu BCD.



12
Z (Zero) Flag nol menunjukkan bahwa jumlah dari suatu operasi aritmatika atau
logik adalah nol. Jika Z = 1, jumlahnya adalah nol, jika Z = 0 maka jumlahnya adalah bukan
nol.
S (Sign) Flag Tanda akan menampung tanda aritmatika dari hasil setelah instruksi
aritmatika atau instruksi logik dieksekusi. Jika S = 1, tanda bit negatif, jika S = 0, tanda bit
positif.
T (trap) - Flag trap memungkinkan trapping melalui suatu chip debugging. (Suatu
program didebug untuk mencari error atau bug). Jika Flag T enabel (=1), MP akan
menghentikan alur program pada keadaan yang diindikasikan oleh register debug dan
register kontrol. Jika flag T-nya nol logik, fitur trappingnya adalah disabel. Program
Codeview apat menggunakan fitur trap dan register debug untuk mendebug kesalahan
software.
I (intterupt) Flag interrupt ini mengendalikan operasi dari pin input INTR (interrupt
request). Jika I = 1 pin INTRnya enabel; jika I = 0 pin INTRnya disable. Kondisi dari bit FLAG
dikontrol oleh instruksi STI (set I flag) dan CLI (clear I Flag).
D (direction) Flag arah ini memilih salah satu dari mode penambahan atau
pengurangan untuk register DI dan/atau register SI selama instruksi string. Jika D = 1,
register secara otomatis akan ditambah. Flag D diset dengan instruksi STD (set direction)
dan di clear dengan instruksi CLD (clear direction).
O (Overflow) terjadi ketika bilangan bertanda tambah atau dikurang. Suatu
overflow menunjukkan hasilnya melebihi kapasitas mesinnya. Contoh jika 7FH (+127)
ditambah, dengan menggunakan penambahan 8 bit, pada 01H (+1) hasilnya adalah 80H(-
128). Hasil ini menunjukkan suatu kondisi overflow yang ditunjukkan oleh flag overflow
untuk penambahan bertanda. Untuk operasi tak bertanda, flag overflow diabaikan.
IOPL (I/O Previlege Level) digunakan untuk operasi mode terlindung untuk memilih
tingkatan operasi istimewa untuk piranti I/O. Jika arus tingkatan istimewa lebih tinggi atau
lebih menjamin daripada IOPL, eksekusi I/O berjalan tanpa gangguan. Jika IOPL lebih rendah
dari tingkatan istimewa sekarang, terjadi suatu interrupt yang menyebabkan eksekusi
tertunda. Perlu diperhatikan bahwa IOPL 00 paling tinggi atau paling menjamin, sedangkan
IOPL 11 adalah yang paling rendah atau paling tak percaya.



13
NT (Nested Task) Flag NT menandakan bahwa task yang sedang dilaksanakan
bersarang pada task yang lain dalam operasi mode terlindung. Flag ini di set ketika task
dinest oleh perangkat lunak.
RF (Resume) Flag Resume digunakan bersama debugging untuk mengontrol
kelanjutan eksekusi setelah instruksi berikutnya.
VM (Virtual Mode) Bit flag VM memilih operasi mode virtual dalam suatu sistem
mode terlindung.
AC (Alignment Check) Bit flag AC aktif jika suatu word atau double word
dialamatkan pada batas suatu nonword atau nondoubleword.. Hanya MP 80486SX berisi bit
AC yang umum digunakan oleh kompresor numerik 80487SX pendampingnya untuk
sinkronisasi.
VIF (Virtual inteeruot Flag) VIF adalah suatu salinan bit flag interrupt yang digunakan
pada prosessor Pentium atau Pentium Pro.
VIP ( Virtual Interrupt Pending) VIP menyediakan informasi tentang suatu interrupt
mode virtual untuk MP Pentium pentium II. Ini digunakan dalam pemakaian multitasking
untuk memberikan Flag virtual interrupt dan informasi pending interrupt pada sistem
operasi.
ID (Identification) Flag ID menunjukkan MP Pentium pentium II mendukung
instruksi CPUID. Instruksi CPUID memberikan informasi tentang MP, sesuai dengan versi dan
nomor seri pabriknya, pada sistem.
3) Register Segmen
CS (Code) Segmen kode adalah suatu bagian dari memori yang memuat kode
(Program dan prosedur) yang digunakan oleh MP. Register CS mendefenisikan alamat awal
dari bagian kode pemuatan memori.
DS (data) Segmen data adalah bagian dari memori yang berisi sebagian besar data
yang digunakan oleh program. Data diakses dalam segmen data oleh alamat offset atau isi
dari register lain yang mempunyai alamat offset.
ES (ekstra) Segmen ekstra adalah suatu penambahan segman data yang digunakan
oleh beberapa instruksi string untuk menyimpan data tujuan.



14
SS (Stack) Segmen stack mendefenisikan area memori yang digunakan dalam stack.
Posisi dari arus masuk dalam segmen stack dibatasi oleh register penunjuk stack.
FS dan GS Segmen FS dan GS adalah register segmen tambahan yang tersedia pada
MP 80386, 80486, Pentium dan Pentium Pro, yang memungkinkan dua segmen memori
tambahan diakses oleh pemograman yang dijalankan.
b. Pengalamatan Memori Mode Real
Operasi mode real mengijinkan penempatan ruang memori hanya pada 1 M byte
pertama atau memori konvensional, bahkan pada MP Pentium II. Perhatikan bahwa 1 M
byte pertama dari memori disebut juga sistem memori real atau memori konvensional.
Sistem operasi DOS menghendaki MP beroperasi pada mode real. Operasi mode real
memungkinkan perangkat lunak aplikasi yang ditulis untuk MP 8086/8088 yang hanya berisi
1 Mbyte, untuk difungsikan pada 80826 dan diatasnya tanpa mengubah perangkat
lunaknya. Dalam semua kasus, masing masing MP ini mengawali operasinya pada mode
real pada saat pertama power diaktifkan, atau MP direset.
1) Segmen dan Offset
Kombinasi dari suatu alamat segmen dan alamat offset mengakses lokasi memori
pada mode real. Semua alamat memori mode real terdiri dari alamat segmen dan alamat
offset. Alamat segmen berada dalam satu register segmen, menetapkan alamat awal dari
segmen memori 64kByte. Alamat offset memilih sembarang lokasi yang memiliki segmen 64
kByte itu. Gambar 4 memperlihatkan bagaimana skema pengalamatan segmen dan offset
dalam memilih lokasi memori. Gambaran ini memperlihatkan suatu segmen memori yang
berawal pada lokasi 10000H dan berakhir pada lokasi 1FFFFH dengan panjang 64 K; juga
memperlihatkan alamat offset, yang kadang kadang disebut displacement, F000H memilih
lokasi 1F000H dalam sistem memori. Perhatikan bahwa offset atau diplacement merupakan
jarak diatas awal segmen, seperti yang ditunjukkan Gambar 4.
Register segmen yang ditunjukkan dalam Gambar 4 berisi suatu alamat 1000H,
tetapi alamat ini memiliki segmen awal pada lokasi 10000H. Dalam mode real , masing
masing register segmen diberi tanda dengan 0H bagian akhir sebelah kanan. Ini membentuk
suatu alamat memori 20 bit, mengijinkannya untuk mengakses awal segmen. MP harus



15
menghasilkan alamat memori 20 bit untuk mengakses sebuah lokasi dalam memori 1 M
pertama.

Gambar 4 Skema Pengalamatan memori Mode Real, menggunakan
alamat segmen ditambah suatu offset.

Contohnya jika suatu register segmen berisi 1200H, berarti segmen memori 64 kB
berawal pada lokasi 12000H. Sama halnya jika register segmen berisi 1210H, berarti segmen
memorinya akan berawal pada lokasi 12010H. Karena ditambahkan dengan 0H, segmen
mode real hanya dapat bermula pada batasan 16 Byte dalam sistem memori. Batasan 16
byte ini sering disebut paragraf.
Karena suatu segmen mode real dari memori panjangnya 64 K, maka begitu alamat
awalnya akan diketahui begitu juga dengan alamat akhirnya dengan menambahkan FFFFH.
Sebagai contoh jika register berisi 3000H, alamat pertama dari segmen adalah 30000H dan
alamat akhirnya 30000H + FFFFH atau 3FFFFH. Tabel 5 memperlihatkan beberapa contoh
dari register segmen yang berawal dan berakhir pada alamat segman memori yang dipilih
oleh masing masing alamat segmen. Alamat offset ditambahkan pada awal segmen untuk
mengalamati memori dalam segmen memori. Sebagai contoh, jika alamat segmennya
adalah 1000H dan alamat offsetnya adalah 2000H, MP mengalamati lokasi memori ini
1 F F F F
1 F 0 0 0
F F F F F
Segmen 64
Kbyte
1 0 0 0

0 0 0 0
1 0 0 0
Offset = F 0 0 0
Memori Mode Real



16
12000H. Alamat segmen dan offsetnya kadang kadang ditulis sebagai 1000:2000 untuk
alamat segmen dari 1000 H dengan alamat offset 2000H.
Dalam MP 80286 (dalam rangkaian eksternal khusus) dan 80386 sampai Pentium II,
memori ekstra 64 K kurang 16 byte dari memori dapat digunakan dalam pengalamatan
manakala alamat segmennya adalah FFFFH dan driver Hymem.sys diinstal di sistem.

Table 5 Contoh alamat alamat segmen
Register Segmen Alamat Awal Alamat Akhir
2000H 20000H 2FFFFH
2001H 20010H 3000FH
2100H 21000H 30FFFH
AB00H AB000H BAFFFH
1234H 12340H 2233FH

Area memorinya (0FFFF0H 10FFEFH) dirujuk sebagai high memori. Ketika suatu
alamat dibangkitkan menggunakan suatu alamat segmen pada FFFFH. Ketika suatu alamat
dibangkitkan menggunakan suatu alamat segmen pada FFFFH, alamat pin A20 adalah
enable (jika fasilitas ini ada) ketika suatu offset ditambahkan. Contohnya, jika alamat
segmennya adalah FFFFH dan alamat offsetnya adalah 4000H, lokasi alamat memori mesin
adalah FFFF0H + 4000H atau 103FF0H. Perhatikan bahwa garis alamat A20 adalah satu
dialamat 103FFOH. Jika A20 tidak didukung, alamatnya beralih pada 03FF0H karena A20
mengandung suatu logika nol.

2) Segmen Default dan Register Offset
MP mempunyai sekumpulan aturan dalam menggunakan segmen ketika memori
dialamatkan. Aturan aturan ini digunakan untuk mode real atau mode protected. Sebagai
contoh register segmen kode CS selalu digunakan dengan instruksi penunjuk (pointer) untuk
mengalamatkan intruksi berikutnya dalam sebuah program. Kombinasinya adalah CS:IP atau
CS:EIP, tergantung pada mode operasi dari MP. Register segmen kode mendefenisikan awal
segmen kode dan penunjuk instruksi berikutnya dalam segmen kode. Kombinasi ini (CS : IP
atau CS : EIP) menempatkan instruksi berikutnya yang dieksekusi oleh MP. Sebagai contoh,



17
jika CS = 1400H dan IP/EIP = 1200H, mikroprosessor mengambil instruksi berikutnya dari
lokasi memori 14000H + 1200H atau 15200H.
Kombinasi default yang lain adalah stack, data stack direferensikan sepanjang
segmen stack pada lokasi memori yang ditunjukkan oleh stack pointer (SP/ESP) atau base
pointer (BP/EBP). Kombinasi ini mengacu pada SS:SP (SS:ESP) atau SS:BP (SS:EBP).
Contohnya, jika SS = 2000H dan BP = 3000H, MP mengalamati lokasi memori 23000H untuk
lokasi memori segmen stack. Default lainnya dapat ditunjukkan pada Tabel 6 untuk
pengalamatan memori yang digunakan dalam MP Intel dengan register 16 bit. Tabel 6
menunjukkan asumsi default dalam 80386 ke atas ketika menggunakan register 32 bit. Catat
bahwa MP 80386 atau diatasnya memiliki jumlah pilihan kombinasi alamat segmen/offset
yang jauh lebih banyak ketimbang yang dimiliki MP 8086 sampai 80286.

Table 6 Kombinasi alamat segmen dan offset 32 bit pada MP 80386, 80486, Pentium,
Pentium Pro dan Pentium II
Segmen Offset Tujuan Spesial
CS EIP Alamat Instruksi
DS EAX, EBX, ECX, EDX, ESI, EDI,
bilangan 8 bit atau 32 bit.
Alamat Data
ES EDI untuk instruksi string Alamat Data
FS Tanpa Default Alamat Umum
GS Tanpa Default Alamat Umum



18
PERTEMUAN KE 5
BAGIAN & CARA KERJA MIKROPROSESSOR

a. Pengenalan Pengalamatan Memori Mode Protected (Terlindung).
Pengalamatan memori mode terlindung memungkinkan pengaksesan data dan program
yang terletak diatas 1Mb pertama dari memori maupun memori 1 Mb pertama. Salah satu
perbedaan adalah alamat segmen, yag didiskusikan pada pengalamatan memori mode real,
tidak lagi pada mode protected. Sebagai ganti alamat segmen tersebut register tersebut
berisi selektor yang digunakan untuk memilih deskriptor deskriptor pada tabel
pendeskripsi.
Pendeskripsi menggambarkan lokasi segmen memori, panjang, dan hak akses. Karena
register segmen dan alamat offset masih mangakses memori, maka instruksi pada mode
terlindung identik pada mode real.
1) Selektor dan Deskriptor (Pendeskripsi)
Selektor terletak dalam register segmen dan digunakan untuk memilih salah satu dari
8192 pendeskripsi dari salah satu dari dua tabel pendeskripsi. Pendeskripsi menggambarkan
lokasi, panjang dan hak akses dari segmen memori. Secara tidak langsung register segmen
digunakan untuk memilih segmen memori, tetapi secara tidak langsung seperti dalam mode
real. Contoh dalam mode real , jika CS = 0008H, maka segmen kode akan dimulai pada
lokasi 00080H, sedangkan pada mode terlindung angka segmen dapat mengalamati
beberapa lokasi memori sistem segmen kode.
Pendeskripsi global berisi batas segmen yang digunakan untuk semua program,
sedangkan pendeskripsi lokal biasanya digunakan untuk program program unik. Anda
mungkin menyebut pendeskripsi global sebagai pendeskripsi sistem, dan menyebut
pendeskripsi lokal sebagai pendeskripsi aplikasi.Gambar 5 menunjukkan format dari
pendeskripsi untuk 80826 sampai Pentium II. Cata bahwa masing masing pendiskripsi
mempunyai panjang 8 byte, sehingga panjang lokal atau global masing masing mempunyai
panjang maksimum 64 Kbyte. Bagian base address (alamat basis) dari pendeskripsi
menunjukan lokasi awal dari segmen memori. MP 80286 mempunyai alamat basis 24 bit,



19
sehingga segmen dimulai pada beberapa lokasi dalam 16 M byte memori. Perhatikan bahwa
batasan paragraf dihilangkan pada MP ini pada saat bekerja dalam mode terlindung.
Pendiskripsi 80286
7 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
6
5 Hak Akses Basis (B23
B16)
4
3 Basis (B15 B0) 2
1 Batas (L15 L0) 0

Pendeskripsi 80386/80486/Pentium/Pentium Pro/Pentium II
7 Basis
(B31
B24)
G D 0
A
V
Batas
(L19
L16
6
5 Hak
Akses
Basis (B23 B16)
4
3 Basis (B15 B0) 2
1 Batas (L15 L0) 0
Gambar 5 Format pendeskripsi untuk Mikroprosessor
80826 dan 80386/80486/Pentium/Pentium Pro/Pentium II

Bagian Base Address dari pendeskripsi menunjukkan lokasi awal dari segmen
memori. MP 80286 mempunyai alamat basis 24-bit, sehingga segmen dimulai pada
beberapa lokasi dalam 16M byte memori. Batasan (limit) segmen berisi alamat offset
terakhir yang terdapat dalam segmen. Sebagai contoh, jika segmen dimulai pada lokasi
memori F00000H dan diakhiri pada lokasi memori F000FFH, maka alamat basisnya adalah
F00000H, dan limitnya adalah FFH. Untuk MP 80286, alamat basisnya adalah F00000H dan
limitnya adalah 00FFH. Untuk 80386 ke atas alamat basisnya adalah 00F00000H dan
limitnya adalah 000FFH.



20
Kelebihan lain yang dapat ditemukan dalam pendeskripsi 80386 sampai Pentium II,
yang ditemukan pada pendeskripsi 80826 adalah bit G atau granularity bit. Jika G = 0, batas
segmen dispesifikasi 00000H sampai FFFFFH. Jika G = 1, maka nilai limit segmen dikalikan 4K
byte (dilampirkan dengan XXXH). Limitnya kemudian adalah 00000XH sampai FFFFFXXXH,
jika G = 1. Hal itu menyebabkan panjang segmen 4 K sampai 4G dalam kelipatan 4K byte.
Alasan bahwa panjang segmen pada 80286 adalah 64 Kbyte adalah karena alamat offset
selalu 16 bit, yang disebabkan rancangan internalnya yang 16 bit.

2) Register Tak Terlihat Program (Program Invisible Registers)
Tabel pendeskripsi lokal dan global dapat ditemukan dalam sistem memori. Setiap
register segmen berisikan bagian tak terlihat program yang digunakan dalam mode
terlindung. Porsi tak terlihat dari register ini sering disebut memori cache karena cache
merupakan memori apapun yang menyimpan informasi. Cache ini tidak boleh dikelirukan
dengan cache penampungan tingkat 1 dan tingkat 2 yang ditemukan pada MP. Porsi takl
terlihat program dari register segmen diisi dengan alamat basis, limit dan hak akses setiap
saat angka dalam register segmen berubah. Ketika nomor segmen baru ditempatkan
didalam register segmen, MP mengakses tabel pendeskripsi dan mengisi pendeskripsi ke
dalam cache tak terlihat program dari register segmen.
GDTR (global descriptor table register) dan IDTR (interrupt descriptor table register)
berisikan alamat basis dari tabel pendeskripsi dan batasannya. Batas setiap pendeskripsi
adalah 16 bit karena panjang tabel maksimum adalah 64 Kbyte ketika operasi mode
terlindung diinginkan, alamat dari pendeskripsi global dan limitnya diisi kedalam GDTR.
Sebelum memakai mode terlindung, tabel pendeskripsi interrupt dan IDTR juga harus
diinisialisasi. Rincian mengenai operasi mode terlindung dibahas kemudian pada bab ini.
Untuk saat ini, pemrograman dan penambahan pendeskripsi untuk register ini adalah
mustahil. LDTR (local descriptor table register) diisi dengan selektor, seperti halnya register
segmen diisi dengan selektor. Task register (TR) menampung sebuah selektor yang
mengakses sebuah pendeskripsi yang menentukan tugas (task).





21
Register Segmen
CS
DS
ES
SS
FS
GS
Cache Pendeskripsi
Alamat Basis Batas Akses






TR Alamat Basis Batas Akses
LDTR

Alamat Tabel Pendeskripsi
GDTR Alamat basis Batas
IDTR

Tak terlihat program
Gambar 6 Register Tak terlihat Program pada
MP 80286, 80386, 80486, Pentium, Pentium II, dan Pentium Pro

d. Paging Memori
Mekanisme Paging memori yang ada dalam MP 80386 dan versi di atasnya
mengijinkan setiap lokasi memori secara fisik ditunjukkan ke setiap alamat linear. Alamat
linear didefenisikan sebagai alamat yang dibangkitkan oleh sebuah program. Dengan Modul



22
Paging memori, alamat linear ditranslasikan secara semu kedalam setiap alamat fisik, yang
mengijinkan sebuah aplikasi yang ditulis kefungsi alamat khusus dilokasikan kembali melalui
mekanisme paging. Modul ini juga mengijinkan memori ditempatkan ke dalam area dimana
tidak ada memori, misalnya pada blok 4 K, ke emori sistem antara video BIOS dan ROM BIOS
sistem pada blok memori atas. Tanpa mekanisme paging, penggunaanarea memori ini tidak
dimungkinkan.
1) Register Paging
Modul Paging dikendalikan oleh isi dari register kontrol MP. Lihat gambar 7 untuk isi
register kontrol CR0 sampai CR3. Ingat bahwa register register ini hanya ada pada MP
80386 sampai Pentium. Mulai Pentium, register kontrol tambahan yang diberi nama CR4
mengendalikan ekstensi dengan arsitektur dasar yang disediakan dalam Pentium dan MP
versi diatasnya. Register register yang penting untuk modul paging adalah CR0 dan CR3.
Posisi bit paling kiri (PG) dari CR0 memilih paging pada logika 1. Jika bit PG di nol-kan alamat
linear yang dibangkitkan oleh program menjadi alamat fisik yang digunakan untuk
mengakses memori. Jika bit PG di set (1), alamat linear diubah ke alamat fisik melalui
mekanisme paging. Mekanisme paging berfungsi baik dalam mode real maupun mode
terlindung.
2) Direktori Halaman dan Tabel Halaman
Direktori halaman terdiri dari 1024 alamat doubleword yang menempatkan sampai
1024 tabel halaman. Direktori halaman dan setiap tabel halaman panjangnya 4K. Jika
seluruh memori 4G byte dipakai, sistem harus mengalokasikan memori 4K byte pada
direktori halaman, dan 4K dikalikan dengan 1024 atau 4M byte untuk 1024 tabel halaman.
Dengan demikian memori yang diperlukan dapat diperkirakan.
Sistem DOS dan EMM386.EXE menggunakan tabel halaman untuk mendefenisikan
kembali area memori antara lokasi C8000H EFFFFH sebagai blok memori atas. Hal ini
dapat dilakukan dengan repaging memori extended untuk mengisi kembali bagian memori
konvensional ini agar DOS dapat mengakses memori tambahan . Diasumsikan bahwa
program EMM386.EXE mengijinkan akses ke memori extended 16M byte dan memori
konvensional melalui paging dan lokasi C8000H-EFFFFH harus diatur kembali ke lokasi
110000 138000H, dengan area memori lainnya yang diatur ke lokasi normalnya.



23

PERTEMUAN KE 6 & 7
MIKROPROSESSOR 8 BIT

a. Menjelaskan versi MP 8 bit 8008
MP 8088 dapat digambarkan dalam keadaan minimum seperi pada Gambar 7
dibawah ini:


Gambar 7 Konfigurasi Pin pada MP versi 8088 (Adaptasi dari Futurelec.com)

Berikut merupakan fungsi dari kaki kaki MP:
1) AD0 AD7 Bus Alamat /Data
Jalur yang dimultipleks untuk menyalurkan data pada saat ALE aktif (1) atau byte
rendah alamat pada saat ALE tidak aktif (0).
2) A8 - A15 Bus Alamat
Bit bit dimana alamat A8 A15 ada selama siklus bus.



24
3) A19/S6, A18/S5, A17/S4 dan A16/S3 Alamat / Status
Kaki kaki yang dimultipleks yang digunakan untuk bus alamat bit A16 A19
pada saat ALE berlogika 1 dan unttuk sisa siklus bus lainnya digunakan bit bit
status S3 S6. Bit status S6 selalu berlogika 0, bit S5 menandakan kondisi dari bit
flag I dan bit S3 dan S4 menandakan segmen yang diakses selama siklus bus yang
sedang berlangsung.
4) RD Read:
Sinyal kontrol akan berlevel logika 0 pada saat data bus siap menerima data
memori atau I/O.
Tabel 7 Fungsi Status Bit S3 dan S4
S3 S4 Status
0 0 Extra segment
0 1 Stack segment
1 0 Code segment
1 1 Data segment

5) READY Ready
Input ini diperiksa oleh 8088 pada akhir siklus T2. Jika dalam kondisi logika 0,
maka siklus pembacaan atau penulisan data akan diperpanjang sampai input ini
kembali ke logika 1.
6) INTR Interrupt Request:
Satu dari dua kaki yang digunakan untuk meminta interrupt hardware. Jika INTR
diberi level logika 1 pada saat flag 1 set, 8088 masuk ke siklus interrupt
acknowledge (INTA aktif) setelah instruksi yang sedang berlangsung selesai.
7) Test Test:
Kaki yang diperiksa oleh instruksi WAIT. Jika TEST berlogika 0, maka Instruksi
WAIT akan meneruskan ke instruksi selanjutnya, dan jia TEST 1, WAIT akan
menunggu sampai TEST 0
8) NMI Nonmaskable Interrupt:
Input yang mengaktifkan interupsi tipe 2 pada akhir dari instruksi yang sedang
dilaksanakan.



25
9) RESET Reset
Kaki yang jika diberi level logika 1 untuk minimu 4 clock, akan mereset 8088.
Pada saat 8088 reset, 8088 mulai melaksanakan instruksi pada alamat memori
FFFF0H dan menonaktifkan interupsi dengan mereset flag I.
10) CLK Clock:
Sebuah input yang menyediakan pewaktu dasar untuk 8088. Clock ini harus
berduty cycle 33 persen untuk memberi peaktu yang benar ke 8088.
11) Vcc Vcc;
Input tegangan pencatu +5V,
12)GND Ground:
13)MN/MAX Minimum/Maximum Mode:
Pin yang digunakan untuk memilih mode operasi yang minimum jika
dihubungkan ke +5V dan mode maksimum jika dihubungkan ke ground.
14) IO/M Input/ Output atau memori:
Pin yang menunjukkan isi dari bus alamat adalah informasi pengalamatan
memori atau I/O.
15) INTA Interrupt Acknowledge:
Respon untuk INTR. Selama permintaan interupsi, Pin INTA akan berlogika 0 yang
menunjukkan bahwa bus 8088 menunggu vector number.
16) ALE Address Lacth Enable;
Pin yang digunakan untuk menunjukkan bahwa bus alamat berisi alamat memori
atau alamat port I/O.
17) DT/-R-Data Transmitte/-Receive;
Pin yang digunakan untuk mengendalikan arah aliran data yang melewati buffer
data.
18) Pin yang aktif bila bus data yang telah berisi data.

b. Programmable Pheriperal Interface (PPI 8255)
PPI 8255 dari INTEl adalah chip paralel yang sederhana. Keuntungan utamanya
adalah interface yang sederhana dari 8 port 8 bit bidirectional. PPI mengandung register



26
control dan tiga port terpisah yang mampu dialamati, disebut port A, B dan C. Seperti yang
terlihat pada Gambar 8.


Gambar 8 Pin dari 8255 (Adaptasi dari Weblog)

Diakses tidaknya PPI ini ditentukan dari sinyal pada Pin CS dan arah akses sesuai dengan
sinyal RD dan WR. Pin A0 dan A1 menentukan register mana yang dialamati. Tabel 8
menunjukkan bagaimana 4 buah internal register (port) diakses untuk operasi pembacaan
dan penulisan oleh CPU.
Table 8 Tabel kebenaran 8255
A1 A0 RD WR CS Keterangan
0 0 0 1 0 Port A=>data bus
0 1 0 1 0 Port B => data bus
1 0 0 1 0 Port C =>data bus
0 0 1 0 0 Databus => port A
0 1 1 0 0 Databus =>port B
1 0 1 0 0 Databus => port C
1 1 1 0 0 Databus => control
x X X X 1 Databus =>tri state
1 1 0 1 0 Ilegal condition
x X 1 1 0 Databus => tristate




27
Beberapa fungsi PIN 8255


Gambar 9 Diagram Blok 8255

CS : input Low akan mengaktifkan IC sehingga dapat dipakai untuk komunikasi data antar
8255 dan CPU.
RD : (read); Input low akan mengaktifkan IC sehingga dapat mengambil data dan
status dari data luar ke CPU.
WR (write): Input Low akan mengaktifkan IC sehingga dapat mengirim data dan
status dari CPU ke perangkat luar.
A0 dan A1: Pin ini digunakan untuk memilih port yang akan digunakan.
RESET : jika input HIGH, maka IC akan menghapus semua register dan Port A, B, C
dan diset dalam mode Input.



28
Port A, B dan C : IC ini berisi 3 port 8 bit (A, B dan C). Semua port dapat
dikonfigurasikan sesuai dengan karakteristik fungsinya yang ditentukan dari programnya.
Port ini dapat dibagi menjadi 4 bit port tergantung kepada kontrol modenya. Masing
masing 4 bit latch dan dapt digunakan untuk output sinyal dan input sinyal status.
Karena bit bit dalam port C kadang kadang digunakan sebagai bit kontrol, 8255
dirancang sehingga bit bit itu dapat dikeluarkan secara individual menggunakan intruksi
set reset. Ketika PPI menerima satu byte yang diarahkan ke register kontrolnya, PPI akan
memeriksa data 7. Jika berharga 1 maka datanya ditransfer ke register kontrol, tetapi jika 0
datanya diperlakukan sebagai instruksi set reset.
Pengoperasian PPI 8255
1) Mode 0 : Basic Input/Output
Mode ini disebut juga mode simple I/O operation. Pada mode 0 port berfungsi sebagai
masukan atau keluaran tanpa strobe. Bila port A dan B bekerja dalam Mode 0, maka
port C dapat bekerja sebagai port 8 bit dan juga dapat bekerja sebagai port 4 bit secara
terpisah. Bila digunakan sebagai keluaran, port C secara terpisah dapat di SET dan
RESET dengan mengirim sinyal CONTROL WORD tertentu ke alamat register kontrol.
2) Mode 1 : Strobed Input/ Output
Jika diinginkan port A dan B bekerja sebagai masukan dan keluaran strobe, maka port
harus diinisialisasi pada mode 1. pada mode ini beberapa pin dari port C difungsikan
sebagai jalur strobe. PC0, PC1, dan PC2 difungsikan sebagai strobe untuk port B. Jika
pOrt A diinisialisasi sebagai port keluaran handshake, maka PC3, PC6, PC7 berfungsi
sebagai handshake. PC4, PC5 dapat digunakan sebagai jalur masukan atau keluaran.
3) Mode 2: Bi directional Bus
Hanya port A yang dapat diinisialisi pada mode 2. Port A dapat digunakan sebagai
transfer data dua arah. PC3 sampai PC7 digunakan sebagai jalur strobe untuk port A
dan PC0 PC2 dapat digunakan sebagai masukan atau keluaran bila Port B digunakan
dalam mode 0. Bila port B dalam mode 1, maka PC0 PC2 digunakan sebagai strobe
untuk port B.





29
c. Programmable Interval Timer (PIT 8253/8254)
PIT banyak digunakan dalam sistem mikrokomputer karena time delay yang
dihasilkan sangat akurat dan mudah diatur dengan software. Ada dua jenis PIT keluaran
INTEL yaitu 8253 dan 8254.


Gambar 10 PIT 8253

Perbedaan mendasar kedua tipe IC tersebut adalah :
Frekuensi denyut maksimum 8253 adalah 2.6 Mhz sedangkan 8254 adalah
5Mhz untuk 8254-5, 8 Mhz untuk 8254 dan 10 Mhz untuk 8254 -2.
8254 memiliki sarana readback (baca kembali) yang dapat diaplikasikan
dengan 8254 adalah:
Beberapa fungsi timer (waktu) atau counter (cacah) yang dapat diaplikasikan dengan
8254 adalah:
PIN NOMOR PIN TIPE NAMA & FUNGSI
D0 D7 1 8 I/O Data bus 3 state 2 arah yang
dihubungkan ke data bus
CLK0 9 I Input Clock dari counter 0
OUT0 10 O Output dari counter 0
GATE0 11 I Input gate dari counter 0



30
GND 12 Hubungan ke power supply
VCC 24 Power supply +5 volt
WR 23 I Input ini akan low selama CPU
membaca operasi
RD 22 I Input ini akan low selama CPU
membaca operasi
CS 21 I Input LOW dari pin ini
memungkinkan CPU untuk
merespon sinyal RD dan WR
A0, A1 19, 20 I Digunakan untuk memilih
counter dan control word
untuk operasi read / write.
CLK2 18 I Input clock counter 2
OUT 2 17 O Output dari counter 2
GATE 2 16 I Input gate dari counter 2
CLK1 15 I Input clock counter 1
GATE1 14 I Input gate dari counter 1
OUT1 13 O Output dari counter 1

Data Bus Buffer untuk memindahkan data dari sistem atau sebaliknya, PIT
dilengkapi dengan data bus buffer. Data bus buffer ini tri state, bidireksional dan terdiri dari
8 bit.
Data bus mempunyai 3 fungsi dasar:
1. Untuk pemograman mode dari PIT
2. Untuk mengisi harga count register
3. Untuk membaca harga yang sedang dihitung.
Logika Read and Write Logika R/W menerima input dari sistem bus dan berfungsi
untuk mengontrol operasi dari PIT. Blok ini dikontrol oleh pin CS. Beberapa pin yang
dimiliki oleh blok ini adalah:
RD read : Logika 0 pada pin ini digunakan untuk membaca harga
counter
WR write: Logika 0 pada pin ini digunakan untuk mengisi harga
counter.



31
A0, A1: input ini biasanya dihubungkan dengan address bus. Pin ini
berfungsi untuk memilih satu dari ketiga counter untuk dioperasikan
dan memberi address pada control word register untuk memilih mode.
CS (Chip Select)
Control Word Register : Control Word Register dipilih pada saat A0 dan A1 bernilai 1
1. Register ini menerima informasi dari data bus buffer dan menyimpannya di
register. Informasi yang disimpan dalam register ini memilih mode tiap counter dan
memilih operasi hitung biner atau desimal. Control word ini hanya dapat ditulis dan
tidak dapat dibaca.
Counter : counter yang digunakan adalah single, 16 bit, pre-settable, down counter.
Setiap counter dari PIT adalah independen dan dapat diprogram secara terpisah.
Sinyal clock sinkron counter ini dapat berfungsi sebagai timer, sedangkan sinyal clock
asinkron counter ini berfungsi sebagai counter biasa. Timer ini akan menghitung
setiap kali terjadi perubahan state dari 0 ke 1. Keistimewaan dari counter ini adalah
harga counter ini dapat dibaca setiap saat tanpa mengganggu kerja counter itu
sendiri.
Mode Operasi PIT :
Mode operasi 0: Interrupt on terminal count
Pada input High sehingga mengenable counter. Kondisi sinyal LOW WR yang
pertama adalah penulisan control word ke control register yang membuat Pin OUT
menjadi High saat clock transisi ke LOW dengan jumlah N + 1. Jika gate dibuat LOW,
maka counter akan tetap pada kondisi hitungan terakhir. Jika jumlah hitungan baru
dimasukkan saat menghitung, ia akan menunggu hitungan pertama sampai habis.
Mode operasi 1: Hardware Retriggerable one shot : Mode ini menggunakan gate
sebagai input trigger. Jika ada trigger, maka pada clock berikutnya dia mulai
menghitung sampai satu (HIGH) dan ke 0 (LOW). Jika gate mentrigger saat
menghitung begitu hitungan ke -1 usai, akan diteruskan dengan hitungan ke 2
dengan hitungan yang sama. Jika menulis LSB kedua pada saat out Low, hitungan
dimuat ke count register, dan OUT menjadi LOW setelah ada pulsa trigger.



32
Mode operasi 2 : Time Interrupt : Pada mode ini OUT HIGH, selama N 1 hitungan
dan hitungan terakhir OUT menjadi LOW. Baru jika Gate LOW saat menghitung,
maka nilai hitungan terakhir akan dipertahankan. Hitungan baru dimuat ke
countersetelah hitungan pertama selesai (LOW).
Mode operasi 3 : Square Wave Mode generator : ada dua kondisi, kondisi pertama
jika count genap, perhitungan berkurang setiap hitungan, naik setiap 2 hitungan.
Kondisi kedua jika countnya ganjil. Naik turunnya setiap 2 hitungan, tetapi untuk
LOW hitungan sampai nol, untuk High sampai 2. Jika gate menjadi LOW saat
menghitung, nilai terakhir dipertahankan.
Mode operasi 4 : Software trigger Strobe. Mode 4 dan 5 hampir sama dengan mode
1. Mode LOW selama N + 1 sesudah WR, sedang mode 4 5 LOW selama i clock
setelah N Clock. Jika gate LOW, maka nilai terakhir dipertahankan. Jika nilai ke 2
dimasukkan pada saat menghitung, nilai pertama diteruskan dengan nilai kedua
menjadi LOW.
Mode operasi 5: Hardware triger Strobe : Mode 5 sama dengan mode 4 dengan
input gate adalah strobe. Jika ada strobe sebelum hitungan selesai, maka hitungan
dimulai dari awal lagi.

d. Programmable Interrupt Controller (PIC 8259)
PIC berfungsi mengatur seluruh sistem interrupt driven. PIC menerima permintaan dari
pheriperal dan menentukan prioritas mana yang tertinggi. PIC 8259 terdiri dari 8 pin input
interrupt request dan dapat di paralel sampai 64 permintaan interupsi.
Cara kerja dari interupsi sistem 8088 jika interrupt flagnya set dan pin INTR
menerima sinyal HIGH adalah sebagai berikut:
1. Push flag flag ke stack, clear TF dan IF
2. Push Address untuk kembali stack
3. data bus dijadikan mode input
4. Mengirimkan pulsa INTA 2 kali
5. tipe interrupsi dari eksternal device di kali 4 untuk memperoleh address pada
interrupt.



33

Gambar 11 Diagram Blok PIC

Dari block diagram 8259, ada block block ISR, IRR, IMR, dan priority resolver.
IRR : menampung kondisi kondisi input
IMR : mengenable input register (mask = 1 = disable)
ISR : menjaga input yang sedang dikerjakan
Priority resolver : menentukan prioritas input.

Inisialisasi 8259
Command word dari 8259 ada 2 yaitu:
1. Initialitation Commannd Word (ICW) yang berungsi untuk menentukan titik
start.
2. Operation Command word (OCW) yang berfungsi untuk menentukan mode
operasi interrupsi.



34
a. Mode OCW adalah : Fully Nested Loop, Special Fully Nested Loop, Non
Spesifik Rotating Mode, Specifik Rotating Mode, Special Mask Mode dan
Polled Mode.
b. Langkah langkah dalam menentukan inisialisasi: menentukan base
address pada memory mapping 8088, Menentukan internal address dari
peralatan, Dijumlahkan untuk memperoleh address di memory map dan
mengirim control worl yang terdiri dari 2 set yaitu ICW dan OCW.
c. Inisialisasi Control Word (ICW): ICW digunakan untuk menyiapkan piranti
ini agar menerima saru interrupt request atau lebih. ICW terdiri dari 4
jenis, yaitu ICW1 dan ICW .
d. Operational Control Word (OCW): terdiri dari 3 jenis yaitu OCW 1 sampai
OCW 3. OCW 1 berfungsi untuk mengatur data yang disimpan dalam IMR
(Interrupt Mask Register) atau yang berfungsi menentukan IRQ# yang
akan kita mask (disable) dan unmask (enable).



35
PERTEMUAN KE 8 & 9
PERENCANAAN HARDWARE

Perencanaan Hardware (PPI + PCI + PIT)
a. Perencanaan Unit Memori dan Peralatan I/O
Dalam merencanakan sistem minimum maka harus dipikirkan komunikasi sistem
internal dan eksternalnya. Dengan adanya sistem bus, maka perlu diperhatikan
pembagian address untuk unit memori dan I/O device. Biasanya digunakan memori map
dan I/O memori.
Dalam merencanakan hardware dari minimum sistem 8088 dibagi menjadi 6 modul
bagian yang terpisah yaitu:
1. Modul sistem minimum berisi
a. MP 8088
b. Buffer 74LS245
c. Latch 74LS373
d. Decoder 74LS138 untuk menghasilkan sinyal control
e. Clock generator
f. Slot expansion
2. Modul memori mengandung
a. RAM 6116
b. EPROM 27128
c. Dekoder 74LS138
3. Aplikasi I/O 1
a. Rangkaian display 10 x 7 segmen untuk tampilan display secara buffer data.
b. Keypad
4. Aplikasi I/O 2
a. Rangkaian untuk pemakaian kontrol ON/OFF atau read/Write ADC.
5. Aplikasi PIC 8259
a. Rangkaian untuk interupsi



36
6. Aplikasi PIT 8253
a. Rangkaian untuk timer.
Mikroprosessor 8088
MP 8088 diset pada mode minimum dengan memberi logika HIGH pada pin 33 dan
logika LOW jika difungsikan dalam mode maksimum. Untuk pengalamatan memori, MP
8088 menyediakan 20 bit address yang 8 diantaranya dimultipleks dengan data yaitu AD0
AD7. Sedangkan A16 A19 dimultipleks dengan sinyal kontrol S3 S6.
Memori
Minimum sistem menggunakan dua buah macam memori yaitu EPROM 27128
berkapasitas 16 Kbytes dan RAM statis 6116 yang berkapasitas 2Kbytes. Karena MP akan
menunjukkan pada alamat FFFF0h maka pada alamat tersebut harus sudah ada intruksi
lompat ke awal program, oleh karena itu EPROM diletakkan pada bagian terakhir memori
sedangkan RAM diletakkan pada bagian awal memori karena untuk penggunaan interrupt,
8088 memakai alamat 00000h -003FFh sebagai tabel vector interrupt.
I/O Port
Untuk peralatan I/O dari minimum sistem digunakan IC Programmable Peripheral
Interface 8255. PPI 8255 merupakan pheriperal interface yang dapat diprogram fungsinya.
PPI ini menjadi dua group group A yang terdiri dari port A dan port C upper, group B yang
terdiri dari port B dan Port C lower. Fungsi masing masing pin adalah sebagai berikut:
Data D0 D7 : merupakan jalur data
Chip select (CS) : untuk mengaktifkan PPI
Read (RD) : untuk mengambil data dari PPI
Write (WR) : untuk mengeluarkan data dari PPI
Address (A0 A1) : untuk menentukan sinyal register dalam 8255
yang akan dibaca atau ditulis
Reset : untuk mereset register PPI
Cara menentukan Alamat Jump reset
Misal ROM yang digunakan 16 kb, maka perhitungannya adalah sebagai berikut:
FFFFF (mP 8088 mampu mengakses 1 MB)
2FFF (Kapasitas ROM)



37
_____ -
FD000 (awal EPROM)

FFFF0 (tempat jump reset pada 8088)
FD000 (awal EPROM)
______-
1FF0 (lokasi jump reset pada EPROM 16 kb)

Kemudian dengan menentukan origin dari software, misal origin 100H:
FE000 : FE00: 0000 (org 0H)
100
______-
FDF00 : FDF0: 0100 (org 100H)

1FF0
100
_____+
20F0 (Lokasi jump reset pada EPROM 16kb org 100H)















38
PERTEMUAN KE 10
ANALOG DIGITAL CONVERTER

1. ADC 174/574/674
AD574 dalah sebuah konverter A/D lengkap yang tidak memerlukan komponen luar
tambahan untuk memberikan fungsi konversi analog ke digital dengan cara successive
approximation. Tegangan referensi internal dibentuk oleh sebuah zner dioda pada 10 volt.
Tegangan referensi ini dikeluarkan dan dapat mencatu sampai 1,5 mA ke sebuah beban luar
sebagai tambahan keperluan akan resistor input referensi (0,5 mA) dan resistor bipolar (1
mA). Semua beban eksternal yang diterapkan ke referensi AD574 harus konstan selama
konversi.
ADC ini adalah ADC 12 bit yang mengkombinasikan:
a. Kecepatan tinggi
b. Konsumsi daya rendah
c. Clock internal
d. Tegangan referensi internal
Waktu konversi maksimum adalah:
a. 8 mikrosekon untuk ADC 174
b. 15 mikrosekon untuk ADC 674
c. 25 mikrosekon untuk ADC 574
Input analog bersifat:
a. unipolar 0 -10 volt dan 0 20 volt
b. bipolar -5 - +5 dan -10 dan +10 volt
c. Aplikasi yang sesuai dengan ADC ini adalah:
a. Pemrosesan sinyal digital
b. Kontrol proses dengan akurasi yang tinggi
c. Data akuisisi yang cepat
d. Sistem elektro mekanik




39
2. Konfigurasi PIN
Konfigurasi PIN ADC 174/574/674

Gambar 12 Konfigurasi Pin ADC174/574/674

3. Digital Interface
AD574 berisi rangkaian logika yang dapat langsung dihubungkan ke sebagian besar
sistem mikroprosessor. Sinyal kontrol CE, CS, R/C mengendalikan. operasi dari konverter.
Keadaan R/-C saat CE dan CS keduanya dimasukkan untuk menentukan apakah data dibaca
(R/C = 1) atau konversi (R/-C=0) akan berlangsung. Input A0 dan 12/8 menentukan lebar
konversi dan format data. A0 biasanya dihubungkan ke LSB dari bus alamat. Jika konversi
dimulai dengan A0 rendah, siklus konversi 12 bit diinialiasasi. Jika tinggi selama start
konversi, akan berlangsung siklus konversi 8 bit. Selama operasi pembacaan data, A0
menentukan bilama buffer 3 state berisi 8 MSB dari hasil konversi (A0 = 0) atau 4 LSB (A0=1)



40
diaktifkan. Pin 12/8 menentukan bagaimana data output diorganisasikan sebagai 2 buah 8
bit (12/8 dihubungkan ke digital common) atau sebuah 12 bit (12/8 dihubungkan ke 5 volt).
Pin 12/8 tidak cocok dengan TTL dan harus dihubungkan langsung ke 5 volt atau ke digital
common.
4. Format Data Output
D7 D6 D5 D4 D3 D2 D1 D0
HIGH BYTE
(A0 = 0)
MSB D10 D9 D8 D7 D6 D5 D4
LOW BYTE
(A0 = 1)
D3 D2 D1 D0 0 0 0 0

5. Timing dan Kontrol
Timing diagram ini digunakan untuk mendesain rangkaian agar ADC dapat berfungsi
sebagaimana mestinya.
a. Timing Start Konversion

Gambar 13 Timing Diagram Start Convertion (adaptasi dari 8051 projects nets)

Sinyal R/-C diberi LOW, kemudian disusul CS LOW. Untuk menandai dimulainya
konversi, maka CE diberi HIGH. Kemudian R/-C an CS HIGH baru CE LOW. Status STS akan
tetap HIGH selama ADC melakukan proses konversi. Timing ini merupakan timing diagram
yang lengkap dan membutuhkan sinyal kontrol 4 buah. Untuk menyederhanakan sinyal
kontrol, maka dibuat versi stand alone seperti Gambar 14 dibawah ini:



41

Gambar 14 Timing Diagram Start Conversion Stand Alone

Timing ini dibuat dengan memastikan sinyal CS LOW dan CE HIGH. Sinyal R/-C diberi HIGH
LOW HIGH. Status STS akan menjadi HIGH selama proses konversi.

b. Timing Read
Sinyal R/-C diberi HIGH kemudian disusul CS LOW. Untuk menandai dimulainya
pengambilan data, maka CE diberi LOW HIGH. Data kita ambil dan CE diberi LOW,
CS HIGH dan R/-C LOW. Seperti halnya timing start convertion, maka timing read
juga disederhanakan dengan memastikan kondisi CE HIGH dan CS LOW.

6. Power Supply ByPassing
Power Supply dari ADC harus difilter, ter-regulasi dan bebas dari frekuensi tinggi
yaitu dengan memberi kapasitor keramik 100N dan kapasitor ELCO 4,7 mikrofarad yang
dipasang paralel.




42
PERTEMUAN KE 11
DIGITAL ANALOG CONVERTER

11.1 DAC0808
DAC0808 adalah Dac 8 bit monolitik yang mampu menghasilkan arus pada skala
penuh dalam waktu 150 ns dengan disipasi daya hanya 33mW dan catu daya 5 V. Tanpa
pengaturan arus referensiseperti yang diperlukan pada sebagian besar aplikasi karena arus
output pada skala penuhnya kurang lebih 1 LSB dari 255 IREF/256. Akurasi relatif lebih baik
daripada 0,19 %, linier dan arus output pada level zero kurang dari 4 mikro amper dapat
memberikan akurasi Iref>=2mA. DAC0808 dapat diinterfacekan langsung dengan IC yang
mempunyai level TTL, DTL atau CMOS. Dan langsung dapat diganti dengan
MC1508/MC1408.
Spesifikasi:
1. Akurasi Relatif : 0,19 % error maksimum
2. Settling time 150 ns
3. Input kompatible dengan TTL dan CMOS
4. Input slew rate 8 mA, mikroSec
5. Range catu daya : 4,5 V sampai 18 Volt
6. Konsumsi daya 30 mW pada catu daya 5V
11.1.1 Fungsi pin DAC0808
Fungsi masing masing pin:
1. Iout : arus output
2. Vref (-) : tegangan referensi negatif
3. Vref (+) : tegangan referensi positif
4. Comp : kompensasi
5. Vee : catu daya negatif
6. Vcc : catu daya positif
7. LSB MSB : data bit input.



43
Rangkaian digital to analog konverter, rangkaian penghasil tegangan DC menggunakan DAC
0808 digambarkan dalam Gambar 16:


Gambar 15 Digital Analog Converter (DAC)
Hal terpenting dalam merencanakan rangkaian ini adalah pemilihan harga resistansi untuk
menentukan besarnya level tegangan yang dihasilkan. Tegangan output DAC dapat dihitung
dengan menggunakan persamaan:
Dimana:
Vo = tegangan output
Vref = tegangan referensi
Ro = resistansi output
Ri = Resistansi input pada kaki 14
A1 = MSB data digital
A8 = LSB data digital
Jadi tegangan output maksimal

+ + + =
256
8
...
4
2
2
1
10
A A A
V Vo




44
Kompensasi dan desain Penguatan Referensi
Amplifier referensi memberikan tegangan pada pin 14 untuk mengubah tegangan
referensi menjadi arus referensi. Arus referensi input I14 harus slalu mengalir pada Pin 14.
Koneksi untuk tegangan positi fseperti gambar 19. Sumber tegangan referensi memberikan
arus penuh I14. Untuk sinyal bipolar R15 dapat dihubungkan ketegangan negatif yang
besarnya sama dengan level input minimum. Jika R15 dihilangkan akan memengaruhi
akurasi dan temperatur drift. Nilai kapasitor kompensasi harus dinaikkan dengan naiknya
R14 agar dapat menjaga fase batas yang sesuai, untuk R14 nilai 1,2 K dan 5K, nilai minimum
kapasitor adalah 37 pF dan 75 pF. Kapasitor dapat dihubungkan ke VEE atau ground. Tetapi
jika menggunakan VEE, maka dapat menaikkan buangan tegangan negatif.
Tegangan referensi negatif dapat digunakan jika R14 di ground dan tegangan referensi
dapat diberikan k R15 seperti gambar 19. Impedansi input yang tinggi adalah keuntungan
dari metode ini. Kompensasi dilakukan dengan memberikan kapasitor terhadap ground
pada pin 16. Tegangan referensi negatif yang diberikan yang diberikan paling tidak 4V diatas
VEE. Sinyal input bipolar dapat diberikan dengan menghubungkan R14 dengan tegangan
referensi positif yang sama dengan level input positif pada pin 15.
Range tegangan output
Tegangan pada pin 4 tidak boleh berada pada range -0.55 sampai 0.4 volt jika VEE = -5 volt.
Tegangan output negatif dari DAC0808 dianjurkan lebih negatif dari 10 volt. Dengan
menggunakan arus skala penuh 1.992 mA dan resistor beban 2K5 antara pin 4 dan ground
akan menghasilkan tegangan output dengan 256 level antara 0 sampai -498 volt. Pin 1jika
dibiarkan tidak akan mempengaruhi kecepatan dan disipasi daya. Besarnya resistor beban
menentukan waktu switch karena naiknya tegangan outputnya. Nilai RL sampai dengan 500
Ohm tidak memengaruhi performansi signifikan, tetapi jika dinaikkan sampai 2K5 akan
menyebabkan settling time lebih jelek dari 1.2 mikrosekon (jika Semua Bit On).








45
PERTEMUAN KE 12 & 13
APLIKASI SISTEM MIKROPROSESSOR

1. Aplikasi I/O
Pada bagian ini, MP board dihubungkan dengan modul Interfacing dimana modul ini
terdiri dari:
a. Modul I/O
b. Modul Display
a. SIPO (Serial Input Paralel Output)
b. PIPO (Paralel Input Paralel Output)
c. LCD (Light Cell Display)
c. Modul Motor Stepper dan Motor DC
Sehingga aplikasi yang digunakan nanti adalah sesuai dengan modul. Selain itu pada MP
board juga terdapat display scanning dan keypad.
1.1 Modul I/O pada Modul Interfacing
Langkah pertama dalam menerapkan teori dalam bab bab di depan adalah membuat
LED berjalan yang dikontrol oleh PPI dengan alamat:
a. 00H untuk port A
b. 01H untuk port B
c. 02H untuk port C
d. 03H untuk control word
Percobaan ke -1: gunakan modul seperti gambar 1.3 dengan langkah langkah berikut:
1. Jumper J1, J2, J3 harus pada posisi Tx (OUT)
2. Semua posisi DIPSWITCH harus OFF
3. Perhatikan format data untuk port A, B dan C output sebagai berikut:
D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 A Cu 0 B 0
1 0 0 0 0 0 0 0

4. Ketik program pada sembarang EDITOR:
5. Kemudian tambahkan program 4 diatas (pada bagian program utama)



46
6. Simpan program dengan nama less1.asm, kemudian compile program dengan
menuliskan A Less 1 pada DOS Prompt. Jika tidak ada kesalahan, maka akan
dihasilkan file baru dengan nama:
a. Less1.obj
b. Less1.map
c. Less1.com
7. Hubungkan board MP dengan modul EPROM EMULATOR dengan meletakkan pada
soket EPROM ( Tanda Merah pada kabel EMULATOR adalah GROUND). Jalankan
eeu.exe dan pilih LOAD, kemudian isilah dengan less1.com. Pilih OPTION dan
ubahlah EPROM menjadi 2764. Jika tidak terjadi kesalahan pilih DOWNLOAD,
kemudian tekan RESET pada board MP.
8. Dengan cara yang sama gantilah data yang sesuai dengan tabel berikut dengan
mengganti nilai data sesuai dengan yang tertera pada tabel putar:
9. Kemudian dengan cara yang sama istilah data, sehingga LED yang menyala sesuai
dengan tabel.

2. Aplikasi Display
2.1.1 Display SIPO ( Serial Input Paralel Output)
Untuk percoban ini, lihat gambar skematik berikut ini:
Port A0 untuk sinyal Clock: 010
Port A1 untuk sinyal data
o 0 segment akan menyala
o 1 segment akan padam
Data di port A1 akan dipindahkan apabila mendapatkan sinyal naik port A0 dari logika 0
ke 1. Display 7 segmen yang digunakan adalah common anoda sehingga segmen akan
menyala apabila diberi data 0. Untuk mempelajari display, ada urutan yang harus diikuti:
Menentukan urutan segmen
Menampilkan angka 0 sampai 9
Menampilkan 3 digit angka sebelah kanan
Menampilkan 4 digit angka sebelah kanan



47

Gambar 17. Aplikasi SIPO (Adaptasi dari

2.1.2 Display PIPO

Gambar 18 Display PIPO



48
PERTEMUAN KE 14, 15 & 16
INTERFACE MIKROPROSESSOR

1. Programmable Peripheral Interface
PPI 8255 dari INTEL adalah chip paralel yang sederhana. Keuntungan utamanya adalah
interface yang sederhana dari 8 port 8 bit bidirectional. PPI mengandung register control
dari tiga port terpisah yang mampu dialamati, disebut port A, B dan C. Diakses tidaknya PPI
ini ditentukan dari sinyal pada pin CS dan arah akses sesuai dengan sinyal RD dan WR. Pin
A0 dan A1 menentukan register mana yang dialamati. Tabel 1.1 menunjukkan bagaimana 4
buah internal register (port) diakses untuk operasi pembacaan dan operasi penulisan oleh
CPU.
2. Data bus buffer
8 bit buffer tristate 2 arah digunakan untuk perantara 8255 dengan sistem data bus.
Data dikirim atau diterima oleh buffer tergantung kepada instruksi input dan output oleh
CPU. Informasi kontrol dan status juga dikirim lewat buffer data bus.
3. Aplikasi dengan PPI untuk motor PC
Tujuan dari aplikasi ini adalah untuk mempelajari cara pengaturan kecepatan motor DC
dengan komputer. Disini pengaturan kecepatan dilakukan dengan mengatur tegangan yang
diberikan kepada motor tersebut. Input tegangan ini dihasilkan oleh modul digital to analog
converter, yang biasanya dapat diatur dari komputer. Dengan demikian kita dapat mengatur
kecepatan motor sesuai dengan yang diinginkan dengan menekan tombol tombol di PC.
Tombol tombol yang digunakan dalam percobaan ini adalah tombol ENTER juga berfungsi
sebagai tombol untuk menghentikannya. Tombol lainnya adalah tombol panah ke atas (UP
Arrow) yang berfungsi untuk mempercapat kecepatan motor. Jika kecepatan sudah
maksimum, maka kecepatan motor tidak akan menambah meskipun tombol UP arrow
ditekan terus. Demikian pula halnya dengan tombol untuk memperlambat kecepatan
motor. Disini digunakan tombol panah ke bawah untuk memperlambat kecepatan motor.






49
Diagram Alir :





















Gambar 18 Diagram alir PPI untuk motor PC
4. Aplikasi PPI untuk sistem kontrol tertutup
Tujuan aplikasi ini adalah untuk memperlajari cara pengaturan tertutup. Disini yang
diatur adalah kecepatan motor DC. Pengaturan kecepatan dilakukan dengan mengatur
tegangan yang diberikan kepada motor tersebut. Input tegangan ini dihasilkan oleh modul
DAC, yang besarnya dapat diatur dari komputer. Sedangkan sebagai elemen umpan baliknya
adalah sebuah sensor optocoupler yang memberikan informasi mengenai perputarandari
motor tersebut. Dengan demikian kita dapat mengatur kecepatan motor sesuai dengan
START
Input
dari PC
Tombol
PC
ENTER
Toggle
Motor
UP
Tambah
Kecepatan
DOWN
Kurangi
Kecepatan
ESC
Motor Mati
END



50
yang diinginkan dengan menekan tombol tombol di PC dan membandingkan hasil
kecepatan yang sebenarnya dengan yang dinginkan.
Tombol yang digunakan dalam percobaan ini adalah tombol ENTER untuk
menghidupkan motor dan bila dalam keadaan hidup, tombol ENTER juga berfungsi sebagai
tombol untuk menghentikannya. Tombol lainnya adalah tombol panah ke atas (UP Arrow)
yang berfungsi untuk mempercepat kecepatan motor. Jika misalnya kecepatan sudah
maksimum, maka kecepatan motor tidak akan bertambah meskipun tombol UP Arrow
ditekan terus.
Diagram alir :




N Y




Enter Up down esc

Kurang Lebih




Sama


Gambar 19 Aplikasi PPI untuk kontrol tertutup

Start
Tombol
PC
Ambil
Speed
Tombol
PC
Inc volt Inc speed
1
1
Baca
Tombol
Toggle motor
Inc speed Dec speed Motor off
1 Stop



51
Demikian pula halnya dengan tombol untuk memperlambat kecepatan motor. Disini
digunakan tombol panah ke bawah (Down Arrow) untuk memperlambat kecepatan motor.
Bagian feedback memberikan informasi apakah kecepatan yang dihasilkan sudah tepat
seperti yang dinginkan atau belum. Bila sudah tepat maka statusnya akan locked, tegangan
DAC sudah terkunci sesuai dengan keinginan. Sedangkan apabila tidak tepat, maka
statusnya adalah running, tegangan berusaha mencari level yang tepat agar kecepatan yang
dihasilkan sesuai dengan keinginan.




52

Daftar Pustaka :
1 Setiawan Rachmad.2005.Mikrokontroller MCS 51.Graha Ilmu.Yogyakarta.
2 Intel.2005.Microprocessor /Application. NY.
3 Soebakti Hendawan.2007.Sistem Mikrokontroller.Politeknik Batam. Batam
4 Setiawan Rachmad.2005.Teknik Interface. Graha Ilmu.Yogyakarta.

Anda mungkin juga menyukai