- void writebyte(char date)
- {
- char i,temp;
- temp = date;
- for( i = 0; i < 8; i++)
- {
- temp = temp<<1;
- SCL = 0;
- delay();
- SDA = CY;
- delay();
- SCL = 1;
- delay();
- }
- SCL = 0; // scl 为什么要拉低?
- delay();
- SDA = 1 ; // sda 为什么要拉高?
- delay();
- }
- char readbyte()
- {
- char i,k;
- SCL = 0;
- delay();
- SDA = 1; //这里的scl 和 sda 为何要分别为低电平和高电平?
- delay();
- for(i = 0; i < 8;i++)
- {
- SCL = 1; //当 scl为高电平的时候数据不可以改变
- delay();
- k = ( k<<1 )|SDA;
- SCL = 0;
- delay();
- }
- return k;
- }
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
- SCL = 0; // scl 为什么要拉低?
- delay();
- SDA = 1 ; // sda 为什么要拉高?
-
复制代码如果要释放总线 scl 不应该也是高电平吗? 然后等待应答信号一周热门 更多>