Sabtu, 30 April 2016

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

3 komentar:

  1. Bet365 - Best Online Casino in the World - FBCasino
    Play live roulette, 바카라 사이트 and a wide selection of live casino games. The Bet365 Casino is an amazing option if 메리트 카지노 주소 you want 메리트카지노 to experience the live casino games

    BalasHapus
  2. Casino Slot Machines | MapyRO
    Find your 광명 출장안마 Casino Slot 하남 출장샵 Machines location 양주 출장마사지 in Reno, NV and other 안산 출장샵 places to play. See photos, videos, 이천 출장샵 directions, and read real customer reviews at

    BalasHapus