atmel 89c2051 在 C 语言中设置或清除单个寄存器位



我正在编写一个 atmel 89c2051 控制器。我想根据每个寄存器位的状态制定条件,例如:

做(某事),而端口 1 位 0 为 0

我尝试使用 while P1_0但编译器返回未声明的标识符错误。我该怎么做呢?谢谢

屏蔽端口变量,然后执行简单的真/假测试。例如:

while (PIND & (1<<PD1))
{
// Do stuff.
}

上面的代码创建了一个新的"mask"变量,该变量1移动到PD1的位置(实际变量是0b000000100x02)。然后AND该"掩码"并读取引脚:一切都变得0(因为必须1两个位才能1结果),除了您正在测试的位置的位。结果要么是0个,要么是某个大于0的数字,这将在布尔测试中计算为true

最新更新