欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
用軟件在51單片機上模擬IIC的源碼
[打印本頁]
作者:
Zero_zoo
時間:
2017-5-1 20:01
標題:
用軟件在51單片機上模擬IIC的源碼
用軟件在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;
}
作者:
cpfmly
時間:
2018-1-8 23:19
學習一下!
作者:
a429772682
時間:
2018-4-19 22:59
看看,, 學習下
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1