单片机: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文件


     如有不会的,欢迎私信  


相关文章
|
5天前
|
数据采集 数据处理 C语言
单片机:探索其原理、应用与编程实践
单片机:探索其原理、应用与编程实践
22 1
|
8月前
第二章:单片机硬件结构
第二章:单片机硬件结构
77 0
|
5天前
|
算法 定位技术 C语言
51单片机实现俄罗斯方块游戏编程
设计了一款基于AT89C51单片机的俄罗斯方块游戏机,使用LCD12864液晶显示,按键控制方块移动与变形。游戏中,7种不同形状的方块随机下落,填满一行得分,满屏则游戏结束。包含电源、单片机最小系统、LCD和按键模块的硬件电路通过Proteus进行了仿真,展示了游戏运行、得分和计时等。代码部分展示了检查碰撞和更新地图的函数。
17 1
【51单片机】一文带你利用【Keil软件的模板功能】【自定义模板】简化操作(带图详解)
【51单片机】一文带你利用【Keil软件的模板功能】【自定义模板】简化操作(带图详解)
|
5天前
|
IDE 开发工具 C++
【51单片机】开发板&开发软件(Keil5&STC-ISP)简介&下载安装破译传送门(1)
【51单片机】开发板&开发软件(Keil5&STC-ISP)简介&下载安装破译传送门(1)
|
5天前
|
C++ 内存技术
【期末不挂科-单片机考前速过系列P8】(第八章:21题速过AT89S51单片机的内部硬件结构)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P8】(第八章:21题速过AT89S51单片机的内部硬件结构)经典例题盘点(带图解析)
|
5天前
|
存储 传感器 数据处理
单片机编程入门与实践
单片机编程入门与实践
26 2
|
5天前
|
传感器 人工智能 物联网
单片机:编程实践与应用探索
单片机:编程实践与应用探索
22 4
|
8月前
|
存储 内存技术
STM32F0单片机快速入门九 用 I2C HAL 库读写24C02
STM32F0单片机快速入门九 用 I2C HAL 库读写24C02
|
11月前
|
传感器 Windows
关于单片机编程里面调用sprintf死机的解决方法及原因分析
关于单片机编程里面调用sprintf死机的解决方法及原因分析
349 0