复习单片机:IIC-EEPROM 实验(内含:1.IIC-EEPROM介绍+2.AT24C02 介绍+3.硬件设计+4.软件设计+5.实验现象)

简介: 复习单片机:IIC-EEPROM 实验(内含:1.IIC-EEPROM介绍+2.AT24C02 介绍+3.硬件设计+4.软件设计+5.实验现象)

1.IIC-EEPROM介绍


I2C 协议层


(1)数据有效性规定


SCL 线为高电平期间,SDA 线由高电平向低电平的变化表示起始信号;SCL


线为高电平期间,SDA 线由低电平向高电平的变化表示终止信号。


6bd7547aa4e34fca82a13694ed4ca05e.png


起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用


的状态;在终止信号产生后,总线就处于空闲状态。


主机发送信号给从机,需要产生起始信号,之后开始发送信号访问从机,从机接收信号后如果想要主机继续发送数据,就回复应答信号(低电平0),主机继续发送信号。从机不想接收则回复非应答信号(高电平1)。


主机接收从机信号亦可。


总线的寻址方式


I2C 总线寻址按照从机地址位数可分为两种,一种是 7 位,另一种是 10


位。采用 7 位的寻址字节(寻址字节是起始信号后的第一个字节)的位定义如


下:


1a56bbf3b9174f5bb927a49a8160ac07.png


D7~D1 位组成从机的地址。D0 位是数据传送方向位,为“ 0”时表示主机


向从机写数据,为“1”时表示主机由从机读数据。


例主机发送数据给从机,需要有从机地址。从机相同地址才可以对应接收。从机地址分为固定地址和可编程地址,可编程地址决定从机的数目的多少。若为4(固定)+3(编程位)


,则从机数目为2的3次方,即8个可编程位。


(5)数据传输


I2C 总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据


信号。在起始信号后必须传送一个从机的地址(


7 位),第 8 位是数据的传送264


方向位(R/W),用“ 0”表示主机发送(写)数据(


W),“ 1”表示主机接收


数据(R)。每次数据传送总是由主机产生的终止信号结束。但是,若主机希望


继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信


号对另一从机进行寻址。


在总线的一次数据传送过程中,可以有以下几种组合方式:


a、主机向从机发送数据,数据传送方向在整个传送过程中不变


35363753933d4964b59fcbd252cc7403.png


注意:有阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从


机向主机传送。A 表示应答,A 非表示非应答(高电平)。S 表示起始信号,P 表


示终止信号。


解释:主机发送信号给从机,0表示从机接收,A表示从机做出应答型号,主机继续传输数据...直到非应答或不在发送时停止.


b、主机在第一个字节后,立即从从机读数据


33ed36072d7f41078d2ee478e43119cb.png


c、在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复


产生一次,但两次读/写方向位正好相反


6cf683b357104012b66d75270fcaa4bf.png


由于 51 单片机没有硬件 IIC 接口,即使有


硬件接口我们通常还是采用软件模拟 I2C。主要原因是硬件 IIC 设计的比较复


杂,而且稳定性不怎么好,程序移植比较麻烦,而用软件模拟 IIC,最大的好处


就是移植方便,同一个代码兼容所有单片机,任何一个单片机只要有 IO 口(不


需要特定 IO),都可以很快的移植过去。


2. AT24C02 介绍


AT24C02是系列,02表示02系列。我们开发板上使用的是 AT24C02(EEPROM)265


芯片,此芯片具有 I2C 通信接口,芯片内保存的数据在掉电情况下都不丢失,


所以通常用于存放一些比较重要的数据等。


AT24C02 芯片管脚及外观图如下图所示:


3d2c9a16955447949b9eaa52cdd110bf.png


AT24C02 器件地址为 7 位,高 4 位固定为 1010,低 3 位由 A0/A1/A2 信


号线的电平决定。 因为传输地址或数据是以字节为单位传送的,当传送地址时,


器件地址占 7 位,还有最后一位(最低位 R/W)用来选择读写方向,它与地址


无关。其格式如下:


1c6aa3782660499abbf154ff5b16de40.png


我们开发板已经将芯片的 A0/A1/A2 连接到 GND,所以器件地址为


1010000,即 0x50(未计算最低位)。如果要对芯片进行写操作时,R/W 即为 0,


写器件地址即为 0XA0;如果要对芯片进行读操作时,R/W 即为 1,此时读器件


地址为 0XA1。开发板上也将 WP 引脚直接接在 GND 上,此时芯片允许数据正常


读写。


3. 硬件设计


本实验使用到硬件资源如下:


(1)独立按键(K1-K4)


(2)动态数码管


(3)EEPROM 模块电路(AT24C02)


01e7641ca09e4772ba85c16b80605bd1.png


4 软件设计


注:需要创建多文件工程,因为要用到独立按键、数码管、EEPROM,所以需要将前面实验编写的独立按键、数码管、延时等程序全部放到 main.c 中来,此时在不增加 EEPROM 驱动程序时,main.c 文件中的代码量已经非常冗长,极其不便于程序的阅读、移植和维护,因此可用多文件管理的办法来使工程易于阅读、移植和维护。操作方法如下:


全部源文件和头文件:


1ac36de044ab4108828cc3d47e189ffc.png


主函数部分:


b1eb896c94d240a0b2b5444a3d61fc36.png


24c02部分:


1deeb7e43e554722b3f73cada7139c1f.png

7d2076e553a34d4f9740598c4eb5fb6a.png


iic部分:


3c6a2d7283a545749390f30b36c7df9c.png

a627d3ba94f840bda9900260382cc4e9.png

d12fab6ba7804f649db2d311326abbdd.png


独立按键部分代码:


795977723374443ba6e8a284ce3ba9fa.png

50e2f7ac40784e45ad4038b680eeed15.png

数码管部分:


6bd47a66d408409fa151537b64a47844.png

f7226ae186fd4f1ca55ae342032ac3e9.png


延时函数部分:


0c6c53afa2ec43d99f33026fdcf6c38e.png

4220bbdcc8ed4c7f97385de223acc791.png


5 实验现象


使用 USB 线将开发板和电脑连接成功后(电脑能识别开发板上 CH340 串口),


把编译后产生的.hex 文件烧入到芯片内,实现现象如下:码管右 3 位显示 0,


按 K1 键将数据写入到 EEPROM 内保存,按 K2 键读取 EEPROM 内保存的数据,按


K3 键显示数据加 1,按 K4 键显示数据清零,最大能写入的数据是 255。


cf6d03f612354d43b12087be3dea42c7.png


相关文章
|
7月前
|
物联网
STC51单片机-实验开发装置仿真-物联网应用系统设计
STC51单片机-实验开发装置仿真-物联网应用系统设计
151 0
单片机实验:外部中断系统实验 如何1357,2468灯交替亮
单片机实验:外部中断系统实验 如何1357,2468灯交替亮
207 0
单片机实验:兰花草
单片机实验:兰花草
102 0
第二章:单片机硬件结构
第二章:单片机硬件结构
103 0
【单片机】按键声光报警实验(蜂鸣器)
【单片机】按键声光报警实验(蜂鸣器)
648 0
|
7月前
|
C++ 内存技术
【期末不挂科-单片机考前速过系列P8】(第八章:21题速过AT89S51单片机的内部硬件结构)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P8】(第八章:21题速过AT89S51单片机的内部硬件结构)经典例题盘点(带图解析)
单片机实验:外部中断系统实验 如何1357,2468灯交替亮
单片机实验:外部中断系统实验 如何1357,2468灯交替亮
457 0
|
7月前
|
编译器 C语言 开发者
单片机原理与应用:探索微型计算机世界
单片机原理与应用:探索微型计算机世界
59 1
|
7月前
|
数据采集 数据处理 C语言
单片机:探索其原理、应用与编程实践
单片机:探索其原理、应用与编程实践
110 1
|
2月前
|
传感器 存储 物联网
单片机的原理与应用
单片机是一种将计算机的CPU、存储器、输入输出接口等功能集成在一块芯片上的微型计算机,被广泛应用于各类控制系统和智能设备中。
92 5
下一篇
DataWorks