Sabtu, 30 April 2016

TUGAS TUGAS

Tugas berisikan tentang rangkaian interface,program assembler yang dapat didownload disini

UTS tentang Rancanglah rangkaian dan program sistem minimum 8086 untuk aplikasi kontrol suhu ruangan dengan display LCD yang dapat didownload disini

UAS tentang rancangan peringatan dini banjir dengan sensor ultrasonik dan mikrokontroler AT89C52 yang dapat didownload disini

MIKROPROSESSOR 8088

Chapter 1. PENDAHULUAN
Mikroprosesor 8088 mulai diperkenalkan oleh Intel Corporation pada tahun 1978. Mikroprosesor ini mengawali sejarah perkembangan mikroprosesor Intel selanjutnya, seperti 80186, 80286, 80386, 80486, Intel Pentium yang berkembang terus. Semua instruksi yang terdapat pada mikroprosesor 8088 sepenuhnya dapat dijalankan pada mikroprosesor-mikroprosesor Intel tersebut.
Figure 1.1. mikroprosessor 4004,8086/8088 dan intel pentium


Mikroprosesor 8088 mempunyai 8 bit jalur data dan 20 bit jalur alamat. Mikroprosesor 8088 dibuat dalam bentuk IC dengan kaki sebanyak 40 pin (jenis DIP 40).

Chapter 2. Konfigurasi pena mikroprosessor 8088
Gambar dibawah ini memperlihatkan diagram pewaktuan yang menunjukkan siklus baca tulis ketika terjadi operasi I/O dan Memori oleh mikroprosessor.


Pena pada mikroprosessor 8088 ada yang tidak dipengaruhi oleh perubahan mode baik mode maksimum ataupun mode minimum dan ada pula pena yang berfungsi hanya pada saat mode maksimum.

Chapter 3. Fungsi masing-masing pin dari mikroposessor 8088 

Figure 3.1. pin konfigurasi mikroprosessor 8088


  1. AD0 – AD7 adalah Bus address - data Jalur yang dimultipleks untuk menyalurkan data pada saat ALE aktif (1) atau byte rendah address pada saat ALE tidak aktif (0)
  2. A8 – A15 adalah Bus address Bit – bit dimana A8 – A15 ada selama siklus bus
  3. A19/S6, A18/S5, A17/S4, A16/S3 adalah Address / Status Kaki – kaki yang multiplek yang digunakan untuk bus address
  4. RD adalah Read Sinyal kontrol yang akan berlevel logika 0 pada saat data bus siap menerima data dari memori atau I/O yang diteruskan ke mikroprosesor.
  5. WR adalah Read Sinyal kontrol yang akan berlevel logika 0 pada saat data bus siap menerima data dari mikroprosesor yang diteruskan ke memori atau I/O
  6. READY adalah Ready Input ini diperiksa oleh 8088 pada akhir dari siklus T2. Kondisi logika 0, siklus pembacaan atau penulisan data akan diperpanjang sampai input logika 1.
  7. INTR adalah Interrup Request Satu dari dua kali untuk menerima interupt hard-ware. Jika INTR diberi logika 1 pada saat flag 1 set, 8088 masuk ke siklus interupt acknowledge (INTA aktif) setelah intruksi yang sedang berlangsung selesai.
  8. TEST adalah Test Diperiksa oleh intruksi WAIT
  9. NMI adalah Nonmaskable Interrupt Input yang mengaktifkan interrupt tipe 2 pada akhir dari instruksi yang sedang dilaksanakan.
  10. RESET adalah Reset Kaki yang jika diberi level logika 1 untuk minimum 4 clock, akan mereset 8088.
  11. CLK adalah Clock Sebuah input yang menyediakan pewaktu dasar untuk 8088.
  12. VCC adalah Vcc Input tegangan pencatu +5V
  13. GND adalah Ground Hubungan ke ground
  14. MN/-MX adalah Mode Minimum / Maksimun Pin yang digunakan untuk memilih mode operasi minimum jika dihubungkan ke +5V dan mode maksimum jika dihubungkan ke ground.
  15. IO/-M adalah Input/Output atau Memori Pin yang menunjukkan isi dari bus address adalah informasi pengaddress memori atau I/O
  16. INTA adalah Interrupt Acknowledge Respon untuk INTR. Selama permintaan interupsi, pin INTA akan berlogika 0 untuk menunjukkan bahwa bus 8088 menunggu vector-number.
  17. ALE adalah Addres Latch Enable Pin yang digunakan untuk menunjukkan bahwa bus address berisi address memori atau alamat port I/O
  18. DT/-R adalah Transmite/ - Receive Pin yang digunakan untuk mengendalikan arah aliran data melewati buffer data.
  19. –DEN adalah Data Bus Enable Pin yang aktif bila bus data telah berisi data.
rangkaian minimum dari 8088 dapat didownload disini

Mikroprosessor 8088 memiliki empat kelompok register 16-bit, yaitu : 
  • register penunjuk instruksi (indeks pointer register),
  • register data (general purpose register),
  • register segment (segment register),
  • flag register.

Chapter 4. Register Penunjuk dan Register Indeks (Indeks and Pointer Register)

Mikroprosesor 8088 mempunyai dua buah register penunjuk (register SP dan BP) serta dua buah register indeks ( register SI dan DI). 
Data yang terdapat pada SP ( Stack Pointer) memungkinkan pemogram untuk menjangkau lokasi memori dari stack segment.. BP (Base Pointer) yang berpasangan dengan register stack segment (SS) digunakan untuk mencatat suatu alamat dimemori tempat data. 
SI (Source Index) digunakan untuk mengalamati sumber data secara ‘indirect’ untuk digunakan dalam instruksi string. DI (Destination Index) secara normal digunakan untuk mengalamati data tujuan dan instruksi string.


Chapter 5. register data (general purpose register)
Register data pada mikroprosessor 8088 dibagi menjadi 4 kelompok register yang semuanya berfungsi untuk penyimpanan data secara sementara.
Keempat kelompok register ini adalah register AX, BX, CX. dan DX. Register AX, BX, CX, dan DX merupakan register data 16 bit. Register-register 16 bit dari kelompok ini mempunyai suatu ciri khas, yaitu dapat dipisah menjadi 2 bagian dimana masing-masing bagian terdiri dari 8 bit, yaitu register data AH; AL (untuk AX), BH; BL (untuk BX), CH; CL (untuk CX), dan DH; DL (untuk DX).

Chapter 6. Register Segment (Segment Register)
Mikroprosesor 8088 menghasilkan 20 bit alamat sehingga dapat menjangkau 1 MB lokasi memori ( 220 = 1048576 Byte atau disingkat 1 MB). Namun pada mikroprosessor 8088 register yang tersedia hanya 16 bit ( 216 = 64 KB), sehingga untuk menjangkau alamat 1 MB, memori pada mikroprosessor 8088 dibagi menjadi ruas-ruas 64 KB, sehingga setiap saat hanya ada 4 segment (ruas) yang dapat aktif. Segment-segment register ini adalah: Code Segment (CS), Data Segment (DS), Stack Segment (SS), dan Extra Segment (ES).

Chapter 7. Flag Register
Flag register merupakan register 16 bit, namun pada mikroprosessor 8088 yang digunakan hanya 12 bit, yaitu 9 bit untuk status dan 3 bit untuk kontrol. Diagram blok flag register adalah sebagai berikut :
Figure 7.1. Diagram blok flag register


Macam macam flag register:
  • CF (Carry Flag)
  • PF (Parity Flag)
  • AF (Auxillary Carry Flag)
  • SF (Sign Flag)
  • TF (Trace Flag)
  • IF (Interrupt Flag)
  • OF (Over Flow Flag)
  • DF (Direction Flag)
  • X Tidak digunakan

Chapter 8. Alamat Relatif dan Alamat Absolut

Didalam suatu segment, alamat dimulai dari 0000H sampai FFFFH (64KB). Alamat ini disebut juga alamat relatif / offset. Sedangkan alamat absolut dari 0000H s/d FFFFH adalah 00000H s/d FFFFFH. Berikut kita lihat cara pengkonversian alamat relatif kealamat absolut. Pengkonversian dapat dilakukan dengan menggeser nilai segment sebanyak 4 bit kekiri dan kemudian dijumlahkan dengan nilai offset. Atau cara yang lebih sederhana adalah dengan mengalikan nilai segment dengan 2 pangkat 4 (10H) kemudian dijumlahkan dengan nilai offset. Cara ini dikembangkan dari besarnya selisih segment yang satu dengan yang berikutnya sebesar 2 pangkat 4 (10H). Lihatlah contoh dibawah ini: 
Figure 8.1. contoh perhitungan alamat relatif dan alamat absolut

Pada kedua contoh diatas terlihat jelas alamat relatif 1357H : 2468H sebenarnya menunjukkan lokasi yang sama didalam memori (alamat absolutnya) dengan alamat relatif 1356H : 2478H yang disebabkan adanya overlapping. 


Chapter 9. Generator Clock Untuk Mikroprosesor 8088
Tidak seperti 8085, mikroprosesor 8088 tidak mempunyai pembangkit clock sendiri, ia harus diberi clock dari luar.

Figure 9.1. Ic 8284 sebagai clock mikroprosessor 8088

Berikut nama nama pin dan fungsi dari IC 8284
  • CLK Sinyal clock untuk dikirimkan ke mikroprosessor.Sinyal ini mempunyai frekuensi 2/3 dari frekuensi crystal dengan siklus kerja 33%
  • PCLK Sinyal ini mempunyai frekuensi ½ dari frekuensi yang dikeluarkan pena CLK, dan memiliki siklus kerja 50%
  • F/ C Pena ini merupakan penentu referensi untuk clock. Jika pena ini berlogic 1, maka clock mendapat sumber dari pena EFI, sedangkan jika berlogic 0 mendapat sumber dari pena OSC
  • EFI Masukan frekuensi eksternal yang digunakan untuk sebagai sumber clock
  • CSYNC Sinkronisasi clock yang digunakan untuk sinkronisasi beberapa IC 8284. Jika menggunakan crystal pena ini dibuat 0
  • RES Digunakan untuk sinyal menghasilkan reset
  • RESET Digunakan menghasilkan sinyal reset untuk mikroprosessor setelah disinkronisasi dahulu dengan RES dan CLK
  • READY Sinyal ini berfungsi untuk memberitahukan mikroprosessor bahwa unit I/O dan memori siap untuk mengirim atau menerima data
  • AEN1 dan RDY1 Sinyal ini digunakan untuk membangkitkan keadaan tunggu ke mikroprosessor
  • AEN2 dan RDY2 Sama dengan pena AEN1 dan RDY1, sinyal ini digunakan untuk membangkitkan keadaan tunggu ke mikroprosessor.
  • ASYNC Sinkronisasi pemilih tipe masukan yang diberikan pada IC 8284
Untuk membangkitkan sinyal clock pada IC 8284 ini ada 2 cara, cara pertama yaitu dengan memasang crystal pada masukan X1 dan X2 serta dengan memberikan logic 0 pada pena F/C. Cara yang kedua adalah dengan memberikan frekuensi eksternal pada pena EFI dan pena F/C dibuat 1.

untuk rangkaian dasar dapat didownload disini


Sumber :Darwison.2005.MIKROPROSESSOR.Padang:Universitas Andalas
        https://www.academia.edu/3818141/TEORI_MIKROPROSESOR_8088

MIKROKONTROLER MCS 51


Pada 1980 intel memperkenalkan mikrokontroler MCS51 dengan tingkat integrasi tinggi yang mengandung lebih dari 6000 transistor, rom internal yang digunakan adalah EEROM dengan kapasitas memori 4 kbyte ROM (internal), 128 byte RAM internal, 32 I/O pin siap pakai, serial port 2 buah 16 bit timer/pencacah dan 6 sumber instruksi.
Figure 1. Diagram Blok mikrokontroler AT89s51

mikrokontroler AT89S51 terdiri dari 40 pin yaitu 32 pin I/O, 2 pin timer, 2 pin input dan output osilator, 2 pin serial input dan output serta 2 pin external input dan output
Figure 2. Susunan pin AT89S51


Fungsi kaki-kaki pin AT89S51
  • Port 0 : merupakan Port I/O 8 bit dua-arah. Port ini digunakan sebagai multipleks bus alamat rendah dan bus data selama pengaksesan ke eksternal memori.
  • Port 1 : merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung.
  • Port 2 : merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung.
  • Port 3 : merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung. Setiap pin dapat diakses secara operasi tiap bit atau byte
  • RST : digunakan me-reset register internal.
  • ALE : Address Latch Enable, digunakan untuk memberikan sinyal latch pada alamat rendah pada multipleks bus adress dan data jika memakai memori eksternal
  • PSEN (Program Strobe Enable) : mengaktifkan EPROM luar.
  • VPP atau EA (External Access) : kondisi high untuk menjalankan program memori internal dan low untuk menjalankan memori eksternal
  • XTAL1, XTAL2 : merupakan input dan output kristal clock.
  • VCC : tegangan catu +5 V
Konstruksi IC AT89S51 memerlukan tambahan seperti membentuk rangkaian reset, catu daya 5 Volt dan rangkaian osilator untuk clock dalam mempercepat kerja mikrokontroler Rangkaian reset memerlkan sebuah kapasitor 10 mikro-Farad dan resistor 10 kilo-Ohm Rangkaian osilator memerlukan dua buah kapasitor 30 pico-Farad dan Xtal maksimal 24 MHz
  • Rangkaian reset memerlukan sebuah kapasitor 10 mikro-Farad dan resistor 10 kilo-Ohm
  • Rangkaian osilator memerlukan dua buah kapasitor 30 pico-Farad dan Xtal maksimal 24 MHz
Figure 3. Fitur tambahan mikrokontroler

Ada 2 memori yang terpakai dalam mikrokontroler
  • Read Only Memory (ROM) yang disebut dengan MEMORI PROGRAM karena berisikan program untuk kerja
  • Read access Memory (RAM) yang disebut dengan MEMORI DATA karena berisi data yang telah program jalankan. Besar memori RAM adalah 128 byte
UART (Universal asynchronous Receive Transmiter) sebagai komunikasi data secara seri (RXD dan TXD) pada kaki P1.0 dan P1.1
Timer 0 dan Timer 1 masing-masing adalah untaian pencacah biner 16 bit di dalam chip yang dipakai sebagai sarana I/O dan bekerja menurut fungsi waktu yang berasal dari osilator kristal dan memakai kaki P3.4 dan P3.5
Terdapat lima sumber pembangkit interupsi yaitu INT0 dan INT1 pada kaki P3.2 dan P3.3 serta interpsi lainnay pada sarana komunikasi data seri dan dari sistem Timer 0 dan Timer 1


PENGENALAN BAHASA C
bahasa yang dipakai dalam membuat program yang akan diinputkan ke mikrokontroller AT89C51 adalah bahas C
Figure 4. Berikut contoh penulisan program bahasa C


Pada gambar terdapat titik-titik yang kosong yang mana akan diisikan
  1. tipe data (seperti Char, Int, Float, Double dan Void)
  2. konstanta (nilai yang tidak bisa diubah)
  3. variabel (mewakili nilai tertentudalam proses program)
  4. deklarasi (pengenal dalam program ; //......... atau #define .....)
  5. operator (seperti “+”,”-“,”/”.”*” dan “=” )
  6. komentar program ( tidak diproses dalam program)
  7. penyeleksian kondisi (seperti “if...”, “if...else” dan “switch ... case ... default ...”)
  8. Perulangan (seperti “While”, “Do ... While ...” dan “for ...”)
  9. Aray (kumpulan nilai data bertipe sama dalam urutan tertentu yang menggunakan nama sama)
  10. Fungsi ( bagian program yang bertujuan mengerjakan tugas tertentu dan terletak terpisah dari program yang memanggilnya)
  11. Struktur (merupakan sekelompok data (variabel) yang mempunyai tipe sama atau berbeda tetapi dikemas dalam satu nama)
  12. Pointer (suatu variabel yang berisi alamat memori variabel lain)
  13. Penyisipan nilai asembli
  14. fungsi naked (sebagai membangkitkan fungsi interupsi dengan kata kunci “_naked”.

APLIKASI LAMPU LED DENGAN MIKROKONTROLER

Berikut rangkaian lampu led yang terpasang engan memakai alat mikrokontroler AT89S51
Figure 5. Rangkaian lampu led

programnya sebagai berikut
//Program 3.1. LED Berkedip

/*------------------------------------------*/
/* deklarasi register AT89c51 */
/*------------------------------------------*/
#include <at89x51.h>

/*------------------------------------------*/
/*   fungsi tunda 1 milidetik (kira-kira)   */
/*------------------------------------------*/
void tunda1ms()   
{
 int i;
 for(i=0;i<150;i++);
}

/*--------------------------------------------*/
/*       fungsi tunda n milidetik             */
/*--------------------------------------------*/
void tunda(int n) 
{
 int i;
 for (i=0; i<n;i++)
 tunda1ms();
}

/*----------------------------------------------*/
/*               Program utama                  */
/*----------------------------------------------*/
void main()
{
 char a;
 char b;
 a=0x0FF;
 b=0x000;

/*-----------------------------------*/
/*   melakukan loop terus-menerus    */
/*-----------------------------------*/
while(1)
 {
     P0= a;      //mengeluarkan dataLED satu persatu
     tunda(1000);    //sehingga efeknya seperti LED berjalan
     P0= b;          //mengeluarkan dataLED satu persatu
     tunda(1000);    //sehingga efeknya seperti LED berjalan
 }
}

APLIKASI SEVEN SEGMENT DENGAN MIKROKONTROLER

Ada dua jenis seven segmen yaitu common catoda dan common anoda sehingga bentuk rangkaian akan berbeda. disini digunakan seven segmen common anoda
Figure 6. rangkaian aplikasi penggerak seven segment tunggal dengan BCD

Programnya sebagai berikut
// Program 7.2. Sevent Segmen Tunggal     
/*-----------------------------------*/
/*     deklarasi register AT89c51    */
/*-----------------------------------*/
#include <at89x51.h>
/*--------------------------------------*/
/* fungsi tunda 1 milidetik (kira-kira) */
/*--------------------------------------*/
void tunda1ms()   
  {
    int i;
    for(i=0;i<100;i++);
  }
/*--------------------------*/
/* fungsi tunda n milidetik */
/*--------------------------*/
void tunda(int n) 
{
 int i;
 for (i=0; i<n;i++)
 tunda1ms();
}

/*----------------------*/
/*    fungsi utama      */
/*----------------------*/
void main()
{
/*-------------------------------*/
/* melakukan loop terus-menerus */
/*------------------------------*/
while(1)
   {
    P3=0x01;
    tunda(1000);
    P3=0x09;;
    tunda(1000);
   }
}

APLIKASI TOMBOL DENGAN MIKROKONTROLER

aplikasi tombol ini dipakai pada tombol yang dirangkai mengalir ke ground saat tombol ditekan sedangkan saat tombol tidak ditekan akan maka kondisi logika high
Figure 7. rangkaian pembacaan tombol 4X4

Programnya sebagai berikut:
//Program  Tombol_4 program 8 buah tombol 2
/*---------------------------------*/
/* deklarasi register AT89c51      */
/*---------------------------------*/
#include <at89x51.h>

/*--------------------------------------*/
/* fungsi tunda 1 milidetik (kira-kira) */
/*--------------------------------------*/
void tunda1ms()   
{
 int i;
 for(i=0;i<100;i++)
 ;
}

/*-------------------------------*/
/* fungsi tunda n milidetik      */
/*-------------------------------*/
void tunda(int n) 
{
 int i;
 for (i=0; i<n;i++)
 tunda1ms();
}

void display(unsigned int x)
{
    int digit1;
    int digit2;
    int digit3;
    int digit4;
       digit4=x/1000;
       digit3=(x-digit4*1000)/100;
       digit2=(x-digit4*1000-digit3*100)/10;
       digit1=(x-digit4*1000-digit3*100-digit2*10);
       P1=0x80+digit4;
      tunda(10);
       P1=0x40+digit3;
      tunda(10);
       P1=0x20+digit2;
      tunda(10);
       P1=0x10+digit1;
      tunda(10);
}

/*---------------------------------*/
/*       Program Utama             */
/*---------------------------------*/
void main()
{
/* melakukan loop terus-menerus */
while(1)
 {
     if(P3==0x01)
        {
            display(1);
        }
        else if(P3==0x02)
        {
            display(2);
        }
        else if(P3==0x04)
        {
            display(3);
        }
        else if(P3==0x08)
        {
            display(4);
        }
        else if(P3==0x10)
        {
            display(5);
        }
        else if(P3==0x20)
        {
            display(6);
        }
        else if(P3==0x40)
        {
            display(7);
        }
        else if(P3==0x80)
        {
            display(8);
        }               
 }
}
untuk rangkaian lainnya dapat didownload disini
sumber referensi: Iswanto.2011.Belajar Mikrokontroler At89s51 Dengan Bahasa C.Yogyakarta:Penerbit Andi