基于单片机的数字密码锁.doc_第1页
基于单片机的数字密码锁.doc_第2页
基于单片机的数字密码锁.doc_第3页
基于单片机的数字密码锁.doc_第4页
基于单片机的数字密码锁.doc_第5页
免费预览已结束,剩余35页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子与信息工程学院本 科 毕 业 论 文论文题目 基于单片机的数字密码锁控制设计 学生姓名 李 飞 学 号 083522037 专 业 电气工程及其自动化 班 级 083521 指导教师 黄 烜 2012年5月摘 要摘 要随着我们生活水平的提高,电子数字密码锁慢慢取代了普通的机械锁,普通的机械锁在安全系数上没有电子密码锁好,普通的机械锁其机构非常的简单,从而使安全性能得不到保障,而电子密码锁使我们对安全防盗更有信心了,并且电子密码锁还有不用钥匙、无锁孔、无机械传动、不易损坏、不磨损等优点,很多用户出门都想简单出门,电子密码锁能满足他们的需求。本次设计的系统由单片机系统、矩阵键盘、显示电路和报警提示系统组成,系统能完成开锁、密码保护、密码正确与否的提示。单片机是采用的美国Atmel公司的单片机AT89C52;矩阵键盘采用44矩阵键盘;显示电路主要是采用液晶显示,具有设计简单、工作电压低、响应速度快、价格低廉等特点;报警系统采用的是LED指示灯。此次设计采用C语言作为主片控制程序,经证实此次设计方法合理、简单易行、成本低、安全实用等特点。关 键 词:单片机;电子密码锁;矩阵键盘33ABSTRACTABSTRACTWith the improvement of our living standards, the electronic digital lock slowly replaces the ordinary mechanical lock, the electronic password lock is better than the ordinary mechanical lock on the safety factor, the institution of ordinary mechanical lock is very simple, so that it can not guarantee the safety, and electronic lock makes us more confidence on safety, and the electronic lock has an advantage that without a key, keyhole, mechanical transmission, which is difficult to damage, wearing, and can not easily be deciphered, Many users want to go out simple, the electronic lock can meet their needs. The system consists of MCU system, matrix keyboard, the showing of circuit and alarm system components. System can unlock the lock, password-protected and the showing of password whether it is correct or not. The MCU adopts the United States Atmels MCU AT89C52; keyboard adopts 4 4 matrix keyboard; the showing of circuit is the LCD, which is a simple design, has the characteristics of low operating voltage, fast response, low cost; the alarm system uses a LED indicator.The design uses the C language as the main chips control procedures, which is proved that the design of rational design method is simple, of low cost, safe and practical.KEY WORDS: MCU; Electronic lock; Matrix keyboard目 录绪论目 录1 绪论11.1 电子密码锁简介11.2 电子密码锁功能要求12 总体方案设计32.1 方案选择32.2 方案实现32.3 方案结构框图43 硬件电路的设计53.1 单片机及单片机最小系统53.2 键盘电路63.2.1 键盘工作原理63.2.2 44行列式键盘电路83.3 LCD1602显示电路93.3.1 LCD1602的介绍93.3.2 LCD1602显示的外围电路103.4 报警提示电路113.5 电源输入及电源指示电路114 软件设计134.1 软件设计思路134.2 软件设计的流程图135 系统调试165.1 基于单片机的数字密码锁硬件调试165.2 基于单片机数字密码锁的软件调试165.3 基于单片机数字密码锁的总体调试175.3.1 Proteus仿真调试175.3.2 软硬联合调试176 结论与展望18致 谢19参考文献20附 录121附 录229附 录330附 录4315 系统调试1 绪论随着社会经济的不断发展,安全防盗已成为社会不可避免的问题。现在的用户都追求方便、高安全,因此电子密码锁是我们生活中不可少的一部分了,电子密码锁的发展标志着我们生活水平的提高。1.1 电子密码锁简介随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦16。另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。 目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现8。电子密码锁是一种通过密码输入来控制电路,从而控制机械的闭合,完成开锁和关锁的基本操作的电子产品,它的种类比较多,而此次设计就是基于单片机控制的数字密码锁,它的设计以单片机为核心,通过编程来实现,它负责获取处理用户输入的密码,将其和正确的预置密码比较,产生相应的输出,其性能得到了改善。基于单片机控制的数字密码锁与普通机械锁相比,其具有保密性好、密码可变、寿命长,不用钥匙、无锁孔、无机械传动、不易损坏、不磨损、不易被破译等优点15,数字密码锁是利用数字密码来开启的锁具,其重复概率仅为十万分之一,具有很高的安全性;而普通机械锁使用却相对不够安全5,通过对社会各阶层千余人的调查,百分之百的人都愿意一身轻松没有任何顾虑的出入家门,都愿意用上一种锁具可使人摆脱钥匙的束缚。因此,设计数字密码锁的市场发展前景极为广阔。1.2 电子密码锁功能要求本次设计的数字密码锁需要有密码的输入、有密码的修改功能、有密码的取消功能,并且密码是八位,在输入密码的过程中有显示提示,让用户更好的操作密码锁,而在密码输入正确与否(锁的开否)也需要显示提示,此次设计的时候没有把机械部分设计出来,因此引用了红绿灯的显示(报警提示),来代表机械部分的,即表示锁的开闭状态。此次设计实现功能要求如下:1) 加电后,液晶显示英文“Welcome to use electronic lock!”来欢迎用户,并提示用户需要输入数字密码。2) 输入密码时,要按先“确认”键,才能显示“The password is:”输入密码时,逐位显示“*”,此次设计的密码为八位,因次为“*”,以防止泄露密码,这样让用户用的放心。3) 输入密码过程中,如果不小心出现了输入错误,可按“取消”键清除屏幕,取消此次输入,再次输入需要重新输入所有密码。4) 当密码输入完毕按下“确认”键时,单片机将输入的密码与设定的密码比较,若密码正确,则红色发光二极管亮(表示密码锁打开),并且显示屏上也有所提示“Congratulations! you are right!”;若密码不正确,则绿色发光二极管亮1S,显示屏上同样显示“The password is wrong!”。密码输入错误时,用户可以重新输入,但是一次性有三次输入密码的机会,若是一次性输入了三次错误密码,显示“This is the last time ,please try it tomorrow”数字密码锁自锁,用户就不能再输入密码了,只能等到复位后再重新输入。5) 此次设计的数字密码锁密码可以修改,当输入正确的密码后,你可以根据自己的需要对已设的密码进行修改。6)此次设计的数字密码锁的初始密码为八位密码“88888888”。2 总体方案设计2.1 方案选择设计本课题之前构思了两种方案:一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案;另一种是用以单片机为核心的电子密码锁。第一种方案应用数字电子技术的编、译码技术,并通过按键实现密码的设置、修改及识别功能,在设计的时候考虑到第一种方案不需用到较多集成芯片,电路焊接起来很复杂;密码采用脉冲输入法,故对输入脉冲有很高要求,而且密码输入及修改过程也比较繁杂。而第二种方案是采用集成芯片单片机还有其他集成芯片来控制整个电路,灵活准确性好且保密性强还具有扩展功能,并且焊接起来很简单,因此采用了后一种方案,即单片机控制的数字密码锁设计。2.2 方案实现此次设计的基于单片机的数字密码锁,它主要由单片机、矩阵键盘、液晶显示和报警提示等部分组成。单片机作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能,其原理图如图2-1所示。矩阵键盘用于输入数字密码和进行各种功能的实现,主要有数字输入按键、确认按键、取消按键、密码修改按键等,用户可以通过连接单片机的矩阵键盘输入密码,液晶显示屏提示一些输入,让用户更方便的操作电子密码锁锁,当你输入的密码位数达到所需要输入的密码位数后,单片机对用户输入的密码与自己内部设置保存的密码进行对比,从而判断密码是否正确,液晶显示屏提示你输入的密码是否错误,然后控制其他引脚的高低电平送到报警提示电路控制报警提示(红绿发光二极管显示),表示锁的开或者闭合,而在实际使用时只要将单片机的负载换成电子密码锁的电磁铁吸合线圈即可。密码输入单片机控制修改密码密码处理锁开是否 图2-1 单片机控制密码锁的原理图 2.3 方案结构框图 单片机晶振电路键盘电路显示电路报警指示复位电路电源输入基于单片机控制的数字密码锁结总构框图如图2-2所示,框图由电源输入,单片机控制系统,键盘输入,显示电路,报警提示电路构成。电源为单片机控制器和其他芯片提供工作电源,此次设计的时候引用直流电源,但在实际应用到生活中去的时候需要通过交流电源转变为直流电源(降压、整流、滤波等过程),并且需要加个备需电源,防止停电或者其他故障而造成无法供电的时候的备需电源。单片机控制系统包括晶振电路和复位电路。 图2-2 基于单片机控制的数字密码锁总结构框图3 硬件电路的设计3.1 单片机及单片机最小系统单片机选用常用的Atmel公司的51系列单片机AT89C52。AT89C52是Atmel公司生产的低电压、高性能CMOS 8位单片机3,AT89C52采用24MHZ或更高频率晶振,以获得较高的刷新频率,时期显示更稳定,单片机AT89C52引脚如图3-1所示。P0口是双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载;P1口是8位准双向I/O口,可驱动4个LS型TTL负载;P2口是8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载;P3口是8位准双向I/O口,双功能复用口,可驱动4个LS型TTL负载,并且P3口具有特殊功能3 。 图3-1 单片机AT89C52引脚VCC(40引脚):AT89S52电源正端输入,接+5V。VSS(20引脚):电源地端。XTAL1(19引脚):单芯片系统时钟的反相放大器输入端。XTAL2(20引脚):系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了。EA/VPP(31引脚):“EA”为英文“External Access”的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间3。单片机最小系统如图3-2所示,其中由复位电路和晶振震荡电路组成。复位电路:单片机上电时,当振荡器正在运行时,只要持续给出RST引脚两个机器周期的高电平,便可完成系统复位。外部复位电路是为内部复位电路提供两个机器周期以上的高电平而设计的。其中复位电路通常有上电自动复位和按钮复位两种模式,本次采用的是按键手动复位并是电平复位方式,其中电平复位时通过RST端经电阻与电源VCC接通而实现的,电源VCC取+5V,复位电路的电阻取的10k,电容取的10uF10。晶振振荡电路:XTAL1脚和XTAL2脚分别构成片内振荡器的反相放大器的输入端和输出端,外接石英晶体或陶瓷振荡器以及补偿电容C1、C2构成并联振荡电路。当外界石英晶体时,电容C1、C2选30pF10pF;当外接陶瓷振荡器时,电容C1、C2选47pF10pF.AT89C52系统中晶振可在024MHz选择。外接电容C1、C2的大小会影响振荡器的高低、振荡频率的稳定度、起振时间及温度稳定性。在设计电路板时晶振和电容应靠近单片机芯片,以便减少寄生电容,保证振荡器稳定可靠的工作,并且在系统设计中,为保证串行通信波特率的误差,选择11.0592MHz的标准石英晶振,电容应C1、C2应选择20pF10。此次设计采用的是12MHz的晶振。 图3-2 单片机最小系统3.2 键盘电路3.2.1 键盘工作原理1) 键盘接口常用的键盘接口分为独立键盘和行列式键盘两种3。 独立键盘就是按键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。在按键数目较多的时候,独立式键盘电路需要较多的输入口线且电路结构繁杂,此种键盘适用于按键较少或操作速度较高的场合。行列式(也称矩阵式)键盘用于按键数目较多的场合,它由行线和列线组成,按键位于行、列的交叉点上,如图3-3所示,一个44的行、列式结构可以构成1个16个键的键盘,很明显节省了很多的I/O口线。图3-3 行列式键盘通过两个键盘结构的比较,矩阵式结构的键盘显然比独立式键盘要复杂一些,识别也要复杂一些。矩阵式键盘的扫描原理主要是分为两个步骤:首先是确定是否有键闭合,然后逐一扫描以进一步确定哪一键闭合。2) 键盘的识别方式键盘上的键按行列组成矩阵,在行列的交点上都对应有一个键。为判定有无键按下(闭合键)以及被按键的位置,可使用两种方法:扫描法(常用)和线反转法10。扫描法就是首先是判定有没有键被按下,键盘的行线一端经上拉电阻接+5V电源,另一端接单片机的输入口线。各列线的一端接单片机的输出口线,另一端悬空。为判定有没有键被按下,可先经输出口向所有列线输出低电平,然后再输入各行线状态。若行线状态中有低电平,则表示有键被按下。然后再判定被按键的位置。因为在键盘矩阵中有键按下时,被按键处的行线和列线被接通,使穿过闭合键的那条行线变为低电平。线反转法首先是让行线编程为输入线,列线编程为输出线,并使输出线输出全为低电平,则行线中电平有高变低的所在行为按键所在行,然后再把行线编程为输出线输出为全低电平,则列线中电平由变低所在列为按键所在列3。3)去抖动当扫描表明有键被按下之后,紧接着应进行去抖动处理。因为常用键盘的键实键按下前沿抖动后沿抖动x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0际上就是一个机械开关结构,被按下时,由于机械接触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动,如图3-4所示。抖动时间长短与键的机械特性有关,一般为510ms。而键的稳定的闭合时间和操作者按键动作有关,大约为十分之几到几秒不等3。 图3-4键闭合和断开时的电压抖动3.2.2 44行列式键盘电路此次设计为44行列式键盘,由16个按键组成的行列式键盘,主要作为用户输入数字密码及确认、取消、修改等功能键,此次设计按键扫描方法采用的是扫描法。44行列式键盘电路如图3-5所示,把芯片AT89C52中的P1.0P1.3端口用4个10K的上拉电阻连接到44行列式键盘的行线上,把芯片AT89C52中的P1.4P1.7端口直接连接44行列式键盘的列线。(上拉电阻的作用,就是把电位拉高,比如拉到VCC。一般就是刚上电的时候,端口电压不稳定,为了让端口稳定为高,就会用到上拉电阻。)x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0图3-5 44行列式键盘电路3.3 LCD1602显示电路3.3.1 LCD1602的介绍LCD1602是一种专门用来显示字母、数字、符号等的点阵型的液晶模块,它由若干个57或者511等点阵字符位组成,每个点阵字符都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。LCD1602是指显示的内容为162,可以显示两行,每行16个字符的液晶模块,目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶,此次设计引用LCD1602,是因为它具有微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。LCD1602的引脚如图3-6所示,LCD1602有16个引脚。 图3-6 LCD1602的引脚1) LCD1602的引脚介绍14: 第1引脚为:VSS为电源地 第2脚:VDD接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。第6脚:E(或EN)端为使能(enable)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背光电源脚。15脚背光正极,16脚背光负极。2) LCD1602的基本操作时序为14:读状态:RS=L,RW=H,E=H 输出:D0D7=状态字写指令:RS=L,RW= L,D0D7=指令码,E=高脉冲 输出:无读数据:RS= H,RW=H,E=H 输出:D0D7=数据写数据:RS= H,RW= L,D0D7=数据,E=高脉冲 输出:无3) LCD1602的显示模式设置如表3-1所示:表3-1显示模式设置指令码功能00111000设置1602*2显示,5*7点阵,8位数据口。4) LCD1602的显示开/关机光标设置如表3-2所示:指令码功能00001DCBD=1 开显示,D=0 关显示;C=1 显示光标,C=0 不显示光标;B=1 光标闪烁,B=0 光标不显示。000001NSN=1 当读或写一个字符后地址指针加一,且光标加一;N=0当读或写一个字符后地址指针减一,且光标减一;S=1 当写一个字符,整屏显示左移(N=1)。表3-2 显示开/关机光标设3.3.2 LCD1602显示的外围电路LCD1602显示电路由单片机C52的P0.5、P0.6、P0.7分别于LCD的第4、5、6脚(RS、RW、E)相连,将单片机C52的P2.0P2.7口通过10K的上拉电阻分别与LCD的第714脚(D0D7)相连来组成数字密码锁的显示电路。LCD1602显示电路如图3-7所示。 图3-7 显示电路3.4 报警提示电路LED指示灯用来提示模拟锁的开闭,此次设计采用了红、绿两个LED指示灯,红灯表示输入密码正确告警(及数字密码锁开锁),绿灯表示输入密码错误,锁未打开。报警提示电路如图3-8所示,P3.0、P3.1作普通I/O口使用,P3.0控制绿色发光二极管,指示密码输入正确状态;P3.1控制红色发光二极管,指示密码输入错误状态。而在实际应用中应该接密码锁的机械部分,这些引脚将会接继电器线圈,只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合用来启动密码锁的开或关的状态,此次设计用红绿指示灯来代替了机械部分,设计简化了。图3-8 报警指示电路3.5 电源输入及电源指示电路基于单片机控制的数字密码锁的工作需要+5V的电压作为输入电压,家用电一般都是采用220V、50Hz的交流电,因此需要将交流电转换成直流电,先通过一个整流电路,使交流电压变成直流电压。为了保证其输出的电压是+5V,在后面接一个稳压电路,由一个7805稳压器,其中电容C1起滤波作用,电容C3是抑制高平信号。电容C2, C4直接接地,起到抗干扰的作用,能使电压稳定在+5V。有了电源模块避免了因没有直流电源而无法使用的问题,使这个仪表能够在更多的环境中使用。电源部分如图3-9所示。图3-9 电源部分电源指示如图3-10所示,此次设计的数字密码锁就引用了电源指示模块,虽然这个模块很简单,但确实也是电路中不可少的一部分,当电源通电后,黄色发光二极管就亮表示电路有电源输入,让用户更能方便的清楚密码锁是否通电,如没有电通入,数字密码锁无法工作,需要及时更换电源,以保证数字密码锁的正常工作。图3-10 电源指示4 软件设计4.1 软件设计思路对于基于单片机的数字密码锁的设计,我们需要解决三个问题:键盘的输入、液晶显示、单片机电路以及密码比较与处理的有关程序设计。键盘的输入通过行列键盘扫描程序获取所按键的行、列号,而键值编码规则如下:将字节的高四位(D7、D6、D5、D4)表示列号(4、3、2、1),低四位(D3、D2、D1、D0)表示行号(4、3、2、1),比如11H(00010001)表示第1行第1列,21H(00100001)表示第1行第2列,以此类推,可得其他键值的编码。LCD1602显示,根据获取的键值编码,选择相应的功能,驱动LCD1602显示。在LCD接受指令前,微处理器必须先确认其内部处于非忙碌状态,则LCD的(D7到D0)的D7位为0,方可接受新的指令。如果在发送一个指令时前没有检查D7标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即等待前一个指令确实执行完成。液晶显示的操作主要由初始化程序、写命令和写数据程序等组成。而单片机电路以及密码比较处理程序则为主程序了,主要是处理键盘输入程序和调用显示程序。4.2 软件设计的流程图结合硬件结构,可以将键盘输入的识别用来作为系统的监控程序,用显示程序来延时,不断查询键盘。如果有键按下,就得到相应的键值。结合当前系统所处的状态,调用不同的操作模块,实现相应的功能。而执行模块主要有数字输入模块、显示模块及报警提示模块。键盘部分应实现如下功能:首先,对键盘进行扫描,判断是否有键被按下。如果没有,则转回键盘扫描,看下次是否有键被按下;如果有键被按下,则先对键进行去抖动,然后算出是哪个键被按下,再延时等待键释放。因为数字键和功能键都对应不同的处理子程序,得到闭合键的键码后,就可以根据键码,转相应的键处理子程序,进行字符、数据的输入或命令的处理。这样就可以实现该键所设定的功能。本次设计的键盘处理程序流程图,如图4-1所示。显示流程图如图4-2所示,显示部分是分屏显示数据的,因此显示子程序为关闭状态显示子程序、密码输入及密码修改状态显示子程序、密码输入后错误提示程序。密码在规定的时间内输入的错误次数超过3次的锁定状态显示子程序。LCD1602显示程序包括初始化子程序、写数据子程序、写命令子程序、清屏子程序、光标定位子程序。报警提示部分主要是对输入密码的错误(锁未开)和正确(锁开)的提示,这个和显示程序保持一致。主程序是首先进行整个程序的初始化及清屏,调用显示程序,读取键盘程序,当有按键按下时,程序判断是哪个键被按下,然后执行相应的按键功能,并调用显示程序中的显示功能,当没有键按下时,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论