• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

AVR的i/o口问题

版主 :这个问题虽虽然有帖子涉及过,但我还是要说,因为我想了好久都没有想明白.

portb&=~bit(pb2)置0

portb I=bit(pb2) 置1

我想问:portb=portb&{~bit(pb2)}中 pb2 表示是portb口的第二b位,先取反 ,它只是一位,如何可以与

portb八位相与.想得头都大了~~~~~~~~~~~
全部回复(4)
正序查看
倒序查看
2009-03-10 08:07
你先这样想,在PORTB寄存器里,假如PORTB=0X00,假设B=0,PORTB的第B位置1后,PORTB=0X01,取反后PORTB=0X00,再与PORTB,则能想明白了,不知道说的对不对,请各位拍砖
0
回复
2009-03-10 14:42
后来问了高手,他们这样解释:
bit(pb2)=(0000 0010)
所以~bit(pb2)=(1111 1101)
所以portb&=~bit(pb2)=(0000 0000)置0
以此类推 portbI=bit(pb2)=(0000 0010)置1
0
回复
2009-03-10 15:27
@pengchuang0819
后来问了高手,他们这样解释:bit(pb2)=(00000010)所以~bit(pb2)=(11111101)所以portb&=~bit(pb2)=(00000000)置0以此类推portbI=bit(pb2)=(00000010)置1
同理
0
回复
2009-03-10 16:56
@luohongzhi
同理
o ~~~
  谢谢~~
0
回复