『51单片机』AT24C02[IIC总线]
存储器的介绍
⒈ROM的功能⇢ROM的数据在程序运行的时候是不容改变的,除非你再次烧写程序,他就会改变,就像我们的书本,印上去就改不了了,除非再次印刷,这个就是ROM的原理。
注→在后面发展的ROM是可以可写可读并且是可以达到掉电不丢失的(但是它名字还是ROM)
🍎存放单片机工作时的程序,单片机在上电工作的时候,程序指令制导单片机完成设定的功能。没有ROM存储器,单片机是不能够进行工作的。
⒉RAM的功能⇢RAM就是在程序运行中,数据会随时改变的,就像我们的黑板,写上了可以擦,擦完再写上去,相当于程序运行的时候,调用ROM里面的数据进行各种运算。🍏数据存储器(RAM)存储单片机运行期间所需要的数据和临时生成的数据是需要能够快速读出和写入数据的。此类存储器在掉电之后,存储的数据会丢失,并不能永久保存。
PROM:只能写入一次,第一次写好以后就一直是这个数据了不能被修改(一次性)
EPROM:PROM的升级版本。
E2PROM:AT24C02也是E2PROM。
⑴RAM的优势⇢存储速度特别快。缺点⇢掉电丢失。
⑵ROM的优势⇢掉电不丢失。缺点⇢存储比较慢速度更不上。
🍎综上所示⇢所以我们是需要这两者相互结合。
我们需要高速存储的使用就放进到RAM程序运行的时候都是存储在RAM里面,然后我们需要永久保存的时候就使用ROM存储。我们就很好的利用这两个存储器的长处。
存储单元
🍊说明⇢任何计算系统都需要两种类型的存储器→程序存储器和数据存储器。程序存储器,顾名思义,包含程序,即要由CPU执行的指令。另一方面,数据存储器需要在执行指令时存储临时数据。通常,程序存储器是只读存储器或ROM,数据存储器是随机存储器或RAM。数据存储器有时也称为读写存储器(R/WM)
存储器的简化模型
注→上述右图的二极管[单向导电性]是防止对其它行产生干扰作用抑制干扰方式。
注→PROM之所以称之为:一次性编程是因为蓝色的二极管很容易被击穿,击穿之后就相当于短路了。而没有击穿就相当于是断开。
存储器在电路内部实际上都是一个网状结构。其中横向的线我们可以称之为是地址总线就是用来选择哪一位线就是哪一位地址,而下面这个线(纵向)就是我们的数据总线。
假设⇢我们选择了第一行给了一个高电平("1")剩下的我们暂时不接。然后我们把这些网格交错的地方第一个第二个第三个节点给连接上,剩下的都不进行连接。那么我们在读取下面的这个⑧位的数据总线上就是:第一个、第二个、第三个节点连接上了就从纵向下来就是("1")后面的线没有进行连接那么它就是一个悬空的状态可以暂时把它当作是("0")
那么这里存储的数据就是:1 1 1 0 0 0 0 0 注意这是第一行存储的数据。那么第二行实际上也是一样的。
如上↑便是存储器存储的最基本的原理。
重点⇢存储器是一种网格形式、左边给个地址下面就可以输出数据。
重点说明⇢这个地址一次只能选中一行(全体目光向我看齐😛)所以一般在地址总线之前我们都会加一个译码器(138译码器)
AT24C02
AT24C02是一种可以实现掉电不丢失的存储器。
可用于保存单片机运行时想要永久保存的数据信息。
例:就像我们单片机在运行时候的参数吖~像温度传感器高于某一个设定的阈值会报警,然后这个阈值还是可以调节的,然后把它调节好的时候就可以存进AT24C02。当下次断电再重启的时候你就是可以读取之前的数据了用作于这个。
存储介质→E2PROM。
通讯接口→I2C总线。
容量→256字节。
引脚以及应用电路
⒎脚WP(高电平有效)
在计算机运行中,有些信息只允许使用而不允许修改,就要对存储这些信息的区域采取保护措施,这种保护措施称为写保护。即对该存储区的信息只允许读出以被使用,但不允许写入以防止破坏。在上述的应用电路当中我们是给它接地的。
★注→I2C硬件接口是开漏模式,这个接口只能输出低电平,要实现高电平就要靠上拉电阻去拉高。
内部结构框图
I2C(IIC)总线介绍
- I2C总线(Inter IC BUS)是由Philips公司开发的一种通用数据总线。
- 两根通信线⇢SCL(Serial Clock) & SDA(Serial Data)
- 拓展⇢SCL控制线[时钟线](同步)通信双方靠一根时钟线来约定通信速率SDA(数据线)
- 同步、半双工,带数据应答。
- 通用的I2C总线,可以使各种设备的通信标准统一,对于厂家来说,使用成熟的方案可以缩短芯片设计周期、提高稳定性,对于应用者来说,使用通用的通信协议可以避免学习各种各样的自定义协议,降低了学习和应用的难度。但是学习I2C还是有一定的学习难度的,但是当你学会了I2C对于要用到它的通信协议来说你又会觉得不那么的难了。
- 显示屏幕(像素点好)
- DS3231(精度高)
- 陀螺仪自带传感器。
I2C电路规范
- 所有I2C设备的SCL连在一起以及SDA连在一起。
- 设备的SCL和SDA均要配置成开漏输出模式。
- SCL和SDA各添加一个上拉电阻,阻值一般为4.7KΩ左右。
- 开漏输出和上拉电阻的共同作用实现了“线与”的功能,此设计主要是为了解决多机通信互相干扰的问题。
I2C时序结构
起始条件→[SCL]高电平期间,SDA从高电平切换到低电平。
终止条件→[SCL]高电平期间,SDA从低电平切换到高电平。
🍎注→在起始条件的时候我们最后还是把SCL给拉低的主要目的是为了能够与最后的终止条件进行一个衔接的状态。保证起始条件的时候SCL最后为低电平。
重点⇢最后的数据帧都是以S为起始P为终止的。
发送一个字节
SCL低电平期间,主机(单片机)将数据位依次放到SDA线上(高位在前)
然后拉高SCL,从机(AT24C02)将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次(依次从最高位再到最低位),即可发送一个字节。在下述图中那个x代表数据变化的。
🍏注→主机相当于是单片机而AT24C02相当于是从机,在所有的线都是由主机进行控制的。
接收一个字节
SCL低电平期间,从机(AT24C02)将数据位依次放到SDA线上(高位在前)
然后拉高SCL,主机(单片机)将在SCL高电平期间读取SDA数据位,同时在SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节。
注⇢主机在接收之前,需要释放SDA。我们把SDA置1就相当于释放,我们从机(AT24C02)是完全不会干预我们的这个通信线的。换言之我们的主机(单片机)释放掉SDA数据线把这个线的控制权交给从机(AT24C02),此时就是从机(AT24C02)拿到了控制权。
发送/接收(应答)
📑IIC它是带有数据应答的,所以当我们在发送一个字节之后需要接收应答。然后接收应答之后就需要发送应
SA发送应答→在接收完一个字节之后,主机在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答。
RA接收应答→在发送完一个字节之后,主机在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA=1)
I2C数据帧
向谁→由从机AT24C02地址规定的。
发→由字节上最后一位的地址来进行决定的。
什么→由S:BYTE x 规定的。
🤙发送一帧数据在协议上规定如下所示🤙
开始(起始条件) 发送从机(AT24C02)地址加写 接收应答 发送第一个字节数据 接收应答 发送第二个字节数据 接收应答 .....(直到第N个BYTE,然后接收应答) 结束(终止条件)
🍎注⇢整体和上述的发送一帧数据差不多知识改变了格式。
由 写 变成了 读。
由 发送 变成了 接收。
下面是复合格式数据帧。
🍎注→实际上就是发送一帧数据把(Stop)去掉再和接收一帧数据给进行的结合。
在上述就是AT20C02的读写功能。
字节写:在“字地址”处写入“数据”。
随机读:读出在“字地址”处的“数据”。
相关文章:
『51单片机』AT24C02[IIC总线]
存储器的介绍 ⒈ROM的功能⇢ROM的数据在程序运行的时候是不容改变的,除非你再次烧写程序,他就会改变,就像我们的书本,印上去就改不了了,除非再次印刷,这个就是ROM的原理。 注→在后面发展的ROM是可以可写可…...
Jenkins与Rancher的配合使用
Jenkins和Rancher是两个常用的DevOps工具,可以很好地配合使用来实现持续集成和持续部署。 Jenkins是一个开源的自动化构建工具,可以实现自动化的代码构建、测试和部署等一系列操作。可以通过Jenkins来触发构建任务,例如从代码仓库中拉取最新的…...
GIS入门,常用的多边形平滑曲线算法介绍和JavaScript的多边形平滑曲线算法库chaikin-smooth的实现原理和使用
前言 本章介绍一下常用的多边形平滑曲线算法及其使用案例。 多边形平滑算法通常用于图形处理或计算机图形学中,以使线条或曲线在连接处平滑过渡,而不出现明显的棱角或断裂。多边形平滑算法有多种实现方法,其中一些常见的有下面几种: 贝塞尔曲线插值(Bezier Curve Interpo…...
气膜体育馆内部的采光效果如何?—轻空间
气膜体育馆内部的采光效果如何?这是许多人对这种创新建筑的一个关键关注点。 首先,气膜体育馆的采光性非常好。阳光透过屋顶时以漫射光的方式进入室内,这种透射方式使得室内的光线柔和而均匀。从内部观察,整个屋顶就像一个连续的明…...
矩阵的对称正定性判决(复习)
文章目录 本科学的数学知识忘的太快了 如何判断一个实矩阵是否是对称正定 在线性代数中,一个实对称矩阵是否为正定可以通过以下方法判断: 对称性: 首先,确认矩阵是否对称,即矩阵的转置是否等于其本身。 特征值检查&…...
网络安全之DHCP详解
DHCP:Dynamic Host Configration Protocol 动态主机配置协议 某一协议的数据是基于UDP封装的,当它想确保自己的可靠性时,这个协议要么选确认重传机制,要么选周期性传输。 DHCP是确认重传,【UDP|DHCP】,当DHCP分配完地…...
【Proteus】LED呼吸灯 直流电机调速
1.LED呼吸灯 #include <REGX51.H> sbit LEDP2^0; void delay(unsigned int t) {while(t--); } void main() {unsigned char time,i;while(1){for(time0;time<100;time){for(i0;i<20;i){LED0;delay(time);LED1;delay(100-time);}}for(time100;time>0;time--){fo…...
今天遇到一个GPT解决不了的问题
问题描述 你好,postman的一个post请求,编辑器里面放了一个很长的json数据,报Tokenization is skipped for long lines for performance reasons. This can be configured via editor.maxTokenizationLineLength.,但是同样的数据&a…...
优化SQL的方法
来自组内分享,包含了比较常使用到的八点: 避免使用select * union all代替union 小表驱动大表 批量操作 善用limit 高效的分页 用连接查询代替子查询 控制索引数量 一、避免使用select * 消耗数据库资源 消耗更多的数据库服务器内存、CPU等资源。 消…...
库存管理系统开源啦
软件介绍 ModernWMS是一个针对小型物流仓储供应链流程的开源库存管理系统。该系统的开发初衷是为了满足中小型企业在有限IT预算下对仓储管理的需求。通过总结多年ERP系统研发经验,项目团队开发了这套适用于中小型企业的系统,以帮助那些有特定需求的用户。…...
【java】接口
什么是接口 接口当中存在的是对方法的定义,而不是对方法的具体实现。 为什么不实现这个方法呢? 继承的本质是代码的复用。当一个父类会经常被继承,并且子类都要自己实现方法时,父类中的方法就会显得累赘,并且占用了…...
Java中的类型转换
一、类型转换 对类型转换来说分为向上类型转换和向下类型转换: 向上类型转换是自动完成的,一般是小类型向大类型转换。在引用类型中是子类型向父类型转换。向下类型转换是强制完成的,一般是大类型向小类型转换。在引用类型中是父类型向子类…...
定义范围对PFMEA分析的重要性——SunFMEA软件
在进行PFMEA分析时,定义范围是一个至关重要的步骤。这是因为,通过明确分析的范围,可以确保团队关注到最关键、最可能影响产品质量的过程,从而更有效地识别和解决潜在问题。今天SunFMEA软件和大家一起讨论定义范围对PFMEA操作的重要…...
json返回工具类|世界协调时间(UTC)
一、问题 世界协调时间(UTC)是一个标准的时间参考,通常被用于跨越不同时区的时间标准。要将 UTC 时间转换为中国时间(中国标准时间),你需要将时间加上8个小时,因为中国位于 UTC8 时区。 初中知…...
MySQL·内置函数
目录 函数 日期函数 案例1:创建一张表,记录生日 案例2:创建一个留言表 案例3:请查询在2分钟内发布的帖子 字符串函数 案例1: 获取emp表的ename列的字符集 案例2:要求显示exam_result表中的信息&am…...
vue根据文字动态判断溢出...鼠标悬停显示el-tooltip展示
使用自定义el- tooltip 组件 定义 Tooltip是一种小型弹出框,它显示有关特定页面元素的信息,例如按钮、链接或图标。Tooltip通常以半透明的气泡形式呈现,并出现在页面元素的旁边或下方。 它可以改善用户体验,使用户更容易理解页面元素的功能和意图。用户可以通过将鼠标悬停…...
使用Tkinter实现数据预测工具的GUI界面展示
如果构建好预测模型后,想将预测模型通过一个交互式的页面显示,可以通过下边两种方式实现。 本文中代码有详细解析注释,便不再如往期一样分开讲解了,有需要的朋友可以直接拿去使用,代码可以直接运行,把预测…...
机器学习笔记-22
终章 至此吴恩达老师的机器学习课程已经完成啦,总结一下: 1.监督学习的算法:线性回归、逻辑回归、神经网络和向量机 2.无监督学习的算法:K-Means、PCA、异常检测 3.推荐系统、大规模数据处理、正则化、如何评估算法 4.上限分析、…...
车间为什么选择蒸发式冷风机?
蒸发式冷风机具有以下特点: 节能环保:蒸发式冷风机不使用压缩机和化学制冷剂,而是通过水的蒸发来降低温度,因此它是无压缩机、无冷媒、无污染的环保型产品。降温效果显著:在较潮湿地区,它一般能达到5-9℃的…...
5分钟速通大语言模型(LLM)的发展与基础知识
✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
生信服务器 | 做生信为什么推荐使用Linux服务器?
原文链接:生信服务器 | 做生信为什么推荐使用Linux服务器? 一、 做生信为什么推荐使用服务器? 大家好,我是小杜。在做生信分析的同学,或是将接触学习生信分析的同学,<font style"color:rgb(53, 1…...
Qt/C++学习系列之列表使用记录
Qt/C学习系列之列表使用记录 前言列表的初始化界面初始化设置名称获取简单设置 单元格存储总结 前言 列表的使用主要基于QTableWidget控件,同步使用QTableWidgetItem进行单元格的设置,最后可以使用QAxObject进行单元格的数据读出将数据进行存储。接下来…...





⒎脚WP(高电平有效)










