void Com_Init(void)//串口接受初始化
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd; //设置波特率 9600
TL1 = 0xFd;
TR1 = 1; //启动定时器1
ES = 1; //开串口中断
EA = 1; //开总中断
}
void Com_Int(void) interrupt 4//串口接受中断函数
{
EA = 0;
if(RI == 1) //当硬件接收到一个数据时,RI会置位
{
A= SBUF; //这里保存接收数据
RI = 0; //接收到一位数据后就让RI为零,关闭中断
}
}
//下面是串口发送程序
void Com_Init(void)//串口初始化
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
void send(char A)//串口发送程序
{
SBUF = A;
while(!TI) //如果发送完毕,硬件会置位TI
{
_nop_();
}
TI = 0; //TI清零
}