80c51单片机指令

来源:百度知道 编辑:UC知道 时间:2024/05/25 23:20:30
如果我想用外部中断0,首先得开启总中断EA=1,然后再开启外中断EX0=1,因为它们的字节地址为A8H,那么我可不可以直接用MOV指令把10000001B这个数传到A8H里面?从而达到我用外部中断0的目的。比如先把这个数传到A里面,再把A传到A8H里面。这样好像不行,但我不知道为什么不行。目前我知道的就是只能用SETB EA,这个置1指令了,除了用这个SETB指令外还有其它方法吗?

可以直接用MOV 0A8H,#10000001B,因为A8H是特殊功能寄存器支持直接寻址,但是在大于9的数前面都要加0,加了0就可以识别。
因为A8H对应的寄存器是IE,也可以 MOV IE,#10000001B

要看你头文件中的定义了,一般默认是:
IE在头文件中定义的是特殊寄存器,可以被直接寻址,所以可以用 MOV IE,#81H 来给特殊寄存器赋值.
EA、EX0在头文件中定义的是可寻址位,如果要直接对这两个为进行操作的话,可以用SETB指令, SETB EX0 SETB EA

要分清楚定义的什么,改用什么来访问.

mov IE,#81H