电子密码锁的设计与实现.docx

  • 格式:docx
  • 大小:137.36 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子 密码锁的设计与实现

2.了解按键消抖的方 法。

、实验内容与要求

1 •基本要求

当三次密码输入不正确时,系统应 锁定键盘 10s 。

2 •提高要求

将用户分为管理者和 使用者,管理者拥有超级密码,可以修改 其他人的密码。使 用者不能修改密码。

三、实验报告要求

1. 设计目的和内容 2•总体设计

3 •硬件设计:原理图

接线图)及简要说明

四、总体设计

:从键盘输入一组密码, CPU 把该密码和设置密码比较 ,对则将 锁打开(不同锁的控

制方式不一样,比如加电控制电磁铁抽回 ,从而打开 ),错则要求重新 输入,并记录错误次 数,如果三次错误,则被强制锁定并报警 ,除非超级密码或者其他的 手段打开,比如延时 一段时间。

初步设计思路如下:

1.输入密码用矩形键 盘,包括数字键和功能键,功能键包括退 格键和确认键。

2. LED 数码管显示输入密码,但是只是输出

显示符号 8 。采用动态 扫描输出。

、实验目的

1.进一步掌握键盘扫

描和 LED 显示的程序设计。

4 •软件设计框图及程 序清单

5 •设计结果和体会(

包括遇到的问题及解决的方法)

3.综合运用微机原理

的软硬件知识。

1) 具有密码输入功能, 密码最多为6位; 2) 设置退格键,以便删 除输入错误的密码;

3) 在输入的密码时数码 管上只显示 8,并根据输入位数依 次横移; 4) 设置确认键,当确认 键按下后,判断输入密码是否正确;

5) 当输入密码正确时,

点亮发光二极管;当输入密码不正确时, 发光二极管不亮并

且蜂鸣器报警,重新 输入, 电子密码锁的原理是

3.用发光二极管模拟锁的情况,锁关时发光二极管灭,打开时发光二极管亮。

4 .输入密码错误时报警,3次输入错误时键盘锁定IOs ,键盘无法接收数据。

软件的设计主要包括矩形键盘键值的读取、LED 动态扫描输出程序、密码判断程序和报警程序。

五、硬件设计

根据设计思路,硬件电路可通过实验平台上的一些功能模块电路组成,由于实验平台上的各个功能模块已经设计好,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。完整系统的硬件连接如图1 所示。硬件电路由LED 数码管显示模块、按键模块、发光二极管电路和蜂鸣器模块组成。

各个模块的详细说明:

1 . LED 数码管模块

实验平台上提供一组六个LED数码管。插孔CS1用于数码管段选的输出选通,插孔

CS2用于数码管位选信号的输出选通。本设计用6个数码管来动态显示时分秒,动态显示

的定时时间由8253定时/计数器来实现。8253主要是实现每位显示时间Ims,由8253的计数器0来实现。ClkO 接实验平台分频电路输出Q6, f = 46875hz° GATEO接8255的PAO ,

由8255的PA0输出来控制计数器的起停。OUT0接8259的IRQ2 ,定时完成请求中断,进

入中断服务程序。软件在中断服务程序中LED 数码管显示。

PC BUS

路 图

1

系统硬件电路图

2. 按键模块

按键模块包括有数字 键和功能键。数字键包括

0 - 9键,用于密码的输入。功能键有退 格键和确认键。具体 的功能定义如下表。键盘电路和 8255的连接见图2所示。具体的功能

定义如下表。

按键 键名 功能说明

8255 PBO

PB1 PC

地址CS1

译码CS2

电路CS3

CS4

数码管显示模块

IRQ2

8259

发光二极管 键盘电路

OUTo

Q6

PA0

蜂鸣器 8253 GATEO

CIkO

3. 报警模块和发光二极管模块

报警模块由蜂鸣器驱动电路和8255组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作

时约需要IOOmA驱动电流。蜂鸣器电路如图4所示。当8255的PBo 口输出为高电平时,蜂鸣器产生蜂鸣音,8255输出为低电平时,蜂鸣器不发声。

发光二极管也是用8255输出来驱动亮灭。

图3蜂鸣器电路

六、软件设计

1.软件设计思路

电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,锁定键盘10s。

程序将分为主程序和中断服务子程序。主程序负责键盘键值读取,密码判断和开锁或

报警处理。中断服务子程序主要是负责LED数码管显示。

根据程序功能,程序主要分为以下几部分:

a) 键盘键值读取程序

键盘键值读取程序包括键盘扫描、消除抖动、键译码等内容。按键的识别主要有两种方法:行反转法和行扫描法。因为键盘为机械开关,容易引入抖动。为了消除抖动干扰,在程序中要加入消除抖动的部分。

b) LED 数码显示程序

LED 数码显示器是一种应用很普遍的显示器。程序主要负责把要显示的数字或字母对应的显示码送到相应的LED 显示管。有多位需要同时显示时,可以采用动态刷新的方法,就可以得到稳定的输出。在程序中用8253来定时Ims,定时时间到时请求中断服务,进入中断服务程序输出1 位显示数据。循环显示6 个数码管,可以实现稳定的数字显示。中断服务程序只负责数据的输出显示,主程序根据所处的状态修正显示数据。

c) 密码判断程序

密码判断程序放在主程序中,有按键时读取,当确定键按下时作出判断。在程序中设置6 字节的空间存放设定的密码和6 字节存放键盘输入的数据。根据读取的键盘数据和预先设定的密码逐位比较就可以判断输入密码的正确性。

d) 开锁和报警程序

通过8255 相应位的输出数据然后延时一段时间就可以控制发光二极管的亮灭和蜂鸣器的鸣叫。

2.程序流程图

1) 主程序流程图见图4 所示。