单片机串口通信与电脑

#include       //调用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;           //如果是发送引起的中断,清零
}

你可能感兴趣的:(单片机串口通信与电脑)