单片机实习报告 键盘式电子密码锁Word文件下载.docx
《单片机实习报告 键盘式电子密码锁Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机实习报告 键盘式电子密码锁Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
电气与信息工程学院
专业
班级
测控14-1
指导教师姓名
曲贵波张鹏
职称
副教授
是否外聘
□是
否
题目名称
键盘式电子密码锁
一、设计的内容、目的和意义
本次实习是有关于键盘式电子密码锁的设计。
键盘式的电子密码锁使用最为广泛,本产品主要用于保险箱、防盗门、保险柜之类的,还有一部分用于保管箱和运钞车。
该产品在键盘上输入密码,易于掌握,由于密码是记在用户的脑子里,所以既准确又可靠,不易破解,除非自己丢失或者泄露。
如今电子密码锁向着“随意设定密码”“显示乱序”“多重设定密码”“锁定键盘”等方向发展,使得不法分子无从入手。
尽管新型电子防盗锁层出不穷,但是键盘式电子密码锁仍在市场上占据着主流地位,并且经常作为其他类型防盗锁的辅助功能。
本设计主要可实现:
(1)在一定时间内没有任何按键操作则关闭显示器,并锁定键盘,单片机复位后锁定取消;
(2)能够从键盘中输入密码,并相应地在显示器上显示‘*’;
(3)能够判断密码是否正确,正确则开锁,错误则输出相应信息;
(4)在操作错误达到一定次数后能够报警;
(5)能够实现密码的修改;
二、设计的技术指标要求
1、研究方法
(1)总体按照最优化的方法进行软件设计和硬件设计,走软件实现道路;
(2)对软硬件进行模块划分,并对各单元电路结合EDA工具进行论证设计;
(3)在查阅文献基础上展开设计,力求创新。
2、技术要求
(1)可以修改密码;
(2)输入密码必须正确;
(3)密码输入次数过多会自动报警;
摘要
本设计从经济实用角度出发,采用STC89C52单片机作为密码监控装置和控制核心,结合AT24C02存储单元电路,4*4
矩阵键盘电路,LCD1602显示电路,报警电路和开锁电路构成的,通过键盘输入正确的密码来控制电路,从而完成开锁、机械上锁、智能锁定键盘、修改密码等功能的电子产品。
通过编程来实现,其性能和安全性已远远超过传统的机械锁。
本设计具有保密性好、成本低、功耗低、操作简单、随机开锁成功率几乎为零、密码可变、误码输入保护、多次错误报警、断电记忆等优点。
方案比较及选择
方案1:
采用数字电路控制。
用以74LS112双JK触发器构成的数字电路作为密码锁的核心控制,将密码保存在JK触发器中,用其与输入密码通过比较器比较,判断密码正确与否。
其优点是设计原理简单,但是控制的准确性和灵活性比较差,物理结构较为复杂,操作不便。
方案2:
采用STC89C52单片机为核心的控制。
由于单片机的性能、存储、运行速度、I/O口、定时/计数器、功耗、晶振、复位等因素,用以STC89C52单片机作为核心,利用单片机灵活的编程设计和丰富的I/O端口及其控制的准确性,来实现电子密码锁的基本功能。
利用外接AT24C02存储芯片存储密码,LCD1602液晶显示,蜂鸣器作为报警驱动。
单片机控制原理如图1.1。
图1.1单片机控制原理图。
确定方案及理由:
结合上述两种方案,结合现实生活需求,本设计选用方案二。
第1章总体设计方案
1.1总体设计方案
此电子密码锁的系统中设计主要由三部分组成:
4×
4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。
另外系统还有LED提示灯,报警蜂鸣器等。
系统能完成本机超次锁定、修改用户密码基本的密码锁的功能。
本设计的任务拟采用单片机(C51)作为单片机的核心单元,利用单片机串行发射、接收等功能而设计的一款具有本机开锁和报警功能的电子密码锁。
本系统成本低廉,功能实用。
主要分为以下几个部分:
(1)设置密码及修改
设置6位密码,密码可以由用户自己修改设定(只支持6位密码),密码通过键盘输入,若密码正确,则将锁打开。
锁打开后才能修改密码。
修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
(2)密码显示
为了帮助用户确认是否有键按下,特在电路中设置了模拟显示电路;
而为了防止密码外泄;
显示时,并不是显示用户按下的数字符号,而是以一个特定的字母符号提醒用户是否有键按下。
有键按下,就会显示出字符---“*”,没键按下,则不会显示字符。
这样既巧妙的提醒了用户又保护了用户密码,此乃本设计可靠性优点之一。
(3)密码错误报警
当用户键入错误密码时,密码输入错误数码显示器会出现错误提示。
当连续三次出现密码错误时,系统就会报警,由蜂鸣器发出报警声,锁定键盘且系统会长期报警不止。
这时必须按复位方可停止。
此乃安全可靠性之一。
1.2软硬件功能分析
(1)单片机:
本部分的功能包括写入和读取各种控制命令及数据处理,同时还要对各执行单元进行控制。
单片机是整个系统的控制核心及数据处理核心。
(2)键盘部分:
本部分由用户通过键盘输入各种信息送入到单片机进行处理。
(3)显示部分:
本部分完成的是单片机处理后的数据和信息的显示以及系统提示信息的显示。
(4)密码存储部分:
本部分完成存储原始密码和用户更改密码数据的功能。
(5)其它部分:
本部分的目的是为了提高系统的可用性和实用性。
主要包括电源部分、复位部分、晶振部分、开锁部分和报警部分。
电源部分主要的功能是为单片机提供适当的工作电源,同时也为其它的部分提供电源。
复位部分功能是使单片机在出现故障时进行成功的复位。
晶振部分功能是给单片机提供时钟。
开锁部分主要是根据单片机数据处理的结果驱动继电器控制开锁的操作。
报警部分主要的功能就是在错误操作下实现报警提示。
第2章硬件电路设计
2.1单片机最小系统电路设计
单片机最小系统设计是单片机应用系统设计的基础。
STC89C52单片机最小系统电路如图2.1所示。
图2.1单片机最小系统电路
2.2输入电路及其接口技术
在电子密码锁中各种信息的输入都是通过键盘输入部分完成的。
把单个按键按照4*4组成键盘,四条行线连接到单片机的P1.0-P1.3四条I/O口线上,四条列线连接到单片机的P1.4-P1.7四条I/O口线上,运行的时候,单片机通过控制P1口得高低电平,然后根据变化进行判断。
单片机向行线输入高电平,向列线输入低电平,按键未被按下之前保持电平给定不变,按键按下,行线的高电平变成低电平。
同样对列线进行判定,即可判断所输入的信息。
键盘部分的电路连接如图2.2所示:
图2.2键盘输入电路
2.3人机接口电路设计
本设计利用显示屏作为显示单元,采用动态显示技术,电路如图2.3所示。
图2.3显示电路
第3章系统软件设计
3.1软件概述
经过前几章的设计工作,系统的硬件电路设计已经完成了。
然而,对于一个完整的设计系统来说,只有硬件电路的设计完成是不够的,它必须通过软件编程来实现系统工作的控制功能,从而才能实现电路应有的系统功能。
单片机系统的软件设计主要使用汇编语言或高级语言。
汇编语言与系统硬件的关系密切,可方便地实现诸如中断管理以及模拟/数字量的输入/输出等功能,具有占用系统资源小、执行速度快的特点,但是,对复杂的大型应用系统,其代码可读性差,并不利于升级和维护。
高级语言的代码效率和长度都不如汇编语言,但其结构清晰、可读性好、开发周期短、有极强的可移植性,在多数应用方面执行效率与汇编语言的差距也不大,近年来得到了极为广泛的应用。
而C语言既有高级语言的各种特点,又可对硬件进行操作,并可进行结构化程序设计。
用C语言编写的程序较容易移植,可生成简洁、可靠的目标代码,用C语言进行单片机计算机开发已经是必然的发展趋势。
矩阵键盘扫描子程序应该具有以下2个基本的功能:
(1)能判断是否有键按下;
(2)能确定是哪个键被按下。
由于设计中要求能够显示密码输入界面、密码输入信息、密码正确后提示界面、密码错误后提示界面和修改密码相关界面等信息,故要用到很多个显示子程序来显示不同的内容。
掉电存储子程序就是将初始密码写进AT24C02,单片机每次复位后从AT24C02中读取密码用来和输入的密码进行比较,以判断输入的密码的正确性。
3.2主程序设计
通过之前的硬件系统设计,综合各方面的考虑,系统主控流程图3.1所示:
图3.1主程序流程图
3.3中断服务子程序设计
本系统软件采取顺序程序控制,由于没有实时事件,故没有采取中断系统
实习总结
通过本次实习,让我对于单片机的理解不仅仅只限于书本,对于利用单片机制作产品的过程有个更清晰的认识。
利用AltiumDesigner画电路图更加熟练,对于电路板的焊接以及电路的连接也越发的老练。
对于各种硬件的功能理解的更为透彻。
利用kell4来编写部分程序以及对程序的修改。
相对来说,软件的设计要难于硬件的设计。
当然了,这仅仅是对于我自己来说。
还有程序的烧写,我们利用老师所发的下载器和STC-ISP来完成对程序的烧写。
最终使得所做密码锁可以按要求来工作。
在这三周里,我深刻体会到了知识的不足,对单片机理解颇少,因此在这实习里不断查阅资料和同学,课外上网找资料。
最后和我的队友一起完成这个密码锁。
在这过程中,遇到很多问题,例如显示屏不显示、密码输入不正确,键盘实现不了密码的输入等等。
最后我们还是一个一个的克服了困难,成功了完成这个作品。
参考文献
[1]张金敏,董海棠,高博,卫晓娟.单片机原理与应用系统设计[M].西南交通大学出版社,2010.
[2]秦实宏,徐春辉.MCS-51单片机原理及应用[M].华中科技大学出版社,2010.
[3]皮大能,南光群,刘金华.单片机课程设计指导书[M].北京理工大学出版社,2010.
[4]蒋辉平,周国雄.基于Proteus的单片机系统设计与仿真实例[M].机械工业出版社,2009.
[5]贺敬凯,刘德新,管明祥.单片机系统设计、仿真与应用[M].西安电子科技大学出版社,2011.
[6]戴文雯.采用STC89C51的电子密码锁的设计[J].南京航空航天大学学报(210016),2013.
附录
附录A总原理图
附录B源程序
#include<
reg51.h>
string.h>
intrins.h>
#include<
stdio.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineNOP3()_nop_();
_nop_();
_nop_()
uchartime_1s=0,i=0;
uchartime_50ms=0;
sbitrs=P2^2;
sbitrw=P2^1;
sbite=P2^0;
sbitSCL=P2^5;
sbitSDA=P2^6;
sbitP35=P3^5;
sbitP36=P3^6;
sbitP37=P3^7;
uchardatakong[7]={'
\0'
'
0};
uchardatamima[7]={'
1'
2'
3'
4'
5'
6'
uchardatamima0[7]={'
uchardatamima1[7]={'