问题很简单,用起来很麻烦!
换个晶振
晶振的大小是规定的,不能换成别的,只能用
计算后误差太大!能说明为什么不能关晶振吗
可以产生9600BPS的波特率,误差为零 见内--------》》》》
系统的要求造成的,因为单片机还要接一个8
对补起!请用T2做波特率发生器,时间常数
用T2做波特率发生器,那么用T2的方式几
刚才没找到资料,现在告诉你:T2有一个专
T2作定时器是计的是晶振的周期,非机器周
用T2做波特率发生器,自动重装载方式,他
非常感谢你提供的信息。我以前没用过T2,
你先看看书,相信能找到正确的方法,若真的
能不能回答我一个简单的问题:串口波特率与
你的信息对我来讲很重要!非常感谢!而且我
晶振9.8304M,对于T1、T0,计算
说实在的,我对单片机现在是入门阶段,对好
;******************* WRIT_BTL: ;写入波特率
MOV A,BTL
BTL1:
CJNE A,#01H,BTL2
MOV RCAP2H,#0FFH ;2.4K
MOV RCAP2L,#70H
SETB TR2
RET
BTL2:
CJNE A,#02H,BTL3
MOV RCAP2H,#0FFH ;4.8K
MOV RCAP2L,#0B8H
SETB TR2
RET
BTL3:
CJNE A,#03H,BTL4
MOV RCAP2H,#0FFH ;9.6K
MOV RCAP2L,#0DCH
SETB TR2
RET
BTL4:
CJNE A,#04H,BTL5
MOV RCAP2H,#0FFH ;19.2K
MOV RCAP2L,#0EEH
SETB TR2
RET
BTL5:
CJNE A,#05H,BTL6 ;38.4K
MOV RCAP2H,#0FFH
MOV RCAP2L,#0F7H
SETB TR2
RET
BTL6:
CJNE A,#06H,BTL7 ;115.2K
MOV RCAP2H,#0FEH
MOV RCAP2L,#0FDH
SETB TR2
RET
BTL7:
MOV RCAP2H,#0FEH ;1.2K
MOV RCAP2L,#0E0H
SETB TR2
RET
你的程序中对T0和T1都做了设置,它们是
计算公式:波特率=T2溢出率/16