迪文科技论坛

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

【分享】2023级 朱广恩 陈子希 智能门锁设计

[复制链接]

1

主题

0

回帖

28

积分

新手上路

Rank: 1

积分
28
发表于 昨天 18:44 | 显示全部楼层 |阅读模式
【作品简介】
(一)利用DWIN T5L智能屏(8051内核+DGUS II图形界面)设计一款嵌入式开机密码系统,满足以下要求:
1.屏幕具有开机欢迎画面,能够显示学校LOGO和标志性建筑、迪文公司LOGO、题目和队员信息等内容;
2.设计密码交互界面,实现6位数字密码录入,输入密码以*掩码显示,具备退格、一键清空输入框功能;
3.密码校验功能,确认输入密码后进行比对,密码正确跳转解锁成功展示页面;密码错误弹窗提示,可反复重新输入,无输错锁定限制;
4.解锁成功后进入密码修改设置页面,需要校验旧密码,两次输入新密码完全一致才可完成改密;
5.开锁成功展示页面停留约3秒后自动返回密码输入主页;此外,团队还添加了密码写入内部NOR‑Flash,实现密码掉电保存的功能。
【工作原理】
(一)开机密码系统1.上电初始化原理:系统调用sys_init()配置8051寄存器、关闭看门狗,开启定时器2产生1ms系统时基;完成DGUS参数、串口初始化;password_init函数读取NOR‑Flash内部存储密码,若Flash无有效数据,则加载出厂默认密码123456,完成后进入开机欢迎页面,进入主循环。
2.主循环前后台调度原理:程序采用裸机前后台架构,while(1)循环轮询执行四项任务;DGUS_Process()轮询DGUS变量区VP的按键标志,完成页面跳转与功能触发;mima_input_enable使能有效时调用input_mima()处理数字录入、退格、清空输入;mima_config_process()处理旧密码校验、两次新密码比对、NOR‑Flash密码写入业务;fp_manage_process()处理指纹相关管理业务逻辑。
3.密码开锁流程原理:DGUS虚拟键盘将录入的6位密码存入VP 0x2000缓冲区,按下确认键置位标志0x3020;input_mima读取缓冲区密码与内存存储密码ture_mima逐位对比;全部字符匹配跳转解锁成功展示页,置位judge_unlock解锁标志;密码不匹配跳转密码错误提示页面。
4.密码修改原理:解锁后进入改密界面,读取旧密码进行身份校验;旧密码校验通过,比对两次输入的新密码,两次密码完全一致,调用norflash_write,经0xFF00缓存区中转,轮询写入完成标志,将新密码写入NOR‑Flash;旧密码错误或者两次新密码不一致,弹窗提示并停留在改密页面等待重新输入。
5.指纹管理原理:解锁成功后方可进入指纹管理子功能。录入指纹时需要完成两次按压采样,两次均成功采集图像并生成特征模板后保存指纹ID;支持单枚指纹删除操作,执行删除前先匹配识别待删除指纹获取对应ID再执行删除指令;支持清空全部指纹库操作;进入指纹管理时需要进行管理员身份校验,超时未操作自动退出指纹管理页面。
【设计思路】
(一)开机密码系统1.硬件搭建:选用DWIN T5L智能屏,芯片集成8051主控、DGUS触控显示、NOR‑Flash存储,无需外接单片机;定时器2提供1ms系统时基,无额外外接硬件。
2.界面设计(DGUS):在DGUS软件制作全套UI界面,包含开机欢迎页、密码输入页、密码错误页、解锁成功展示页、密码修改设置页、指纹管理页面;配置各页面触控按键,分配VP变量地址,用于密码缓存、按键标志。
3.单片机程序框架:系统初始化:配置8051寄存器、看门狗、定时器2、DGUS、串口;上电读取NOR‑Flash加载密码。主循环轮询DGUS的VP变量标志,分发密码输入、密码修改、指纹管理、页面跳转任务;依靠mima_input_enable、judge_unlock、page_tick状态标志管理业务流程,返回主页时复位全部状态标志,避免旧状态干扰。
4.底层驱动设计:编写NOR‑Flash读写驱动,修改密码才执行写操作,写入过程轮询完成标志;增加DGUS‑VP变量通信校验,防止通信数据错位;实现输入容错,支持退格、一键清空,对超过6位的输入做截断处理。
【演示视频】
【智能门锁设计】 https://www.bilibili.com/video/B ... 1be168b2475d6dc3d2d


本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-18 13:39 , Processed in 0.029840 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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