Monday, December 4, 2017


TUGAS MATAKUIAH 
MIKROPROSESOR DAN MIKROKONTROLER
MIKROKONTROLER ATMEL
AT89C51


DOSEN PENGAMPU : Ir. DARWISON, M.T.





REFERENSI :

Iswanto.2011.Mikrokontroler AT89S51 dengan bahasa C.Yogyakarta:ANDI



UTS

Rangkaian dan Program sistem minimum 8086


1. Latar Belakang  [kembali]


Perancangan sistem minimum 8086 adalah perancangan peta memori dan peta I/O. Pada sistem minimum 8086 untuk pemetaan memori dan I/O dapat digabung dalam suatu peta atau dapat juga terpisah. Untuk perancangan peta memori ada dua lokasi address yaitu program disimpan pada lokasi address memori ROM dan data disimpan pada lokasi address RAM. Salah satu aplikasi dari mikroprosesor 8086 adalah peta keypad dan seven segmen. Secara garis besar, rangkaian bermula dari pemasukan input yang berasal dari keypad lalu diproses sehingga berjalan ke mikroprosesor dan menghasilkan output yaitu seven segmen.

2. Rangkaian [kembali]



3. Link Download [kembali]

     File Program silahkan download disini
     File Rangkaian silahkan download disini
     HTML silahkan download disini


Saturday, December 2, 2017

12. PORT SERIAL

[KEMBALI KE MENU SEBELUMNYA]

APLIKASI PORT SERIAL



A. Gambar Rangkaian [kembali]



B. Prinsip Kerja [kembali]


Program serial ini mengirim data serial memerlukan deklarasi register untuk mikrokontroler jenis AT89x51. Setelah mendeklarasi register, program akan menginsialisasi port serial mikrokontroler untuk bekerja pada mode 1. Kecepatan transmisinya ditentukan oleh timer 1 dan nilai TH 1. Selain itu, program pun memerlukan fungsi untuk mengirim karakter dan mengirim teks. Kemudian, program akan masuk ke program utama. Di dalam program utama, terdapat variabel karakter teks yang berfungsi menyimpan data. Data tersebut akan dikeluarkan oleh mikrokontroler dengan menggunakan port serial.


C. Listing Program [kembali]

#include <at89x51.h>
void Init_Serial(char baud )
    {
            TMOD=0x20;        //timer 1 mode 2 (autoreload)
            PCON=0x0 ;      // SMOD =0
            SM0=0;
            SM1=1;      // mode 1
        REN=1;      //terima diperbolehkan
            TH1=baud;          //kecepatan 9600 bps (nilai reload)
            TL1=baud;          //nilai awal timer   
            TR1=1;          // timer dijalankan
    }
void KirimChar(char datanya)
{
        SBUF=datanya;
        while(!TI)
            {;}
        TI=0;
}
void KirimTeks(char *teks)   //Fungsi untuk mengirim teks ke
{
        char i=0;          //port serial pada mode 1.
    while(teks[i]!=0) //dari pada menggunakan fungsi printf()
        {
       KirimChar(teks[i]);// atau printf_small standard
   i++;          //lebih efisien kodenya membuat
        }                //sendiri

}

void main()
{
        char *teks={"Selamat datang SDCC\n"};//teks dikirim
        Init_Serial(0xfd);     // inisialisasi port serial
        KirimTeks(teks);      // pada mode 1 kecepatan 9600 bps
}



D. Flowchart [kembali]




E. Link Download [kembali]

     File Program silahkan download disini
     File Rangkaian silahkan download disini
     HTML silahkan download disini


11. INTERUP

[KEMBALI KE MENU SEBELUMNYA]

APLIKASI INTERUP PADA LED



A. Gambar Rangkaian [kembali]



B. Prinsip Kerja [kembali]




C. Listing Program [kembali]

#include <at89x51.h>

unsigned int    i,j;

void serial_int (void) //interrupt 4
{
    static char chr = '\0'; // buffer karakter

    if (RI == 1)              // terjadi interupsi penerimaan
    {
        chr = SBUF;        // simpan karakter pada buffer lokal
        RI = 0;                 // bersihkan flag interuspsi penerimaan
        TI = 1;                 // menandakan ada karakter yang akan dikirim
    }
    else if (TI == 1)       // jika terjadi interupsi pengiriman
    {
        TI = 0;                 // bersihkan flag interuspsi pengiriman
        if (chr != '\0')       // jika ada karakter di buffer lokal
        {
            if (chr == '\r') chr = '\n';
            SBUF = chr;     // simpan karakter di buffer pengiriman
            chr = '\0';
        }
    }
    P3 = 0x55;   /* jika terjadi interupsi port B = 01010101D */
    for (i=0;i<60000;i++) {;} /* delay */
}

main()

    SCON = 0x50;    /* mode 1, 8-bit uart, enable terima */
    TMOD = 0x20;    /* timer 1, mode 2, 8-bit reload */
    TH1  = 255;     /* nilai reload untuk bautrate 57600 */
    ET0  = 0;       /* mencegah timer 0 interupsi */
    TR1  = 1;       /* timer mulai mencacah */
    TI   = 0;       /* bersihkan buffer pengiriman */

    ES   = 1;       /* enable interupsi serial  */
    EA   = 1;       /* enable global interupsi */

    while (1)
    {
        P3 = 0xaa;    /* keadaan awal port B = 10101010D */
    }
}


D. Flowchart [kembali]




E. Link Download [kembali]

     File Program silahkan download disini
     File Rangkaian silahkan download disini
     HTML silahkan download disini