C8051F120单片机双串口配置(uart0,uart1)

本文详细介绍了如何配置C8051F120单片机的双串口通信,包括IO配置、XBR寄存器设置以启用串口0和串口1,以及内部晶振的配置。串口0被分配到P0.0和P0.1,串口1则分配到P0.2和P0.3。接收中断和打印函数的设定使得串口1能在方式1或3下工作,波特率由TIM1溢出产生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.介绍IO配置及XBR配置

XBR0=0X40;//使能串口0 分配到IO口P0.0 P0.1

XBR1=0;

XBR2=0X44;//使能XBR交叉开关IO控制器 使能串口1并绑定到IO口上


这里串口0 TX,RX优先级最高:P0.0,P0.1

之后仅使能了串口1那么串口1 TX,RX分配在P0.2,P0.3


P1DOUT=0xff;//选择IO口推挽输出


2.内部晶振配置(本程序中使用的是内部晶振)

SFRPAGE=CONFIG_PAGE;

//使用内部晶振
	OSCICN=0x83;
	//while(!OSCICN&0x40);//等待晶振稳定
	CLKSEL=0x00;//输出时钟不分频 时钟源来自内部振荡器
	CKCON=0x18;//TIM0=SYSCLK TIM1=SYSCLK

3.串口0的配置

void usart0_init()//接收数据的串口 bps19200
{
	SFRPAGE   = UART0_PAGE; //0
	SCON0=0x50;//方式1 允许接收
	SSTA0=0x05;

	SFRPAGE= TMR2_PAGE;
	TMR2CF=0x8;
	TMR2CN=0x8;
	RCAP2L=0xB0;
	RCAP2H=0xff;
	
	TR2=1;
	TI0=0;
	RI0=0;
	ES0=1;//开串口0中断
	EA=1;
}
这里设置的波特率为19200 可以根据数据手册中的公式调整RCAP2L,RCAP2H来改变波特率,采用8位可变波特率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值