单片机:I2C--EEPROM(I2C介绍+AT2402+硬件设计+软件编程<重点是软件编程部分>)

简介: 单片机:I2C--EEPROM(I2C介绍+AT2402+硬件设计+软件编程<重点是软件编程部分>)

2f3f8dc5144741e9a001f32f16b8d4e4.png

2bd5a75e23234cc4bd44cb4a1aade810.png

1.支持多设备连接,多主机,多从机


2.SDA:数据线,发送收发数据


SCL:时钟线,实现数据同步


3.每一个连接在总线的设备都有一个地址,通过地址来访问设备


4.总线有上拉电阻,当设备空闲时,默认为高阻态


5.多个主设备同时使用时,通过总裁方式决定那个主设备占用总线


6.传输模式,有100KB/S, 400KB/S, 3.4MB/S(暂不支持)


7.连接在总线上的设备数,受总线电容400PF限制


主机:启动和发送数据传输


5953ff2185554e43b7975009957e26eb.png


SCL为高电平时,要求SDA稳定。SCL为低电平时,SDA允许数据变化

以字节为单位发送

3369c2a622ef4dc4b07db00c7ebc7647.png


SCL为高电平,SDA下降时,为起始信号。SDA上升时,为终止信号。起始信号,终止信号是主机控制,在起始终止信号中间,就是总线被占用状态。


33a8d775c26942d49762840b417da5e9.png


发送起始信号后,主机发送数据给从机,,,非应答时,数据发送接收,应答时,数据继续发送

ps:从机发送给主机信号和上述过程一致,方向相反


fecee07bf1454ceda6dcad958835111e.png


R/W非 :是方向位


R/W=0时,W非是向从机写数据(主机向从机写数据)


R/W=1时,R是从主机读取数据(从机向主机读数据)


主机选择从机时,通过从机地址选择从机,通过R/W非 选择方向(是主机->从机 or 从机->主机)


从机地址由固定地址+可编程程序组成,可编程部分限制主机能控制多少个从机。如,4+3,则可编程部分为3,即2的3次方,共能控制8个从机


bbb2b1382fa74f3b99a3dbd77c0b0e01.png


注:A是应答信号,如果有应答信号,A,就继续发送。(如果是非应答,A非,就停止发送)

灰色框框是主机产生的信号,灰色框框是从机产生的信号

实现数据传输时,推荐使用IO模拟数据通信。因为所有单片机IO口都是通用的,方便代码程序的通用


287cea77597f4cc887c24a6d4d67937e.png


AT24C型芯片,掉电不丢失。


01是1K bit, 02是2K bit,04是4K bit....


左上角为管脚图


SCL,SDA为总线传输数据接口,数据掉电不丢失。通常接上拉电阻,一般为10k,保证总线在空闲


4个可固定,3个可编程,3个可编程管脚为A0,A1,A2,默认接地,即默认为0 0 0,4个高位固定为1010,


管脚固定为1 0 1 0 0 0 0+R/W非----->0XA0(主机向从机写数据,,,主机--->从机) 0XA1(主机向从机读数据,,从机--->主机)


VSS是GND


VCC是电源


WP是写保功能,当接入VCC时(1),就是只能写不能读。当接入GND时(0),可以写可以读


WP为时钟


a80b145d28da47b1bb7ddee29d751e1c.png


左图为PZ2-4(管脚固定) 右图为PZ5-7


注:单片机默认有上拉电阻,所以,PZ2-4的上拉电阻省略


0a59774d01c240c4b696a4d725e9c7d1.png


即,系统运行,数码管显示右三位的000,然后按K3,变为001....按K1,则将此时数码管的值录用到EEPROM中,录入之后,即使断电,也会保存, 此时按下K2,则会读取EEPROM中的值, 按下K4,则数据清零,最大能写入数据是255(u8类型)


推荐创建多文件。优点:主函数代码不会过长,某一部分代码需要修改,修改简单。每一部分代码均可再次使用。(App Obj Public User)


a763fdf573bb414a9bc21c4683354516.png

47089ffe5fd8489585addc94c53728d4.png

64de2009c5404c22b5cd31d34b793910.png


5e7cbae26c934137a0c64ec66502c352.png


7cf4f36157764b3f864941eb80db2b06.png


b18e3304991b4fe9b249ef519dbb9c66.png


2cce76dddb844861b961e0a045d0cbeb.png

02b96f655d0542379d6ab85f1c618036.png


b667120b44c74230b43ad79f9ebfe1d1.png


813632055fb24dcda328025ca7094f9e.png


5fdccc7814274d5ebea4ef4712b95e85.png


注:由于代码过长,只展现图片,实际编写代码时注意添加项目和生成对应的.hex文件


     如有不会的,欢迎私信  


相关文章
|
8月前
|
存储 内存技术
STM32F0单片机快速入门九 用 I2C HAL 库读写24C02
STM32F0单片机快速入门九 用 I2C HAL 库读写24C02
|
12月前
【STC15单片机】模拟I2C操作AT24C02数据读取,PCF8591的A/D转换代码
【STC15单片机】模拟I2C操作AT24C02数据读取,PCF8591的A/D转换代码
198 0
单片机:红外遥控实验(内含红外遥控介绍+硬件原理+软件编程+配置环境)
单片机:红外遥控实验(内含红外遥控介绍+硬件原理+软件编程+配置环境)
178 0
单片机:红外遥控实验(内含红外遥控介绍+硬件原理+软件编程+配置环境)
复习单片机:点亮LED(内含实物图+硬件设计+软件编程+原始代码)
复习单片机:点亮LED(内含实物图+硬件设计+软件编程+原始代码)
101 0
复习单片机:点亮LED(内含实物图+硬件设计+软件编程+原始代码)
|
缓存 开发工具 芯片
单片机:串口通信(内含硬件解析+软件编程)
单片机:串口通信(内含硬件解析+软件编程)
132 0
单片机:串口通信(内含硬件解析+软件编程)
单片机:定时器0和1中断(内含硬件内容详解+软件编程)(ps:此处硬件执行结构间的理解是重中之重)
单片机:定时器0和1中断(内含硬件内容详解+软件编程)(ps:此处硬件执行结构间的理解是重中之重)
304 0
单片机:定时器0和1中断(内含硬件内容详解+软件编程)(ps:此处硬件执行结构间的理解是重中之重)
单片机:步进电机(内含硬件原理及解析,软件编程及注释)
单片机:步进电机(内含硬件原理及解析,软件编程及注释)
105 0
单片机:步进电机(内含硬件原理及解析,软件编程及注释)
|
芯片
单片机:直流电机(内含ULN2003芯片,硬件原理及解析,软件编程及注释)
单片机:直流电机(内含ULN2003芯片,硬件原理及解析,软件编程及注释)
162 0
单片机:直流电机(内含ULN2003芯片,硬件原理及解析,软件编程及注释)
单片机:独立按键---硬件介绍和软件编程
单片机:独立按键---硬件介绍和软件编程
151 0
单片机:独立按键---硬件介绍和软件编程
|
芯片
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项
481 0
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项