51单片机怎么同时开启T0和T1,我有个程序使用了两个定时器,但是只有T1再跑。T0没有反应,仿真的也是这样

我单独开启T0的时候,T0是可以正常工作的。
具体程序如下。初始化程序 TMOD = 0x17; //定时器0/1工作在16位定时模式;
TH1 = 60000 >> 8; //定时器0赋初值高8位,晶振24M定时时间30ms;
TL1 = 60000 & 0x0f; //定时器0赋初值低8位,晶振24M定时时间30ms;
TH0 = (65535 - 500) >> 8; //定时器1赋初值高8位;
TL0 = (65535 - 500) & 0x0f; //定时器1赋初值低8位;
ET1 = 1; //允许中断1中断;
ET0 = 1; //允许中断0中断
TR1 = 1; //开定时器1;
TR0 = 1; //开定时器0;
EA = 1; //开总中断;
****************T0中断服务函数*************************
void t0_interrupt(void) interrupt 1 //控制频率
{
TH0 = (65535 - 500) >> 8; //定时器1赋初值高8位;
TL0 = (65535 - 500) & 0x0f; //定时器1赋初值低8位;
if(!temp)
{
led2 = ~led2;
temp = time[flag2];
}
else temp--;
}
****************T1中断服务函数*************************
void t1_interrupt (void) interrupt 3 //控制频率的持续时间
{
TH1 = 60000 >> 8; //定时器1赋初值高8位;
TL1 = 60000 & 0x0f; //定时器1赋初值低8位;
if(!flag) //如果循环次数标记位为0则表示定时时间到;
{
flag1 = !flag1; //将间歇标记位去反;
flag = 10; //重新给间歇标记位赋值;
}
else flag--;

}

TMOD=0001 0111,这样T0工作在方式3,T1会受影响。T1不能当计数器用。
改为:
TMOD=0001 0101(15H)
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-27
TMOD = 0X11;

你改一下。本回答被提问者采纳

请教51单片机关于T0,T1同时工作的问题
51单片机T0,T1可以同时工作,或者 T0、T1、T2、T3 --- 都可以同时工作,也可以同时工作在中断方式。

51单片机的3个定时器怎样使用?
51单片机只有T0,T1。52才有T2的。定时器设置方法:做定时用一般采用16位模式,也就是TMOD=0x11(10或01单独一个定时器的话),初值的计算是这样的:假设时间是X毫秒,晶振为YMhz,那么:THn=(65536-1000*X*Y\/12)\/256 TLn=(65536-1000*X*Y\/12)%256 之后就是TRn=1(开启定时器)ETn=1(开启...

51单片机使用T0和T1外部脉冲计数,C语言如何编程?
使用T0和T1外部脉冲计数,控制两个电机,到1700个脉冲电机停止,--统计脉冲个数,用外部中断更好。--T0和T1,留着定时用。用四个按键控制,按键1控制电机正转,按键2控制电机反转,按键3控制电机1正转,按键4控制电机2正转,怎么用C语言编程?--编程前,要先设计出来电路。

单片机汇编语言问题:同时启动T0,T1。一个工作在定时器模式,一个工作在...
那么 TMOD=0101 0001 =51h;就是T1方式1计数器模式,T0方式1定时器模式 mov TMOD,#51

单片机c语言里怎么用2个定时器?怎么设置优先级?
是51单片机吗?如果是51单片机,你可以使用TMOD设置两个定时器,然后使用TR0、TR1分别启动两个定时器。PT0置为“1”,就可以中断定时器1的服务函数,相反,如果PT1置为“1”就可以中断定时器0的服务函数。如果不设置PT的值,默认为“0”,这样的话,T0和T1谁也不能中断谁。

51单片机的T0或T1可以同时作为定时器又作为I\/O口使用吗?这样做时两个...
T0 T1式定时器\/计数器,当定时或计数完成时,单片机产生中断,在中断服务程序中,你可以进行I\/O控制,例如T0的输出可以作为T1的输入脉冲。

怎样使用51单片机的定时器?
51单片机定时器\/计时器的使用 步骤:1、 打开中断允许位:对IE寄存器进行控制,IE寄存器各位的信息如下图所示:EA: 为0时关所有中断;为1时开所有中断 ET2:为0时关T2中断;为1时开T2中断,只有8032、8052、8752才有此中断 ES: 为0时关串口中断;为1时开串口中断 ET1:为0时关T1中断;为1...

STC51单片机同时使用定时器0定时器1和串口
用 T1 控制波特率,此期间,T1 就不能用来中断了。其实,想要实现定时,有一个 T0 足以满足各种需求。T1,就不应该用来做定时用。T2,是有的。

单片机T0和T1能同时工作吗?怎么工作的望详解!
可以同时工作,但不能同时中断。一个定时器中断结束后另一个才能进入。当设定工作模式(有TMOD寄存器设置)后当TRx=1时就开始工作了,当ETx=1时,溢出时就申请中断。如果EA=1,那么就可以进入中断了。

51单片机用定时器T1或T2作为波特率发生器,为什么不用T0。
51单片机只有 T1、T0,没有T2(52才有)。如果工作在方式0,方式1、方式2 的话,51单片机的T0、T1都可以做波特率发生器(一般是方式2做波特率发生器)。但是T0可以工作在方式3,T1不能工作在方式3。这种情况下,只能用T1作为波特率发生器,T1 的资源TF1、TR1给了t0,t0工作在方式3,可以当做定时器...

相似回答