#include <reg52.h>
#include <function.h> //详见第六章第8讲
#include <lcd.h> //详见第十一章第3讲
#include <uart.h> //详见第十章第4讲
u8 uart_i=0;
u8 pdata RXDBUF[64];
void
COUNT_TIMES()
{
TMOD&=0xF0;
TMOD|=0x01;
}
void
main()
{
u8 x;
u16 n,j;
EA = 1;
COUNT_TIMES();
ConfigUART(9600);
InitLcd1602();
while
(1)
{
if
(TH0>=200)
{
TR0=0;
LcdFullClear();
LcdShowStr(3, 0,
"Reception"
);
LcdShowStr(3, 1,
"Complete!"
);
while
(uart_i<32)
{
RXDBUF[uart_i]=
' '
;
uart_i++;
}
TH0=0;
TL0=0;
delay_ms(1000);
for
(j=0;j<1000;j++)
{
BEEP=!BEEP;
for
(n=0;n<25;n++);
}
LcdFullClear();
LcdShowStr_len(0, 0,RXDBUF, 16);
LcdShowStr_len(0, 1,RXDBUF+16, 16);
uart_i=0;
for
(x=0;x<32;x++)RXDBUF[x]=0x00;
}
}
}
void
InterruptUART() interrupt 4
{
if
(RI)
{
RI = 0;
TH0=0;
TL0=0;
TR0=1;
RXDBUF[uart_i]=SBUF;
uart_i++;
}
}