SBUF本来就是串口数据寄存器,实际上它包括两个寄存器,读地址和写地址是不同的。
读是读串口接收到的数据,接收到一个数据时RI标志位被硬件置1。
写一个数据到SBUF就会自动发送,发送完成后TI标志位被硬件置1。
要注意上面两个标志必须由软件清零 不然不会继续工作。
下面是串口简单配置:
#define BAUDRATE 0xFF
TMOD=0x21; /*定时器0用方式1,定时器1用方式2*/
SCON=0x50; /*串行通信采用方式1,允许接收*/
TH1=BAUDRATE; /*设置波特率*/
TR1=1;
波特率你自己去查表吧,
如下即可:
SBUF=0x99;
用电脑的调试助手,接收,即可得到 0x99。