迪文科技论坛

 找回密码
 立即注册
搜索
查看: 20|回复: 0

【分享】16组-正新鸡排组-多功能备忘录备忘录系统

[复制链接]

1

主题

0

回帖

28

积分

新手上路

Rank: 1

积分
28
发表于 3 天前 | 显示全部楼层 |阅读模式
一、作品简介本作品基于 51 内核的 T5LOS8051 单片机,结合 DGUS 智能屏(迪文屏),通过 Keil C51 开发环境实现了一套带备忘功能的轻量级身份验证人机交互系统。系统核心功能包含用户注册(支持密码二次校验)、用户登录(基于 EEPROM 掉电存储的账号密码校验)、电子备忘录(触控文本录入+分页浏览)、实时年月日时分秒时钟、超时屏保(无操作自动切屏保页 + 操作唤醒)五大模块,可适配各类需要身份鉴权与信息记录的嵌入式人机交互场景(如工位备忘终端、小型门禁控制面板、办公便签一体机等)。系统硬件层面依托 T5LOS8051 单片机的硬件资源(定时器、中断、GPIO、扩展存储接口)与 DGUS 屏的虚拟寄存器(VP)通信机制;软件层面采用模块化设计,通过 Keil C51 完成底层驱动、中断管理、逻辑处理的开发,兼顾稳定性与交互性,所有功能在单块触控屏内即可完整实现,无需外接额外主控与存储芯片。二、工作原理
1. 核心硬件交互逻辑DGUS 屏与单片机通过虚拟寄存器(VP) 实现双向通信:DGUS 屏将页面号、按键状态、用户输入的账号/密码/备忘录文本等数据写入指定 VP 地址;单片机通过读写 VP 地址(如VP_PAGE_NUM、VP_LOGIN_BTN、VP_REG_USER、VP_TIME_YEAR、VP_MEMO_INPUT等)获取屏端状态/数据,或向屏端下发页面切换、文本刷新、时间更新指令;单片机内置的 EEPROM 用于掉电保存注册的账号密码与备忘录条目(地址EEPROM_USER_ADDR/EEPROM_PWD_ADDR/EEPROM_MEMO_BASE),保障数据掉电不丢失。2. 软件执行流程(1)系统初始化主函数执行sys_init()完成核心初始化:- sys_cpu_init():关闭看门狗、配置 CPU 时钟/中断掩码/IO 模式等底层硬件参数;- sys_timer2_init():初始化定时器 2 并开启中断,采用分频计数同时支撑屏保计时与实时时钟秒计时(中断号 5);- 初始化时钟初始年月日时分秒、备忘录存储数组与有效条目计数;- 读取 DGUS 屏当前 VP 页面号,初始化current_page(当前页面)。(2)主循环调度
主循环持续轮询:- 喂看门狗(WDT_RST()),防止系统复位;- 读取VP_OPERATE_FLAG操作标志,若检测到屏端操作,重置屏保计时、更新当前页面;- 依次调用screenaver_handle()(屏保)、login_handle()(登录)、register_handle()(注册)、memo_handle()(备忘录)、time_refresh_handle()(实时时钟)处理对应逻辑;- 10ms 延时后进入下一轮循环,保障轮询时效性与时钟精度。(3)核心功能逻辑注册功能读取注册按键(VP_REG_BTN)状态,触发后切换到注册页;读取保存按键(VP_REG_SAVE_BTN)状态,校验密码与确认密码一致性,一致则将账号密码写入 EEPROM,切回登录页。登录功能读取登录按键(VP_LOGIN_BTN)状态,触发后读取屏端输入的账号密码,与 EEPROM 中存储的数据逐字节对比;匹配成功则切换到登录成功页(主功能页,集成时钟显示与备忘录入口)。备忘录功能- 文本录入:在备忘录录入页读取VP_MEMO_INPUT地址的用户输入文本,校验非空与条目上限后,存入单片机内存二维数组,同时写入EEPROM实现掉电保存,有效条目计数自增;- 分页浏览:主功能页读取上翻/下翻按键VP_MEMO_UP/VP_MEMO_DOWN状态,切换当前显示的备忘录条目下标,将对应数组内容写入VP_MEMO_DISPLAY地址,屏幕同步刷新显示;- 边界保护:条目下标限制在0~有效条目数-1范围内,避免数组越界。
实时时钟功能- 计时基准:复用定时器2中断,每1ms进入一次中断,累计计数到1000次时触发秒进位,保障走时精度;- 自动进位:内置12个月天数表与闰年判断逻辑,秒满60进分、分满60进时、时满24进日,自动适配大小月与2月28/29天变化,月满12进年;- 显示同步:每秒将年、月、日、时、分、秒以BCD码格式分别写入对应VP地址,DGUS屏数字控件实时刷新显示。屏保功能定时器 2 中断累计无操作时间(saver_timer),超时(≥30000 个中断周期)则切换到屏保页(PAGE_SCREENSAVER);屏保状态下检测到操作标志,立即切回超时前的页面,并重置计时。(4)底层驱动支撑- sys_read_vp()/sys_write_vp():实现单片机对 DGUS 屏 VP 寄存器的底层读写(通过RAMMODE配置通信模式、ADR_H/M/L配置地址、DATA0~3传输数据);- eeprom_read()/eeprom_write():操作单片机扩展存储接口,实现 EEPROM 的字节级读写,同时支撑账号密码与备忘录数据的掉电存储;- 定时器 2 中断:采用分时复用设计,同时负责屏保计时与实时时钟秒计数,保障两项功能的实时性,无需额外占用硬件定时器资源。 三、设计思路1. 需求导向的功能拆解在原有“身份验证 + 人机交互节能(屏保)”核心需求基础上,扩展实用场景需求,拆解为五个独立且可复用的模块:- 注册模块:解决“账号密码掉电保存”需求,需校验密码一致性避免输入错误;- 登录模块:解决“身份鉴权”需求,需与 EEPROM 存储数据精准对比;- 备忘录模块:解决“信息记录与回看”需求,支持触控文本录入、多分页浏览、掉电持久化存储;- 实时时钟模块:解决“时间显示与时间基准”需求,提供精准年月日时分秒显示,为后续待办提醒等功能预留扩展基础;- 屏保模块:解决“无操作节能/防误触”需求,需基于定时器中断实现精准计时与快速唤醒。 2. 硬件交互层设计(DGUS VP 地址规划)为降低通信耦合,对 DGUS 屏 VP 地址做分段标准化定义,功能区间独立无重叠:- 页面管理段:VP_PAGE_NUM(当前页面号)、各页面枚举(登录/注册/主功能/备忘录录入/屏保页);- 按键状态段:VP_LOGIN_BTN/VP_REG_BTN/VP_MEMO_UP/VP_MEMO_DOWN等独立地址,避免按键状态冲突;- 用户数据段:VP_LOGIN_USER/VP_REG_PWD等地址分段存储账号密码,长度统一为 8 字节(DATA_LEN);- 时钟显示段:VP_TIME_YEAR/VP_TIME_MON/VP_TIME_DAY/VP_TIME_HOUR/VP_TIME_MIN/VP_TIME_SEC连续地址,分别对应年月日时分秒显示;- 备忘录数据段:VP_MEMO_INPUT(录入文本)、VP_MEMO_DISPLAY(显示文本),单条目固定32字节;- 全局标志段:VP_OPERATE_FLAG作为全局操作触发标志,简化主循环轮询逻辑。 3. 软件架构分层设计延续“底层驱动 - 中层逻辑 - 上层调度”的分层架构,新增功能完全兼容原有架构:- 底层驱动层:封装 CPU/定时器初始化、VP 读写、EEPROM 读写、延时/中断等硬件相关操作,屏蔽硬件差异;定时器2采用分时复用设计,一套驱动同时支撑屏保与时钟两项功能,减少资源冗余;- 中层逻辑层:独立实现login_handle()/register_handle()/screenaver_handle()/memo_handle()/time_refresh_handle(),各函数仅依赖底层驱动接口,功能边界清晰,便于单独迭代与新增扩展功能;- 上层调度层:主循环统一轮询操作标志与时钟计数标志,按优先级调用各逻辑函数,保障系统流程的有序性。4. 稳定性设计在原有稳定性机制基础上,针对新增功能补充容错与保护设计:- 中断管理:初始化时关闭全局中断(EA=0),配置完成后开启,避免初始化过程中中断异常;定时器中断内仅做计数与标志位置位,业务逻辑放在主循环执行,降低中断耗时;- 看门狗处理:初始化阶段关闭看门狗(WDT_OFF()),主循环定时喂狗,防止系统异常复位;- 数据校验:账号密码对比、注册密码校验均采用逐字节遍历,避免数据错位导致的鉴权失败;备忘录录入做空值与长度校验,避免无效数据写入存储;- 边界保护:备忘录分页下标做上下限钳位,防止数组越界;时钟进位严格匹配当月天数,闰年判断覆盖整百年份特殊规则,避免日期跳转错误;- 状态重置:任何操作触发后立即重置has_operate与saver_timer,保障屏保计时的准确性。
5. 开发工具适配(Keil C51)基于 Keil C51 的编译特性,采用 51 单片机特有的语法(如sfr/sbit定义寄存器、interrupt中断关键字、idata/xdata存储类型),适配 T5LOS8051 的硬件资源映射;BCD码转换、二维数组存储、EEPROM连续读写等逻辑均针对C51编译特性优化;通过模块化的.h/.c文件拆分(sys.h/sys.c/T5LOS8051.h/user_app.h/user_app.c),提升代码的可维护性与编译效率。


演示视频:【16组-正新鸡排组-多功能备忘录备忘录系统】 https://www.bilibili.com/video/B ... 07494fb7c6ba6624a3a

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2026-6-17 16:17 , Processed in 0.082812 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表