预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

“非易失存储器”原理与测试说明 1程序设计目标及程序运行效果说明 程序设计目标:本程序是对24C02存储页面的0x00地址写入可变化的数据,然后读取数据,并显示在数码管上。 程序运行效果说明: 位数码管默认显示0。按下key3,要写入数据的地址加1。按下key2要写入的数据加1。按下key1,向存储器写入数据并读取数据,并显示在数码管上。数码管左边2位(第一、第二位)是写入的地址,数码管中间两位(第四、第五位)是写入的数据,数码管右边两位(第七、第八位)是显示从非易失存储器读取的数据。 2程序相关电路及工作原理说明 非易失性存储器(nonvolatilememory)是掉电后数据能够保存的存储器,它不用定期地刷新存储器内容。这包括所有形式的只读存储器(ROM),像是可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)、电可擦除只读存储器(EEPROM)和闪存。在许多常见的应用中,微处理器要求非易失存储器来存放其可执行代码、变量和其他暂态数据(例如采集到的温度、光照等数据)。 2.1 24C02工作电路及其工作原理 图124C02模块电路 本实验采用24C02芯片,24C02通过IIC_SCL和IIC_SDA与单片机相连,单片机以IIC总线的方式对24C02进行读写。24C02是一个2K位串行E2PROM,内部含有256个8位字节。 (1)管脚配置 (2)管脚描述 (3)寻址方式 寻址信号由一个字节构成,高7位为地址位,最低位为方向位,用以表明主机与从器件的数据传送方向。方向位位0,表明主机接下来对从器件进行写操作;方向位位1,表明主机接下来对从器件进行读操作。 A0,A1和A2对应器件的管脚1,2和3; a8,a9和a10对应存储阵列地址字地址; (4)读/写时序 写一个字节时序 读一个字节时序 如图,写一个字节时序,第一个DEVSEL是器件选择信号,器件选择的范围为(000~111),总共可以选择8个24C02芯片器件。但是本实验只用到了1个24C02芯片,所以对应的器件管脚地址A2A1A0为000。第二个信号BYTEADDR是地址信号,表示要对哪一个地址进行操作,第三个DATAIN则是写入的数据。而读操作则是多了一步,DEVSEL和BYTEADDR后,还有一个DEVSEL,但此信号的最后一位为高,表示是读操作,随后从机会把相应地址的数据发送给主机。 2.2I2C总线介绍 I2C(Inter-IntegratedCircuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。I2C总线硬件结构图如下: SCL是时钟线,SDA是数据线 I2C总线信号包括有,启始信号,停止信号和应答信号,在程序用分别用函数voidstart()、voidstop()、voidrespons()表示。24C02的存储空间为2K,每一次写和读操作都只能操作已选定的对应24C02芯片的地址数据。要切换操作的芯片,需要重新发送寻址信号,在voidwrite_add(ucharaddr,uchardate)函数中,第一个寻址信号writebyte(0xa0),已经固定了本程序只能在第0个芯片进行操作(注:0xa0化为二进制为1010000,其中,前4位1010是固定不能改变的,最后一位0代表写操作,1代表读操作,而中间三位则是代表不同芯片地址的编号),若要改变需要操作的芯片,则只需改变中间三位即可。 (1))I2C位传输 数据传输:SCL为高电平时,SDA线若保持稳定,那么SDA上是在传输数据bit;若SDA发生跳变,则用来表示一个会话的开始或结束 数据改变:SCL为低电平时,SDA线才能改变传输的bit (2)I2C开始和结束信号 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 (3)I2C应答信号 主设备每发送完8bit数据后等待从设备的ACK。 即在第9个clock,从IC发ACK,SDA会被拉低。 若没有ACK,SDA会被置高,这会引起Master发生RESTART或STOP流程。 3测试说明 (1)用STCISP打开并下载HEX文件; (2)默认下载后数码管显示0; (3)按下key3,要写入的数据的地址加1。按下key2要写入的数据加1。按下key1,向 存储器写入数据并读取数据,并显示在数码管上。数码管左边2位(第一、第二位)是写入的地址,数码管中间两位(第四、第五位)是写入的数据,数码管右边两位(第七、第八位)是显示从非易失存储器读取的数据。