发布网友 发布时间: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工作开始