51单片机定时器0和定时器1同时使用的问题!高手知道下!

以下是我的初始化程序!为什么我打开定时器0之后串口就没反应了呢?晶振是18.432Mhz的
TMOD |= 0x21; // 定时器1工作于8位自动重载模式, 用于产生波特率
TH1 = 0xFB; // 波特率9600
TL1 = 0xFB;
SCON = 0x50; // 设定串行口工作方式
PCON &= 0xef; // 波特率不倍增
TR1 = 1; // 启动定时器1
IE = 0x0; // 禁止任何中断
TH0=0x10; /*高八位赋初值*/
TL0=0x00; /*低八位赋初值*/
EA=1; /*开中断总*/
ET0=1; /*允许T0中断*/
TR0=0; /*开启定时器*/
PS=1; /*串口优先中断*/
EA=1; /*总中断*/
ES=1; /*串口中断*/

第1个回答  2011-07-28
为什么我打开定时器0之后串口就没反应了呢?
----
如果不打开开定时器0,串口有什么反应?
第2个回答  2011-07-20
会不会是你的定时中断1的初值设置的太大?
第3个回答  2011-07-16
你串口和定时器0都是用的TH0和TL0吧?当然一个工作另一个就不能工作了呀?
第4个回答  2011-07-16
中断都打开,根据需要设置优先级就可以了
追问

我中断都打开了啊!定时器0一工作,串口就没有反应了!

第5个回答  2011-07-15
你的定时器T0的中断程序呢?如果没有T0中断程序,计数器溢出引起的中断它到哪里去执行?追问

/*****************************定时器0中断程序*******************************/
void TimerSerive(void) interrupt 1 using 1
{
TH0=0x10; /*高八位赋初值*/
TL0=0x00; /*低八位赋初值*/
Tx++;
if(Tx==25)
{
Second++;
SBUF=Second;
Tx=0;
}
}

相似回答