基于单片机的智能密码锁的设计与实现.docx
- 文档编号:20035676
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:30
- 大小:154.93KB
基于单片机的智能密码锁的设计与实现.docx
《基于单片机的智能密码锁的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能密码锁的设计与实现.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机的智能密码锁的设计与实现
题目基于单片机的智能密码锁的设计与实现_
基于单片机的智能电子锁的设计
摘要
在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案及一些个人资料的保存多以加锁的方法解决。
若使用传统的机械锁极不方便。
随着科技的发展,智能电子锁应运而生。
本系统由单片机系统AT89C51、外接矩阵键盘、6位LCD液晶显示数码管和声光报警器系统组成。
系统能完成开锁、超时报警、超次锁定基本的密码锁的功能。
除了上述基本功能外,还具有声光提示功能,依据实际的情况还可以添加遥控功能。
本系统由于其安全性高、成本低、保密性高、使用灵活性好等优点,受到了广大用户的青睐。
可广泛应用于宾馆、办公大楼和家庭等场所。
关键词智能电子锁/单片机/矩阵键盘
DESIGNOFTHEINTELLIGENTELECTRONICLOCKBASEDONSINGLECHIPDEVICE
ABSTRACT
Indailylifeandwork,thesecurityofhouseanddepartment,thedocumentfilesofunitsandthesavingofsomepersonaldataaremostlysolvedbylock.Ifyouusethetraditionalmechanicallocks,itisveryinconvenient.Withthedevelopmentoftechnology,intelligentelectroniclockiscoming.ThesystemconsistsofSCMsystemAT89C51,matrixkeyboard,6digitalLCDliquidcrystalandsoundandlightalarmsystem.Systemcancompletebasiclockfunctions.Suchasthelock,timeoutalarm,supertimeslock.Inadditiontothesebasicfunctions,italsohassoundandlighttipsandotherfunctions.Accordingtotheactualsituation,itcanalsoaddaremotecontrol.Thesystemisusedbythemajorityofpeoplebecauseofitshighsafety,lowcost,highsecurity,flexibilityandgooduse.Itcanbeusedinhotels,officebuildings,homeandsoon.
KEYWORDSintelligentelectroniclock,singlechipdevice,matrixkeyboard
4.3密码比较子程序设计.....................................................................................12
1绪论
1.1引言
随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤为重要。
若使用传统的机械锁,人们需携带多把钥匙,使用极不方便,且钥匙丢失后安全性大打折扣。
为满足人们对锁的使用要求,增强其安全性,电子锁应运而生。
电子密码锁由于其安全性高、成本低、保密性高、使用灵活性好等优点,受到了广大用户的青睐。
设计通过键盘输入密码,密码为六位。
电路可实现密码正确或错误的提示,密码错误三次则锁定键盘并报警一分钟。
用户通过键盘输入密码后,单片机判断密码是否正确,如果密码正确,则发出开锁信号,系统由发光二极管点亮来模拟开锁,否则提示密码错误,此时需重新输入密码,用户在输入密码错误次数超过三次时单片机就锁定键盘,并发出报警音一分钟。
在这一分钟内,用户不能再次输入密码,一分钟后键盘自动解锁。
本设计由AT89C51单片机、矩阵键盘、LCD液晶显示电路、声光报警电路、晶振时钟电路、复位电路等几部分组成。
1.2电子锁的背景
随着社会科技的进步,锁已经发展到密码锁、磁性锁、电子锁、激光锁、声控锁等等。
在传统的钥匙的基础上进行改善,加上密码,声音等来控制锁的开启,从而大大提高了锁的安全性,使不法之徒无从下手,人们也对自身的财产安全有了更多的保障。
当今安全信息系统应用越来越广泛,特别在机密保护、维护隐私和财产安全方面起到重大作用,而电子锁是其中的组成部分,因此具有重大的研究意义。
1.3电子锁的意义
电子锁可以在日常生活和现代办公、住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。
大大提高了主人物资的安全性,基本上可以代替老式机械锁。
目前使用的密码锁种类繁多,各具特色。
本设计从经济实用角度出发,采用AT89C51单片机设计一款具有报警功能的智能电子锁。
该密码锁设计方法合理、简单易行、成本低,符合住宅与办公室等的用锁要求,具有一定的推广价值。
2方案选择与功能原理
2.1方案选择
设计时构思了两种方案:
一种以AT89C51为核心的单片机控制方案,另一种是以74LS112双JK触发器构成的数字逻辑电路控制方案。
考虑到数字电路方案原理国语简单,而且不能满足现在的安全需求,所以本设计采用第一种方案。
利用单片机灵活的编程设计和丰富的I/O端口及其控制的准确性,不但能实现基本的密码锁功能,还能根据需要添加掉电存储、红外遥控等功能。
2.2电子锁的系统功能
本设计采用以AT89C51单片机为主控芯片,利用单片机灵活的编程设计和丰富的I/O端口及其控制的准确性,不但能实现基本的密码锁功能,还能根据用户需要增添掉电存储、红外遥控等功能。
本设计具有以下功能:
(1)系统设定六位密码,密码由键盘输入,若密码正确,则二极管D1亮,模拟开锁。
(2)系统具有声光报警功能,密码错误时蜂鸣器发出报警进行提示,此时需重新输入密码,密码错误次数超过三次,则键盘锁定,二极管D2亮,并发出报警。
本系统具有超时报警、超次锁定的功能。
(3)系统由八位数码管显示密码。
2.3电子锁的工作原理
本系统采用AT89C51单片机作为控制器,用LCD液晶显示器作为显示模块,用矩阵键盘作为输入模块。
系统工作时,根据显示器上的提示输入6位密码,按下ENTER键后,单片机将输入密码与原始设定的密码进行比较,若密码正确,则相应二极管亮,模拟开锁,系统不报警。
若密码错误,则发出蜂鸣声报警,要求重新输入密码。
输入的密码次数不能超过三次,若三次都不正确,则由蜂鸣器发出报警,锁定键盘。
3硬件电路设计
电子锁设计的关键问题是实现密码的输入、显示以及开锁等功能。
设计使用ATMEL公司的AT89C51实现智能电子锁的功能。
硬件电路主要由矩阵键盘电路、LCD液晶显示电路、晶振时钟电路、复位电路及声报警电路等部分组成。
3.1芯片的选取与介绍
单片机亦称单片机微电脑或单片微型计算机。
它是把中央处理器、随机存储器、只读存储器、输入/输出端口等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
本设计使用的就是单片机AT89C51。
单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,该器件采用ATMEL高密度非易失存储器制造技术制造,并和工业标准的MCS—51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,AT89C51是一种高效微处理器。
在AT89C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为XTAL2。
而在芯片内部,XTAL1和XTAL2之间跨接了晶体振荡器和微调电容,从而构成了一个稳定的自激震荡器。
这就是单片机的时钟电路。
管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EA/VPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
AT89C51图形如下:
图3-1-1
3.2晶振时钟电路
单片机的XTAL1和XTAL2之间分别接一个电容,中间再并一个12MHZ的晶振,形成单片机的晶振电路。
图形如下:
图3-2-1
3.3复位电路
复位电路由电阻、电容和开关组成。
接到单片机的RST引脚。
电路图如下:
图3-3-1
3.4键盘电路
本设计采用行列式矩阵键盘,这样能减少键盘与单片机接口时所占的I/O线的数目,在按键比较多的时候,通常采用这样的方法。
每一条水平线(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:
一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
下面说明线反转法的工作原理。
首先,辨别键盘中有无键按下,由单片机I/O口向键盘送全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。
如果有按键按下,总会有一根行线电平被拉直至低电平从而使行线不全为1。
判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行状态来实现的。
方法是:
依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。
键盘上共有0-9十个数字键,还有一个ENTER键。
当输入完成后按下ENTER键确认输入。
键盘电路接单片机的P1口。
电路图如下:
图3-4-1
3.5显示电路
数码管显示器具有功耗低、体积小、质量轻的特点。
该字符型LCD具有字符发生器ROM,可显示192种字符(160个5×7点阵字符和32个5×11点阵字符),具有64个字节的自定义字符RAM,可自定义8个5×8点阵字符或4个5×11点阵字符,且具有80个字节的RAM。
可以分成两行,每一行显示16个ASCⅡ字符,,主要由数字和英文字母组成。
LCD在此系统中作为单片机的输出设备,主要用于计算机系统参数的显示。
3.6声报警电路
声报警电路由蜂鸣器组成,接AT89C51的P3.6和P3.7。
当密码输入错误或是错误次数超过三次时,蜂鸣器报警。
3.7电路图绘制
3.7.1电路原理图
本设计采用proteus软件进行原理图的绘制与仿真。
电路图见附录一。
3.7.2proteus简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
在国内受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
具有4大功能模块
(1)智能原理图设计(ISIS)
丰富的器件库:
超过27000种元器件,可方便地创建新元件。
智能的器件搜索:
通过模糊搜索可以快速定位所需要的器件。
智能化的连线功能:
自动连线功能使连接导线简单快捷,大大缩短了绘图时间。
支持总线结构:
使用总线器件和总线布线使电路设计简明清晰。
可输出高质量图纸:
通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。
(2)完善的电路仿真功能(Prospice)
Prospice混合仿真:
基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真。
超过27000个仿真器件:
可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件。
多样的激励源:
包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入。
丰富的虚拟仪器:
13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等。
生动的仿真显示:
用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动。
高级图形仿真功能(ASF):
基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析。
(3)独特的单片机协同仿真功能(VSM)
支持主流的CPU类型:
如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、8086、MSP430等。
支持通用外设模型:
如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信。
实时仿真:
支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。
编译及调试:
支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试。
(4)实用的PCB设计平台
原理图到PCB的快速通道:
原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计。
先进的自动布局/布线功能:
支持器件的自动/人工布局,支持无网格自动布线或人工布线,支持引脚交换/门交换功能,使PCB设计更为合理。
完整的PCB设计功能:
最多可设计16个铜箔层,2个丝印层,4个机械层,灵活的布线策略供用户设置,自动设计规则检查,3D可视化预览。
多种输出格式的支持:
可以输出多种格式文件,包括Gerber文件的导入或导出,便于与其它PCB设计工具的互转(如protel)和PCB板的实际和加工。
Proteus提供了丰富的资源
(1)Proteus可提供的仿真元器件资源:
仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。
(2)Proteus可提供的仿真仪表资源:
示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。
理论上同一种仪器可以在一个电路中随意的调用。
(3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。
这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。
(4)Proteus可提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
电路功能仿真
在proteus绘制好原理图后,调入已编译好的目标代码文件:
*.HEX,可以在proteus的原理图中看到模拟的实物运行状态和过程。
proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。
前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。
它的元器件、连接线路等却和传统的单片机实验硬件高度对应。
这在相当程度上替代了传统的单片机实验教学的功能,例:
元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。
课程设计、毕业设计是学生走向就业的重要实践环节。
由于proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。
4系统软件设计与流程图
该智能电子锁系统采用C语言进行程编程,系统程序主要包括主程序、键盘扫描子程序、密码比较子程序、声报警程序和延时子程序等。
源程序见附录二。
4.1主程序模块
主程序主要完成初始化、初始密码设定、检查有无键按下、密码比较以及调用显示等等。
主程序流程图如下:
N
Y
N
Y
Y
N
N
NY
Y
图4-1-1
4.2键盘扫描及识别子程序设计
对键盘的扫描采用调用方式,放在主程序中,当没有键按下的时候,单片机循环主程序,一旦有键按下,便转向相应的子程序处理,处理完再返回主程序。
4.3密码比较子程序设计
程序将输入的密码与设定的原始密码进行比较,如果一致,则显示open提示开锁,如果不一致,则由数码管显示器显示Err并发出报警,用户需重新输入密码。
错误次数多于三次则键盘锁定。
4.4延时子程序设计
由于系统在开锁、报警及锁定状态需要不同的时间间隔,所以系统内设定了不同的延时子程序。
延时完成后再返回主程序。
5测试结果
5.1程序调试用到的软件及介绍
程序使用Keil软件进行编译。
Keil是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,Keil软件提供丰富的库函数和功能强大的集成开发测试工具,可以完成编辑、编译、连接、调试、仿真等整个开发流程。
5.2软件调试
本设计的程序是用C语言编写的,用Keil编译软件进行编译。
将源文件:
基于单片机的智能电子锁的设计进行编译,如果编译有错误,根据提示进行修改,直至编译完全通过,编译通过,没有错误,产生如下文件:
基于单片机的电子密码锁的设计.uv2、基于单片机的智能电子锁的设计.lnp、基于单片机的智能电子锁的设计.hex。
其中,基于单片机的智能电子锁的设计.hex就是要产生的文件。
5.3用proteus仿真
将文件基于单片机的智能电子锁的设计.hex加载到AT89C51中进行功能调试。
在proteusISIS中,选中AT89C51并单击鼠标左键对AT89C51进行设置,设置时钟频率为12MHZ,并按正确路径加载基于单片机的智能电子锁的设计.hex文件。
对单片机设置完毕后,就可以进行仿真了。
仿真过程中,若有软件问题,可在Keil中直接修改,通过proteus和keil的结合可以得到满意的结果。
首先进入调试页面,根据液晶提示:
Inputcipher输入6位密码,界面如下图:
图5-3-1
若密码正确则显示open提示开锁,对应开锁灯D1亮。
界面如下:
图5-3-2
若密码错误,蜂鸣器发出报警提示,并在数码管显示器上显示Error,此时需重新输入密码。
界面如下:
图5-3-3
错误次数超过三次,键盘锁定,D2灯亮
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 智能 密码锁 设计 实现