learning material 1 mikroprosessor

Upload: ary-kassa

Post on 14-Oct-2015

74 views

Category:

Documents


0 download

DESCRIPTION

er

TRANSCRIPT

  • 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 100 atau 1; posisi

    sepuluh memiliki nilai 101 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 20 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 81 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 22

    21 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

    +++=

    2568

    ...

    42

    2110 AAAVVo

  • 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.