#include <reg52.h>
#include <function.h> //详见第六章第8讲
#include <lcd.h> //详见第十一章第3讲
#include <uart.h> //详见第十章第4讲
u8 i=0;
u8 pdata RXDBUF[64];
void
COUNT_TIMES()
{
TMOD&=0xF0;
TMOD|=0x01;
}
void
UART_LcdFullClear()
{
if
( RXDBUF[0]==
'L'
&&RXDBUF[1]==
'c'
&&RXDBUF[2]==
'd'
&&RXDBUF[3]==
'F'
&&RXDBUF[4]==
'u'
&&RXDBUF[5]==
'l'
&&RXDBUF[6]==
'l'
&&RXDBUF[7]==
'C'
&&RXDBUF[8]==
'l'
&&RXDBUF[9]==
'e'
&&RXDBUF[10]==
'a'
&&RXDBUF[11]==
'r'
)
{
LcdFullClear();
}
}
void
UART_LcdShowStr()
{
u8 lcd_x,lcd_y,z;
if
( RXDBUF[0]==
'L'
&&RXDBUF[1]==
'c'
&&RXDBUF[2]==
'd'
&&RXDBUF[3]==
'S'
&&RXDBUF[4]==
'h'
&&RXDBUF[5]==
'o'
&&RXDBUF[6]==
'w'
&&RXDBUF[7]==
'S'
&&RXDBUF[8]==
't'
&&RXDBUF[9]==
'r'
)
{
if
(RXDBUF[12]>=
'0'
&&RXDBUF[12]<=
'9'
)
{
lcd_x=(RXDBUF[11]-
'0'
)*10;
lcd_x+=RXDBUF[12]-
'0'
;
}
else
lcd_x=RXDBUF[11]-
'0'
;
if
(RXDBUF[14]>=
'0'
&&RXDBUF[14]<=
'9'
)
{
lcd_y=RXDBUF[14]-
'0'
;
}
else
lcd_y=RXDBUF[13]-
'0'
;
if
(RXDBUF[15]==
'"'
)
{
for
(z=1; ;z++)
{
if
(RXDBUF[15+z]==
'"'
)
{
RXDBUF[15+z]=
'\0'
;
break
;
}
}
LcdShowStr(lcd_x,lcd_y,RXDBUF+15+1);
}
else
if
(RXDBUF[16]==
'"'
)
{
for
(z=1; ;z++)
{
if
(RXDBUF[16+z]==
'"'
)
{
RXDBUF[16+z]=
'\0'
;
break
;
}
}
LcdShowStr(lcd_x,lcd_y,RXDBUF+16+1);
}
}
}
void
main()
{
u8 x;
EA = 1;
COUNT_TIMES();
ConfigUART(9600);
InitLcd1602();
LcdShowStr(1, 0,
"Good Good Study"
);
LcdShowStr(3, 1,
"Day Day Up!"
);
while
(1)
{
if
(TH0>=200)
{
TR0=0;
UART_LcdFullClear();
UART_LcdShowStr();
TH0=0;
TL0=0;
i=0;
for
(x=0;x<64;x++)RXDBUF[x]=0x00;
}
}
}
void
InterruptUART() interrupt 4
{
if
(RI)
{
RI = 0;
TH0=0;
TL0=0;
TR0=1;
RXDBUF[i]=SBUF;
i++;
}
}