液晶显示电子密码锁课程设计Word文档下载推荐.docx
《液晶显示电子密码锁课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《液晶显示电子密码锁课程设计Word文档下载推荐.docx(41页珍藏版)》请在冰豆网上搜索。
为了实现密码的保密性,采用一个4×
4的矩阵式键盘可以任意设置用户密码(1-16位长度),从而提高了密码的保密性。
设计采用一个超级密码,送电开机时,只要输入超级密码便可开门,这样可预防停电后再送电时无密码可用。
采用了1602液晶显示器来作为显示单元,提高了可读性,使用户对密码锁的运行情况一目了然。
2.3总体设计方框图
本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可。
系统整体框图如图2.1所示。
图2.1系统结构框图
●各模块功能如下:
1.键盘输入模块:
分为密码输入按键与几个功能按键,用于完成密码锁输入功能。
2.密码存储模块:
用于完成掉电存储功能,使修改的密码断电后仍能保存。
3.蜂鸣器报警电路:
用于完成输错密码时候的警报功能。
4.晶振电路:
用于单片机的起振。
5.复位电路:
完成系统的复位。
6.显示模块:
用于完成对系统状态显示及操作提示功能。
7.LED显示模块:
用于辅助报警与输入提示。
8.开锁电路:
应用继电器及发光二极管模拟开锁,完成开锁及开锁提示。
3设计原理分析
本系统外围电路包括键盘输入部分、密码存储部分、复位部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4×
4矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用内部存储器来完成。
其原理图如图3.1所示。
图3.1电路原理图
3.1单片机及其外围电路
3.1.1复位电路的设计
复位是单片机的初始化操作。
单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
该复位电路采用按键电平复位式复位电路。
当单片机已在运行当中时,按下复位键S后松开,在复位引脚RET(9脚)脚持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号将使单片机复位。
也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
如图3.2所示。
图3.2复位电路
3.1.2时钟电路的设计
时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下的进行的,如果单片机的时钟电路停止工作(晶振停振),那么单片机也就停止运行了。
当采用内部时钟时,连接方法如下图所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个12MHZ晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如30PF。
如图3.3所示。
图3.3时钟电路
3.2密码锁控制电路
3.2.1矩阵键盘电路的设计
为了加强密码的保密性,采用一个4×
4的矩阵式键盘可以任意设置用户密码(1-16位长度),从而提高了密码的保密性,同时也能减少与单片机接口时所占用的I/O口线的数目,节省了单片机的宝贵资源,在按键比较多的时候,通常采用这种方法。
其原理图如图3.4所示。
图3.4矩阵键盘电路
每一行与每一列的交叉处不相同,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N根行线与M根列线,即可组成具有N×
M个按键的矩阵键盘。
在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就是要识别哪一个按键被按下。
对键的识别方法通常有两种:
一种是通用的组行扫描查询法;
另一种是速度较快的线反转法。
此系统中,我们采用线反转法。
首先辨别键盘中有无按键被按下,在单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。
具体方法是:
向行线输出全扫描字00H,把全部列线置成低电平,然后将列线的电平状态读入累加器A中。
如果有按键被按下,总会有一根行线电瓶被拉至低电平从而使行线不全为1。
判断键盘中哪一个按键被按下通常是通过将列线逐列至低电平后,检查行输入状态来实现的。
方法是:
依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的按键不在此列;
如果不全为1,则所按下的按键必在此列,而且是在与零电平行线相交的交点上的那个按键。
按键的操作面板如图3.5所示,共计10个数字键和6个功能键,键盘侧面还有一个微型蜂鸣器。
键盘侧面还有一个蜂鸣器,每操作一次,它便发出声音,提示操作成功。
图3.5操作面板
10个数字键用来输入密码,另外6个功能键分别是:
A查看键、B设置新密码键、C退格键、D返回键、E确认/退出键和F开启键。
其中退格键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。
确认键的功能是确认输入的密码。
开启键是切换到密码输入状态,输密码前需按该键才能开始输入密码。
按“F”键启动进入输入密码程序,按住“F”键不放3秒以后进入输入密码状态。
在输入密码状态下,0-9数字键为有效键,有时间和次数限制功能:
只有三次输入密码机会,每次限制在10秒内完成,输入密码有误或每次输入密码超时,则被认为是密码输入错误。
当3次输入都错误时,程序将返回起始状态。
密码输入正确后,继电器吸合,表示锁被打开。
在密码输入正确的情况下,程序进入查看密码和修改密码状态,按“E”键退出查看密码状态。
按“B”键进入重新设置密码状态,在输入密码时,如发现输入有误,可按“C”删除后,重新输入,按“E”确认后,程序退出修改密码状态。
按“D”键或等待10秒后程序退出修改密码和查看密码状态,回到起始状态。
程序内定密码为:
987654,送电开机时,只要输入内定密码便可开门,这样可预防停电后再送电时无密码可用。
当密码输入错误或密码输入时间超过规定的时间时,蜂鸣器报警。
表3.1按键功能表
按键
键名
功能说明
0-9键
数字键
输入密码
A键
查看键
查看密码
B键
设置新密码键
设置新密码
C键
退格键
退格删除
D键
返回键
返回到开始界面
E键
确认/退出键
确认/退出
F键
开启键
开启密码输入
3.2.2报警控制电路的设计
该电路采用单频音报警电路,实现单频音报警的接口电路比较简单,其发音元件通常可采用压电蜂鸣器,当在蜂鸣器两引脚上加3~15V直流工作电压,就能产生3kHZ左右的蜂鸣振荡音响。
压电式蜂鸣器结构简单、耗电少,更适于在单片机系统中应用。
压电式蜂鸣器,约需10mA的驱动电流,可在某端口接上一只三极管和电阻组成的驱动电路来驱动,P.3.1接三极管基极输入端,当P3.7输出高电平“1”时,三极管导通,蜂鸣器的通电而发音,当P3.1输出低电平“0”时,三极管截止,蜂鸣器停止发音。
如图3.6所示
图3.6报警控制电路
3.2.3液晶显示电路
本系统设计的显示电路是为了给使用者以提示而设置的为了达到界面友好的目的,显示部分由液晶显示器LCD1602取代普通的数码管完成。
开锁时,按下键盘上的开锁按键后,利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。
当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD显示“IUPUTRIGHT”,单片机其中P3.0引脚会输出低电平,使三极管T2导通,电磁铁吸合,继电器开关跳转,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“IUPUTERROR”,P3.0输出的是高电平,电子密码锁不能打开。
通过LCD显示屏,可以清楚地判断出密码锁所处的状态。
电路图如图3.7所示。
图3.7显示器电路
显示器主要用于显示以下几个字符,指示如图3.8所示。
A
S
W
O
R
D
C
N
T
L
P
图3.8(a)开机状态
-
图3.8(b)等待输入状态
I
G
H
U
图3.8(c)密码输入正确状态
E
图3.8(d)密码输入错误及输入密码超时的提示
4系统软件设计
系统的软件设计采用汇编语言编码。
设计方法是先用文本编辑器编写源码,然后用软件KeilC51编译,如果没有错误,可连接生成.HEX格式的文件(需事先在KeilC51中设置)。
如果有错误则无法连接,但可在生成的.OBJ文件中找到代码错误的地方,便于修改。
当然也可以直接在Keil中编码。
生成的HEX文件是记录文本行的ASCII文本文件,在HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量。
HEX文件经常被用于将程序或数据传输存储到ROM、EPROM,大多数编程器和模拟器使用HEX文件。
4.1系统主程序
系统的主程序如图4-1所示。
由于用户在使用系统的过程中,可能在任何时刻按下任何按键,而程序都必须对此作出正确响应。
图4.1主程序流程图
4.2初始化及按键识别
如图4.2,系统的初始化包括堆栈起始地址的设定,两个定时/计数器的设定,液晶显示模式的设定,密码缓冲区的初始化,一些自定义数据空间的初始化,蜂鸣器初始化发声等操作。
系统初始化并读取密码完成后,液晶显示"
PASSWORDCONTROL"
,提示用户可以输入密码。
此时程序即不断测试按键,检查是否有按键被按下。
如果有,则进行按键识别;
如果没有按键按下,或者按下的按键没有被识别,R3赋值0FFH,并跳转至按键测试。
实际程序运行时,绝大部分时间都在测试按键,等待用户输入。
图4.2初始化及按键识别流程图
4.3开锁处理
首先LCD初始化,输入密码,密码正确则使开锁电路动作,继电器得电,开锁指示灯亮。
开锁程序流程图如图4.3所示。
图4.3开锁流程图
4.4改密处理
如图4.4,可以看出,改密键的处理流程跟开锁键类似,都需检查密码是否正确,错误的话,提示重新输入,只有输入密码正确才可以进行改密。
然后再按更改键,密码更改程序被调用,进而更改密码,此过程,LCD都会显示信息。
图4.4改密流程图
4.5液晶显示子程序
液晶显示子程序在每次更新显示内容时都会被调用,其流程如图4.5所示。
图4.5液晶显示子程序流程图
每次更新显示内容前,需清显示清空LCD原先的显示内容,清屏指令的指令码为01H,即将P0口赋值01H,然后写入指令寄存器IR。
LCD1602要显示的内容是根据其控制器内置的字符码表,事先列出要显示的ASCII字符串。
每次送一个字符的ASCII码入P0口,然后写入数据寄存器DR,最后将字符地址加一,LCD1602会将写入的ASCII码对应的字符依次显示出来。
由于显示字符串的长度不尽相同,约定每串字符以00H结尾;
程序检测到字符码为00H时,即停止写入,返回。
LCD显示的内容在下次更新前会一直保持。
5仿真调试与测试
开机后,LCD1602显示如图5.1所示,等待按键输入
图5.1起始状态
输入密码分两个过程:
首先必须开启密码输入功能才能输入密码,按住“F”键3秒以上才能启动进入输入密码程序,进入输入密码状态,LCD1602显示如图5.2所示:
图5.2输入密码状态
此时使用矩阵键盘输入密码,在输入密码状态下,0-9为有效数字键。
本系统有时间、次数限制功能,不给别人试探机会:
三次输入密码机会,每次限制在10秒内完成。
输入密码正确后,继电器吸合,密码锁打开,LCD1602显示如图5.3所示。
图5.3输入正确提示
键入密码有误或每次输入密码时间超过10秒,则被认为是密码输入错误。
假如密码输入错误,则LCD1602显示如图5.4所示:
图5.4输入错误提示
当3次输入密码都错误时,程序将返回起始状态,并锁定。
在密码输入正确的情况下,程序进入查看密码和修改密码状态。
按“A”键进入查看密码状态,LCD1602显示:
按“E”键退出看密码状态。
按“B”键进入重新设置状态,LCD1602显示:
在输入新密码时,如果输入有误,可按“C”删除后,重新输入。
按“E”确认后,程序退出修改密码状态。
按“D”键或等待10秒后,程序退出修改密码和查看密码状态,回到起始状态。
超级密码为:
987654
总结
在着手本次课程设计时,通过查阅网络与图书馆搜集到的资料,再加上指导老师指点,结合生活中对密码锁的功能特性要求,设计出了这一套电子密码锁系统的主要硬件结构和软件结构,基本完成了课题的要求。
不过由于了解的专业知识尚浅,对课题的研究经验的不足,使得在技术的解决与运用上显得粗糙了一些,特别是功能按键的设定。
所幸该系统能基本上完成一个电子密码锁应有的功能特性:
开锁提示,输错报警,密码修改,掉电存储。
本系统用的是6位密码输入,有106种密码输入方案,相较于机械锁具,防盗能力已经相当不俗。
这个系统软硬件设计简单,易于开发,成本较低,安全可靠,操作方便。
本次设计的电子密码锁是以手动键盘输入密码的,通过这两个星期对电子密码锁的研究学习,发觉这种密码输入方式可以进行改革。
在越来越高科技化的今天,遥控控制显的愈发重要,今后的电子密码锁应该具有以红外技术或无线电技术为辅助的密码按键输入远程交互技术,这样就能远程输入密码完成操作。
也可以放弃传统的按键输入密码模式,借助传感器技术运用声控来实现密码输入,又或者人脸识别技术,还有一种就是用户指纹输入方式,这些都可以使开锁的时间更短更方便。
电子密码锁产业将向静态功耗更低,外围电路更简化,可提供的功能或控制口更多,更人性化高科技化的方向发展。
通过本次课程设计的锻炼,我学到了很多有关电子密码锁的设计方法与工作原理,巩固了单片机知识。
期间也碰到不少问题,比如如何去模拟实现开锁这一功能,解决办法是找了个微型电磁继电器作为锁具,其内部电磁开关特性符合开锁的现象。
再到后来的焊接工作,由于粗心大意,焊接出错的情况不在少数,往往在调试的时候才得以发现,特别是4×
4矩阵键盘的焊接,改了不下10次。
系统调试时碰到过按键不灵敏的问题。
后来增加了键盘列位置上的电阻,增加了电平,效果得到改善。
慢工出细活,过程是很重要的,只有耐心细心努力地去把握过程,才能得到可喜的结果。
致谢
在本课程设计进行过程中得到XX老师的悉心指导,还有很多同学的帮助。
XX老师严谨求实的治学态度,踏实坚韧的工作精神,将使我终生受益。
在此,谨向老师和帮助我的同学致以诚挚的谢意和崇高的敬意。
参考文献
[1]孙涵芳,徐爱卿。
MCS-51/96系列单片机原理及应用[M]。
北京:
北京航空航天大学出版社,1996
[2]李广弟,朱月秀,冷祖祁。
单片机基础[M]。
北京航空航天大学出版社,2007
[3]董继成。
一种新型安全的单片机密码锁[J]。
电子技术,2004,(03)
[4]石文轩,宋薇。
基于单片机MSC-51的智能密码锁设计[S]。
武汉工程职业技术学院学报,2004,(01)
[5]吴春国,李文石。
单片机控制电子锁技术剖析[S]。
东北林业大学学报,2002,(05)
[6]李景宏,马学文。
电子技术实验教程[M]。
沈阳:
东北大学出版社,2004
[7]贾正松。
单片机系统复位电路设计[J]。
科技资讯,2007,(36)
[8]袁新燕。
浅谈单片机应用系统的调试[J]。
自动化与仪器仪表,2000,(03)
[9]王晖,薛永存。
基于MCS-51单片机的复位电路抗干扰分析与设计[J]。
现代电子技术,2006,(08)
[10]datasheetofMicrocontrollerAT89S52.Atmel,Inc.
[11]datasheetofSerialEEPROM2K(256*8)AT24C02.Amel,Inc.
[12]通用LCD1602液晶显示模块使用手册(J/OL)。
伟纳电子.
[13]51单片机综合学习系统——蜂鸣器、继电器篇(J/OL)。
维普资讯.
[14]单片机控制继电器实验(J/OL)。
电子驿站.
[15]9012,9013,9014,9015,9018晶体三极管技术手册(J/OL)。
电子爱好者.
[16]蔡金生。
SUPERPRO编程器使用指南(J/OL)。
沪生电子.
附录
附录一总电路原理图
附录二原器件清单
名称
型号
数量
备注
单片机
AT89S52
1
含双列直插插座
电阻
1K
3
200
排阻
8x10k
液晶显示器
LM1602
瓷片电容
33pF
2
电解电容
22uF
轻触按键
17
晶振
12MHz
单排插针
1x8
4
发光二极管
直流插座
下载口
蜂鸣器
继电器
附录三PCB图
顶层图:
底层图:
元件布局图:
附录四源程序清单
;
********************************************************************
BEEPBITP3.1
RELAYBITP3.6
SEC10BIT20H.1
SEC3BIT20H.2
PASS_OKBIT20H.3
PASS_OLDEQU30H
PASS_NEWEQU37H
PASS_DISEQU40H;
密码显存单元
COUNTEQU47H;
50ms计数单元
SECEQU48H;
秒单元
POSEQU49H
**********************************************************
BUSYBITP0.7
LCD_RSBITP2.0;
LCD控制管脚定义
LCD_RWBITP2.1
LCD_ENBITP2.2
DATAPORTEQUP0;
定义LCD的数据端口
LCD_XEQU29H
TIMESEQU2AH
BUSY_CHECKBIT20H.0
ORG0000H
AJMPMAIN
ORG000BH
LJMPTIMER0