atmel 89c2051设置或清除C中的各个寄存器位

时间:2012-11-10 11:02:39

标签: c atmel

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

当端口1位0为0时,

执行(某事)

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

1 个答案:

答案 0 :(得分:0)

屏蔽您的port变量,然后进行简单的真/假测试。例如:

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

上面的代码创建了一个新的“掩码”变量,1移位到PD1的位置(实际变量为0b000000100x02) 。那个“掩码”然后AND读取引脚:一切都变为0(因为两个位必须为1,结果为1),除了你正在测试的位置。结果是0或大于0的某个数字,它将在布尔测试中评估为true