当前位置:文档之家› 单片机课程设计电子密码锁设计

单片机课程设计电子密码锁设计

单片机课程设计电子密码锁设计
单片机课程设计电子密码锁设计

单片机课程设计电子密码锁设计

目录

1 引言...................................... 错误!未定义书签。

2 系统设计分析............................... 错误!未定义书签。

2.1 总体设计框图.......................... 错误!未定义书签。

2.2 硬件电路设计分析...................... 错误!未定义书签。

2.2.1 时钟电路设计.................... 错误!未定义书签。

2.2.2 复位电路设计.................... 错误!未定义书签。

2.2.3 矩阵键盘设计.................... 错误!未定义书签。

2.2.4 报警控制电路.................... 错误!未定义书签。

2.2.5 液晶显示电路.................... 错误!未定义书签。

2.3 系统软件设计.......................... 错误!未定义书签。

2.3.2 初始化及按盘识别程序 ............ 错误!未定义书签。

2.3.3 开锁程序........................ 错误!未定义书签。

2.3.4 修改密码程序.................... 错误!未定义书签。

2.3.5 LCD显示程序..................... 错误!未定义书签。

2.4 仿真测试结果.......................... 错误!未定义书签。

3 总结....................................... 错误!未定义书签。参考文献..................................... 错误!未定义书签。附录......................................... 错误!未定义书签。

1 引言

随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的特别的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。

单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。计算机的产生加快了人类改造世界的步伐,可是它毕竟体积大。微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC 卡、电子宠物等,这些都离不开单片机。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了,且容易升级改进。

电子锁能够在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种

场合使用。大大提高了主人物资的安全性,安全能够代替老式机械锁。当前使用的密码锁种类繁多,各具特色。本文从经济实用的角度出发,采用AT89C2051单机,研制了一款具有防盗自动报警功能的电子密码锁。该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有一定的推广价值。

(1)系统设置6位密码,密码经过键盘输入,若密码正确,则将锁打开。

(2)密码由用户自己设定,在开锁状态下,用户可自行修改密码。

(3)具有自动报警功能,系统工作时,用户经过按键输入6位密码,若密码不正确,则要求重新输入密码,重新输入密码的次数不能超过3次,若3次输入的密码都不正确,则发出报警信号。

本课程设计以AT89C51为主控芯片,LCD1602为显示屏,利用单片机的读写控制、扩展电路等功能部件设计电子密码锁。

2 系统设计分析

2.1 总体设计框图

本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户经过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路控制是否开锁。系统整体框图如图2-1所示。

图2-1 系统整体框图

各模块功能如下:

1.键盘输入模块:分为密码输入按键与功能按键,用于完成密码输入功能。

2.密码存储模块:用于完成掉电存储功能,使修改的密码断电后仍能保存。

3.晶振电路:用于单片机的起振。

4.复位电路:完成系统的复位。

5.LCD显示模块:用于完成对系统状态显示及操作提示功能。6.开锁电路:应用发光二极管模拟开锁,完成开锁及开锁提示。

2.2 硬件电路设计分析

本系统电路由键盘输入部分、密码存储部分、复位部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4×4矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用内部存储器来完成。其原理图如图2-2所示。

图2-2 电子密码锁原理图

2.2.1 时钟电路设计

时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下的进行的,如果单片机的时钟电路停止工作(晶振停振),那么单片机也就停止运行了。当采用内部时钟时,连接方法如下图所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个12MHZ晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如33PF。如图2-3所示。

图2-3 时钟电路

2.2.2 复位电路设计

复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其它部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。该复位电路采用按键电平复位式复位电路。当单片机已在运行当中时,按下复位键后松开,在复位引脚RET(9脚)脚持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号将使单片机复位。也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。如图2-4所示。

图2-4 复位电路

2.2.3 矩阵键盘设计

为了加强密码的保密性,采用一个4×4的矩阵式键盘能够任意设置用户密码(1-16位长度),从而提高了密码的保密性,同时也能减少与单片机接口时所占用的I/O口线的数目,节省了单片机的宝贵资源,在按键比较多的时候,一般采用这种方法。其原理图如图2-5所示。

图2-5 矩阵键盘

每一行与每一列的交叉处不相同,而是经过一个按键来连通,利用这种行列式矩阵结构只需要N根行线与M根列线,即可组成具有N×M个按键的矩阵键盘。

在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序

首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就是要识别哪一个按键被按下。对键的识别方法一般有两种:一种是行扫描查询法;另一种是速度较快的线反转法。

此系统中,我们采用线反转法。首先辨别键盘中有无按键被按下,在单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。具体方法是:向行线输出全扫描字00H,把全部列线置成低电平,然后将列线的电平状态读入累加器A中。如果有按键被按下,总会有一根行线电瓶被拉至低电平从而使行线不全为1。

判断键盘中哪一个按键被按下一般是经过将列线逐列至低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的按键不在此列;如果不全为1,则所按下的按键必在此列,而且是在与零电平行线相交的交点上的那个按键。

按键的操作面板共计10个数字键和6个功能键,键盘侧面还有一个微型蜂鸣器。键盘侧面还有一个蜂鸣器,每操作一次,它便发出声音,提示操作成功。

10个数字键用来输入密码,另外6个功能键分别是:A查看键、B设置新密码键、C退格键、D返回键、E确认/退出键和F开启键。其中退格键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。确认键的功能是确认输入的密码。开启键是切换到密码输入状态,输密码前需按该键才能开始输入密

码。按“F”键启动进入输入密码程序,按住“F”键不放3秒以上后进入输入密码状态。在输入密码状态下,0-9数字键为有效键,有时间和次数限制功能:只有三次输入密码机会,每次限制在10秒内完成,输入密码有误或每次输入密码超时,则被认为是密码输入错误。当3次输入都错误时,程序将返回起始状态。密码输入正确后,继电器吸合,表示锁被打开。在密码输入正确的情况下,程序进入查看密码和修改密码状态,按“E”键退出查看密码状态。按“B”键进入重新设置密码状态,在输入密码时,如发现输入有误,可按“C”删除后,重新输入,按“E”确认后,程序退出修改密码状态。按“D”键或等待10秒后程序退出修改密码和查看密码状态,回到起始状态。程序内定密码为:1,送电开机时,只要输入内定密码便可开门,这样可预防停电后再送电时无密码可用。当密码输入错误或密码输入时间超过规定的时间时,蜂鸣器报警。键盘的功能如表2-1所示。

表2-1 按键功能表

按键键名功能说明

0-9键数字键输入密码

A键查看键查看密码

B键设置新密码键设置新密码

C键退格键退格删除

D键返回键返回到开始界面

E键F键确认/退出键

开启键

确认/退出

开启密码输入

2.2.4 报警控制电路

该电路采用单频音报警电路,实现单频音报警的接口电路比较简单,其发音元件一般可采用压电蜂鸣器,当在蜂鸣器两引脚上加3~15V直流工作电压,就能产生3kHZ左右的蜂鸣振荡音响。压电式蜂鸣器结构简单、耗电少,更适于在单片机系统中应用。压电式蜂鸣器,约需10mA的驱动电流,可在某端口接上一只三极管和电阻组成的驱动电路来驱动,P.3.1接三极管基极输入端,当P3.7输出高电平“1”时,三极管导通,蜂鸣器的通电而发音,当P3.1输出低电平“0”时,三极管截止,蜂鸣器停止发音。其原理图如图2-6所示。

图2-6报警控制电路

2.2.5 液晶显示电路

本设计的显示电路是为了给使用者以提示而设置的为了达到界面友好的目的,显示部分由液晶显示器LCD1602取代普通的数码管完成。开锁时,按下键盘上的开锁按键后,利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输

入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD显示“IUPUT RIGHT”,单片机其中P3.0引脚会输出低电平,使三极管T2导通,电磁铁吸合,继电器开关跳转,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“IUPUT ERROR”,P3.0输出的是高电平,电子密码锁不能打开。经过LCD显示屏,能够清楚地判断出密码锁所处的状态。电路图如图2-7所示。

图2-7 显示电路

2.3 系统软件设计

系统的软件设计采用汇编语言编码。设计方法是先用文本编辑器编写源码,然后用软件Keil C51编译,如果没有错误,可连接生成.HEX格式的文件(需事先在Keil C51中设置)。如果有错误则无法连接,但可在生成的.OBJ文件中找到代码错误的地方,便

于修改。当然也能够直接在Keil中编码。生成的HEX文件是记录文本行的ASCII文本文件,在HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量。HEX文件经常被用于将程序或数据传输存储到ROM、EPROM,大多数编程器和模拟器使用HEX 文件。

系统的主程序如图2-8所示。由于用户在使用系统的过程中,可能在任何时刻按下任何按键,而程序都必须对此作出正确响应。

N

图2-8 系统主流程图

2.3.2 初始化及按盘识别程序

如图2-9所示,系统的初始化包括堆栈起始地址的设定,定时/计数器的设定,液晶显示模式的设定,密码缓冲区的初始化,一些自定义数据空间的初始化等操作。

系统初始化并读取密码完成后,液晶显示“PASSWORD CONTROL”,提示用户能够输入密码。此时程序即不断测试按键,检查是否有按键被按下。如果有,则进行按键识别;如果没有按键按下,或者按下的按键没有被识别,R3赋值0FFH,并跳转至按键测试。实际程序运行时,绝大部分时间都在测试按键,等待用户输入。

图 2-9 初始化及按键识别流程图

2.3.3 开锁程序

首先LCD

初始化,输入密码,密码正确则使开锁电路动作,引脚P2.3得到低电平使发光二极管灯亮,开锁。开锁程序流程图如图2-10所示。

图 2-10 开锁流程图

2.3.4 修改密码程序

如图2-11所示,能够看出,改密键的处理流程跟开锁键类似,都需检查密码是否正确,错误的话,提示重新输入,只有输入密码正确才能够进行改密。然后再按更改键,密码更改程序被调用,进而更改密码,此过程,LCD都会显示信息。

图2-11 修改密码流程图

2.3.5 LCD显示程序

液晶显示子程序在每次更新显示内容时都会被调用,其流程如图2-12所示。

图2-12 LCD显示子程序流程图

每次更新显示内容前,需清显示清空LCD原先的显示内容,清屏指令的指令码为01H,即将P0口赋值01H,然后写入指令寄存器IR。

LCD1602要显示的内容是根据其控制器内置的字符码表,事先列出要显示的ASCII字符串。每次送一个字符的ASCII码入P0口,然后写入数据寄存器DR,最后将字符地址加一,LCD1602会将写入的ASCII码对应的字符依次显示出来。由于显示字符串的长度不尽相同,约定每串字符以00H结尾;程序检测到字符码为00H时,即停止写入,返回。LCD显示的内容在下次更新前会一直保持。

2.4 仿真测试结果

开机后,LCD1602显示如图2-13所示,等待按键输入。

图2-13 开机界面

输入密码分两个过程:首先必须开启密码输入功能才能输入密码,按住“F”键3秒以上才能启动进入输入密码程序,进入输入

密码状态,LCD1602显示如图2-14所示:

图2-14 输入界面

此时使用矩阵键盘输入密码,在输入密码状态下,0-9为有效数字键。本系统有时间、次数限制功能,不给别人试探机会:三次输入密码机会,每次限制在10秒内完成,输入过程如图2-15所示:

相关主题
文本预览
相关文档 最新文档