STC89C52单片机中断和定时器问题:TMOD/TH0/TL0/EA/ET0/TR0它们之间的关系是什么啊?
学长能否用一个结构图和一些语言描述解释一下它们的关系和用法呢?举一个例子也可以啊~~谢谢学长了,我刚开始学习单片机~~~~...
学长能否用一个结构图和一些语言描述解释一下它们的关系和用法呢?举一个例子也可以啊~~谢谢学长了,我刚开始学习单片机~~~~
展开
2个回答
展开全部
这些寄存器实际试几次就能深刻明白他们的用途了,说的话担心你可能还是不能完全理解。
EA是总中断开关,当EA=0时,单片机不执行任何中断,因此如果想要单片机进入中断,EA必须赋值为1。
ET0、ET1是定时/计数器T0、T1的中断开关,其值为0时对应的中断失效(有争议)
TR0、TR1是定时/计数器T0、T1的运行控制位,等于1时对应的定时/计数器才开始运行,等于0时停止运行
TMOD是设置中断参数的寄存器,定时/计数器T0、T1的计数模式、控制方式、功能都由这个寄存器控制
TH0、TL0时定时/计数器T0的计数变量,计数时,这两个寄存器会不停的加一,直到溢出引起中断。通常在这两个寄存器中设置不同的初始值,从而设置从开始到溢出的时间和次数
这些都是标准MCS-51中的中断结构,实际上你所使用的STC89C52RC是增强型的51单片机,它还有T2定时/计数器和对应的控制位。
EA是总中断开关,当EA=0时,单片机不执行任何中断,因此如果想要单片机进入中断,EA必须赋值为1。
ET0、ET1是定时/计数器T0、T1的中断开关,其值为0时对应的中断失效(有争议)
TR0、TR1是定时/计数器T0、T1的运行控制位,等于1时对应的定时/计数器才开始运行,等于0时停止运行
TMOD是设置中断参数的寄存器,定时/计数器T0、T1的计数模式、控制方式、功能都由这个寄存器控制
TH0、TL0时定时/计数器T0的计数变量,计数时,这两个寄存器会不停的加一,直到溢出引起中断。通常在这两个寄存器中设置不同的初始值,从而设置从开始到溢出的时间和次数
这些都是标准MCS-51中的中断结构,实际上你所使用的STC89C52RC是增强型的51单片机,它还有T2定时/计数器和对应的控制位。
推荐于2016-11-28
展开全部
void Inittimer0() ---------------定时器0中断初始化子程序
{
TMOD=0x01; -----------------定时器0(T0)方式1
TH0=th0; -----------------------初始值TH0(变量带入)
TL0=tl0;------------------------ 初始值TL0
EA=1; --------------------------中断总允许位
ET0=1; -------------------------T0中断允许
TR0=1; }------------------------T0工作开始
{
TMOD=0x01; -----------------定时器0(T0)方式1
TH0=th0; -----------------------初始值TH0(变量带入)
TL0=tl0;------------------------ 初始值TL0
EA=1; --------------------------中断总允许位
ET0=1; -------------------------T0中断允许
TR0=1; }------------------------T0工作开始
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询