毕业设计(论文)基于单片机的安全护卫双重保护密码锁设计

上传人:仙*** 文档编号:28187021 上传时间:2021-08-23 格式:DOC 页数:46 大小:838.01KB
收藏 版权申诉 举报 下载
毕业设计(论文)基于单片机的安全护卫双重保护密码锁设计_第1页
第1页 / 共46页
毕业设计(论文)基于单片机的安全护卫双重保护密码锁设计_第2页
第2页 / 共46页
毕业设计(论文)基于单片机的安全护卫双重保护密码锁设计_第3页
第3页 / 共46页
资源描述:

《毕业设计(论文)基于单片机的安全护卫双重保护密码锁设计》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的安全护卫双重保护密码锁设计(46页珍藏版)》请在装配图网上搜索。

1、 安全护卫双重保护密码锁 摘要:双重保护密码锁即有钥匙和密码的电子锁。现代生活中,安全防范越来越 被人们所重视,拥有钥匙与密码双重护卫的密码锁不仅能锁住贵重的财物,也能 给人的心理上了把放心锁。本系统是由单片机系统、矩阵键盘、LED显示和报警 系统等功能,可以广泛用于门锁、保险箱等存有安全隐患的场所。主要通过输入 密码并转动钥匙控制开锁。本系统成本低廉,功能实用。 关键词:单片机 LED 电子密码锁 矩阵键盘 报警 Safe Guard Dual Protection Code Lock Abstract: Dual Protection Code Lock(a kind of electro

2、nic lock with key and password). Security problem are more and more thinked highly of by people in modern life. DPCL(Dual Protection Code Lock), with double protective measure, keys and password, can not only protection the properties, but also set peoples mind at rest. The DPCL system is organised

3、by singlechip system, matrix keyboard, LED displayer and audio alarm system. It can be used as gate locks, strong box locks and so on places where security protections needed. To control the DPCL system,generally,by input a password and turn the key on at the same time. The DPCL is cheap in price an

4、d practical. Key word: singlechip LED electronic code lock matrix keyboard alarm system 目录 1 绪论 .1 2 系统总设计 .2 2.1 保护锁设计分析 .2 2.2 双重保护密码锁设计概述 .2 3 硬件电路设计 .3 3.1 单片机 AT89S51 相关概述 .3 3.2 显示模块 .9 3.3 键盘模块 .13 3.4 音频模块 .14 3.5 电子锁控制开锁模块 .15 3.6 整体电路 .18 4 软件程序设计 .19 4.1 主程序 .19 4.2 键盘扫描子程序 .20 4.3 警示及音频程

5、序 .22 4.4 电子锁控制程序 .26 结束语 .26 致 谢 .27 参考文献 .28 附录 .29 安全护卫双重保护密码锁 1 1 绪论 随着人们防患意识的增强,结合高科技的不断翻新与发展,具有防盗报警功 能的电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全 性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步,而结合于 传统锁的电子密码锁却是使安全性加倍的电子密码锁。仅从电子密码锁的角度, 从目前的技术水平和市场认可程度看,国内外使用最为广泛的是键盘式电子密码 锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞 车。当然现在也逐渐应用到家

6、用式门锁柜锁等等。 键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优 点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除 了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太简单了就容易 被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然, 密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低, 造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展 中,如“任意设定密码 ”技术使得被授权人可以根据自己的需要或喜好设定密码, 常用常新;而“ 更改密码”技术使得本次输入的密码将自动更改成下次应输入的

7、密 码,更改的规律不为他人所知,因而不怕旁观者窥测,显示的窄小角度只能由操 作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码,也有为了应 和用户不变原则固定密码的电子密码锁,更新需通知厂家刷机,虽麻烦却体现了 稳固不变的原则。 总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁仍然“老树发 新芽”,不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的 辅助输入手段。 安全护卫双重保护密码锁 2 2 系统总设计 2.1保护锁设计分析 科技高速发展的今天,对于住宅、财产、车辆等等日常相伴我们生活的物件, 安全防范设施更显得尤为重要,于是有安全性高、功耗低、易操作等优点的电

8、子 密码锁应运而生。考虑到与我们生活最贴近的产品性能,电子密码锁该是成为价 格低廉,简单实用的日常工具之一。 对于设计,首先与输入密码相对应的该有足够多的按键,密码数字输入,功 能按键等等,用 4X4 矩阵键盘完全可以满足需求。在输入密码时难免有输错的时 候,拥有可删除的按键是完全有必要的。而在显示方面,主流产品有数码管显示 和 LCD 液晶屏显示,前者具有价格低廉,显示亮,寿命长等优点,除却显示多样 性能不如 LCD 液晶屏,在这里弃价格昂贵的液晶屏而选用数码管好处多于劣处, 故综合上述,本设计选用数码管显示系统。另外,增强型电子密码锁在警示音方 面该有些许突破,提高电子防盗锁之防护能力的必

9、然途径是报警,在许多场所有 人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用。 报警的前提是具备探测功能,根据电子防盗锁的使用场所和防护要求,可选择多 种多样的探测手段。在中国的城市金融业中,实现联网报警已经成为对各金融网 点的基本要求。本设计选用喇叭扬声系统,不仅使报警花样化,更可以丰富功能 不同提示音,还可以根据用户爱好选用音乐作为提示音,生活更加情趣化。 2.2双重保护密码锁设计概述 本设计遵循市场主流密码锁设计,采用单片机控制系统、4X4 矩阵键盘模块、 8 位八段数码管显示模块、提示音音频放大模块、电子锁模拟控制、指示灯模拟 开锁功能。总设计框图如图所示。 安全护

10、卫双重保护密码锁 3 图 2.1 总体设计框图 本设计实现功能: 8位数码显示,初始化时,显示“P ”。 用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”。 键盘数字个代表数字09,输完一组数字按确认键。 当数字输入超过6个时,给出报警信息 在密码输入过程中,若输入错误,可以利用“DEL” 键删除刚才输入的错误的数字 输入完密码,打开电子锁,若密码正确,则指示灯亮一秒钟,并且喇叭同时发 出“叮咚”声。 输入完密码,打开电子锁,若密码错误,则指示灯一闪一闪3秒钟,并且喇叭 同时发出“滴滴 ”报警声。 若密码输入错误,3秒钟内仍有密码输入错误,则指示灯闪烁与报警声顺延3秒 钟。 3

11、硬件电路设计 3.1单片机 AT89S51相关概述 3.1.1 特性简述 安全护卫双重保护密码锁 4 微型计算机具有体积小,功耗 低重量轻,价格低,可靠性高,开 发使用简便等一系列优点,自问世 以来得到了非常广泛的应用。作为 微型计算机发展的其中一大支,单 片机系统全力满足测控对象的测控 功能,兼顾数据处理能力。 单片机本身有着优异的特色, 它性能价格比好,集成度高,体积 小,可靠性好控制能力强,且低功 耗,低电压,便于生产便携式产品,还易扩展。 图 3.1 单片机管脚 目前,应用广泛的主流机型是 80C51 系列 8 位单片机。 其优点不容知否, 它的性能价格比很高而且开发装置多,被国内技术

12、人员熟悉广泛熟悉,芯片功能 也够用适用,还有众多芯片制造厂商加盟,可选择空间大。而单片机本身又有着 优异的特色,它性能价格比好, 集成度高,体积小,可靠性好控制能力强,且低功耗,低电压,便于生产便携式产 品,还易扩展。 单片机的应用相当广泛,无论是在智能化家用电器,办公自动化设备商业营 销设备,工业自动化控制,智能化仪表还是智能化通信产品,汽车电子产品,航 空航天系统和国防军事、尖端武器等等都有着不可小觑的地位。 单片机引脚图如 3.1 所示。 单片机系统分为两大部分,一为硬件部分,即组成单片机系统的物理实体。 二为软件部分,即对硬件使用和管理的程序。图 3.2 为单片机系统硬件结构框图。 安

13、全护卫双重保护密码锁 5 图 3.2 单片机系统硬件结构框图 单片机程序设计软件语言可分为机器语言,汇编语言,高级语言,本设计使 用的是 AT89S51,汇编语言。 AT89S51 单片机是 ATMEL 公司生产的高性能 8 位单片机,主要功能特性如下: 兼容 MCS-51 指令系统; 32 个双向 I/O 口,两个 16 位可编程定时/计数器; 1 个串行中断,两个外部中断源; 可直接驱动 LED; 低功耗空闲和掉电模式; 4 kB 可反复擦写(1 000 次)FLASI ROM; 全静态操作 O24 MHz; 1288 b 内部 RAM。 该款芯片的超低功耗和良好的性能价格比使其非常适合嵌

14、入式产品应用 3.1.2 引脚说明 AT89S51 总共 40 个引脚,以下分别作说明。 Vcc:电源电压 GND:地 安全护卫双重保护密码锁 6 P0口:P0口是一组8位漏极开路型双向I0口,也即地址数据总线复用口。作 为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l” 可作为高阻抗输入端 用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位) 和数据总线复用,在访问期间激活内部上拉电阻。在F1ash编程时,P0口接收指 令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1口:Pl 是一个带内部上拉电阻的8位双向IO口,Pl的输出缓冲级可驱动(吸

15、收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉 到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引 脚被外部信号拉低时会输出一个电流(IIL),Flash编程和程序校验期间,Pl接 收低8位地址。 P2 口:P2 是一个带有内部上拉电阻的8 位双向IO 口,P2 的输出缓冲级可驱 动(吸收或输出电流)4 个TTL逻辑门电路。对端口写“1” ,通过内部的上拉电阻 把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻, 某个引脚被外部信号拉低时会输出一个电流(IIL),在访问外部程序存储器或 16位地址的外部数据存储器(例如执行

16、MOVXDPTR指令)时,P2口送出高8位地址 数据。在访问8 位地址的外部数据存储器(如执行MOVXRi 指令)时,P2 口线 上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期 间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。 P3 口:P3 口是一组带有内部上拉电阻的8 位双向I0 口。P3 口输出缓冲级可 驱动(吸收或输出电流)4 个TTL逻辑门电路。对P3口写入“l” 时,它们被内部上 拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输 出电流(IIL)。P3口除了作为一般的I0口线外,更重要的用途是它的第二功 能,如

17、下表所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制 安全护卫双重保护密码锁 7 信号 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单 片机复位。WDT 溢出将使该引脚输出高电平,设置SFR AUXR的DISRT0 位(地址 8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。 ALEPROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出 脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE 仍以时钟振荡频 率的16 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要 注意的是:每当访问

18、外部数据存储器时将跳过一个ALE脉冲。对F1ash存储器编程 期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存 器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一 条M0VX和M0VC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外 部程序时,应设置ALE无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两 个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。 EAVPP:外部访问允许。欲使CPU仅访问

19、外部程序存储器(地址为 0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行 内部程序存储器中的指令。F1ash存储器编程时,该引脚加上+12V的编程电压 Vpp。 XTALl:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。 3.1.3 震荡电路 安全护卫双重保护密码锁 8 如图 3.3 所接电路,单片机 X1 和 X2 两端分别接 12MHz 晶振两端,并分别接 30P 电容的一端,两个电容的另外一端都接地。以此构成本课程设计的时钟电路。 晶振的

20、大小决定了机器周期的大小。时钟周 期是 89S51 振荡器产生的时钟脉冲频率的倒数, 是最基本最小的定时信号。89S51 单片机工作的 基本定时单位,简称机周。机器周期是时钟周期 的 12 倍。 当时钟频率为 12MHz 时,机器周期为 1S; 当时钟频率为 6MHz 时,机器周期为 2S。 3.1.4 复位系统 图 3.3 震荡电路 如图 3.4 所示,为接到单片机上按键复位电路,10 微法的电容负极连 RST 引 脚,正极连 5V 电源,10K 电阻两端分别连 RST 和 5V 和地,开关接在电容两端。系统复 位条件为单片机 RST 引脚保持 2 个机器周期 以上的高电平。 复位后 CPU

21、 状态为: PC: 0000H TMOD: 00H Acc: 00H TCON: 00H 图 3.4 复位电路 B:00H TH0: 00H PSW: 00H TL0: 00H SP: 07H TH1: 00H DPTR:0000H TL1: 00H 安全护卫双重保护密码锁 9 P0P3:FFH SCON: 00H IP:00000B SBUF: 不定 IE:000000B PCON: 00000B 3.1.5 EA/Vpp 连接 此引脚即内外 ROM 选择/片内 EPROM 编程电源 EA 功能:内外 ROM 选择端。接高电平则从片内 ROM 读起,接低电平则从片外 ROM 读起 Vpp 功

22、能:片内有 EPROM 的芯片,在 EPROM 编程期间,施加编程电源 Vpp。 本设计 EA/Vpp 引脚连接在 5V 电源上即高电平。从片内 ROM 读取程序。 3.2显示模块 3.2.1 LED 数码管简介 数码管是一种半导体发光器件,其基本单元是发光二极管。防 水 , 防 尘 , 防 紫 外 线 , 耐 压 , 耐 破 裂 , 耐 高 低 温 , 耐 燃 , 超 强 抗 冲 击 老 化 数 码 管 按 段 数 分 为 七 段 数 码 管 和 八 段 数 码 管 , 八 段 数 码 管 比 七 段 数 码 管 多 一 个 发 光 二 极 管 单 元 ( 多 一 个 小 数 点 显 示 )

23、 ; 按 能 显 示 多 少 个 “8”可 分 为 1 位 、 2 位 、 4 位 等 等 数 码 管 ; 按 发 光 二 极 管 单 元 连 接 方 式 分 为 共 阳 极 数 码 管 和 共 阴 极 数 码 管 。 共 阳 数 码 管 是 指 将 所 有 发 光 二 极 管 的 阳 极 接 到 一 起 形 成 公 共 阳 极 (COM)的 数 码 管 。 共 阳 数 码 管 在 应 用 时 应 将 公 共 极 COM 接 到 +5V, 当 某 一 字 段 发 光 二 极 管 的 阴 极 为 低 电 平 时 , 相 应 字 段 就 点 亮 。 当 某 一 字 段 的 阴 极 为 高 电 平

24、时 , 相 应 字 段 就 不 亮 。 。 共 阴 数 码 管 是 指 将 所 有 发 光 二 极 管 的 阴 极 接 到 一 起 形 成 公 共 阴 极 (COM) 的 数 码 管 。 共 阴 数 码 管 在 应 用 时 应 将 公 共 极 COM 接 到 地 线 GND 上 , 当 某 一 字 段 发 光 二 极 管 的 阳 极 为 高 电 平 时 , 相 应 字 段 就 点 亮 。 当 某 一 字 段 的 阳 极 为 低 电 平 时 , 相 应 字 段 就 不 亮 。 数 码 管 是 一 类 显 示 屏 , 通 过 对 其 不 同 的 管 脚 输 入 相 安全护卫双重保护密码锁 10 对

25、 的 电 流 , 会 使 其 发 亮 , 从 而 显 示 出 数 字 。 数 码 管 能 够 显 示 时 间 、 日 期 、 温 度 等 所 有 可 用 数 字 表 示 的 参 数 。 由 于 它 的 价 格 便 宜 , 使 用 简 单 , 在 电 器 , 特 别 是 家 电 领 域 应 用 极 为 广 泛 : 空 调 、 热 水 器 、 冰 箱 等 等 。 数 码 管 使 用 的 电 流 与 电 压 : 电 流 : 静 态 时 , 推 荐 使 用 10-15mA; 动 态 时 , 16/1 动 态 扫 描 时 , 平 均 电 流 为 4-5mA, 峰 值 电 流 50-60mA。 电 压 :

26、 查 引 脚 排 布 图 , 看 一 下 每 段 的 芯 片 数 量 是 多 少 ? 当 红 色 时 , 使 用 1.9V 乘 以 每 段 的 芯 片 串 联 的 个 数 ; 当 绿 色 时 , 使 用 2.1V 乘 以 每 段 的 芯 片 串 联 的 个 数 。 图 3.5 数码管引脚图 测 量 数 码 管 引 脚 , 区 分 共 阴 和 共 阳 : 找 公 共 共 阴 和 公 共 共 阳 : 首 先 , 我 们 找 个 电 源 ( 3 到 5 伏 ) 和 1 个 1K( 几 百 欧 的 也 行 ) 的 电 阻 , VCC 串 接 个 电 阻 后 和 GND 接 在 任 意 2 个 脚 上

27、, 组 合 有 很 多 , 但 总 有 一 个 LED 会 发 光 的 , 找 到 一 个 就 够 了 , 然 后 GND 不 动 , VCC( 串 电 阻 ) 逐 个 碰 剩 下 的 脚 , 如 果 有 多 个 LED( 一 般 是 8 个 ) , 那 它 就 是 安全护卫双重保护密码锁 11 共 阴 的 了 。 相 反 用 VCC 不 动 , GND 逐 个 碰 剩 下 的 脚 , 如 果 有 多 个 LED( 一 般 是 8 个 ) , 那 它 就 是 共 阳 的 。 也 可 以 直 接 用 数 字 万 用 表 , 红 表 笔 是 电 源 的 正 极 , 黑 表 笔 是 电 源 的 负

28、极 。 3.2.2 74LS245 简介 74LS245 是 我 们 常 用 的 芯 片 , 它 的 管 脚 图 如 图 3.6 所 示 , 它 用 来 驱 动 le d 或 者 其 他 的 设 备 , 它 是 8 路 同 相 三 态 双 向 总 线 收 发 器 , 可 双 向 传 输 数 据 。 74LS245 还 具 有 双 向 三 态 功 能 , 既 可 以 输 出 , 也 可 以 输 入 数 据 。 当 8051 单 片 机 的 P0 口 总 线 负 载 达 到 或 超 过 P0 最 大 负 载 能 力 时 , 必 须 接 入 74LS245 等 总 线 驱 动 器 。 74LS245

29、 真 值 表 如 图 3.6 所 示 。 当 片 选 端 /CE 低 电 平 有 效 时 , DIR=“0” , 信 号 由 B 向 A 传 输 ; ( 接 收 ) DIR=“1”, 信 号 由 A 向 B 传 输 ; ( 发 送 ) 当 /CE 为 高 电 平 时 , A、 B 均 为 高 阻 态 。 另 外 由 于 P2 口 始 终 输 出 地 址 的 高 8 位 , 接 口 时 74LS245 的 三 态 控 制 端 / 1G 和 /2G 接 地 , P2 口 与 驱 动 器 输 入 线 对 应 相 连 。 P0 口 与 74LS245 输 入 端 相 连 ,/E 端 接 地 , 保 证

30、 数 据 现 畅 通 。 8051 的 /RD 和 /PSEN 相 与 后 接 DIR, 使 得 / RD 或 /PSEN 有 效 时 , 74LS245 输 入 ( P0.i Di) , 其 它 时 间 处 于 输 出 ( P0.i Di) 。 图 3.6 真值表 图 3.7 管脚图 安全护卫双重保护密码锁 12 3.2.3 驱动电路及与单片机的连接 数 码 管 要 正 常 显 示 , 就 要 用 驱 动 电 路 来 驱 动 数 码 管 的 各 个 段 码 , 从 而 显 示 出 我 们 要 的 数 字 , 因 此 根 据 数 码 管 的 驱 动 方 式 的 不 同 , 可 以 分 为 静

31、态 式 和 动 态 式 两 类 。 静 态 显 示 驱 动 : 静 态 驱 动 也 称 直 流 驱 动 。 静 态 驱 动 是 指 每 个 数 码 管 的 每 一 个 段 码 都 由 一 个 单 片 机 的 I/O 端 口 进 行 驱 动 , 或 者 使 用 如 BCD 码 二 -十 进 制 译 码 器 译 码 进 行 驱 动 。 静 态 驱 动 的 优 点 是 编 程 简 单 , 显 示 亮 度 高 , 缺 点 是 占 用 I/O 端 口 多 , 如 驱 动 5 个 数 码 管 静 态 显 示 则 需 要 58 40 根 I/O 端 口 来 驱 动 , 要 知 道 一 个 89S51 单 片

32、 机 可 用 的 I/O 端 口 才 32 个 呢 : ) , 实 际 应 用 时 必 须 增 加 译 码 驱 动 器 进 行 驱 动 , 增 加 了 硬 件 电 路 的 复 杂 性 。 动 态 显 示 驱 动 : 数 码 管 动 态 显 示 接 口 是 单 片 机 中 应 用 最 为 广 泛 的 一 种 显 示 方 式 之 一 , 动 态 驱 动 是 将 所 有 数 码 管 的 8 个 显 示 笔 a,b,c,d,e,f,g,dp 的 同 名 端 连 在 一 起 , 另 外 为 每 个 数 码 管 的 公 共 极 COM 增 加 位 选 通 控 制 电 路 , 位 选 通 由 各 自 独 立

33、 的 I/O 线 控 制 , 当 单 片 机 输 出 字 形 码 时 , 所 有 数 码 管 都 接 收 到 相 同 的 字 形 码 , 但 究 竟 是 那 个 数 码 管 会 显 示 出 字 形 , 取 决 于 单 片 机 对 位 选 通 COM 端 电 路 的 控 制 , 所 以 我 们 只 要 将 需 要 显 示 的 数 码 管 的 选 通 控 制 打 开 , 该 位 就 显 示 出 字 形 , 没 有 选 通 的 数 码 管 就 不 会 亮 。 通 过 分 时 轮 流 控 制 各 个 数 码 管 的 的 COM 端 , 就 使 各 个 数 码 管 轮 流 受 控 显 示 , 这 就 是

34、 动 态 驱 动 。 在 轮 流 显 示 过 程 中 , 每 位 数 码 管 的 点 亮 时 间 为 1 2ms, 由 于 人 的 视 觉 暂 留 现 象 及 发 光 二 极 管 的 余 辉 效 应 , 尽 管 实 际 上 各 位 数 码 管 并 非 同 时 点 亮 , 但 只 要 扫 描 的 速 度 足 够 快 , 给 人 的 印 象 就 是 一 组 稳 定 的 显 示 数 据 , 不 会 有 闪 烁 感 , 动 态 显 示 的 效 果 和 静 态 显 示 是 一 样 的 , 能 够 节 省 大 量 的 I/O 端 口 , 而 且 功 耗 更 低 。 安全护卫双重保护密码锁 13 本 设 计

35、 所 使 用 的 是 动 态 数 码 管 显 示 , 其 驱 动 电 路 和 单 片 机 的 连 接 电 路 图 如 图 3.8 所 示 : 图3.8 数码管驱动电路 将把“单片机系统 ”区域中的 P0.0P0.7用8芯排线连接到“动态数码显示” 区域 中的ABCDEF端子上。把 “单片机系统“区域中的P2.0 P2.7 用8芯排线连接到“ 动态 数码显示”区域中的 S1S2S3S4S5S6S7S8端子上。 3.3 键盘模块 为了轻松实现密码输入与功能键,本系统使用了4X4矩阵键盘16个按键,不 仅拥有数字09,还有确认及删除按键,另外还空置5个按键以便今后的系统功能 扩展。 4X矩阵键盘原理

36、: 每个按键有它的行值和列值 ,行值和列值的组合就是识别这个按键的编码。 矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成 数字量“0”和“1”,开关的一端(列线)通过电阻接V CC,而接地是通过程序输 出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键 按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中, 安全护卫双重保护密码锁 14 一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描 值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。 键盘电路及与单片机系统的连接如图3.9所示: 图 3.9

37、 矩阵键盘 把“单片机系统”区域中的P3.0P3.7用8芯排线连接到“44行列式键盘” 区域中的R1R2R3R4C1C2C3C4端子上。 3.4 音频模块 3.4.1 LM386 简述 LM386 是美国国家半导体公司生产的音频 功率放大器,管脚图如图 3.10 所示,它主要应 用于低电压消费类产品。为使外围元件最少, 电压增益内置为 20。但在 1 脚和 8 脚之间增加 一只外接电阻和电容,便可将电压增益调为任 意值,直至 200。输入端以地位参考,同时输出端 图 3.10 管脚图 安全护卫双重保护密码锁 15 被自动偏置到电源电压的一半,在 6V 电源电压下,它的静态功耗仅为 24mW,使

38、 得 LM386 特别适用于电池供电的场合。 LM386 的封装形式有塑封 8 引线双列 直插式和贴片式。 特性: 静态功耗低,约为 4mA,可用于电池供电。 工作电压范围宽,4-12V or 5-18V。 外围元件少。 电压增益可调,20-200。 低失真度 3.4.2 音频放大电路 该音频放大模块采用LM386芯片作为音频的功率放大,音频信号由“SPK IN” 端口输入,信号的输出由“SPK OUT”端口输出,只要在“SPK OUT”接一个喇叭即 可,具体电路图及与单片机连接如图所示: 图3.11 音频放大电路 将“单片机系统 ”区域中的 P1.7用导线连接到“ 音频放大模块 ”区域中的S

39、PK IN 端子上。另外 “ 音频放大模块 ”区域中的SPK OUT接到喇叭上 3.5电子锁控制开锁模块 3.5.1 开锁机构 安全护卫双重保护密码锁 16 电磁锁开锁具体流程图如图 3.12 所示: 图3.12 电磁锁开锁流程图 当用户输入的密码正确并且是在按下确定键的话,单片机便输出开门信号, 送到开锁驱动电路,然后驱动电磁锁,达到开门的目的 电路驱动和开锁两级组成。由D5、R1、T10组成驱动电路,其中T10可以选择 普通的小功率三极管如9014、9018都可以满足要求。D5作为开锁的提示;由 D6、C24、T11组成。其中D6、C24是为了消除电磁锁可能产生的反向高电压以及 可能产生的

40、电磁干扰。T11可选用中功率的三极管如8050,电磁锁的选用要视情 况而定,但是吸合力要足够且由一定的余量。 具体电路图如图3.13所示: 安全护卫双重保护密码锁 17 图 3.13 在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光 管亮一秒钟,表示开锁;一闪一闪 3 秒钟,表示没有开锁。 3.5.1 电子锁控制开锁机构 此电子锁系通电手动开锁控制,一端接于单 片机 P1.2 口,一端接于地。当密码输入正确, 用钥匙拧动电子锁,代表电磁锁的指示灯持续亮 1 秒钟,喇叭发出悦耳的“叮咚”声,若密码输 入错误,指示灯连续闪烁 3 秒钟,喇叭发出“滴 滴”的报警声。 图 3.14

41、电子锁电路 安全护卫双重保护密码锁 18 3.6 整体电路 图 3.15 整体电路图 安全护卫双重保护密码锁 19 4 软件程序设计 4.1主程序 主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示 等等。主程序的流程图如图 4.1 所示: 图 4.1 主流程图 部分主程序: void main(void) 安全护卫双重保护密码锁 20 unsigned char i,j; TMOD=0 x01; TH0=(65536-500)/256; TL0=(65536-500)%256; TR0=1; ET0=1; EA=1; 4.2 键盘扫描子程序 44 行列式键盘的按键功能分布图如

42、图 4.2 所示: 键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环 主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。流如图 4.3 所示: 图 4.2 44 行列式键盘的按键功能分布图 安全护卫双重保护密码锁 21 图 4.3 流程图 部分代码如下: uchar get_key() uchar row_code; uchar col_code; P1=0 xf0; if(P1!=0 xf0) 安全护卫双重保护密码锁 22 delayms(10); if(P1!=0 xf0) row_code=0 xfe; while(row_code!=0 x7f) P1=

43、row_code; if(P1!=row_code) col_code=(P1 return( (col_code)|(row_code); row_code=(row_code1)|0 x01); Return(0X00) ; 4.3 警示及音频程序 当数字输入超过 6 个时,给出报警信息;打开电子锁,若密码正确,则指示 灯亮一秒钟,并且喇叭同时发出“叮咚”声;若密码错误,则指示灯一闪一闪 3 安全护卫双重保护密码锁 23 秒钟,并且喇叭同时发出“滴滴”报警声。 部分代码如下: judge: if(errorflag=1) if(bb=800) bb=0; alarmflag=alarmfl

44、ag; if(alarmflag=1) /sound alarm signal P1_7=P1_7; aa+; if(aa=800) /light alarm signal aa=0; P1_0=P1_0; /LED 发光二极管闪 second3+; if(second3=6400) /闪 4 次后(8 次变换) ,自动复位到按 ENTER 前的状态 安全护卫双重保护密码锁 24 second3=0; errorflag=0; rightflag=0; alarmflag=0; bb=0; aa=0; else if(errorflag=0) /LED 发光二极管亮 cc+; if(cc100

45、0) okflag=1; else if(cc2000) okflag=0; else /自动复位到按 ENTER 前的状态 安全护卫双重保护密码锁 25 errorflag=0; rightflag=0; P1_7=1; cc=0; oka=0; okb=0; okflag=0; P1_0=1; /LED 发光二极管灭 if(okflag=1) oka+; if(oka=2) oka=0; P1_7=P1_7; else okb+; if(okb=3) 安全护卫双重保护密码锁 26 okb=0; P1_7=P1_7; if(keyoverflag=1) /嘀一声。 P1_7=P1_7; 4.

46、4电子锁控制程序 当确认输入完密码后,识别 P1.2 口是高电平还是低电平,低电平代表已经 开启锁,此时识别若密码正确,则指示灯亮一秒钟,并且喇叭同时发出“叮咚” 声,若密码错误,则指示灯一闪一闪 3 秒钟,并且喇叭同时发出“滴滴”报警声。 结束语 毕业设计紧锣密鼓的完成了,当初规划的功能一一实现后,让我真切的感觉 到一切都圆满的结束了。虽然在设计过程中遇到很多有关硬件和软件的问题,如 数码管不能正常显示、按键功能不能实现、电子锁失控等等,在翻阅了大量资料 和指导老师陈斯的指导下完成了一个又一个功能实现,收获颇多,不仅让我学习 到更多的专业知识,更将我的专业素养提高一个层次,对待事物的耐力与仔

47、细度 都得到很好的锻炼。 安全护卫双重保护密码锁 27 我的电子密码锁在功能上还能进行很多扩展,如加上遥控器,加入指纹识别 系统,语音系统等等,由于知识水平与能力有限,不得已放弃众多优越的功能模 块,不仅暴露了自身知识的不足,更是留下一份专业设计的遗憾。在今后的工作 与学习中我更加努力的获取知识,不停的探索实践,将电子带给我的东西发扬光 大,无论是在学术领域还是在精神领域。 致 谢 本次毕业设计的顺利完成,心中除却胜利的喜悦就是满满的感谢之情。 感谢学校与院系组织,为我们的学习与研究提供那么好的环境,使毕业设计 能顺利进行下去。 感谢我的指导老师,此毕业设计是在陈斯老师的鼓励和支持下开展的,在

48、整 个设计过程中提供了细致的知识提供与帮助,给我的毕业设计带来一次又一次的 生机。 感谢我大学的老师和同学,在我知识的积累过程中少不了你们的教导与帮助。 感谢我的亲朋好友,在我学习与设计的道路中提供无微不至的关怀,让我有 动力排除一个又一个的障碍。 在今后的道路中,我会怀着这一份感谢之情更努力的去奋斗。 请答辩老师指正我的毕业设计。 安全护卫双重保护密码锁 28 参考文献 1 张俊谟编 单片机高级教程-原理与应用 第二版 北京:北京航空航天大学出版社 全 书 2 张友德 赵志英 涂时亮 编 单片微型机原理、应用与实验 上海:复旦大学出版 社 2005.12 全书 3 邦田. 电子电路实用抗干扰

49、技术 M . 北京:人民邮电出版社,1994. 4 阎石. 数字电子技术基础(第四版).北京:清华大学电子学教研室组编 2005.12 全书. 5 胡汉才. 单片机原理及系统设计M. 北京: 清华大学出版社,2002 6 忠梅. 单片机的C语言应用程序设计M. 北京:北京航空航天大学出版社,1997 7 吉鹏 ,马云峰等. 微机原理与接口技术 M. 北京: 高等教育出版社,2001. 8 余永权. ATMEL 89系列单片机应用技术M. 北京: 北京航空航天大学出版社2002. 9 陈光东编著 单片微型计算机原理及其C语言程序设计 华中科技大学出版社 2004年 4月 安全护卫双重保护密码锁

50、29 附录 参考程序: #include unsigned char ps=1,2,3,4,5; /设定的密码 unsigned char code dispbit=0 xfe,0 xfd,0 xfb,0 xf7, 0 xef,0 xdf,0 xbf,0 x7f; unsigned char code dispcode=0 x3f,0 x06,0 x5b,0 x4f,0 x66, 0 x6d,0 x7d,0 x07,0 x7f,0 x6f, 0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71, 0 x00,0 x40,0 x73,0 xff; unsigned char d

51、ispbuf8=18,16,16,16,16,16,16,16; unsigned char dispcount; /显示计数 unsigned char flashcount; /闪烁计数 unsigned char temp; /临时变量 unsigned char key; /按键 unsigned char keycount; /按键计数 unsigned char pslen=5; /password length 密码长度 unsigned char getps6; /get 到的密码 bit keyoverflag; bit errorflag; /错误标志位 bit right

52、flag; /正确标志位 unsigned int second3; unsigned int aa,bb; /aa,bb unsigned int cc; /cc bit okflag; /ok 标志位 bit alarmflag; /报警标志 bit hibitflag; /高位标志 unsigned char oka,okb,k; bit lockflag;/判定是否开锁标志 void main(void) unsigned char i,j; /用于循环. TMOD=0 x01; 安全护卫双重保护密码锁 30 TH0=(65536-500)/256; /TH0 初始化 整除 TL0=(

53、65536-500)%256; /TL0 初始化 取余 TR0=1; /TR0 初始成 1 ET0=1; /ET0 初始成 1 EA=1; /EA 初始成 1 while(1) /死循环开始 P3=0 xff; /P3 赋值 为 255 P3_4=0; /P3_4 置为 0 temp=P3; / temp=temp /按位取与 / temp= 11111111 / 0 x0f= 00010000 i0;i-) for(j=248;j0;j-); /空循环 temp=P3; temp=temp if (temp!=0 x0f) temp=P3; temp=temp switch(temp) ca

54、se 0 x0e: key=7; break; case 0 x0d: key=8; break; case 0 x0b: key=9; 安全护卫双重保护密码锁 31 break; case 0 x07: key=10; break; temp=P3; P1_1=P1_1;/后面也有,貌似无用 if(key=0) keyoverflag=1; /key overflow 输入密码长度超过 else if(key=12) /delete key if(keycount0) keycount-; getpskeycount=0; /最近 1 次数入的数值清 0 dispbufkeycount+2=

55、16; else 安全护卫双重保护密码锁 32 keyoverflag=1; /未输入密码,按到功能键,报错!嘀 一声。 else if(key=15) /enter key lockflag=1; /加入开锁判定标志 1 表示判定是否转动钥匙 0 表示不判断 if(keycount!=pslen) errorflag=1; rightflag=0; second3=0 else for(i=0;i0;i-) for(j=248;j0;j-); temp=P3; temp=temp if (temp!=0 x0f) temp=P3; temp=temp switch(temp) case 0

56、x0e: key=4; break; case 0 x0d: key=5; break; case 0 x0b: key=6; break; case 0 x07: key=11; break; 安全护卫双重保护密码锁 34 temp=P3; P1_1=P1_1; if(key=0) keyoverflag=1;/key overflow else if(key=12)/delete key if(keycount0) keycount-; getpskeycount=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)/en

57、ter key 安全护卫双重保护密码锁 35 lockflag=1; /开锁判定标志 1 表示判定是否转动钥匙 0 表示不判断 if(keycount!=pslen) errorflag=1; rightflag=0; second3=0; else for(i=0;i0;i-) for(j=248;j0;j-); temp=P3; temp=temp if (temp!=0 x0f) temp=P3; temp=temp switch(temp) case 0 x0e: key=1; break; case 0 x0d: key=2; break; case 0 x0b: key=3; br

58、eak; case 0 x07: key=12; break; temp=P3; P1_1=P1_1; if(key=0) keyoverflag=1;/key overflow else if(key=12)/delete key if(keycount0) keycount-; getpskeycount=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)/enter key lockflag=1; /开锁判定标志 0 表示判定是否转动钥匙 1 表示不判断 if(keycount!=pslen) errorflag=1;

59、 rightflag=0; second3=0; 安全护卫双重保护密码锁 38 else for(i=0;i0;i-) 安全护卫双重保护密码锁 39 for(j=248;j0;j-); temp=P3; temp=temp if (temp!=0 x0f) temp=P3; temp=temp switch(temp) case 0 x0e: key=0; break; case 0 x0d: key=13; break; case 0 x0b: key=14; break; case 0 x07: key=15; break; temp=P3; P1_1=P1_1; if(key=0) ke

60、yoverflag=1;/key overflow else if(key=12)/delete key if(keycount0) keycount-; getpskeycount=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)/enter key lockflag=1; /开锁判定标志 0 表示判定是否转动钥匙 1 表 示不判断 if(keycount!=pslen) errorflag=1; rightflag=0; second3=0; else for(i=0;i0;k-) if(P1_2=0) goto ju

61、dge; lockflag=0; return; else return; judge: if(errorflag=1) if(bb=800) bb=0; alarmflag=alarmflag; if(alarmflag=1) /sound alarm signal P1_7=P1_7; aa+; if(aa=800) /light alarm signal 安全护卫双重保护密码锁 43 aa=0; P1_0=P1_0; /LED 发光二极管闪 second3+; if(second3=6400) /闪 4 次后(8 次变换) ,自动复位到按 ENTER 前的状态 second3=0; er

62、rorflag=0; rightflag=0; alarmflag=0; bb=0; aa=0; else if(errorflag=0) /LED 发光二极管亮 cc+; if(cc1000) okflag=1; else if(cc2000) okflag=0; else /自动复位到按 ENTER 前的状态 errorflag=0; rightflag=0; P1_7=1; cc=0; oka=0; okb=0; 安全护卫双重保护密码锁 44 okflag=0; P1_0=1; /LED 发光二极管灭 if(okflag=1) oka+; if(oka=2) oka=0; P1_7=P1_7; else okb+; if(okb=3) okb=0; P1_7=P1_7; if(keyoverflag=1) /嘀一声。 P1_7=P1_7;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!