STCC52单片机中断和定时器问题:TMOD/TH0/TL0/EA/ET0/TR0它们之间的关系是什么啊?

发布网友 发布时间:2022-04-25 18:19

我来回答

2个回答

热心网友 时间:2023-10-03 16:12

这些寄存器实际试几次就能深刻明白他们的用途了,说的话担心你可能还是不能完全理解。
EA是总中断开关,当EA=0时,单片机不执行任何中断,因此如果想要单片机进入中断,EA必须赋值为1。
ET0、ET1是定时/计数器T0、T1的中断开关,其值为0时对应的中断失效(有争议)
TR0、TR1是定时/计数器T0、T1的运行控制位,等于1时对应的定时/计数器才开始运行,等于0时停止运行
TMOD是设置中断参数的寄存器,定时/计数器T0、T1的计数模式、控制方式、功能都由这个寄存器控制
TH0、TL0时定时/计数器T0的计数变量,计数时,这两个寄存器会不停的加一,直到溢出引起中断。通常在这两个寄存器中设置不同的初始值,从而设置从开始到溢出的时间和次数
这些都是标准MCS-51中的中断结构,实际上你所使用的STCC52RC是增强型的51单片机,它还有T2定时/计数器和对应的控制位。

热心网友 时间:2023-10-03 16:13

void Inittimer0() ---------------定时器0中断初始化子程序
{
TMOD=0x01; -----------------定时器0(T0)方式1
TH0=th0; -----------------------初始值TH0(变量带入)
TL0=tl0;------------------------ 初始值TL0
EA=1; --------------------------中断总允许位
ET0=1; -------------------------T0中断允许
TR0=1; }------------------------T0工作开始

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com