- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IIC协议详解-基于AT24CXX详细编程IIC协议详解-基于AT24CXX详细编程.pdf
基于 IIC 总线的 E2PROM
――AT24C02
一、AT24C02 引脚分布
WP 写保护
如果 WP 管脚连接到 Vcc, 所有的内容都被写保护,只能读。当 WP 管脚连接到 Vss
或悬空,允许器件进行正常的读/写操作。
二、AT24C02 读写时间周期
三、I2C 总线协议
1、只有在总线空闲时才允许启动数据传送;
2、在数据传送过程中,当 SCL=1 时,数据线 SDA 必须保持稳定状态,不
允许有跳变;SCL=1 时,数据线 SDA 的任何电平变化将被看作总线的起始
或停止信号;
AT24C02 程序设计
1.开始信号:
时钟线 SCL 保持高电平期间,数据线 SDA 电平从高到低的跳变作为 I2C 总
线的起始信号。
void IIC_Start(void)
{
SDA_OUT(); //sda 线输出
IIC_SDA=1;
IIC_SCL=1;
delay_us(5);
IIC_SDA=0;
delay_us(5);
IIC_SCL=0; //钳住 I2C 总线,准备发送或接收数据
}
2.停止信号:
时钟线 SCL 保持高电平期间,数据线 SDA 电平从低到高的跳变作为 I2C 总
线的停止信号 。
void IIC_Stop(void)
{
SDA_OUT(); //sda 线输出 注意:SCL=1 时,
IIC_SCL=0; SDA 线不能有变化,
IIC_SDA=0; 有变化被视为开始或停止
delay_us(4);
IIC_SCL=1; //
IIC_SDA=1; //发送 I2C 总线结束信号
delay_us(4);
}
3.应答信号:
I2C 总线数据传送时,每成功地传送一个字节数据后,接收器都必须产
生一个应答信号,应答的器件在第 9 个时钟周期时,将 SDA 线拉低,表示
其已收到一个 8 位数据。
void IIC_Ack(void)
{
IIC_SCL=0; //拉低时钟切换数据
SDA_OUT();
IIC_SDA=0;
delay_us(2);
IIC_SCL=1;
delay_us(4);
IIC_SCL=0;
}
4.非应答信号:
voi
文档评论(0)