一、C8051F340串口介绍
UART0 是一个异步、全双工串口,它提供标准 8051 串行口的方式 1 和方式 3。UART0具有增强的波特率发生器电路,有多个时钟源可用于产生标准波特率。接收数据缓冲机制允许 UART0 在软件尚未读取前一个数据字节的情况下开始接收第二个输入数据字节。
UART0 有两个相关的特殊功能寄存器:串行控制寄存器(SCON0)和串行数据缓冲器(SBUF0)。用同一个 SBUF0 地址可以访问发送寄存器和接收寄存器。写 SBUF0 时自动访问发送寄存器;读 SBUF0 时自动访问接收寄存器,不可能从发送数据寄存器中读数据。
二、串口通讯程序
1、程序简介
本程序是通过C8051F340的uart0与PC进行串口通讯。当C8051F340从接收到从PC传来的数据后,将数据原样回发给PC机 ,端口为RX=P0.5,TX=P0.4。
2、头文件部分
#include <c8051f340.h>
void PORT_Init (void);
void UART0_Init (void);
3、主程序部分
void main()
{
char g;
PCA0MD &= ~0x40;
OSCICN |= 0x03;
PORT_Init();
UART0_Init();
while(1)
{
while(RI0==0);
g=SBUF0;
RI0=0;
if(g!='\0')
{
SBUF0=g;
while(TI0==0);
TI0=0;
g='\0';
}
}
}
4、端口初始化函数
void PORT_Init (void)
{
XBR0 = 0x01;
XBR1 = 0x40;
P0MDOUT = 0x10;
}
5、串口UART0初始化函数
void UART0_Init (void)
{
SCON0 |= 0x10;
CKCON = 0x01;
TH1 = 0x64; //波特率为9600
TL1 = TH1;
TMOD = 0x20;
TR1 = 1;
TI0 = 1;
}