单片机c语言里怎么用2个定时器
展开全部
有几个步骤。
首先说明一下几个和定时器有关的寄存器。
第一,方式控制寄存器TMOD,地址89H,不可位寻址,这个寄存器可以对定时器的工作方式进行设置。
第二,TCON寄存器,地址88H,可以位寻址,控制寄存器的开启关闭,寄存器的溢出标志也在这个寄存器中。
第三,中断控制寄存器IE,用来控制各中断的开启或关闭。
现在开始介绍2个定时器的用法
1。设置TMOD
2。分别给两个定时器赋初值
3。开中断
4。开启定时器
5。设置循环语句等待中断
下面举一个例子:
#include
void
main(void)
{
TMOD=0x01;//前四位控制t1,后四位控制t0
TH0=0x00;//赋初值
TL0=0x00;
TH1=0x43;
TL1=0x32;
EA=1;//开总中断
ET0=1;//开t0中断
ET1=1;//开t1中断
TR0=1;//开启定时器t0
TR1=1;//开启定时器t1
while(1)//等待中断
{
}
}
首先说明一下几个和定时器有关的寄存器。
第一,方式控制寄存器TMOD,地址89H,不可位寻址,这个寄存器可以对定时器的工作方式进行设置。
第二,TCON寄存器,地址88H,可以位寻址,控制寄存器的开启关闭,寄存器的溢出标志也在这个寄存器中。
第三,中断控制寄存器IE,用来控制各中断的开启或关闭。
现在开始介绍2个定时器的用法
1。设置TMOD
2。分别给两个定时器赋初值
3。开中断
4。开启定时器
5。设置循环语句等待中断
下面举一个例子:
#include
void
main(void)
{
TMOD=0x01;//前四位控制t1,后四位控制t0
TH0=0x00;//赋初值
TL0=0x00;
TH1=0x43;
TL1=0x32;
EA=1;//开总中断
ET0=1;//开t0中断
ET1=1;//开t1中断
TR0=1;//开启定时器t0
TR1=1;//开启定时器t1
while(1)//等待中断
{
}
}
展开全部
是51单片机吗?
如果是51单片机,你可以使用tmod设置两个定时器,然后使用tr0、tr1分别启动两个定时器。pt0置为“1”,就可以中断定时器1的服务函数,相反,如果pt1置为“1”就可以中断定时器0的服务函数。
如果不设置pt的值,默认为“0”,这样的话,t0和t1谁也不能中断谁。
如果是51单片机,你可以使用tmod设置两个定时器,然后使用tr0、tr1分别启动两个定时器。pt0置为“1”,就可以中断定时器1的服务函数,相反,如果pt1置为“1”就可以中断定时器0的服务函数。
如果不设置pt的值,默认为“0”,这样的话,t0和t1谁也不能中断谁。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你设置工作模式TMOD,看你要的定时器T0与T1都选上,先找个书看看那个该选,那个不该选??这些随便一个单片机书都会有的...有什么不懂再联系我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询