为什么 SETB EA ,然后,SETB ET0 , 这两条位操作指令可以合并为1条字节指令:MOV IE , #82H
发布网友
发布时间:2023-07-04 09:21
我来回答
共5个回答
热心网友
时间:2023-10-11 22:04
SETB ET0 ;开定时/计数器0允许
SETB是汇编指令,意思是把其后面的那个寄存器的位置1。
ET0是定时/计数器0的中断容许位,为1时,单片机会响应定时/计数器0的溢出中断(当然,总中断也必须容许)。为0时,单片机不响应。
这句意思就是,把ET0置为1。这会导致单片机会响应定时/计数器0的溢出中断
SETB TR0 ;定时/计数器0开始运行
TR0是单片机会响应定时/计数器0的启动位,为1,就启动定时/计数器0;为0,就停止定时/计数器0的运行。
热心网友
时间:2023-10-11 22:05
我猜是 值82H对寄存器IE 的作用,EA,ET0是什么?肯定与IE有关系。
这是汇编吗?我自学过一点。。。。。。。。。。。。。
热心网友
时间:2023-10-11 22:05
因为CPU对中断源的开放或中断屏蔽的控制是通过中断允许寄存器IE设置的。AT89S52单片机中的6个中断矢量都是可屏蔽中断,通过对IE的某些位置位和清0,即可允许或禁止某个中断。
IE既可按字节地址寻址(其字节地址为A8H),又可按位寻址。
其中EA(IE.7) ——中断允许控制位,ET0(IE.1) ——T0中断控制位
本例:开放T0中断
字节操作:MOV IE,#82H 或 MOV 0A8H,#82H
位操作:SETB EA
SETB ET0
这里字节操作和位操作是等效的。
热心网友
时间:2023-10-11 22:06
两个都可以啊。。。谁说不可以的。。
热心网友
时间:2023-10-11 22:07
我也不懂。估计是所操作的内存结果是一样的。