打印
[STM8]

请教一个1000条6位数验证码匹配实现的需求

[复制链接]
832|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sheepdog79|  楼主 | 2016-8-11 14:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一个需求

单片机板可以按一定的规则(规则和外部一个电脑软件一致)生成不连续的6位数验证码1000个, 比如 945861…756358…..

将通过单片机板键盘输入的验证码(是那个电脑软件生成的), 和单片机自己生成的验证码做比较, 如果相同, 验证就通过,

同时单片机要记录这个验证码被用过了(也可设成全0, 就是没有这个验证码了), 如下次还输入这个验证码就不能再通过了, 意思就是只能验证一次, 和我们的常用的防伪码是一样的, 只能查一次.

用STM8S105K4来实现需不需要外挂存储器? 有什么办法可以不用外挂存储器么.
沙发
sheepdog79|  楼主 | 2016-8-11 15:01 | 只看该作者
其实这个问题的本质是单片机要记录已经符合规则, 并已经核对过的验证码, 已经验证过的就不能再验证了, 暂不要求掉电保存.
如果能定义数组来放, 比如把6位数验证码当成一个整数,估算要u32的变量才能放下一个验证码(6位数, 999999), 记录1000个验证码就要定义1000个u32的变量, 我这样想对不对?

使用特权

评论回复
板凳
mmuuss586| | 2016-8-11 16:06 | 只看该作者
存储器肯定要的;
1、数据生成,你可以把连续的数据先去除掉,再统一存到存储器里;
2、数据比较和生成应该都要要快速比较的算法,要不然你1000条数据验证半天也不行;
   

使用特权

评论回复
地板
mintspring| | 2016-8-11 23:46 | 只看该作者
你可以通过计时器,把一秒分成1000毫秒,每次按下获取按键后,就按顺序抽取对应时隙的随机码。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

11

帖子

1

粉丝