基于单片机的电子密码锁的设计.docx
- 文档编号:3187662
- 上传时间:2022-11-19
- 格式:DOCX
- 页数:11
- 大小:95.40KB
基于单片机的电子密码锁的设计.docx
《基于单片机的电子密码锁的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁的设计.docx(11页珍藏版)》请在冰豆网上搜索。
基于单片机的电子密码锁的设计
基于单片机的电子密码锁的设计
通信工程2014届学生:
*****学号:
********
指导教师:
***
摘要:
单片机已经在家电领域中得到了广泛的应用,而且在安全密保方面,具有防盗报警功能的电子密码锁逐渐取代了传统的机械密码锁,克服了机械密码锁密码过少的安全性问题。
本密码锁的主控芯片采用价格实惠而且容易购买的STC89C52芯片。
密码输入采用矩阵键盘及独立键盘,密码显示采用共阴极的八段显示数码管。
系统能完成密码输入、正确开锁、超次报警这些基本的密码锁的功能。
系统的软件实现采用功能强大且易于开发的KeilC51环境,且支持ISP下载。
因此没使用编程器,用C语言实现系统的软件部分。
由于51单片机也有一些不足之处如断电后内部RAM储存的数据会完全丢失,为了克服这一缺点,系统的外围加了掉电存储电路并且由AT24C02芯片来实现。
此设计具有安全性高、价格低廉便于实现、易于改进等优点。
关键词电子密码锁STC89C52矩阵键盘AT24C02
目录
1绪论1
1.1单片机及其特点1
1.2单片机的发展及应用1
1.2.1单片机的发展趋势1
1.2.2单片机的应用2
1.3MCS-51系列单片机3
2系统硬件设计5
2.1设计思路5
2.2系统方案的选择5
2.2.1电子密码锁功能简述6
2.2.2系统的总体设计6
2.3单元电路的设计7
2.3.1主控芯片介绍7
2.3.2键盘输入电路9
2.3.3密码存储电路10
2.3.4开锁电路11
2.3.5报警电路12
2.3.6显示电路12
2.3.7串口通信电路14
2.3.8晶振电路15
3系统软件设计17
3.1软件工具介绍17
3.1.1.KeilC51概述17
3.1.2.KeilC51单片机软件开发系统的整体结构17
3.1.3下载工具STC-ISP18
3.2程序设计18
4硬件电路调试20
4.1单元功能电路调试20
4.2联机调试20
5改进方法23
5.1电路方面的改进23
5.2软件方面的改进23
致谢25
附录一程序26
附录二数码管显示电路32
附录三总设计图33
参考文献36
1绪论
2系统硬件设计
2.1设计思路
硬件设计是整个系统的基础,要考虑的方面很多,除了实现此设计的基本功能以外,主要还要考虑如下几个因素:
①系统稳定度;②器件的通用性或易选购性;③软件编程的易实现性;④系统其它功能及性能指标;因此硬件设计至关重要。
现从各功能模块的实现逐个进行分析探讨。
2.2系统方案的选择
方案一:
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。
采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差,故不采用。
方案二:
选用单片机STC89C52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接八段数码管用于显示作用。
当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。
密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后可以设置新密码。
新密码输入无误后按确认键使新密码将得到存储,密码修改成功。
综上分析:
方案一虽然设计简单但它的实用性不是很强。
而方案二设计复杂,但是安全性好,功耗低,成本低,而且容易操作保密性强。
2.2.1电子密码锁功能简述
在本设计中用户通过键盘输入密码,确认后系统调用密码比较判断函数,如果密码在规定的时间内输入正确,单片机输出开门信号开锁。
如果在规定的时间内没完成密码的输入,系统则自动清除所输入的密码,并提示重新输入。
用户发现错误时,可以清除重输。
密码输入后,通过验证和多位校验后了,如果密码错误则启动报警系统,当密码错误次数达到3次时,系统将锁定一定的时间,时间到后系统则启动键盘输入。
初始密码由系统设定,用户可根据自己的要求设定密码,修改密码时首先需要与旧密码匹配,如果输入旧密码错误则系统报警并自动退出密码修改系统。
旧密码正确则可以输入新密码,新密码的输入要求两次比对确认。
系统设定密码为6位,当输入密码不为6位或两次输入的新密码不一致时密码修改失败,系统报警并自动退出密码修改状态。
如果输入的新密码为6位并且两次输入的新密码一致则修改密码成功。
2.2.2系统的总体设计
系统以STC89C52为中心控制元件,用AT24C02作为密码存储元件,通过八段数码管显示。
设计的结构框图如图2.1所示。
图2.1结构框图
工作原理,从键盘输入一组密码,微控制器把改密码和预先设置的密码比较,对则将锁打开,并通过蜂鸣器的声音来演示密码锁的状态否则累计三次输入错误则启用报警。
2.3单元电路的设计
单元电路包括输入电路、复位电路、晶振电路、显示电路、报警电路和开锁电路,系统的实物图见附录四,总设计图见附录三。
以下将逐一介绍这些单元电路的设计方法。
2.3.1主控芯片介绍
MCS-51系列中的各种芯片引脚是互相兼容的,其中STC89C52单片机是高性能的单片机,它具有8位微处理器,128bit片内RAM,8K的片内ROM,4个八位的并行I/O接口P0-P3,两个定时/计数器及五个中断源的中断控制系统。
再不接任何外围电路的情况下可以实现大部分较为复杂的逻辑控制功能,进行外部RAM扩展还可以用于数据采集,点阵显示屏控制等方面应用。
对于存储量要求不高的实际应用,STC89C52是一种不可多得高性能的单片机,被广泛应用于各个领域。
STC89C52单片机的每个端口都是8位准双向口,每一条I/O线都能独立的用作输入或输出。
每个端口都包括一个锁存器,一个输出驱动器和输入缓冲器。
再无片外扩展存储器系统中,这四个端口都可以作为准双向I/O口使用。
再具有片外扩展存储器的系统中,P2口送出高8位地址P0口位双向总线,送出低八位地址和数据的输入/输出;P3口是一个多功能端口各个引脚具有第二功能。
(P3.0为串行口输入,P3.1位串行口输入,P3.2为外部中断0输入,P3.3为外部中断1输入,P3.4为定时器0的外部输入,P3.5为定时器1的外部输入,P3.6位片外数据存储器“写选通控制”输出,P3.7为片外数据存储器“读选存储器”输出)。
芯片引脚排列如图2.2所示。
图2.2单片机及其外围电路
2.3.2键盘输入电路
键盘输入电路采用的是4×4的矩阵键盘,因为本设计所用到的按键数量较多而不适合用独立按键式键盘因此采用的是矩阵式按键键盘,它由行和列组成,也称行列式键盘,按键位于行线和列线的交叉点上,密码锁的密码输入由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。
本设计中使用的这个4X4键盘不但能完成密码的输入还能作特别功能键使用,设置功能等。
其按键结构及与单片机引脚接法如图2.3所示。
图2.3键盘电路接法
2.3.3密码存储电路
由于51单片机掉电后会丢失数据存储器里的数据,因此必须外加掉电存储电路。
并由AT24C02芯片来实现
2.3.4开锁电路
电磁锁由电路驱动和开锁两级组成。
由D5、R1、T10组成驱动电路,其中T10以选择普通的小功率三极管如9014、9018都可以满足要求。
D5作为开锁的提示;由D6、C24、T11组成。
其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。
T11可选用中功率的三极管如8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。
在本设计中为了节省成本和原材料,在市场中现成的电磁锁非常多因此也没必要用一个实物电磁锁,因此就用蜂鸣器来表示电磁锁的状态。
2.3.5报警电路
报警电路由一个蜂鸣器驱动电路来实现的,包括以下几个部分:
一个蜂鸣器、一个三极管、一个连续流二极管和一个电阻。
2.3.6显示电路
为了节省成本以及考虑到操作的难易性,本设计的显示部分由共阴极的八段数码管取代液晶显示器LCD1602来完成。
显示电路图附录一所示。
通常LED有7段或8段和“米”字段之分。
这种显示器有共阳极和共阴极两种。
共阴极LED显示器的发光二极管的阴极连接在一起,通常此共阴极接地。
当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。
同样的,共阳极LED显示器的工作原理也一样。
在本设计中数码管的显示采用动态扫面的方式。
当多位LED显示时,通常将所有的段选线相应的并联在一起,由一个8位I/O口控制,形成段选线的多路复用。
而各位的共阴极或共阳极分别由相应的I/O口控制,实现位选时各位分时选通。
其中位选线占用一个8位I/O口,在本设计中有8个数码管,也就是说点亮数码管要占用两个8位的I/O口,这样就有点浪费了,为了节省I/O口,外接了芯片74HC138。
如图2.7所示。
图2.774HC138译码器引脚及外围电路
74HC138译码器可接受3位二进制加权地址输入(A0,A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。
74HC138特有3个使能输入端:
两个低有效(E1和E2)和一个高有效(E3)。
除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。
利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。
任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC138亦可充当一个8输出
多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。
因此当利用8位I/O口中的3位即可实现8个数码管的位选。
2.3.7串口通信电路
串口通信采用MAX232,MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
2.3.8晶振电路
晶体振荡器简称晶振,其作用在于产生原始的时钟频率,现在应用最广泛的是石英晶体振荡器。
本设计也采用的是是应尽体振荡器。
3系统软件设计
3.1软件工具介绍
本设计采用了两款软件,分别是KeilC51和STC-ISP。
3.1.1.KeilC51概述
KeilC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。
C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。
C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:
编译器,汇编器,实时操作系统,项目管理器,调试器。
uVision2IDE可为它们提供单一而灵活的开发环境。
C51V7版本是目前最高效、灵活的8051开发平台。
它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。
KeilC51软件提供丰富的库
3.1.2.KeilC51单片机软件开发系统的整体结构
3.1.3下载工具STC-ISP
STC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。
使用时只
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电子 密码锁 设计