☰
HRTOS实战示例:24C02 EEPROM掉电保存与4位数码管显示
2026/9/30 16:53:47 网站建设 项目流程

EEPROM 是 8051 嵌入式开发中非常常见的非易失性存储器件,可以用于保存配置参数、计数值、设备状态等数据。

本次 HRTOS 基础示例增加24C02 EEPROM + 4位数码管显示案例,通过 24C02 保存一个计数值,并使用 HRTOS 任务完成 EEPROM 数据读取、加1、写回以及数码管显示。

这个示例还可以直观体现 EEPROM 的一个重要特点:

数据掉电后仍然能够保存。

一、示例实现的功能

程序使用 24C02 的0x00地址保存数据。

系统运行后:

读取 EEPROM 数据 ↓ 数据 +1 ↓ 写回 EEPROM ↓ 数码管显示当前数据 ↓ 等待 ↓ 继续下一次

显示范围为:

0000 ~ 0255

例如 EEPROM 当前保存50,数码管显示:

0050

重新上电后,程序再次读取 EEPROM 中的数据,之前保存的数据不会因为断电而消失。

二、EEPROM读写任务

EEPROM 的读写由task_eeprom()独立完成。

首先读取 24C02 中保存的数据:

eeprom_value = eeprom_24c02_read(0x00);

随后等待一段时间,再将数据加 1:

eeprom_value++;

然后写回 EEPROM:

eeprom_24c02_write(0, eeprom_value);

最后再次延时,然后开始下一轮操作。

因此,程序会不断对 EEPROM 中保存的数值进行递增。

这里使用os_delay()让任务在读写操作之间进行等待,也体现了 HRTOS 在外设操作场景中的基本使用方式。

三、为什么需要考虑EEPROM写入间隔

EEPROM 与普通 RAM 不同。

写入 EEPROM 是一个实际的非易失性存储操作,因此在应用设计中通常需要考虑写入周期以及写入频率。

本示例在 EEPROM 操作之间加入了:

os_delay(100);

避免连续进行过于紧密的写入操作。

对于实际项目而言,如果 EEPROM 用于保存配置参数或者运行数据,还可以进一步根据具体器件特性设计更加完善的写入策略,例如减少不必要的重复写入。

本示例主要用于展示 24C02 的基本读写流程,因此保持了代码结构的简单性。

四、数码管显示任务

另一个 HRTOS 任务负责显示当前 EEPROM 数据。

程序获取当前的:

eeprom_value

然后将数据拆分为四位,通过数码管进行显示。

例如:

0 → 0000 1 → 0001 50 → 0050 100 → 0100 255 → 0255

对应代码通过:

drv_seg_display()

分别控制四位数码管。

这样 EEPROM 中保存的数据变化过程就能够直观地显示出来。

五、两个任务进行功能分工

整个示例依然采用 HRTOS 的任务化结构:

HRTOS │ ├── task_eeprom │ ├── 读取24C02 │ ├── 数据+1 │ ├── 写入24C02 │ └── 延时 │ └── task_seg_display └── 显示当前数据

EEPROM 任务负责数据存储。

数码管任务负责数据显示。

两个任务分别完成不同功能,由 HRTOS 负责统一调度。

这种结构也方便后续继续扩展功能。

六、断电后数据仍然存在

这个示例最直观的实验现象就是掉电保存。

例如第一次运行时:

EEPROM = 0000

程序读取后加 1:

EEPROM = 0001

再次运行:

EEPROM = 0002

继续运行:

0003 0004 0005 ...

如果此时关闭开发板电源,再重新上电,程序不会从0000重新开始,而是会读取 24C02 中之前保存的数据继续运行。

这也是 EEPROM 与 RAM 最明显的区别之一。

七、这个示例可以用于哪些实际场景

虽然本例只是一个简单的计数实验,但它对应的技术在实际 8051 项目中非常常见。

例如:

  • 保存设备配置参数;

  • 保存设备地址;

  • 保存运行模式;

  • 保存校准参数;

  • 保存累计运行次数;

  • 保存设备状态;

  • 保存掉电需要保留的数据。

因此,通过这个简单示例,可以进一步理解 HRTOS 与非易失性存储器结合使用的基本方式。

八、HRTOS基础示例持续完善

目前 HRTOS 的基础示例正在持续扩充。

这些示例并不是单纯为了展示代码数量,而是尽量覆盖 8051 开发中经常使用的基础外设和功能。

目前已经可以围绕不同硬件逐步构建:

GPIO PWM 继电器 数码管 EEPROM 传感器 串口 通信 ...

同时结合 HRTOS 的:

任务 延时 调度 同步 消息 驱动 Shell

形成更加完整的实际应用案例。

对于开发者而言,可以直接从基础示例入手,逐步了解 HRTOS 在真实 8051 项目中的使用方式。

HRTOS 也会继续对这些基础示例进行维护、整理和实际硬件验证。

持续维护,持续验证,持续完善。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询