|
51的串口时钟来自于Timer1,根据书上的说明计算公式应该如下:
如果PCON.SMOD=0,则:
TH1 = 256 - ((Crystal / 384) / Baud)
如果PCON.SMOD=1,则:
TH1 = 256 - ((Crystal / 192) / Baud)
而P89v51rd2数据手册中关于串口模式2波特率的说明如下:
The baud rate is programmable to either 1/16 or 1/32 of the CPU clock frequency, as determined by the SMOD1 bit in PCON.
手册中再也没有其他关于波特率的说明。
而实际编程时发现,晶振使用18.432MHz,设置PCON.SMOD1=0,TH1=251时,串口波特率为19200;而设置PCON.SMOD1=1,TH1=251时,串口波特率既不是19200也不是9600。
疑惑,按照上面的计算公式,应该是SMOD=1时波特率为19200,SMOD=0时波特率为9600才对啊?即便是P89v51rd2单片机本身特殊,在SMOD=0时波特率为19200,那大概猜测应该在SMOD=1时波特率为9600啊?
望用过P89V51RD2的朋友指点,谢谢! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|