电子密码锁课程设计

更新时间:2024-05-11 12:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘要: 为了提高个人资料、部门文件档案的保密性和安全性,采用高速、低功

耗且具备ISP、IAP、内部E^2PROM功能的STC89C52单片机,设计了保密性更高的电子密码锁,并详细介绍STC89C52单片机内部E。PROM有关的特殊功能寄存器、读写子程序。该电子密码锁的上锁、开锁、修改密码都在片内进行,不涉及外围芯片,减小了PCB面积,降低故障率和成本,提高了可靠性、保密性,值得推广。

1 课程设计题目:密码锁

利用单片机STC89C52设计一个密码锁,能够使用数码管显示器来显示密码输入的相关信息,通过10位数字按键(0~9)设置4位数字(0~9)密码,2位功能按键A(输入校验密码并验证密码)和B (设置新密码),利用继电器模拟电子门锁作出是否开门以及报警等反应。 具体设计内容:

上电时内定初始密码为“0000”,红色发光二极管点亮,绿色发光二极管熄灭,数码管显示器显示“初始状态”,“初始状态”由设计者自行设计,但不可省略。

功能按键A:实现设置新密码功能,存储新密码并显示,一旦设定新密码,则初始密码失效。

功能按键B:实现输入校验密码并验证密码功能,显示校验密码并进行密码比较。

? 密码输入正确则继电器启动,并使红色发光二极管熄灭,绿色发光二极管点亮,数码管显示器提示“密码正确”,“密码正确”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后继电器关闭,绿色发光二极管熄灭,红色发光二极管点亮;

? 密码输入错误则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码错误”,“密码错误”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后蜂鸣器停止报警;

? 校验密码连续输入错误3次,则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码连续错误3次”,“密码连续错误3次”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后

1

蜂鸣器停止报警,新密码失效,恢复初始密码使用。

2 设计内容说明:

设计必须实现“主要设计内容”的所有功能,但对于“具体设计内容”可做适当调整,密码输入错误3次环节可自行设计。

此外,为了加强密码锁的严密性,可采取下述方案对“设置新密码功能”环节进行加强,依据设计思路可作适当调整,此部分内容为附加内容。

功能按键A:实现输入校验密码并验证密码功能,显示校验密码并进行密码比较。

? 密码输入正确:

? 则继电器启动,并使红色发光二极管熄灭,绿色发光二极管点亮,数码管显示器提示“密码正确”,“密码正确”状态的显示内容由设计者自行设计,但不可省略,若不设置新密码,则持续5~8S后继电器关闭,绿色发光二极管熄灭,红色发光二极管点亮;

? 若功能按键B按下:实现设置新密码功能,存储新密码并显示,一旦设定新密码,则初始密码失效。但此功能必须以旧密码输入正确为前提。

? 密码输入错误:

? 校验密码连续输入错误小于3次,则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码错误”,“密码错误”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后蜂鸣器停止报警;

? 校验密码连续输入错误3次,则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码连续错误3次”,“密码连续错误3次”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后蜂鸣器停止报警,新密码失效,恢复初始密码使用。

3 系统方案设计及确定

3.1 系统方案的提出

本次课程设计的密码锁电路主要由四个模块组成:键盘输入模块、数据处理模块、显示控制模块,继电器驱动模块和蜂鸣器报警模块。

2

方案一:以单片机为电子密码锁系统核心,使用4*4矩阵键盘作为数据输入方式,驱动4位数码管显示器提示程序运行过程和开锁的步骤,利用继电器及蜂鸣器模拟电子门锁作出是否开门以及报警等反应。图1为单片机控制密码锁的系统原理框图。

图1 单片机控制密码锁的系统原理框图

输入按扭开5秒定时电输入锁存密码存储20秒定时声光指示开锁控制机械动作图2 数字逻辑控制方案电子密码锁

方案二:以74LS112双JK触发器构成的数字逻辑电路控制方案,如图2。 3.2 方案比较及确定

由于利用单片机灵活的编程设计和强大的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还可以增添掉电存储、声光提示等功能,故选用方案一。

CPU的选择

3

STC89C52系列单片机,高速、低功耗、新增在系统/在应用可编程(ISP,IAP)功能,使不具有E2PROM的单片机具有了E2PROM的功能,可以在线对现场历史数据的存储功能,适用于一些需经常改变数据的应用产品(如计费器、门禁系统等)及需远距离改变设备参数的产品(遥控设备等)。采用STC89C52单片机设计的电子密码锁,利用内部E2PROM资源,不需要外接程序存储器就能完成修改密码等多种功能,并且保密性高、成本低、简单易行,符合住宅、部门办公安全要求。

ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离,是一个强大易用的功能。具有双工UART串行通道。内部集成看门狗计时器,不再需要像AT89C51那样外接看门狗计时器单元电路

键盘电路采用矩阵式键盘,显示电路采用四位数码管动态显示方式,动态显示相对于静态显示有占用I/O口资源少的特点,恰好适合于本系统。方案中没有采用键盘、显示接口芯片8279实现键盘、显示接口。由于本次课程设计所使用的键盘数量、显示的方式及单片机的I/O口线使用情况等,采用前一种方式就足以能完成课程设计的要求,不必要多用一个芯片。根据本次课程设计的实际情况,兼顾经济性、使用性、简单易行、操作简单等多方面因素,本次课程设计采用方案一来完成。

4 系统硬件设计

本次课程设计的密码锁电路主要由四个模块组成:键盘输入模块、数据处理模块、显示控制模块,继电器驱动模块和蜂鸣器报警模块。通过单片机送给开锁执行机构,电路驱动继电器吸合,从而达到开锁的目的。如图3所示,为密码锁开锁电路原理图。

当用户输入的密码正确时,单片机便输出开门信号,送到继电器驱动电路,然后驱动继电器常开触点闭合,达到开门的目的。本次设计中,继电器选用固态继电器,信息通过数码管显示,并利用蜂鸣器和发光二极管声光指示。其中,绿发光二极管亮,表示开锁;否则,红发光二极管亮,表示密码输入错误并开启报警电路。

4

锁定 STC89C52 单片机 密码 正确 是 开锁驱动电路

图3 密码锁开锁电路原理图

4.1 STC89C52最小系统设计

单片机最小系统包括CPU、时钟电路和复位电路等三部分。下面则分别介绍这三部分的选取。 4.1.1时钟电路设计

时钟电路用于产生单片机工作时所必需的时钟控制信号,常用的时钟电路有内部时钟方式和外部时钟方式。内部时钟方式电路外接两个电容和一个晶振,根据振荡频率要求的不同选用不同阻值的电容和晶振。时钟电路中的晶振震荡频率范围通常是1.2MHz~12MHz,AT89S51常选择6MHz或12MHz的石英晶体,为消除误差,得到准确的波特率,本设计选择震荡频率为11.0592MHz的石英晶,时钟电

否 开锁 路如图4所示。

图4时钟电路 4.1.2复位电路设计

复位是单片机的初始化操作,只需在单片机的复位引脚加上大于2个机器周

5

期的高电平就可使单片机复位,当程序运行出错或操作进入死循环状态可通过复位重新启动程序。MCS-51的复位是由外部的复位电路来实现的,STC89C52也不例外,复位电路通常采用上电自动复位和按钮复位两种方式,为方便复位操作,本文采用按键电平复位,电路如图5所示。其中C取10uF,R2取10KΩ,复位电路如图5所示。

图5复位电路 4.2 键盘、显示电路硬件设计 4.2.1键盘电路硬件设计

键盘是系统中的手动控制部分,所以键盘的设计就显得尤为的重要。每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要M条行线和N条列线,即可组成具有M×N个按键的键盘。由于本设计中要求使用16个按键输入,为减少键盘与单片机接口时所占用的I/O线的数目,故使用矩阵键盘。本设计中,矩阵键盘列线和单片机P2.0-P2.3相连,行线与单片机P2.4-P2.7相连。

键盘扫描采用行扫描法,即依次置行线中的每一行为低电平,其余均为高电平,扫描列线电平状态,为低电平即表示该键按下。

键盘电路硬件连接图如图6所示。

6

图6 矩阵按键

4.2.2显示电路硬件设计

显示是系统的输出部分,用于观察当前的输入状态。显示电路采用三极管对位码进行驱动。LED数码管有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了 。

图7 共阳、共阴数码管

显示方式有静态显示和动态显示两种显示方式。静态显示时,数据是分开送到每一位LED上的;而动态显示则是数据是送到每一个LED上,再根据位选线来

7

确定是哪一位LED被显示。静态显示亮度很高,但口线占用较多;动态显示占用口线数目较少,适合用在显示位数较多的场合,但显示位数的增多,将占用大量的CPU时间。本次设计选用动态显示。

显示电路硬件连接图如图8、图9所示。

330

图8 数码管驱动电路

图9 四位数码管 4.3 继电器驱动电路及报警电路设计 4.3.1固态继电器简介

固态继电器(Solid State Relay,缩写SSR),是由微电子电路,分立电子器件,电力电子功率器件组成的无触点开关。用隔离器件实现了控制端与负载端的隔离。固态继电器的输入端用微小的控制信号,达到直接驱动大电流负载。

固态继电器有三部分组成:输入电路,隔离(耦合)和输出电路。按输入电压的不同类别,输入电路可分为直流输入电路,交流输入电路和交直流输入电路三

8

种。有些输入控制电路还具有与TTL/CMOS兼容,正负逻辑控制和反相等功能。固态继电器的输入与输出电路的隔离和耦合方式有光电耦合和变压器耦合两种。固态继电器的输出电路也可分为直流输出电路,交流输出电路和交直流输出电路等形式。交流输出时,通常使用两个可控硅或一个双向可控硅,直流输出时可使用双极性器件或功率场效应管。

1、固态继电器的优点

(1)高寿命,高可靠:固态继电器没有机械零部件,有固体器件完成触点功能,由于没有运动的零部件,因此能在高冲击,振动的环境下工作,由于组成固态继电器的元器件的固有特性,决定了固态继电器的寿命长,可靠性高。

(2)灵敏度高,控制功率小,电磁兼容性好:固态继电器的输入电压范围较宽,驱动功率低,可与大多数逻辑集成电路兼容不需加缓冲器或驱动器。

(3)快速转换:固态继电器因为采用固体器件,所以切换速度可从几毫秒至几微妙。

(4)电磁干扰小:固态继电器没有输入“线圈”,没有触点燃弧和回跳,因而减少了电磁干扰。大多数交流输出固态继电器是一个零电压开关,在零电压处导通,零电流处关断,减少了电流波形的突然中断,从而减少了开关瞬态效应。

2、固态继电器的缺点

(1)导通后的管压降大,可控硅或双相控硅的正向降压可达1~2V,大功率晶体管的饱和压降也在1~2V之间,一般功率场效应管的导通电阻也较机械触点的接触电阻大。

(2)半导体器件关断后仍可有数微安至数毫安的漏电流,因此不能实现理想的电隔离。

(3)由于管压降大,导通后的功耗和发热量也大,大功率固态继电器的体积远远大于同容量的电磁继电器,成本也较高。

(4) 电子元器件的温度特性和电子线路的抗干扰能力较差,耐辐射能力也较差,如不采取有效措施,则工作可靠性低。

(5)固态继电器对过载有较大的敏感性,必须用快速熔断器或RC阻尼电路对其进行过载保护。固态继电器的负载与环境温度明显有关,温度升高,负载能力将迅速下降。

(6)主要不足是存在通态压降(需相应散热措施),有断态漏电流,交直

9

图10 固态继电器驱动电路 图11 报警电路 不能通用,触点组数少,另外过电流、过电压及电压上升率、电流上升率等指标差。

4.3.2 固态继电器驱动电路设计

当用户输入的密码正确时,单片机便输出开门信号,送到继电器驱动电路,然后驱动继电器常开触点闭合,绿发光二极管亮,表示开锁;否则,红发光二极管亮,表示密码输入错误。

硬件电路如图10所示 4.3.3 报警提示电路

报警提示电路采用小蜂鸣器提示。蜂鸣器能够根据脉冲信号,以及信号率发出各种不同的声音,这样可以根据系统要求在密码出入正确和密码输入错误时发出不同的声音提示,已达到报警的要求。蜂鸣器电路,如图11所示。 5 系统软件设计

在系统设计中,除了硬件设计之外,软件设计也是很重要的,它是系统工作的指挥者,因此系统软件设计时要遵循结构合理、操作性能好、具有一定的保护措施、兼容性好的设计原则来开发设计。密码锁系统软件设计主要包括主程序模块、密码比较判断模块、键盘扫描模块、修改密码模块、数码管显示模块等及按键检测模块。

系统程序流程如图12所示。

10

开始 系统初始化 显示主界面 否 按键检测 是 读入键值 否 A键是否按下 是 否 判断密码对否 是 开锁,绿灯亮 否 B键是否按下 是 设置新密码 否 A键是否按下 是 新密码设置完成 11

报警,红灯亮

图12 系统程序流程图

5.1 主程序模块

主程序主要用于定义全局变量,给全局变量赋初值,启动定时器,为整个程序提供数据;检测按键;调用显示等功能。 5.2 密码比较判断模块

该模块的功能是将键盘输入的密码利用if语句与设定的密码进行逐个比较,若密码完全正确则开锁;若不正确,则开启报警电路,可重新输入密码。其密码输入和比较判决流程图如图13所示。

输入密码 核对 N键盘锁定,开启报警Y开锁灯亮,可密码修改 复位

图13 密码输入和比较判决流程图

5.3 键盘扫描模块

键盘使用矩阵式键盘,由行和列组成,CPU对所有键盘进行监视,从而实现逐列扫描键盘确定被按键的具体位置、判断键盘上有无键按下、消除去抖动、判断闭合的键是否释放等功能。如图14所示,为键盘扫描流程图。 5.4 修改密码模块

在密码输入正确情况下,可以按下“重置密码”对密码进行重新设置,每设定一位就将密码存储起来,当设置4位密码完毕后,系统将自动跳到程序开始,调用新设置的密码。图15为修改密码流程图。

12

图15 修改密码流程图

5.5 数码管液晶显示模块

此模块包括数码管初始化、动态扫描等。

在显示之前,我们编好了段选表0—9,通过查表来显示,由于本次设计采用动态显示,所以先送段选给每一位,然后给相应的数码管送位选,延时1MS,再给下一位送段选,送位选,延时1MS,以此类推,让4位数码管显示不同的数字,利用人的视觉暂留,使我们看到4位数码管的动态显示效果。显示子程序流程图如图16所示。

13

图16 显示子程序流程图

参考文献

1、张志良.单片机学习指导及习题解答. 机械工业出版社,2008. 2、张伟.单片机原理及应用. 机械工业出版社,2009.

3、孙俊逸 盛秋林. 张铮编著.单片机原理及应用.清华大学出版社. 4、张毅刚主编. 单片机原理及应用. 北京: 高等教育出版社,2010.5. 5、黄仁欣.单片机原理及应用技术. 北京: 清华大学出版社, 2005.

14

本文来源:https://www.bwwdw.com/article/os7g.html

Top