(求助)关于波特率减半的问题,请大侠解惑
时间:10-02
整理:3721RD
点击:
最近刚开始入门,照猫画虎,从网上东拼西凑搞了各1302的遥控时钟,通过串口进行调试。根据代码示例,波特率为9600,定时器为20ms。
可我实际测试时,波特率变为4800,1秒钟的定时器变成了2秒钟。搞了几天也没找到原因。烦请各位大侠指点一下。
相关波特率及定时器初始化代码如下:
TMOD=0x21;
TL1=0xfd; // 采用11.0592MHz的晶振,波特率9600bps
TH1=0xfd;
SCON=0x50;
PCON=0x00;
TR1=1;
ES = 1;
ET0=1;
TR0=1;
EX0=1;
IT0=1;
void Timer0() interrupt 1 //20ms中断1次,中断50次为1秒
{
TH0 = 0xb8;
TL0 = 0x00;
TIME20MS++;
if(TIME20MS==50)
{
TIME20MS=0; //1秒钟定时器
}
可我实际测试时,波特率变为4800,1秒钟的定时器变成了2秒钟。搞了几天也没找到原因。烦请各位大侠指点一下。
相关波特率及定时器初始化代码如下:
TMOD=0x21;
TL1=0xfd; // 采用11.0592MHz的晶振,波特率9600bps
TH1=0xfd;
SCON=0x50;
PCON=0x00;
TR1=1;
ES = 1;
ET0=1;
TR0=1;
EX0=1;
IT0=1;
void Timer0() interrupt 1 //20ms中断1次,中断50次为1秒
{
TH0 = 0xb8;
TL0 = 0x00;
TIME20MS++;
if(TIME20MS==50)
{
TIME20MS=0; //1秒钟定时器
}
补充一下,用的stc11f04e单片机,看手册里提到定时器默认是兼容51的12T模式,不知道跟这个有没有关系。
没有遇到这种情况的么?
