『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上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...





⒎脚WP(高电平有效)










