void main()
{
unsigned char Message;
//init
SP=0x60;
SCON = 0x50;
TMOD = 0x20; // timer 1 mode 2 auto reload
TH1= 0xfa; // 4800 8n1
TL1=0xfa;
PCON=0x00;
TR1 = 1; // run timer1 TR1=1;
while(1)
{
REN=1;
while(!RI){};
RI =0;
Message=SBUF;
SBUF=Message;
while(!TI){};
TI=0;
}
}
我用的4800拨特率,晶振11.0592
我用C51向计算机发送单个字节时怎么老是乱码,发01显示81,发11显示B1,只有发F0,F1等是对的,好象高位自动变为1了
我用串口调试助手的,里面设置的是数据位8位呀,停止1位,校验无
不知道是不是晶体的误差产生的...
您可以这样,微调一下定时器的值?
试试...
至少现在从程序上看是没有问题的
呵呵,问题找到了,原来我的仿真机里面的晶振没设置成用户晶振,导致仿真时用的是系统晶振12M的,而不是用的11M