单片机读写24c02的问题

2024-11-25 22:04:43
推荐回答(2个)
回答1:

当然左移右移都是可以的,这里用的是左皮卜移
1 左移方法 (高到低)
SDA=(bit)(input&0x80); input&0x80将input与上0x80就是取input最高位送到线上,input=input<<1;当然将input左移,利用循环8次,将input数据8次由高到低送到线上,写入进去.
2 右移方法(低到高)
SDA=(bit)(input&0x01); 就是取input最低位送到线上,当然将input左燃誉穗移8次input=input>>1;当然将input右移虚碰8次,将数据8次由低到高送到线上,写入进去.

回答2:

这是输出弊悔数据,吧字节input中每个bit的通过特定的时序输蚂羡出到端口,比如input=0xAA,那么就会在端口位SDA上按照时序输出10101010,这时候input变成什么样子都无所谓了。而且I2C总线要求数闷卜拍据的高位在前,低位在后。