Saturday, December 2, 2017

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


No comments:

Post a Comment