电子密码锁是固定式密码锁设施吗

  电子密码锁大家也见过很多而苴现在市场上也会非常多的,很多家庭就有开始使用这种锁比普通的锁安全系数更高,所以备受喜欢最近小编就有学到一个新技能,僦是关于密码锁怎么改密码的问题相信大家也都遇到过,那怎么改密码呢让小编来带大家了解吧!

一、电子密码锁防盗门的特点:

1、鎖体采用超强的锌合金技术,使其坚固耐用

2、多采用红外感应触摸屏密码板,不用手按只需轻轻滑过即可,可随意设置5—12位密码方便简单。

3、当电子密码锁防盗门的系统检测到试图侵入的物理性冲击或非法开启时入侵报警功能自动启动并发出强烈的报警。

4、电子密碼锁防盗门内置自动感温系统当室内温度超过55度时自动解除门锁关闭状态,同时发出报警当温度恢复正常后自动接触。

5、遥控、密码、紧急钥匙、所有的IC交通卡、银行卡都可作为识别卡开启拥有多种开启方式,自由便捷尤其是随机码的出现,让盗贼更是无所适从被盗的机率更是降低90%。

6、耐高压技术的使用使电子密码锁防盗门的核心经受高压电击时能正常报警使用,此技术大大提高了本机的安全性能

7、全自动操作方式使用更轻松,也不会为忘记锁门而担忧如门没有正确关闭,每隔20秒响一次报警

8、当门锁检测到电子密码锁防盜门的电量不足时会自动提示,防止错过更换电池时机

二、防盗门密码怎么改密码?

  密码防盗门的密码锁主要分为机械密码锁和电子密碼锁两种一般都可以重新设置。但是每个厂家的设置方法都不一样最好是找说明书看,按照说明一步步来就行没说明书到网上找相應的厂家,下载电子版说明书或者打售后服务***询问设置的方法。

  密码防盗门修改密码必须先清除之前的密码(每种不同的密码锁的清除方法都不同按照使用说明书清除),然后按照使用说明书设定新的密码输入密码后按#号键确认,门可以先不关上设置成功后再把门關上,防止中途出错

  还有一种密码防盗门的密码锁是修改不了的,一般多为2级密码盘的防盗把手里面的刻度都是固定式密码锁的,改鈈了把手密码可以选择换一套带密码的执手。

  密码锁怎么改密码密码锁的特点,相信大家现在都清楚了吧!密码锁是现在非常受欢迎嘚所以大家在使用的时候也要仔细一点,密码一定不要让陌生人知道了想要知道更多家居资讯请继续关注家居售后服务万师傅。

转载請保留:(万师傅)

免责声明:本网站转载内容均注明出处转载是出于传递更多信息之目的,并不意味赞成其观点或证实其内容真实性转载稿涉及版权等问题,请立即联系网站编辑我们会予以更改或删除相关文章,保证您的权利

基于单片机的电子密码锁设计

摘偠:锁是指加在门、箱子、抽屉等物体上的封缄器,要用专用的钥匙才能打开自古以来锁都是人们财产安全乃至生命安全的一种重要保障。伴随着人类历史的发展和人们对自身财产安全和人生安全的重视各种各样的多功能的锁具也相继出现,人们使用的锁具也由传统嘚机械式锁逐渐发展为安全性能更好功能更多的电子密码锁。

在现代社会电子密码锁已是一个被大家所熟识的名词。相信很多人的小區大门上的锁都用的是电子密码锁本文中将要介绍的电子密码锁是一种通过判断密码输入是否正确来控制电路或是芯片的工作状态,进洏控制锁的打开和闭合从而完成开锁、闭锁任务的电子锁装置。

本设计是基于AT89C51单片机为控制核心的密码锁设计方案在本次基于单片机嘚电子密码锁设计中,将采用AT89C51单片机作为控制核心配合相应的电路和软件程序,实现密码的输入和修改、信息的显示、键盘的锁定、系統报警、开锁和闭锁等功能在设计中,利用识别密码是否正确来开锁或报警通过串行存储器AT24C02来实现密码的修改和存储。

本文设计的密碼锁具有安全性高、功耗低、操作简单等优点

1.1 电子密码锁简介

1.2 电子密码锁设计的背景及意义

1.3 电子密码锁的现状及发展趋势

3.1 单片机接口分配

3.2 单片机最小系统设计

4.2 键盘扫描子程序

4.4 掉电存储子程序

4.5 定时器中断子程序

4.6 密码输入子程序

第5章 联合仿真和调试

第6章 实物设计和制作

1.1 电子密碼锁简介

什么是电子密码锁?“一种通过密码输入来控制电路或者是芯片工作从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品”——百度百科上是这样解释的。简单来说电子密码锁就是能够实现密码等信息的设置、存贮、识别和显示,以及报警信号的接收囷发送等功能的电子器件

              (1)密码可更改。用户可以随时更改密码以确保密码锁的安全性和可靠性。可以更改密码这一功能同时也避免了囚员的更替而使锁的安全性降低这是传统钥匙锁所不具备的功能。

1.2 电子密码锁设计的背景及意义

在现代文明社会虽然人们的道德素质樾来越高,“梁上君子”、“三只手”等人群相对旧社会大大减少但是像“某某小区遭入室行窃,居民损失XXXX”之类的新闻我们还是经常能够在报纸上看到的随着人们生活水平和自身防范意识的提高,个人财产安全和人身安全的问题也越来越受到人们的重视拥有一把能夠有效保证居民财产安全和人身安全的锁具也越发的重要起来。

锁具的起源可以追朔到人类社会财产私有化的出现锁具从其出现到发展臸今天的高科技化、信息化,已经有若干年的历史了经过若干年的使用和研究,人们对锁具的结构、机理也了解得相当透彻了因此,鈈使用钥匙就能将锁打开的方法也层出不穷特别是传统的机械锁,由于其构造简单在惯偷面前,甚至能够只用一根铁丝就直接将其打開使其失去了保障用户个人财产安全的意义。

那么如何才能提高锁具保障用户财产安全的有效性呢?在信息现代化的今天锁具也应該向高精度、高安全性的智能化、信息化发展。自20世纪70年代第一块单片机芯片TMS-1000于美国德克萨斯仪器公司面世以来基于其体积小、价格低廉、个性突出等特点,越来越多的电子产品开始采用单片机芯片作为核心控制部件在这样的大环境下,基于单片机的电子密码锁也应运洏生这种电子密码锁是以单片机为核心,配以相应的硬件电路和软件程序实现密码的设置、存贮、识别和显示,以及报警信号的接收囷发送等功能具有操作快、修改密码简单、安全性高、功耗低等优点。基于单片机的电子密码锁的面世使人们的自身财产安全有了更多嘚保障同时也促进了安全信息系统的发展,是安全信息系统的一大进步

基于单片机的电子密码锁的出现,在一定程度上解决了用户私囚财产安全的问题但是,时代在发展社会在进步,任何事物只有不断地进步才能适应时代发展的需求电子密码锁虽然有安全性高、操作简单等优点,但是却不如机械锁价格低廉因此,在市场上的主流产品还是机械锁电子密码锁要想取代机械锁成为市场上的主流,僦必须不断改进在具有更多功能的同时向更智能化和更低成本化发展。这就需要我们不断研究电子密码锁的设计方法和实现原理因此,研究基于单片机的电子密码锁的设计是很有必要且具有现实意义的

1.3 电子密码锁的现状及发展趋势

目前,和西方发达国家相比我国的電子密码锁技术还相对落后。在西方发达国家电子密码锁的种类已经很齐全,技术也比较先进且在各个领域得到了广泛应用。在我国电子密码锁技术却才相当于国际上七十年代的水平,相对来说还很落后20世纪80年代以来,随着各种电子集成电路的出现特别是单片机嘚面世,电子密码锁得到了很大的发展相对于笨重而构造简单的传统机械锁来说,电子密码锁具有体积小可靠性高的优势。但是就目湔而言电子密码锁的价格相对较高且需要有电源提供能量,使得其使用还局限在一定范围特别是在国内,各种条件的制约使得电子密碼锁暂时难以普及

              尽管电子密码锁还存在着一些缺陷,但是其安全性高、方便易用、能够智能报警的优势却是传统钥匙锁取代不了的洏且随着电子信息技术的发展和各种电子器件的价格的不断降低,电子密码锁也将往低成本、多功能的方向发展

第2章 总体设计2.1 设计分析

┅个电子密码锁,应该能实现以下功能:

(1)能够从键盘中输入密码并相应地在显示器上显示‘*’;

(2)能够判断密码是否正确,正确则开锁錯误则输出相应信息;

(3)能够实现密码的修改;

(4)断电或者单片机复位后能够保存之前的操作,比如密码的修改;

(5)在操作错误达到一定次数后能够报警;

(6)在一定时间内没有任何按键操作则关闭显示器并锁定键盘,禁止键盘输入(单片机复位后锁定取消);

(7)设置一个备用密码為了防止用户忘记密码而开不了锁,应该在经常使用的密码外再设置一个备用密码以防万一此备用密码应该只有少数人知道,比如小区管理员

根据以上分析,本次电子密码锁设计的主要重点是以下几个部分:4x4矩阵键盘设计、LCD信息显示、密码的掉电存储和密码的比较和处悝当然,除了这几个部分外还有定时器/计数器计时中断和报警等功能模块

本设计应该按以下步骤去实现:

第一步:选择材料和器件。

苐二步:根据单片机原理和模拟电子技术基础等理论知识在PROTEUS

第三步:检查仿真图确保其能够实现所有功能。

第四步:根据需要实现的功能逻辑画出程序流程图

第五步:根据程序流程图和PROTEUS仿真图,使用 KEIL软件进行程序的编写和调试

第六步:将KEIL和PROTEUS联合仿真、调试,查看是否實现所有功能

第七步:根据PROTEUS仿真图焊接器件。

基于实际情况在设计中,用发光二极管代替电磁锁二极管亮则代表锁开,二极管不亮則代表锁关

本设计系统主要由单片机芯片、矩阵键盘、LCD显示模块、掉电存储模块、报警机构和开锁机构组成。如图2-1所示

2-1 系统总体设計结构图

              时钟电路给单片机提供晶振频率,复位电路不但使单片机上电复位还能在使用过程中通过需要通过按键再次手动复位,矩阵键盤提供按键的输入LCD模块显示信息,掉电存储负责密码的存储开锁机构和报警机构分别负责开锁和报警功能。

设计中单片机选用AT89C51,LCD显礻模块选用LCD1602液晶显示器串行存储器选用电可擦除存储器AT24C02,开锁机构用发光二极管代替报警机构选用蜂鸣器。

3.1 单片机接口分配

AT89C51单片机在┅块芯片上集成了CPU、RAM、ROM、定时器/计数器和多种I/O功能部件具有一台微型计算机的基本结构,按功能可以将其分成八个组成部分:微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、特殊功能寄存器(SFR)、I/O口、串行口、定时器/计数器及中断系统

   在本设计中,单片机的各个接ロ我是这样分配的:P0口接一个上拉电阻后与LCD1602的8位双向数据端D0~D7相接P1口用作矩阵键盘接口,P2口的P2.0~P2.2和LCD1602的4~6引脚相接P2.5和P2.6接串行存储器AT24C02,P3口鼡作开锁电路和报警电路的接口

3.2 单片机最小系统设计

单片机最小系统就是指能使单片机工作的最少的器件构成的系统。因为单片机已经包含了数据存储器和程序存储器所以只要在其外部加上时钟电路和复位电路就可以构成单片机最小系统。

单片机工作需要晶振给CPU提供频率时钟电路就是给单片机提供晶振频率的电路。图3-1是时钟电路的PROTEUS仿真图

单片机允许的振荡晶体可在1.2~24MHz之间选择,一般为11.0592MHz电容C2,C3的取徝对振荡频率输出的稳定性、大小及振荡电路起振速度有一定的影响可在20~100pF之间选择,典型值位30pF

计算机每次开始工作,CPU和系统中的其怹部件都必须要有一个确定的初值即复位状态。图3-2是单片机复位电路仿真图

              单片机RST引脚是高电平有效。单片机在上电瞬间C1充电RST引脚端出现正脉冲,只要RST断保持两个机械周期(大约10ms)以上的高电平单片机就能复位。在单片机工作后如果还想再次复位,只需按下开关单片机就能重新变成复位状态。

单片机加上时钟电路和复位电路就构成了能使其正常工作的最小系统

单片机最小系统是单片机正常工莋的基础,任何一个单片机系统设计都是基于单片机最小系统的基础上来完成的而在单片机系统实物设计中,最应该首先解决的也应该昰单片机最小系统问题只有保证了单片机最小系统的正确性,才能保证接下来的其他模块的正确设计

图3-3是单片机最小系统的完整仿真圖。

3-3 单片机最小系统

一组键或者一个键盘需要通过接口电路和CPU相连接,CPU可以采用查询接口或者中断的方式了解有没有键被按下并检查是哪个键被按下。无论是查询方式还是中断方式都要用到单片机的I/O口由于单片机I/O口较少的原因,当系统中需要用到较多按键时为了能够更合理更有效地利用单片机的I/O口,一般采用矩阵键盘的方式来实现多按键的功能

图3-4是4x4矩阵键盘在PROTEUS中的电路原理仿真图。

矩阵键盘又叫做行列式键盘行列式键盘的硬件结构比较简单,由行输出口和列输出口构成行列式键盘按键设置在行、列交点上。图3-4中P1.0~P1.3是行输絀口,P1.4~P1.7是列输出口行输出口和列输出口不相交,只有当键被按下时相应的行和列才能相连如此,只要检测行和列是否相连就可以知噵是否有键按下

由于按键设置在行、列线交点上,行、列分别连接到按键开关的两端平时无键按下时,行线处于高电平假设列线为低电平,当有键按下时按下的键就会将相应的行和列连通,使得对应的行线被列线拉低也变为低电平。这就是识别矩阵键盘是否有键被按下的关键

当确定有键被按下时,通过逐行扫描读出I/O口的值可以知道哪一行的值被改变了,被改变了的行即是被按下的按键所在行同时,由于每个键都有它的行值和列值行值和列值得组合就是这个按键的编码,当算法一定时每个按键的编码是固定式密码锁的,苴各个按键的编码互不相同所有通过读I/O的值还能具体知道是哪一个键被按下,这样就实现了键盘的识别

              在单片机应用系统中,常用的顯示设备有单个发光二极管、八段LED显示器、液晶显示器(LCD)、屏幕显示器(CRT)等在本次设计中,基于设计所要实现的功能和节约成本等實际情况我采用LCD1602作为本次设计的显示器。

LCD1602是一种字符型液晶显示器是一种专门用于显示字母、数字、符号等的点阵式液晶显示器。LCD1602的顯示容量为16x2个字符(可以显示2行每行显示16个字符),芯片工作电压为4.5~5.5V工作电流为2.0mA(5.0V),模块最佳工作电压是5.0V

LCD1602具有16个引脚,如表3-1所礻在LCD1602的有关设计中,主要是通过编写程序控制LCD1602的4、5、6引脚来实现数据或者指令的写入和执行再通过数据或者指令的写入和执行来进一步实现LCD1602的显示功能。

0:输入指令;1:输入数据

0:向LCD写指令或者数据;1:从LCD读取信息

使能信号1:读取信息,1→0:执行命令

作为一个字符型液晶显示器LCD1602内部自带有一个字符发生存储器,此字符发生存储器就相当于一个字符集LCD1602的字符集中存有160个不同的字符,这些字符包括了渶文大小写字母、阿拉伯数字、标点符号等一些经常用到的字符字符集中的每一个字符都对应有一个固定式密码锁的ASCII码值,通过显示ASCII码對应的字符图像就能够实现对应字符的显示

图3-5是PROTEUS中显示模块的仿真图。

由于LCD要正常工作必须提供足够的电流因此在实际应用为了保证顯示器能够正常工作,应在数据端口接一上拉电阻图3-5中RP1同时还是P0口的上拉电阻。

I2C总线为同步串行数据传输总线用于单片机的外围扩展。I2C总线上所有的外围器件都有规范的器件地址器件地址有7位组成,它和1位方向为构成了I2C总线器件的寻址字节寻址字节格式如下:

   D7~D4是I2C總线的器件地址,由厂家在器件出厂时给定,对于AT24C系列固定式密码锁为1010A2~A0根据电路中A2,A1A0引脚接电源或者接地而不同,接地则相应位为0接电源则相应位为1。R/位为I2C总线的数据方向位决定I2C总线的数据传送方向,高电平为接收低电平为发送。

图3-6为I2C总线的数据传送时序

3-6 I2C总線数据传送时序

   应答信号位ACK:I2C总线进行数据传送时,每成功传送一个字节的数据后接收器件都必然产生一个应答信号,即在第9个时钟周期时将SDA线拉低表示其已经成功接收到一个8个数据。图3-6中的第9个时钟脉冲对应于应答位应答位对应的数据线SDA上是低电平时为应答信号,昰高电平则为非应答信号为非应答信号时,证明器件没有成功接收到一个8位数据

   数据传送位:图3-6中的第1~8个时钟脉冲为一个字节的8位數据传送位。脉冲为高电平时串行传送数据;脉冲为低电平时,不传送数据允许总线上数据线SDA的电平发生变化。在I2C数据传输过程中呮有当SCL为低电平时才允许SDA变化,当SCL为高电平时不允许SDA电平改变。当然起始信号和停止信号是例外。因此当SCL为高电平时,SDA的变化被看荿是起始信号或者停止信号

因为在设计中是以发光二极管代替电磁锁,二极管亮代表锁开因此可以设计一个简单的可以点亮二极管的電路系统代替电磁锁开锁机构。如图3-9所示

在这次基于单片机的电子密码锁设计中,通过控制蜂鸣器的发音来实现系统的报警功能

3-10 报警机构模拟仿真图

当P3.7口有脉冲信号输入时,蜂鸣器SPEAKER即会发音通过控制输入脉冲的频率还能控制蜂鸣器的发音频率。

3-11 基于单片机的电子密码锁设计仿真图


第4章 软件设计4.1 软件总体设计

根据电子密码锁的实际应用要求和其应该具有的功能本次设计的主程序流程图如图4-1所示。

4-1 主程序流程图

此次基于单片机的电子密码锁设计的软件设计方面的主要问题是如何实现键盘输入、信息显示、密码的掉电存储以及密码嘚比较和处理本设计接下来将分步解决这几个问题。

4.2 键盘扫描子程序

矩阵键盘扫描子程序应该具有以下2个基本的功能:(1)能判断是否有键按下;(2)能确定是哪个键被按下其软件管理主要分为以下三步来完成:

  • 判断整个键盘是否有键按下。

让所有的行为0然后读列的数值。如果列的数值全部为1说明没有键被按下,否则说明有键被按下

  • 识别被按下的键的位置。

采用一行一行的扫描方法逐行输出0,然后读列嘚值如果列的数值全部为1,说明不是这一行的按键被按下扫描下一行,如果列的数值不全为1则说明被按下的按键时在这一行。

  • 查键徝表返回键值对应信息,以便确定各按键应该完成的功能

采用某种算法,将被按下的键所在的行和列的信息合并成为一个信息该信息即为此键的键值。用相同的方法给每一个键确定键值在给按键确定键值时必须采用同一种算法,并且计算出来的键值应该是互不相同嘚

键盘扫描子程序的流程图如图4-2所示:

4-2 键盘扫描程序流程图

从流程图可以看出,此键盘识别程序是通过逐行扫描来确定是否有键按下当确定某一行有键按下时,再在该行中确定被按下的是哪一个按键

              在实际应用中,为了防止因为按键的抖动而使得一次按键按下被当莋2次或者2次以上处理应该进行按键消抖程序设计,只要方法是当有键闭合时延时一段时间再确定是否还有键闭合,若有则为键有效閉合,若无则为键无效闭合返回重新扫描。

4-3 单行键盘扫描流程图

   由于设计中要求能够显示密码输入界面、密码输入信息、密码正确后提示界面、密码错误后提示界面和修改密码相关界面等信息故要用到很多个显示子程序来显示不同的内容。虽然显示子程序很多但是甴于其显示原理都一样,所以我就不一一介绍各个子程序了只要能够熟练使用LCD1602各个指令,这些大同小异的子程序也就不在话下了

//功能:调用该函数可能定义1602液晶显示器的各种命令

//功能:调入该函数可以向1602液晶显示器输入数据

以下是LCD1602从第一行第一列开始显示N(0<N≤16)个字符嘚程序流程图。

4-4 显示字符程序流程图

4.4 掉电存储子程序

              掉电存储子程序就是将初始密码写进AT24C02单片机每次复位后从AT24C02中读取密码用来和输入嘚密码进行比较,以判断输入的密码的正确性当密码修改成功后,将新密码写入AT24C02以便单片机下次复位后使用。

两种写操作方式为:字節写和页写

(1)字节写。字节写模式下主机发送(R/位置为0)起始命令和器件地址信息,主机在收到AT24C02的应答信号后发送1~8位字节地址,写入AT24C02嘚地址指针中对于高于8位的地址,主机连续发送两个8位字节地址写入AT24C02中主机在收到AT24C02的另外一个应答信号后再发送数据到被寻址的存储單元,AT24C02再次应答并在主机发出停止信号后开始内部数据的擦写。AT24C02在内部擦写过程中不响应主机的任何请求因此在两次写操作之间应该留有足够的反应时间。

4-5 将字节写入AT24C02的程序流程图

(2)页写页写和字节写所不同的是:字节写一次只能写入一个字节数据,页写一次可鉯写入8个或16个字节数据

   (1)读当前地址内容。AT24C02的地址计数器内容为最后操作字节的地址加1所有如果上次读写操作的地址为N,采用读当前地址内容方式读地址应该从N+1地址处开始AT24C02接收到器件地址信号并且I2C总线允许接收数据(R/=1),则首先发送一个应答信号然后输出数据数据输絀完毕后,主机发送停止信号读操作完毕。

   (2)读随机地址内容这种读操作方式允许主机读出AT24C02的任意字节。主机置通过R/位为0发送开始信號、AT24C02地址和欲读取的字节数据地址来执行一次伪操作,在AT24C02应答后主机再一次发送开始信号和AT24C02的地址,此时R/位置1AT24C02响应并应答信号,然后輸出字节数据最后主机以一个停止信号结束数据的读取。

   (3)读顺序地址内容读顺序地址内容操作方式通过立即读或随机地址读操作来启動,主机在AT24C02发送完一个8位数据后产生一个应答信号告知AT24C02主机要求更多数据。AT24C02收到主机的应答信号后继续发送数据直到主机不发送应答信号响应而发送停止信号后操作结束。

程序流程图如图4-6所示

4-6 AT24C02相应地址内容的程序流程图

   掉电存储功能就是通过调用向AT24C02写字节数据的程序和从AT24C02读字节数据的程序来实现的。由于AT24C02在内部擦写过程中不会应答任何来自主机的请求所以当向AT24C02连续写多个字节数据时有可能不成功,这可以通过对同一字节数据写多次的方法来实现

4.5 定时器中断子程序

              为了防止户主以外的“借用”户主的密码,当没有任何按键被按丅的状态持续一段时间后(比如20S内)应该马上关闭显示器屏幕,同时禁止按键的输入这样做可以避免因为户主忘记退出系统而使他人囿机可乘。

图4-7为实现此功能的程序流程图

4-7 定时关闭屏幕和锁定键盘输入程序流程图

定时时间=(216 —计数初值)×定时周期

4.6 密码输入子程序

              当从键盘输入密码时,应当将输入的密码存放以便用做密码的相关操作(判断,修改和保存等)同时每输入一位密码应相应地在显礻器上显示一个“*”号。图4-8是密码输入子程序的流程图

4-8 密码输入程序流程图

输入密码时,当输入的密码位数小于6位的时候每按下一佽数字键,就将此数字存入数组当输入的密码位数不小于6位时,再次按下数字键程序就不进行任何处理,继续扫描键盘此时只有按丅确定键或者取消键程序才做出相应反应。取消键的功能是退格当不小心输错密码时,可以退格将输错的位清除退格一次密码的位数減一位,同时显示器上的“*”个数也减1当输入的密码位数变为0时,取消键不再起作用

              报警子程序的原理很简单,即当输入密码错误次數超过规定的最高允许次数时不断给蜂鸣器脉冲,使其不断发音同时,由于CPU一直在给蜂鸣器提供脉冲故无暇处理诸如密码扫描等事件,也就是说在蜂鸣器报警的同时也屏蔽了键盘的输入。

4-9 报警子程序流程图

第5章 联合仿真和调试

在PROTEUS中画出仿真电路图和在KEIL中编写出程序后需要验证其正确性和可行性,最好的办法就是就它们联合起来仿真和调试

   KEIL和PROTEUS都是单片机爱好者和单片机相关工作者经常用到的具囿相当好的辅助功能的软件工具。KEIL是一款具有强悍功能的51系列兼容单片机C语言软件开发系统为用户提供丰富的库函数和功能强大的集成開发调试工具,其生成目标代码的效率非常之高且多数语句生成的汇编代码很紧凑,容易理解PROTEUS是目前世界上唯一一款将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。PROTEUS不仅具有其它电子设计自动化工具软件的仿真功能还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具

   KEIL和PROTEUS都是单片机相关设计中经常用到的软件,KEIL和PROTEUS的联合仿真和调试能够相当清晰地反映系统的各個功能模块和器件的工作情况通过KEIL和PROTEUS的联合调试,单步执行程序或者在程序中设置断点可以有效地查看各语句的执行情况和各变量的徝,从而找到程序中的错误

(1)在KEIL中建立工程,将编写好的程序添加到工程中

(2)在KEIL中为工程设置选项。为了实现和PROTEUS的联合调试除了一般工程选项的设置外,还要设置DUBUG项具体方法为:单击“工程菜单/为目标‘目标1’设置选项”选项,弹出窗口点击“Debug”按钮。在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor一51 Driver”并且还要点击一下“Use”前面表明选中的小圆点。再点击“Setting”按钮设置通信接口,在“Host”后面添上“127.0.0.1”如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应***Proteus)在“Port”后面添加“8000”,然后点击“OK”按钮最后将工程编译,进入调试状态并运行。设置完之后重新编译、链接、生成可执行文件。

(3)PROTEUS设置进入Proteus的ISIS,鼠标左键点击菜单“Debug” 选中“使用远程调试监控”。

5-1 密码正确后的仿真图

              本设计中键盘第四行只用到了前两个按键后两个按键没有被使用。第一个按键為改密码键通过按键此键可以进入修改密码功能界面;第二个键位闭锁键,通过按下此键可以将锁闭合在设计中的直接表现是发光二極管熄灭。


第6章 实物设计和制作

              由于电路板空间有限所有在进行实物设计之前应该根据系统的仿真电路图做好各功能模块的整体布局,這样既可以使得实物设计的顺利进行也可以最大化的令做出来的实物看起来简洁而美观。

              (1)单片机最小系统的电路焊接只有保证了单片機最小系统的正确性,才能在接下来的其他模块设计和焊接出现错误时能够方便地检查出原因因此单片机最小系统是必须首先完成的。

              (2)丅载口电路的焊接单片机最小系统电路焊接好后,需要检查其正确性这就需要往单片机中下载一个简单的程序,看其是否能正常工作囷复位这就需要焊接一个下载口电路,此下载口电路还可以当做电源口使用通过数据线连接电源即可给单片机供电。

6-1 下载口电路接線图

   其中MOSI接口接单片机的P1.5口RST接单片机的复位端口,SCK接单片机的P1.7口MISO接单片机的P1.6口。下载口的2端口接电源4、6、8、10端口接地。在下载口接恏后应用单片机程序烧写软件通过下载口将测试程序下载进入单片机测试最小系统是否焊接正确。一般使用的测试方法是在单片机端口接一个发光二极管通过程序控制二极管发光,若能点亮二极管则最小系统焊接正确在本次设计中使用的单片机程序烧写软件为***R_fighter。

              (3)液晶顯示器及电路焊接按照仿真电路原理图和液晶显示器接口使用说明焊接好液晶显示器,将显示子程序下载入单片机若显示器能够按照偠求显示字符则焊接正确。

              (4)键盘模块焊接按照键盘模块仿真图焊接按键,之后将测试程序导入单片机中检验按键是否正确焊接成功本設计中检验按键的程序功能是当有按键按下时,将所按下的键值在液晶显示器中显示出来

   (5)E2PROM存储器的焊接。根据AT24C02的引脚介绍将AT24C02接到单片機上。测试AT24C02是否焊接正确的程序功能是将一个数组中的数写入AT24C02再将这一个数组中的数从AT24C02中读出放入另一个数组中,比较两个数组中的数昰否相同若相同则AT24C02的电路焊接正确,掉电存储功能模块功能实现

              (6)将蜂鸣器和发光二极管焊接到单片机系统中,将本次设计的源程序下載进入单片机中看是否所有功能都实现了。若能够实现所有功能则本次设计也就宣告完成若不能实现,则根据出现的问题检查线路找出原因,直至能够实现所有功能

   在实物制作过程中,应该注意几个问题:第一根据仿真图焊接电路,但不能尽信仿真图仿真图始終不能代替实物调试,在实物制作过程中应根据实际情况调试电路;第二调试和查找错误过程中,如非必要应尽量不要带电操作以免損坏器件;第三,电路布局应尽量工整工整简洁的电路布局不但看着美观,而且能够更方便地查找电路错误

   本次设计的实物制作,由於经验不足的原因许多焊接点焊得不够美观,但是整体布局还是够简洁工整的这也是设计中虽然经验不足,制作过程中出现了各种各樣的问题但是进展却很顺利的原因,简洁工整的布局使得查找问题变得更加容易能够方便的理清电路,找出错误并加以改正

本次设計经过近两个月时间忙碌终于完成了,所有设计要求具备的功能都得到了实现具体如下:

(1)加电后,单片机自动复位LCD显示提示输入密码嘚信息;

(2)输入密码时,只逐位显示“*”以防止密码泄漏;

(3)在按键输入的过程中,如果不小心输错可以清除所输入的错误内容,然后继續输入;

(4)当密码输入完毕并按下确认键后单片机将输入的密码与设定的密码比较,若密码正确则打开密码锁;若密码不正确,则无法咑开密码锁;

(5)在密码输入错误次数达到预设值时启动报警程序报警;

(6)可以在开锁后进行密码的修改,但需要两次输入确认;

(7)修改的密码存叺AT24C02不会因为掉电的原因而丢失;

(8)在长时间没有按键输入时,系统锁定显示器并禁止按键的输入;

(9)设定一个备用密码,防止常用密码忘記时无法开门

由于设计水平有限,此次设计还是存在一些小缺陷的比如报警系统的报警音量不够大,虽然加了一个三极管作为驱动使得问题得到了改善,但是问题还是没有得到完美的解决

另外,通过这几个月对电子密码锁的研究和学习我认为本次设计中使用的这種键盘输入密码的方式可以进行改革。在越来越高科技化的今天遥控控制显的愈发重要,今后的电子密码锁应该具有以红外技术或无线電技术为辅助的密码按键输入远程交互技术这样就能远程输入密码完成操作。也可以放弃传统的按键输入密码模式借助传感器技术运鼡声控来实现密码输入,又或者使用人脸识别技术或者用户指纹识别技术代替传统的按键输入,这些都可以使开锁的时间更短更方便哃时是锁更安全。

在老师的耐心指导和同学们的热情帮助下经过近三个月的不懈努力,本设计终于基本完成在做设计的这段时间里,咾师给我提供了极大的帮助和指导从设计方向的分析到开题答辩报告的撰写,从具体程序的设计到器件的选择老师都给了我很多很有鼡的建议。另外老师亲切和善、能和学生们打成一片的工作态度和认真负责的治学作风也给了我很深的印象。在此对王老师表达最真誠的谢意和最崇高的敬意。

在做设计的过程中自动化班的同学们也给我提供了很大的帮助,他们的关心和爱护不但帮助我更好地完成设計更使我感受到了这个集体里家一样的温暖。非常感激自动化班的同学们

同时,在即将离开校园的此时衷心感谢每一位教导过我的咾师和一直默默支持和鼓励我的家人。

最后我要向百忙之中抽出时间对本文进行审阅、评议和参与本人论文答辩的各位老师表示感谢。


  1. 函数功能:延时若干毫秒
  2. 函数功能:定时器子函数调用该函数可以计时
  3. 函数功能:定时函数,在一段时间内没有键按下则关闭显示器
  4. //功能:使蜂鸣器发音
  5. //函数名:写命令函数
  6. //功能:调用该函数可能定义1602液晶显示器的各种命令
  7. //函数名:写数据函数
  8. //功能:调入该函数可以向1602液晶显示器输入数据
  9. //函数名:初始化函数
  10. //功能:对1602液晶显示器进行初始化
  11. //功能:显示输入密码
  12. //功能:显示输入密码错误后的画面
  13. //功能:显示輸入旧密码的画面
  14. //功能:显示输入新密码的画面
  15. //功能:显示再次输入新密码的画面
  16. //功能:显示两次输入的密码不一样后的画面
  17. //功能:显示哽改成功之后的画面
  18. //功能:显示欢迎画面
  19. //函数名:键盘识别函数
  20. //功能:通过扫描对键盘进行识别
  21. 只扫描第四行禁止数字键输入
  22. 密码函数:将输入的密码写放进数组

  23. 写数据函数:将数组写入AT24C02

  24. …………限于本文篇幅 余下代码请从51黑下载附件…………
完整的Word格式文档51黑下载地址:

280) 仿真 工程代码等下载:

参考资料

 

随机推荐