基于单片机的电子密码锁正文(编辑修改稿)内容摘要:

件设计 键盘扫描 【 7】 流程图如图 所示 ,在按键当中,有与输入、开锁、清除、设置、确认的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,输入两次新密码正确时,可进行重新设置密码,最后确认程序。 按键的检测主要是通过查询的方法来实现的,利用按键进行密码的输入及设置。 图 按键扫描流程图 开 始 行列端口赋值0xf0 读端口,结果相等。 延时 10 毫秒 保存首次赋值 读端口,两次赋值运算 读端口,结果 相 等。 查表发出键模 行列端口赋值 0x0f 返回 四川师范大学成都学院电子工程系课程设计报告 16 图 24C02读写操作的软件算法流程图 图 2 修改密码流程图 输入密码 存入缓冲 再输入一 比较密码 按下输入新密码 调 用 24C02 调用显示 重新输入 四川师范大学成都学院电子工程系课程设计报告 17 系统功能及仿真 (一)开锁 (二) LCD1602 液晶显示 (三)密码修改 (四)报警 (五)还能添加掉电存储 当给单片机上电后,单片机显示如图: 图 41 仿真图 1 四川师范大学成都学院电子工程系课程设计报告 18 当输入密码时,单片机显示如图: 图 42 仿真图 2 密码错误的情况下修改密码(即输入新密码)显示如图: 图 43 仿真图 3 四川师范大学成都学院电子工程系课程设计报告 19 当输入正确密码时单片机显示如图: 图 44 仿真图 4 输入新密码之后保存 显示: 图 45 仿真图 5 四川师范大学成都学院电子工程系课程设计报告 20 图 46 实物图 5 总 结 以上为本人设计的电子密码锁电路。 该电子密码锁设计实现开关锁和修改密码等 功能,并具有结构简单、功耗低、成本低等优点,但是设计电子密码锁需要结合实际综合考虑很多因素,因此该电子密码锁设计需要在实际中进一步完善和改进。 另外,在系统应用程序方面,该设计只实现了修改密码、开关锁、自动报警等功能,要想在现实生活中推广,还必须针对实际应用场合的需要,进一步完善系统功能的程序。 具有防盗报警功能的电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,密码锁不管在技术上还是在性能上都得到了提高。 其经过多次的整理,是一个比较不错的设计,可以满足人们的基本需求,但是因为水 平有限,此电路中也存在一定的问题, 的设计并不奢望一定能成功,但一定要对已学的各种电子知识能有一定的运用能力,我做设计的目的是希望能检查下对所学知识的运用能力的好坏,并且开始慢慢走上创造的道路,这是非常可贵的一点。 四川师范大学成都学院电子工程系课程设计报告 21 但是在我们设计和调试的过程中,也发现了一些问题,譬如电子密码锁的设计还不够人性化,比如加上语音的提示功能,可能会更有生命力。 电路的密码不能忘记,一旦忘记,就难以打开,这可以通过增加电路解决,但那过于复杂。 此次 程序设计还有一定的漏洞。 也许还有其他的一些不足,还请老师给以支持。 6 参考文献 [1] 童诗白 .华成英:模拟电子技术基础 [第四版 ].高等教育出版社, P3P7 [2] 张毅刚:单片机原理及应用 .高等教育出版社, , P65P67 [3] 李全利:单片机原理及接口技术 .高等教育出版社, , P69P78 [4] 李光飞:单片机课程设计指导 .北京航空航天大学出版社, ,P12P24 [5] 蔡朝洋:单片机控制实习与专题制作 .北京航空航天大学出版社, ,P30P41 [6] 陈连坤:单片机原理及接口技术 .北京交通大学出版社, ,P55P57 [7] 李学海:标准 8051 单片机基础教程 .北京航空航天大学出版, ,P57P60 四川师范大学成都学院电子工程系课程设计报告 22 附录一: 原理图 附录二: 源程序// // 名称:用 1602LCD 与 24C04 设计的电子密码锁 // // 说明:初始密码由 设定为 “123456”。 // 当输入 0~9 中的数字时可以输入密码,不超过 6 位数,输入完成后按下 A // 键开锁,密码正确时 LED 点亮,液晶显示开锁成功。 // 其他键功能是: B 上锁 C 重新输入密码 D 保存新密码 E 清除 // 重设密码成功时要求先输入正确的密码成功开锁。 // include include define uchar unsigned char define uint unsigned int //上次按键和当前按键序号,该矩阵中序号范围为 0~15,16 表示无按键 uchar pre_keyNo=16,keyNo=16。 uchar code Title_Text[]=Your Password...。 //标题字符串 uchar DSY_BUFFER[10]=。 //显示缓冲 uchar UserPasssword[10]=。 //用户输入的密码 四川师范大学成都学院电子工程系课程设计报告 23 void LCD_Init()。 //液晶初始化 void Display_String(uchar*str,uchar LineNo)。 //在液晶指定行显示字符串 void IIC_24C04_Init()。 //IIC 初始化 void Beep()。 //蜂鸣器 uchar RecString(uchar Slave,uchar Subaddr,uchar*Buffer,uchar N)。 //从 IIC 读取数据 uchar SendString(uchar Slave,uchar Subaddr,uchar*Buffer,uchar N)。 //从 IIC 读取数据 uchar Keys_Scan()。 sbit LED_OPEN=P2^7。 //开锁亮灯 sbit BEEP=P3^7。 //蜂鸣器 // //延时 // void DelayMS(uint x) { uchar i。 whlie(x) for (i=0。 i120。 i++)。 } // //蜂鸣器子程序 // void Beep() { uchar i。 for (i=0。 i100。 i++) { DelayMS(1)。 BEEP=~BEEP。 } BEEP=0。 } // //清除密码 // void Clear_Password() { UserPassword[0]=39。 \039。 DSY_BUFFER[0]=39。 \039。 } 四川师范大学成都学院电子工程系课程设计报告。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。