51单片机密码锁制作的程序和流程图.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
盛年不重来,一日难再晨。及时宜自勉,岁月不待人。 51单片机密码锁制作的程序和流程图(很详细) 一、基本组成: 单片机小系统+4*4矩阵键盘+1602显示+DC电机 基本电路: 键盘和和显示 键盘接P1 口,液晶的电源的开、关通过P2.7 口控制 电机(控制口P2.4) 二、基本功能描述: 1.验证密码、修改密码 a)锁的初始密码是123456(密码最长为10位,最短为1位)。 2.恢复初始密码 a)系统可以恢复初始密码,否则一旦忘记密码而又不能恢复初始密码,该锁就永远打不 开。但是又不能让用户自行修改密码,否则其他人也可以恢复该初始密码,使得锁的安全性 大大下降。 3 .使系统进入低功耗状态 a)在实际使用中,锁只有在开门时才被使用。因而在大多数的时间里,应该让锁进入休 眠状态、以降低功耗,这使系统进入掉电状态,可以大大降低系统功耗。 b)同时将LCD 背光灯关闭 4 .DC 电机模拟开锁动作。 a)DC 电机启动时解除开锁把手的锁定,允许通过把手开锁。DC 电机不直接开锁,使得 DC 电机的功率不用太大,系统的组成和维护将变得简单,功耗也降了下来。 三、密码锁特点说明: 1.0 输入将被以字符形式输入,最长为10 位。 超过10 位时系统将自动截取前10 位、但不作密码长度溢出提示。 2.0 开锁10 秒后不允许更改密码、并提示修改超时_进入初始态,需要重新输入密码方可 再次修改密码。 3.0 系统未使用存储器存储密码故掉电后密码自动恢复为初始密码。 4.0 若2 分钟内无任何操作,系统自动进入省电模式运行, 同时关闭液晶显示, 以节省电 力。 5.0 输入密码正确后、电机允许开锁时间为5 秒, 5 秒后需要再次输入密码才可以再次开 锁。 6.0 修改密码键和恢复初始密码键最好置于室内。 这是Proteus 仿真结果: 输入密码123456: 显示结果: 密码正确时电机启动、电机将持续5秒: 这是键盘: 开锁键是接INT0引脚接的一个独立按键,用于唤醒CPU工作、进而开启整个 系统 密码正确时可以修改密码: 再次输入新密码,两次输入相同时、更改有效 当然你可以随时放弃修改密码 改进: 1.0 密码锁的秘密没有存储,因而在掉电时最新的密码将丢失,重新上电后 密码将恢复成为初始密码。这使得每次换电池或停电后密码都得恢复一次,给使 用带来不便,但是为了要存储一个最多只有十几字节的密码就增加一个存储器、 似乎不是很值,最好是所选的单片机自带这样的存储器(容量很小、如32B)。当 然如果电源来自市电的话,就不会经常掉电了。 2.0 系统的最好再增加电源监测的设计,在电池电力不够时发出提示。这时 还可以增加备用电池,这样就可以保证系统不会掉电。但是这些都要依赖于成本。 3.0 液晶的显示最好采用中文。通过对1602的CGRAM 的操作可以实现中文 显示,使得用户界面更好。 主函数: 确认函数_ confirm()操作: 0_将 \0 置于输入 table_input[]结尾 (table_input[]的长度返回值在 length 里面) 根据操作标识选择任务: 1_确认密码:判定输入密码正确与否 2_修改密码:确认第一次输入并保存 要求第二次输入 比较两次输入是否相同 根据比较结果选择任务: 修改失败,进入输入密码态 修改成功,将输入复制到 table_password[] 确认函数_confirm()相关标识位目录: flag_display;//根据其值可以确定显示信息 flag_confirm;//确认键根据此标识判定任务,默认为 0_即为确定密码状态 flag_allow;//允许修改密码标识,在密码比较正确时置 1 flag_amend;//第一/二次输入新密码标识 flag_M;//允许电机开锁标识

文档评论(0)

xieliandimei + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档