#include <AT89X52.h> //调用51单片机的头文件
//---------------------------------------
//串口接收寄存器设置
unsigned char USARTbuf; //设置8位的unsigend char型寄存器用来暂存串口接收内容
void main(void) //主函数,单片机开机后就是从这个函数开始运行
{
//*****USART串口初始化*****
TMOD&=0x0F; //把TMOD高4位清0
TMOD|=0x20; //将TMOD的M1位置1,设置成自动装入的8位定时器
TH1=0xFA; //设置波特率为9600
TL1=0xFA; //设置波特率为9600
TR1=1; //启动定时器T1,作为串口波特率发生器
SCON=0x50; //10位异步收发,波特率由定时器控制,允许串口接收
ES=1; //允许串口中断
EA=1; //开全局中断
while(1) //死循环,单片机初始化后,将一直运行这个死循环
{
}
}
void UART_SER (void) interrupt 4
{
if(RI==1) //如果接收标志位为1,说明有数据接收完毕
{ //RCIF在寄存器被读出后自动清零
USARTbuf=SBUF; //将接收缓冲区内容转至USARTbuf寄存器中
RI=0; //清除接收标志位
SBUF=USARTbuf; //将接收到的内容后发送出去
while(!TI); //一直等到数据发送完毕
}
if(TI) TI=0; //如果是发送引起的中断,清零
}
因篇幅问题不能全部显示,请点此查看更多更全内容