A. Gambar Rangkaian [kembali]
B. Prinsip Kerja [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]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 */
}
}
E. Link Download [kembali]
File Program silahkan download disini
File Rangkaian silahkan download disini
HTML silahkan download disini


No comments:
Post a Comment