- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IIC_重点详解_个人总结
单片机的重点知识1IIC协议:
1、IIC协议说明:
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
AT24C02的芯片地址如下图,1010为固定,A0,A1,A2正好与芯片的1,2,3引角对应,为当前电路中的地址选择线,三根线可选择8个芯片同时连接在电路中,当要与哪个芯片通信时传送相应的地址即可与该芯片建立连接,我所使用的实验板上三根地址线都为0。最后一位R/W为告诉从机下一字节数据是要读还是写,0为写入,1为读出。
AT24C02的芯片地址(0xa0为写,0xa1为读)
任一地址写入格式
任一地址读取数据格式
2、程序详解IO口模拟IIC:
起始和终止信号 :SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。
void start()//起始信号
{
SDA=1;
Delay_us(10);
SCL=1;
Delay_us(10);
SDA=0;
Delay_us(10);
}
Void stop()//终止信号
{
SDA=0;
Delay_us(10);
SCL=1;
Delay_us(10);
SDA=1;
Delay_us(10);
}
数据传送格式(1)字节传送与应答
每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据。
Void ack()//应答信号
{
uchar i;
SCL=1;
Delay_us(10);
While((SDA==1)(i==250)) i++;//如果SDA=0则表示已经应答或者等待一会,就默认已经应答
SCL=0;
Delay();
}
Void noack()//非应答信号
{
SDA=1;
Delay();
SCL=1;
Delay();//SCL有变化时,SDA保持不变,即非应答
SCL=0;
Delay();
}
void init()//初始化信号
{
scl=1;
sda=1;
}
/////////////////////写一个字节//////////////////////
void iicwr_byte(uchar dat)
{
uchar i;
scl=0; //只有在时钟线上的信号为低电平时,数据线上的高电平或低电平才允许变化(补:时钟线为高电平时,才能进行读写)
delay();
for(i=0;i8;i++)//每一个字节,必须保持8位的数据长度
{
if(dat0x80)//数据传送时,先传送最高位MSB
{
sda=1;
}
else
{
sda=0;
}
dat=dat1;//左移
delay();
scl=1; //时钟线为高电平时,才能进行读写
delay();
scl=0; //进行数据读写时,拉低时钟线,以保持数据稳定,有效
delay();
}
sda=1; //每传送完一位就将数据线释放,以便下一位数据的传送;
delay();
}
//////////////////////读一个字节//////////////////////
uchar iicre_byte()
{
uchar i,dat;
scl=0;
delay();
sda=1; //数据线释放
delay();
for(i=0;i8;i++)
{
scl=1; //时钟线为高电平时,才能进行读写
delay();
dat=dat1;//判断8次,移位7次
if(sda==1)
{
dat++;//自增,个位加1
}
scl=0;//拉低时钟线,以保证数据的稳定,和读出数据的正确性
delay();
}
return dat;
}
//////////////////////写操作/////////////////////
void write_byte(uchar address,uchar dat)//指定地址写一个字节数据
{
init(); //初始化
start();
iicwr_byte(0xa0);//写器件地址(a是地址固定部分(1010),0的前三位是选择位,第四位0为写;若第四位为1,则是读;)
ack();
iicwr_byt
您可能关注的文档
- Aitken加速收敛算法.doc
- aix磁盘性能调优-3.docx
- Agilent3070系统电源配线.doc
- AlchemyClassicV152全部配方.doc
- Alchemy_ClassicHD版236种合成配方.doc
- ADAMS转动副摩擦参数设置.doc
- AndroidAPI差别.doc
- Android功能模块接口解析.doc
- AD_8362检测器详细介绍中文版.doc
- Android类库介绍.doc
- 2024.10.10修改.鹤煤公司“一优三减”三年工作方案(1).docx
- 2024年11月25日鹤煤公司对三矿11月份机关月度隐患排查.doc
- 江苏专用2024年高考历史一轮复习专题五当今世界政治格局的多极化趋势第14讲两极世界的形成练习含解析新人教版.doc
- 2024_2025高中语文第四单元第7课娜塔莎一教案新人教版选修外国小说欣赏.doc
- 2025版高中英语Unit1FriendshipLearningaboutLanguage学案新人教版必修1.doc
- 统考版2025版高考物理一轮复习第十三章热学第2讲固体液体与气体学生用书.docx
- 统考版2025版高考地理一轮复习第一部分自然地理第三章地球上的大气第6讲冷热不均引起大气运动学生用书.docx
- 2024高考英语一轮复习Module4ASocialSurvey_MyNeighbourhood学案外研版必修1.doc
- 2025届高考语文一轮复习题型强化训练“语言文字运用”板块限时练2含解析.docx
- 统考版2025版高考物理一轮复习第二章相互作用实验二探究弹簧弹力与形变量的关系学生用书.docx
最近下载
- 工程结构健康监测技术规程.pdf VIP
- YST 509.1-2008锂辉石、锂云母精矿化学分析方法 氧化锂、氧化钠、氧化钾量的测定 火焰原子吸收光谱法.pdf
- 社区获得性肺炎诊断和治疗指南.pdf VIP
- 初中美术七年级下册(2024)湘美版(2024)合集.docx
- 解剖独立代理人制度.pptx
- 14日天津市直机关遴选面试真题及解析.docx VIP
- 中央银行学(第五版)全套PPT课件.pptx
- 天翼云解决方案架构师(高级)认证资格考试题(附答案).doc VIP
- 房地产-新发展模式展望系列二:新加坡凯德集团:开发投管有机联动,资产管理能力卓著.pdf VIP
- 新标准大学英语(第二版)综合教程2 课后练习答案.pdf
文档评论(0)