将winAVR用于以下代码。在8位密码中设置一位而不更改其他位
我得到了一个8位的PIN码,我需要用00000010或0x02来设置第7位。
现在我要做的是以下几点:
- 设置端口B位7
- 等待1ms的
- 清除B端口位7
- 等待19ms
但是,我不应该在这些步骤中更改其他位。
所以,我必须:
- 读B口
- 将位需要
- 写入修改后的值回港
- 清除位
- 写回端口B
所以我的测试代码是:
B=PINB|0x02
Loop delay for 1ms
BP=PINB&0x00
Loop for 19ms
但我认为在这个过程中其他位将被改变,我的问题是,我应该如何操纵8位端口的一个位而不改变其他位?
非常感谢!
感谢您的回答! :) – NLed 2010-11-01 00:31:39