(8051)检查是否设置了一个位

时间:2010-06-09 15:53:48

标签: 8051

我正在为8051微控制器编写程序。在程序的第一部分,我做了一些计算,根据结果,我要么点亮LED,要么不点亮(使用CLR P1.7,其中P1.7是LED在微控制器中连接的端口。 / p>

在程序的下一部分中,我想要检索该位,可能将其存储在某处,并在像JB这样的if-jump指令中使用它。我怎么能这样做?

另外,我在代码示例中看到了MOV C, P1.7指令。这里的C是什么?

2 个答案:

答案 0 :(得分:4)

这里的C是8051的进位标志 - 因为它可以用来在多个字节上进行加法运算时保持“进位”。

它也可以用作单比特寄存器 - 所以(如此处)你想要移动位,你可以用一个端口值(例如P1.7)加载它然后将它存储在其他地方,例如:

MOV C, P1.7
MOV <bit-address>, C

然后您可以使用以下命令对其进行分支:

JB <bit-address>, <label>

答案 1 :(得分:1)

某些特殊功能寄存器也可以进行位寻址。我相信它的所有结尾都是0或8.在我面前没有参考,但你可以做类似setb r0.1的事情。这样,如果你需要携带物品,你不必担心推动它并占用堆栈上的空间。