关键词:单片机通讯
#include <reg51.h>
char recept_data;
void delay(unsigned int x)
{ unsigned int data i;
for(i=0;i<x;i++);
}
void main (void)
{
SCON = 0x50;
TMOD = TMOD | 0x20 ;
TH1 = 0xFD;
TL1 = 0xFD;
ES = 1;
EA = 1;
TR1 = 1;
switch(P1){
case 0xFE:
SBUF=0x49; //I
delay(1000);
SBUF=0x20; //NUL
delay(1000);
SBUF=0x4C; //L
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x76; //v
delay(1000);
SBUF=0x65; //e
delay(1000);
SBUF=0x20; //NUL
delay(1000);
SBUF=0x59; //Y
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x75; //u
delay(1000);
SBUF=0x21; //!
delay(1000);
SBUF=0xD; //NUL
delay(1000);
break;
case 0xFD:
SBUF=0x59; //Y
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x75; //u
delay(1000);
SBUF=0x20; //NUL
delay(1000);
SBUF=0x61; //a
delay(1000);
SBUF=0x72; //r
delay(1000);
SBUF=0x65; //e
delay(1000);
SBUF=0x20; //NUL
delay(1000);
SBUF=0x47; //G
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x64; //d
delay(1000);
SBUF=0x21; //!
delay(1000);
SBUF=0xD; //NUL
delay(1000);
break;
case 0xFB:
SBUF=0x54; //T
delay(1000);
SBUF=0x68; //h
delay(1000);
SBUF=0x61; //a
delay(1000);
SBUF=0x6E; //n
delay(1000);
SBUF=0x6B; //k
delay(1000);
SBUF=0x20; //NUL
delay(1000);
SBUF=0x59; //Y
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x75; //u
delay(1000);
SBUF=0x21; //!
delay(1000);
SBUF=0xD; //NUL
delay(1000);
break;
}
}
void serial_IT(void) interrupt 4
{
if (RI == 1)
{
RI = 0;
recept_data=SBUF;
P2=SBUF;
delay(1000);
SBUF=recept_data;
delay(1000);
}
else TI = 0;
}
char recept_data;
void delay(unsigned int x)
{ unsigned int data i;
for(i=0;i<x;i++);
}
void main (void)
{
SCON = 0x50;
TMOD = TMOD | 0x20 ;
TH1 = 0xFD;
TL1 = 0xFD;
ES = 1;
EA = 1;
TR1 = 1;
switch(P1){
case 0xFE:
SBUF=0x49; //I
delay(1000);
SBUF=0x20; //NUL
delay(1000);
SBUF=0x4C; //L
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x76; //v
delay(1000);
SBUF=0x65; //e
delay(1000);
SBUF=0x20; //NUL
delay(1000);
SBUF=0x59; //Y
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x75; //u
delay(1000);
SBUF=0x21; //!
delay(1000);
SBUF=0xD; //NUL
delay(1000);
break;
case 0xFD:
SBUF=0x59; //Y
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x75; //u
delay(1000);
SBUF=0x20; //NUL
delay(1000);
SBUF=0x61; //a
delay(1000);
SBUF=0x72; //r
delay(1000);
SBUF=0x65; //e
delay(1000);
SBUF=0x20; //NUL
delay(1000);
SBUF=0x47; //G
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x64; //d
delay(1000);
SBUF=0x21; //!
delay(1000);
SBUF=0xD; //NUL
delay(1000);
break;
case 0xFB:
SBUF=0x54; //T
delay(1000);
SBUF=0x68; //h
delay(1000);
SBUF=0x61; //a
delay(1000);
SBUF=0x6E; //n
delay(1000);
SBUF=0x6B; //k
delay(1000);
SBUF=0x20; //NUL
delay(1000);
SBUF=0x59; //Y
delay(1000);
SBUF=0x6F; //o
delay(1000);
SBUF=0x75; //u
delay(1000);
SBUF=0x21; //!
delay(1000);
SBUF=0xD; //NUL
delay(1000);
break;
}
}
void serial_IT(void) interrupt 4
{
if (RI == 1)
{
RI = 0;
recept_data=SBUF;
P2=SBUF;
delay(1000);
SBUF=recept_data;
delay(1000);
}
else TI = 0;
}