后续1:看了各位高手的回复: 看书上,1200用T1: 0Xe8.实际验证:错误
用软件,0xe7.实际验证,错误。
看到有的例程上,2400 用的是0xe8.验证:正确。 为什么呢?
代码如下:
TMOD=0x22; /*定时器1为工作模式2(8位自动重装),0为模式2(8位
自动重装) */
PCON=00;
TR0=0; //在发送或接收才开始使用
TF0=0;
/**问题在这里**//
TH0=256-96; //9600bps 就是 1000000/9600=104.167微秒 执行的imer是
// 104.167*11.0592/12= 96 ;
//经验证,这样得出的TH0确实是9600. 如果改成1200.那么1000000/1200*11.0592/12=768.
TH0=256-768=-512.不对啊。且不说负值。TH0也就是8位大小。这根本不行啊。直接将TH0=0XE8,也不行。
请问,如果要是1200,程序怎么改???
TL0=TH0;
ET0=1;
EA=1;