久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 這個IIC總線單片機函數中的SDA怎么只有一位啊 [打印本頁]

作者: m2478085531    時間: 2018-4-21 23:52
標題: 這個IIC總線單片機函數中的SDA怎么只有一位啊
用軟件在51上模擬IIC
void delay10us(void)   //誤差 0us
{
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=10;a>0;a--);
}

void delay10ms(void)   //誤差 0us
{
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=47;a>0;a--);
}

void init()
{
    SCL=1;
    delay10us();
    SDA=1;
    delay10us();

}

void startIIC(void)     //啟動IIC
{
    SDA=1;
    delay10us();
    SCL=1;
    delay10us();
    SDA=0;
}

void respond()  //等待應答
{
    char i;
    SCL=1;
    delay10us();
    while(SDA==1&&i<256)         //SCL=1時,若SDA接收到低電平則表明接收正常,至于i是防止程序在此處鎖死,防止IIC鎖死,一定時間未接收到型號后退出
        i++;
    SCL=0;
    delay10us();
}

void stopIIC()
{
    SCL=1;
    SDA=0;
    delay10us();
    SDA=1;
    delay10us();
    SCL=0;
}

void senddata(char udata)
{
    char i, temp;
    temp=udata;
    for(i=0;i<8;i++)
    {
        temp=temp<<1;
        SCL=0;
        delay10us();
        SDA=CY;
        SCL=1;
        delay10us();
    }

    SCL=0;                            //這之后還要發個1
    delay10us();
    SDA=1;
    delay10us();
}

char readdata()
{
    char i, k;
    SCL=0;
    delay10us();
    SDA=1;
    for(i=0;i<8;i++)
    {
        SCL=1;
        delay10us();
        k=(k<<1)|SDA;
        SCL=0;
        delay10us();
    }
    return k;
}
void write_address(char address, char udata)
{
    startIIC();
    senddata(0xa0);
    respond();
    senddata(address);
    respond();
    senddata(udata);
    respond();
    stopIIC();
}

char read_address(char address)
{
    char date;
    startIIC();
    senddata(0xa0);
    respond();
    senddata(address);
    respond();
    startIIC();
    senddata(0xa1);
    respond();
    date=readdata();
    respond();
    stopIIC();
    return date;
}   




這個函數中的這個的SDA怎么只有一位啊。發送的時候SDA都是一個字節,怎么到讀取時就只有一位啊求指教

char readdata()
{
    char i, k;
    SCL=0;
    delay10us();
    SDA=1;
    for(i=0;i<8;i++)
    {
        SCL=1;
        delay10us();
        k=(k<<1)|SDA;
        SCL=0;
        delay10us();
    }
    return k;
}
作者: ssp97    時間: 2018-4-22 11:35
readdata()這個函數在讀取的過程中循環了8次,剛好是8個位,一個字節




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲免费大片 | 久草在线在线精品观看 | 亚洲高清视频在线观看 | 免费成人国产 | 四色永久| 999久久久精品 | 精品91视频| 国产精品成人一区 | 91视频a| 国产精品国产精品国产专区不卡 | 国产精品色av| 中文欧美日韩 | 日韩成人 | 黄色免费av| av免费电影在线 | 91精品久久久 | 992tv人人草| 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 视频一区在线观看 | 欧美中文视频 | 国产精品日韩在线观看一区二区 | 国产免费一区二区 | 国产精品久久久久久久久久了 | 超碰av在线 | 成人国产精品 | 久久久精品天堂 | 中文字幕爱爱视频 | www.亚洲| 国产成人免费 | 国产一二区免费视频 | 欧美一区二区在线观看 | 人人插人人 | 91不卡| 黄网站色大毛片 | 黄色大片免费看 | 免费网站在线 | 亚洲成人黄色 | 一级免费黄色 | 黄色片在线免费看 | 成人高清视频在线观看 | 亚洲高清在线 |