永发信息网

单片机I2C总线通信问题,高手进

答案:1  悬赏:0  手机版
解决时间 2021-07-19 14:37
单片机I2C总线通信传送多个字节的方法和读取多个字节的方法,有程序的最好,要C语言哦,没什么分给你们了,就5分了,不好意思,知道的麻烦说下
最佳答案

IIC总线工作原理


I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。



起始和终止信号 :SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。


数据传送格式(1)字节传送与应答


每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据。



AT24C02的芯片地址如下图,1010为固定,A0,A1,A2正好与芯片的1,2,3引角对应,为当前电路中的地址选择线,三根线可选择8个芯片同时连接在电路中,当要与哪个芯片通信时传送相应的地址即可与该芯片建立连接,TX-1B实验板上三根地址线都为0。最后一位R/W为告诉从机下一字节数据是要读还是写,0为写入,1为读出。






AT24C02的芯片地址(0xa0为写,0xa1为读)


任一地址写入数据格式








Void write_add(uchar address,


uchar info)


//指定地址写一个字节数据


{


start();


writebyte(0xa0);


respons();


writebyte(address);


respons();


writebyte(info);


respons();


stop();


}







任一地址读取数据格式







void init() //初始化


{


SCL=1;


delay();


SDA=1;


delay();


}


void start() //启动信号


{


SDA=1;


delay();


SCL=1;


delay();


SDA=0;


delay();


}


void stop() //停止信号


{


SDA=0;


delay();


SCL=1;


delay();


SDA=1;


delay();


}






void respons() //回应信号


{


uchar i=0;SCL=1;delay();


while((SDA==1)&&(i<255))i++;


SCL=0;delay();}


void writebyte(uchar date)// 写一个字节


{


uchar i,temp;


temp=date;


for(i=0;i<8;i++)


{


temp=temp<<1;


SCL=0;


delay();


SDA=CY;


delay();


SCL=1;


delay();


}


SCL=0;


delay();


SDA=1;


delay();


}






uchar readbyte()


//读一个字节


{


uchar i,j,k;


SCL=0;


delay();


SDA=1;


for(i=0;i<8;i++)


{


SCL=1;


delay();


if(SDA==1)


j=1;


else


j=0;


k=(k<<1)|j;


SCL=0;


delay();


}


delay();


return k;


}






uchar read_add(uchar address)


//指定地址读一个字节数据


{


uchar dd;


start();


writebyte(0xa0);


respons();


writebyte(address);


respons();


start();


writebyte(0xa1);


respons();


dd=readbyte();


stop();


return dd;


}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
much better与 much more better的区别是啥?
安徽芜湖美的公司
变形金刚从车变机器人的动画是如何实现的?
关于西施熊的配种问题...请帮忙~~~可能有点长
从农行汇款7万元需要多少手续费?
女友物质价太高,该如何决择?
小清新古诗词照片,文艺小清新的句子,越多越
GF亡灵战士兽人战士 怎么选择 纠结中。。。
英语翻译Vertical Horizon的一首歌……我觉得
我脸是那种有点BB 脸的应该拉直好还是电好呀
为什么地下城玩 不成呢???
右半脑的问题
这是什么字体丫
你喜欢的却喜欢你的好朋友,而你的好朋友却不
DNF_35级狂战穿什么装备,单刷图比较好?
推荐资讯
去杨陵怎么走最方便,最快捷,最省钱?
怎样能娶到刘亦飞
艺术字形状为“双波形1”,阴影效果为“阴影
刚买不久的鞋脱胶了,用什么胶水沾好呢?
路北区唐山精湛盲人按摩这个地址在什么地方,
永恒之塔永恒之巅好还是波利之巅
茶杯犬吃什么牌子狗粮,银狐狗吃什么狗粮好
感冒了!不想喝药打针。怎么样才能快点好起来
炫舞为什么下载中途怎么会下载不了呢?
QQ空间好友买卖有没有收奴隶的,有的请加我QQ
有什么歌适合蔷薇的第七夜
鲸旅的意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?