一、首先用软件模拟
经过验证,用软件配置115200波特率,在C51里面是行不通的,因为寄存器有限
此时应该翻阅手册看看,是否有其他的解决办法
二、查阅手册
发现定时器2,其实是C52的,也正是C52比C51增强的地方
配置思路
---------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
根据以上的问答,大致思路如下:
一、初始化串口(使能接收)
二、配置波特率(115200)
其实以上可以代替为
三、配置中断
------------------------------------------------------------------------------------
所以最终配置
void UartInit3( void ) //配置波特率115200
{ SCON = 0x50; //串口工作方式1,8位UART,波特率可变 TH2 = 0xFF; TL2 = 0xFD; //波特率:115200 晶振=11.0592MHz RCAP2H = 0xFF; RCAP2L = 0xFD; //16位自动再装入值/*****************/TCLK = 1; RCLK = 1; C_T2 = 0; EXEN2 = 0; //波特率发生器工作方式/*****************/TR2 = 1 ; //定时器2开始EA = 1; //总中断ES = 1; //串口中断标志位PS = 1; //设置串口优先级为最高
}
参考文章:
1、51单片机 11.0592MHz 产生115200 波特率_用定时器2做115200波特率-CSDN博客
2、51汇编:T2----------没有人用过这个吗?-CSDN博客