一、概念和原理
你看,考到了咱们才要学,别嫌多。
这个小蜜蜂视频教程好像没讲,我们回归老朋友江科大的视频去看,也是可以的。
然后下面的都是写时序要用到的概念,大家可以作了解,但是大赛会给出写好的底层驱动函数。
说明:1. E2PROM意为电可擦除可编程的只读存储器,掉电不丢失;
下面是芯片的原理图。
说明:1.写保护要给低电平解开,不然没法用;
2.SCL和SDA则用来组成我们最基础的时序;
下面这个地址总线和数据总线的概念可以了解一下,意思就是左边地址总线第一根给高电平,竖线只连接前三个点,数据总线就会输出11100000。(右边不管)
以上都是用以写那个I2C总线的数据帧要用到的,而这些数据帧是组成我们下面AT24C02数据帧的基石。(下面这张图就是上面I2C数据帧的稍作修改)
下面就是比赛会提供的有关AT24C02芯片的资料,大家可以对照着上面那张图片来看就会轻松点。
二、题目
三、手写代码
一、基础
包括main函数框架,Delay函数文件,uart串口通信文件(记得重定义putchar函数和AUXR的定义),close文件(关闭蜂鸣器和继电器)
二、今天的主角
依据上面的AT24C02的数据帧结构来写读写函数。主要由俩部分组成,第一部分是复制粘贴大赛给的底层驱动函数。
第二部分是要自己写的,其中注释是作者要讲解的内容。.h文件里面的引脚定义是可能会挖坑的点,可能会要你自己定义。intrins文件则是.c文件里面的_nop_函数要用到的。
上图地址A1和A0的依据
高四位固定是A,最后一位W(0)R(1)
上图依据
三、调用
四、结尾
实验现象:1.到60后秒清0,分钟加1;2.下载按钮关闭,表示掉电,在摁开,计时继续,也就是将上一秒的数据成功写入和读取。
但是烦人的是不是我们数组里面的初始值开始计时,我们可以想个办法先将初始值覆盖原本在芯片里面的数据。
实验现象就是一直是我们的初值。
至此,我们有关EEPROM和AT24C02就有所掌握了。然后1.28广东天气真的冷兄弟们,不要放弃默写一遍实现实验现象的代码!