目录:

1.AT24C02(I2C总线)

2.AT24C02数据存储&秒表(定时器扫描按键数码管)

1.AT24C02(I2C总线)

弱上拉:

开漏输出:

2.AT24C02数据存储&秒表(定时器扫描按键数码管)

函数未调用警告:

位声明:

I2c开始、结束:

发送字节:

接受字节:

发送应答:

接收应答:

I2C_SDA=1

应答了,点亮

测试这个:

测试完之后继续:

写数据,读数据:

先写:

运行:

在读:

分别运行:也可以读到,就实现掉电不丢失

第一个例子:按键保存读取

按下按键1:加1

按键2:减1:

按键3:保存:

重启:按下按键4:读取

第二个例子:定时器扫描按键、数码管

每隔一秒取反一次,说明定时器没问题

过滤按键抖动:

每隔20us检测一下

更改:

验证:

按2:

按3:

这样写并不会影响主循环的执行

定时器扫描数码管:

数码管里面也有delay可以进行修改定时器扫描数码管

修改:

主函数不用调,定时器会自动调用扫描显示在数码管上

什么都不显示:

按下第一个按键:

第二个按键:

在加个delay:也不会影响,不会出现任何闪烁,因为扫描实在定时器里面的,不会影响我们的按键检测,他影响的是相应时间,相应是在主函数,一直按着他也在扫描,松手就变了

实现秒表:

添加-的断码:

按下按键1才启动秒表:

按键1:清0:

引入:AT24C02

按键3:缓存:

断电重启:

按键4:读取缓存:

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐