标题: 单片机LCD1602的连续输入程序,求思路 [打印本页]

作者: 茉莉星瞳    时间: 2021-6-30 00:52
标题: 单片机LCD1602的连续输入程序,求思路
一个密码锁设计,现在所有的显示部分和按键扫描程序已经调试完毕,不过按一次按键之后就直接开始判密码了,该怎么写才能在等待输入完成后在进行判呢,求大佬给个大致思路

65A3C45E-94FF-4140-ABFF-89C35D226A63.png (67.96 KB, 下载次数: 36)

65A3C45E-94FF-4140-ABFF-89C35D226A63.png

1.png (101.46 KB, 下载次数: 44)

1.png

作者: mengzhixinheng    时间: 2021-6-30 07:25
输入的密码在显示的同时保存进缓存,密码输入确定后再判断就行了
作者: cheney03    时间: 2021-6-30 08:45
把输入的密码保存在EEPROM,数值再跟密码进行判断,若相等解锁,若不等于提示密码错误
作者: 茉莉星瞳    时间: 2021-6-30 08:51
mengzhixinheng 发表于 2021-6-30 07:25
输入的密码在显示的同时保存进缓存,密码输入确定后再判断就行了

缓存的话是不是必须得添加一些硬件电路
作者: lkc8210    时间: 2021-6-30 10:31
加一个等待逻辑(是等待,不是Delay)在按键动作之后
当按键放开后一段时间内没有键再按下才开始判定密码

作者: ccyg8774    时间: 2021-6-30 10:49
茉莉星瞳 发表于 2021-6-30 08:51
缓存的话是不是必须得添加一些硬件电路

不用。
在程序里建立一个unsigned char变量,这个变量就是你的缓存,长度等于你的密码长度。
每按下一个键,把按键给你的字符放到这个变量对应的数位上(第1个按键放第0位,第2个按键放第1位,依此类推),等都输完了再把这个变量拿去判断密码对不对。
注意按键抖动,说不定会导致按一下键出来两个一样的字符,占了两位。如果出现这个问题记得加上软件或者硬件除抖。
作者: 温xyz    时间: 2021-6-30 12:14
最好设置一个确认键,输入密码完毕后按下确认键,再与设置密码比较,若相符,则开锁。这样可以增加破解难度。比如,你设置的密码为1234,当别人输入12345,如果没有确认键,也认为输入密码是正确的。
作者: 小枫啊    时间: 2021-6-30 12:49
设定一个变量,按一次加一下,变量加到一定值后,比如四位密码,加到4后进行判别
作者: yzwzfyz    时间: 2021-6-30 16:52
你需要确认如下事件:
1、如何确认当下是第一个键值?
2、如何确认当下是最后第一个键值?
3、如何处置按错的键值?
4、如何处置按对的键值?
5、如何防止不停地试探密码?
……
这此都需你去架构。架构好了再写程序。

作者: mengzhixinheng    时间: 2021-6-30 18:19
茉莉星瞳 发表于 2021-6-30 08:51
缓存的话是不是必须得添加一些硬件电路

你没理解缓存?就是在RAM区域开辟零时存放数据的空间。就你那点数据哪里需要增加硬件。
作者: 人人学会单片机    时间: 2021-7-6 20:32
LCD1602显示℃ 这种自定义符号 http://www.51hei.com/bbs/dpj-200685-1.html
LCD1602液晶最新资料 说明了具体的时间要求 http://www.51hei.com/bbs/dpj-205768-1.html




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1