51单片机和PC串口异步通信
单片机和PC机间的通信有很多方式,下面的程序主要用到的是51单片机的异步串行通信。 一.51单片机的串行通信管脚 P3.1为单片机的TXD管脚(Transfer Data),P3.2为单片机的RXD管脚(Receive Data)。 通过TXD管脚可以将CPU要发送的数据输出,RXD管脚可以将串行数据线传来的数据读入。 二.51单片机的串行通信控制寄存器SCON,电源控制寄存器PCON SCON: 其中,SM0,SM1控制着串行通信的工作方式。 SM0 SM1 工作方式 说明 波特率 0 0 0 移位寄存器 fosc/12 0 1 1 10位异步收发器(8位数据) 可变 1 0 2 11位异步收发器(9位数据) fosc/64或fosc/32 1 1 3 11位异步收发器(9位数据) 可变 其中工作方式1在使用当中比较多。 SM2为多机通信控制位,SM2=1,允许多机通信,=0不允许,实现点对点通信。这里先不讨论。 TB8用于储存发送数据的第9位。在方式2和方式3中,发送数据除了起始位,数据位,停止位外,还有一位校验位,存储在TB8中。 RB8用于存储接收数据的第9位。接收到传来的代码后,数据位存储在SBUF中,而校验位就存储在RB8中。通过分析,可以判别接受的数据是否正确。 TI为发送中断请求标志。当发送数据缓冲区为空的时候,TI通过硬件置1,通知CPU数据发送完毕