Professional Documents
Culture Documents
Interupsi Serial
Interupsi Serial
R
083310040
MikroKontroler
A. Interupsi Serial
#include <at89x51.h>
volatile char terima;
volatile bit status=0;
void init_intser()
{
EA=1;
ES=1;
PS=1;//perioritas tinggi
}
void Init_Serial()
{
TMOD = 0x20;
PCON = 0x80;
SM0 = 0;
SM1 = 1;
REN = 1;
TH1 = 250;
TL1 = 250;
TR1 = 1;
}
void LedPutKir()
{
volatile unsigned char dLed=0x01;
P1=dLed;
dLed=((dLed<<1)|(dLed>>7)); //putar kiri 1 bit
tunda_ms(1000);
}
void LedPutKan()
{
volatile unsigned char dLed = 0x80;
P1=dLed;
dLed=((dLed>>1)|(dLed<<7));
tunda_ms(1000);
}
void LedKedip4()
{
volatile unsigned char dLed=0x0f;
//char i;
P1 = dLed;
dLed = ((dLed >>4) | (dLed<<4));
tunda_ms(1000);
}
void main()
{
init_intser();
Init_Serial();
while(1)
{
if (status)
{
status=0;
KirimChar(terima);
KirimChar('\n');
}
switch (terima)
{
default:
Kurniadi.R
083310040
MikroKontroler
case '1' : LedPutKir();break;
case '2' : LedPutKan();break;
case '3' : LedKedip4();break;
}
}
}
Hasil
Jika tekan 1
LED Geser Kiri
Jika Tekan 2
LED Geser Kanan
Jika Tekan 3
4 LED Hidup dan Redup secara Bergantian.
void Init_Serial()
{
TMOD = 0x20;
PCON = 0x80;
SM0 = 0;
SM1 = 1;
REN = 1;
TH1 = 250;
TL1 = 250;
TR1 = 1;
}
void LedPutKir()
{
volatile unsigned char dLed=0x01;
P1=dLed;
dLed=((dLed<<1)|(dLed>>7)); //putar kiri 1 bit
tunda_ms(1000);
}
void main()
{
init_intser();
Init_Serial();
while(1)
{
KirimTeks("Percobaan Pengaruh Pengiriman teks yang Panjang.\n");
LedPutKir();
tunda_ms(1000);
}
}
Hasil
Tampilkan
Percobaan Pengaruh Pengiriman teks yang Panjang
Kurniadi.R
083310040
MikroKontroler
C. Pengiriman Data Serial Dangan Buffer
#include <at89x51.h>
volatile unsigned char Counter;
volatile char Buffer_Tx[];
void InIntT0()
{
EA =1;
ET0 =1;
}
void Init_Serial()
{
TMOD = 0x20;
PCON = 0x80;
SM0 = 0;
SM1 = 1;
REN = 1;
TH1 = 250;
TL1 = 250;
TR1 = 1;
}
void LedPutKir()
{
volatile unsigned char dLed=0x01;
P1=dLed;
dLed=((dLed<<1)|(dLed>>7)); //putar kiri 1 bit
tunda_ms(1000);
}
void main()
{
init_intser();
Init_Serial();
while(1)
{
Buffer_Tx[]=("Percobaan pengaruh Pengiriman Teks yang Panjang . \n");
LedPutKir();
tunda_ms(1000);
}
}