




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安航空职业技术学院 毕 业 设 计(论 文) 论文题目: 题目: 电子密码锁防盗门 所属系部: 属系部: 电子工程系 指导教师: 指导教师: 职 称: 学生姓名: 学生姓名: 学号: 专 业: 电 工 西安航空职业技术学院制 西安航空职业技术学院 毕业设计(论文) 毕业设计(论文)任务书 题目: 题目: 电子密码锁防盗门 任务与要求: 时 间: 所属系部: 所属系部: 学生姓名: 学生姓名: 专业: 专业: 年 月 日 至 电 工 系 年 月 日 共 周 学 号: 电 工 指导单位或教研室: 指导单位或教研室: 指导教师: 指导教师: 职 称: 西安航空职业技术学院制 2 摘 要电子技术的迅速发展,特别是大规模集成电路的出现,给人类生活带来了根本性的 改变。尤其是单片机技术的应用产品已经走进了千家万户。 作为单片机技术应用之一的数字密码锁,在日常生活、工业场合甚至军事领域都有 应用。 本文对目前楼宇门禁装置应用现状进行了分析,结合应用广泛的串行通信技术设计 并实现了一个以AT89S52为核心的数字密码锁。 阐述了系统的结构、 组成及软硬件设计, 并介绍了系统的功能。本系统具有自动报警、日历显示、掉电密码保护、权限管理、实 时监控等功能,并可查询监控记录。系统基于RS-232通信,监控主机和密码锁之间采用 自定义协议进行串行通信。监控软件采用Visual Basic 6.0实现。实践结果表明该数字密 码锁系统结构简单、性能稳定、智能化程度较高, 监控软件具有友好的人机界面和较好 的实时性,系统实用性较强。 关键词: 关键词 单片机,数字密码锁,实时监控,串行通信 3 Abstract Along with the electronic technology rapid development, appears of the large scale integrated circuit specially, these have made a big change on peoples living. Products including the technology application of the single chip microprocessor sets already entered every family. As one application of the single chip microprocessor technology, the digital combination lock has been applied in the daily life, the industry situation and military field. This article analyzes the current status of the application of Building Access Control Devices. The author designs a digital combination lock with the core of AT89S52 by combining the Serial Communication Technology. The article states structure, composition, the design of software and hardware, the function of the system. The system has such functions: Auto-alarm, Calendar Demonstration, Power Failure Password Protection, Rights Management, Real-time Monitoring and etc. It can also query the data that was recorded. The system is based on RS-232, and the communication between the host-computer and slave digital combination lock by adopting the self-define protocol. The monitor software is realized by Visual Basic 6.0. The result shows that this system has a simple structure, stable performance and higher degree of intelligence. The monitor software has a friendly User Interface, and the system is very practical. KEY WORDS: single chip microprocessor, digital combination lock, real-time monitoring, serial communication 目 录第1章 绪 论 . 1 1.1 本课题研究的背景和意义 . 1 1.2 楼宇门禁系统的概述 . 1 1.3 本次设计的任务 . 2 1.4 设计思想及系统方案选择 . 2 第 2 章 基于单片机的数字密码锁的硬件设计 . 4 2.1 MCU 的选择 . 4 2.1.1 简单介绍 AT89S52 . 4 2.1.2 AT89S52 的串口通信 . 7 2.1.3 晶振特性 . 8 2.2 输入通道设计 . 9 2.2.1 键盘识别方法 . 9 2.2.2 消除键的抖动 . 11 2.2.3 键盘的选择 . 12 2.2.4 按键的设置 . 12 2.3 显示模块的设计 . 13 2.4 密码锁动作模块设计 . 14 2.5 报警模块设计 . 15 2.6 通信模块设计 . 16 2.6.1 2.6.2 2.7.1 2.7.2 2.7.3 RS-232 简介 . 18 MAX232 电路设计 . 19 DS1302 简介 . 21 DS1302 电路原理图 . 22 DS1302 调试中的问题 . 22 2.7 时钟功能设计 . 21 2.8 供电电源模块设计 . 23 2.9 掉电保护设计 . 24 第 3 章 基于单片机的数字密码锁的软件设计 . 27 3.1 上位机监控软件设计 . 27 3.1.1 VB 中的 MSComm 通信控件 . 27 -1- 3.1.2 小区密码锁管理系统的设计 . 29 3.2 下位机程序设计 . 30 3.2.1 软件设计的原则 . 30 3.2.3 程序流程图 . 30 第 4 章 基于单片机的数字密码锁的功能 . 34 第5章 结 论 . 40 致 谢 . 41 参考文献 . 42 论文小结 . 43 附录(一):硬件实物照片 . 45 附录(二):电路原理图 . 46 -2- 第1章 绪 论 1.1 本课题研究的背景和意义社会治安仍是当今社会面临的一个重大问题, 如何应用高科技手段提高安全防范 措施, 更有效地阻止犯罪行为的发生是科技工作者义不容辞的责任。 目前的形势下, 对 于普通居民小区, 仅仅依靠普通的门锁、防盗门或者报警等系统来保证居民住宅的安 全是不够的, 如果能够安装一套适合于单个家庭的简易智能门禁系统, 将会有效地保 护住宅的安全,并在案发后提高破案率。鉴于此,我们的“智能门禁系统”带液晶 显示和通信功能的数字密码锁便应运而生。 1.2 楼宇门禁系统的概述门禁就是出入口控制,在人进出重要通道的时候,进行适当级别的权限鉴别,以区 分是否能通过的一种管理手段。门禁系统属于智能弱电系统中的一种安防系统,作为一 种新型现代化安全管理系统, 它集微机自动识别技术和现代安全管理措施为一体,它 涉及电子,机械,光学,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重 要部门出入口实现安全防范管理的有效措施。门禁系统通过在建筑物内的主要管理区、 出入口、电梯厅、设备控制中心机房、贵重物品的库房等重要部门的通道口安装门磁、 电控锁或控制器、读卡器等控制装置, 由计算机或管理人员在中心控制室监控,能够 对各通道口的位置、通行对象及通行时间、方向等进行实时控制或设定程序控制, 从 而实现对出入口的控制。门禁系统一般由门禁控制器、门禁读卡器、卡片、电控锁、门 禁软件、电源和相关门禁应用设备几部分组成。常见的门禁系统有:密码门禁系统,非 接触 IC 卡 ( 感应式 IC 卡 ) 门禁系统,指纹、虹膜、掌型等生物识别门禁系统等。 门禁系统是随着自动识别技术的发展而迅速发展的,目前,国内外研制和使用的门 禁系统主要集中在感应门禁系统和生物识别门禁系统。在生物识别门禁系统中又以指纹 门禁系统应用最为广泛。密码门禁系统存在的问题是密码容易泄露,又无从查起,安全 系数很低。生物识别门禁系统安全性高,但成本高,由于识别率和存储容量等瓶颈问题 没有很好的解决,而没有得到广泛的市场认同。现在国际上最流行最通用的还是非接触 IC 卡门禁系统。 1 1.3 本次设计的任务本次设计就是要完成一个基于单片机的数字密码锁,它用于一个居民小区的家庭门 锁控制,系统待机时显示时间和日期,当按下输入密码键并输入正确密码则开锁,如果 密码错误则提示重新输入,如果输入密码错误超过三次则发出报警并自动锁定键盘,密 码锁的所有操作都将记录入上位 PC 机的数据库中,并且可以通过上位机设定锁死和解 锁功能。 1.4 设计思想及系统方案选择基于单片机的数字密码锁的结构如图 1-1 所示,各部分主要功能如下: 显示模块 报警模块 时钟模块 MCU 执行模块 输入模块 通信模块 图 1-1 基于单片机的数字密码锁的组成结构 MCU 即微处理单元,对系统的各项数据、指令进行处理。 LCD1602 显示模块,具有背光,用于显示系统的各种状态。待机时可显示时钟 和日历。切换到密码锁状态时显示各种操作提示。 矩阵键盘作为输入模块,用于输入密码,以及配合其他按键对系统进行操作, 如切换时钟显示状态和密码锁状态、输入密码等。 报警模块,用于当系统被恶意试探或输入密码错误超过三次时发出报警信号。 执行模块即是锁的机械动作部件,执行开锁、关锁动作。 通信模块,用于与上位机的通信,使上位机对锁具有监控、管理的权限。 时钟模块,用于产生时间和日历数据,发送到处理器后显示在 LCD 上,并且具 2 有短时间掉电仍能保持正常工作的功能。 系统硬件电路部分采用模块化的设计思想。按照功能将该数字密码锁分为输入模 块、显示模块、报警模块、执行模块、通信模块和时钟模块。 硬件对应的软件部分的设计同样采用模块化的设计思想。 首先用 C 语言编写各个功 能模块, 然后再把这些功能模块连接起来, 进行调试。 上位机的监控软件采用 Visual Basic 语言编写。 3 第 2 章 基于单片机的数字密码锁的硬件设计 2.1 MCU 的选择 MCU 的选择范围很广泛,本设计采用 MCS-51 系列单片机作为处理单元。MCS-51 系列单片机是在一块芯片中集成了 CPU、RAM、ROM、定时器/计数器和多功能 I/O 等 基本功能部件的微处理器,它拥有基于复杂指令集(CISC)的单片机内核,虽然其速度 不快,12 个振荡周期才执行一个单周期指令,但其端口结构为准双向并行口,可兼有外 部并行总线,故使其扩展性能非常强大1。它具有如下特点: 可靠性高:系统软件(如:程序指令、常数、表格)固化在 ROM 中,不易受病毒破 坏。 许多信号的通道均在一个芯片内,故运作时系统稳定可靠,抗干扰的能力优于 PC 机; 便于扩展:片内具有计算机正常运行所必需的部件,片外有很多供扩展用的(总线, 并行和串行的输入/输出)管脚,很容易组成一定规模的计算机应用系统; 控制功能强:具有丰富的控制指令,如:条件分支转移指令、I/O 口的逻辑操作指令、 位处理指令等; 实用性好:体积小、功耗低、价格便宜、易于产品化。 而 AT89S52 是 MCS-51 系列单片机中比较突出的一款,它具有以下标准功能: 8k 字节 Flash, 256 字节 RAM, 位 I/O 口线, 32 看门狗定时器, 个数据指针, 2 三个 16 位 定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。鉴于 AT89S52 的以上特点,本系统采用 AT89S52 单片机作为处理单元。 2.1.1 简单介绍 AT89S52 AT89S52 是一种低功耗、 高性能 CMOS 8 位微控制器, 具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和 引脚完全兼容。片上 Flash 允许程序存储器在系统上编程,亦适于常规编程器。在单芯 片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S52 为众多嵌入式控制 应用系统提供高灵活、超有效的解决方案。AT89S52 的各 I/O 口功能如下: P0 口: 口是一个 8 位漏极开路的双向 I/O 口。 P0 作为输出口, 每位能驱动 8 个 TTL 逻辑电平。 P0 端口写“1”时, 对 引脚用作高阻抗输入。 当访问外部程序和数据存储器时, P0 口也被作为低 8 位地址/数据复用。在这种模式下,P0 具有内部上拉电阻。在 flash 4 编程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需 要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P1 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输 入口使用。 作为输入使用时, 被外部拉低的引脚由于内部电阻的原因, 将输出电流 (IIL) 。 此外,P1.0 和 P1.2 分别作定时器/计数器 2 的外部计数输入(P1.0/T2)和时器/计数器 2 的触发输入(P1.1/T2EX),具体如表 2-1 所示。在 flash 编程和校验时,P1 口接收低 8 位地址字节。表2-1 引脚号 P1.0 P1.1 P1.5 P1.6 P1.7 P1口第二功能 口第二功能 第二功能 T2(定时器/计数器T2的外部计数输入),时钟输出 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) MOSI(在系统编程用) MISO(在系统编程用) SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 口输出缓冲器能驱 动 4 个 TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为 输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流 (IIL)。在访问外部程序存储器或用 16 位地址读取外部数据存储器时,P2 口送出高 八位地址。在这种应用中,P2 口使用很强的内部上拉发送 1。在使用 8 位地址访问外 部数据存储器时,P2 口输出 P2 锁存器的内容。在 flash 编程和校验时,P2 口也接收高 8 位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输 入口使用。 作为输入使用时, 被外部拉低的引脚由于内部电阻的原因, 将输出电流 (IIL) 。 P3 口亦作为 AT89S52 特殊功能(第二功能)使用,如表 2-2 所示。在 flash 编程和校验 时,P3 口也接收一些控制信号。 RST :复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 5 表2-2 引脚号 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 P3口作为 口作为AT89S52的特殊功能 口作为 的特殊功能 第二功能 RXD(串行输入) TXD(串行输出) INT0 (外部中断0) INT1 (外部中断1) T0(定时器0外部输入) T1(定时器1外部输入) WR (外部数据存储器写选通) RD (外部数据存储器读选通) ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位 字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周 期输出正脉冲信号, 此频率为振荡器频率的1/6。 因此它可用作对外部输出的脉冲或用于 定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想 禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令 是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止, 置位无效。 PSEN :外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的 PSEN 信号将不出现。 EA /VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不 管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持 高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源 VPP。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 存储器结构:MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和 数据存储器都可以64K寻址。 程序存储器:如果 EA 引脚接地,程序读取只从外部存储器开始。对于89S52,如果 EA 接VCC,程序读写先从内部存储器(地址为0000H1FFFH)开始,接着从外部寻 6 址,寻址地址为:2000HFFFFH。 数据存储器:AT89S52 有256 字节片内数据存储器。高128 字节与特殊功能寄存 器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当 一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊 功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。 振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以 配置为片内振荡器。 石晶振荡和陶瓷振荡均可采用。 如采用外部时钟源驱动器件, XTAL2 应不接。由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉 宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 2.1.2 AT89S52的串口通信在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样 时才可以进行正常通讯3。波特率是指串行端口每秒内可以传输的波特位数。有一些初 学的朋友认为波特率是指每秒传输的字节数,如标准9600 会被误认为每秒种可以传送 9600个字节,而实际上它是指每秒可以传送9600 个二进位,而一个字节要8 个二进位, 如用串口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进位, 9600 波特率用模式1 传输时,每秒传输的字节数是960010960 字节。51 芯片的串 口工作模式0的波特率是固定的,为fosc/12,以一个12M 的晶振来计算,那么它的波特 率可以达到1M。模式2 的波特率是固定在fosc/64 或fosc/32,具体用哪一种就取决于 PCON 寄存器中的SMOD位,如SMOD 为0,波特率为focs/64,SMOD 为1,波特率为 focs/32。模式1 和模式3 的波特率是可变的,取决于定时器1 或2(52 芯片)的溢出速 率。那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?可以用以下 的公式去计算: 波特率(2SMOD32)定时器1 溢出速率 上式中如设置了PCON 寄存器中的SMOD 位为1 时就可以把波特率提升2 倍。通 常会使用定时器1 工作在定时器工作模式2 下, 这时定时值中的TL1 做为计数, TH1 做 为自动重装值 ,这个定时模式下,定时器溢出后,TH1 的值会自动装载到TL1,再次 开始计数, 这样可以不用软件去干预, 使得定时更准确。 在这个定时模式2 下定时器1 溢 出速率的计算公式如下: 溢出速率(计数速率)/(256TH1) 7 上式中的“计数速率”与所使用的晶体振荡器频率有关,在51 芯片中定时器启动 后会在每一个机器周期使定时寄存器TH 的值增加一,一个机器周期等于十二个振荡周 期,所以可以得知51 芯片的计数速率为晶体振荡器频率的1/12,一个12M 的晶振用在 51 芯片上,那么51 的计数速率就为1M。通常用11.0592M 晶体是为了得到标准的无误 差的波特率,那么为何呢?计算一下就知道了。如我们要得到9600 的波特率,晶振为 11.0592M 和12M, 定时器1 为模式2, SMOD 设为1, 分别看看那所要求的TH1 为何值。 代入公式: 11.0592M 9600(232)(11.0592M/12)/(256TH1) TH1250 12M 9600(232)(12M/12)/(256TH1) TH1249.49 上面的计算可以看出使用12M 晶体的时候计算出来的TH1 不为整数, 而TH1 的值 只能取整数,这样它就会有一定的误差存在不能产生精确的9600 波特率。当然一定的 误差是可以在使用中被接受的,就算使用11.0592M 的晶体振荡器也会因晶体本身所存 在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽 略不计。 综上所述,由于本系统需要使用串口通信,为了得到标准的无误差的波特率,采用 11.0592M 晶体振荡器。 2.1.3 晶振特性如图2-1 所示, AT89S52 单片机有一个用于构成内部振荡器的反相放大器, XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成 自激振荡器。从外部时钟源驱动器件的话,XTAL2 可以不接,而从XTAL1 接入,如 图2-1所示。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外 部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是 要符合要求的。 8 图2-1 内部振荡电路连接图 当采用石英晶振时,要求 C1,C2=30pF10pF 当采用陶瓷谐振器时,要求 C1,C2=40pF10pF 本系统采用 11.0592M 石英晶体振荡器,C1,C2=30pF 瓷片电容。 2.2 输入通道设计本系统的输入功能基本可以由键盘完成。键盘按其结构形式可分为编码式键盘和非 编码式键盘两大类。编码式键盘是由其内部硬件逻辑电路自动产生被按键的编码。这种 键盘使用方便, 但价格昂贵。 非编码式键盘主要由软件产生被按键的编码。 它结构简单、 价格便宜,但使用起来不如编码式键盘方便,键盘管理程序的编码也比较复杂。 单片机系统中普遍使用非编码式键盘。这类键盘应主要解决以下几个问题:键的 识别;如何消除键的抖动;键的保护。在以上几个问题中,最主要的是键的识别。 2.2.1 键盘识别方法非编码式键盘识别闭合键通常有两种方法:一种称为行扫描法,另一种称为线反转 法。 2.2.1.1 行扫描法 在单片机系统中键盘的按钮数量较多时,为了减少 I/O 口的占用,常常将按钮排列 成矩阵形式,如图 2-2 所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连 通,而是通过一个按钮加以连接。这样,一个端口(如 P1 口)就能组成 4 4 =16 个按 钮,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加 一条线就能组成 20 键的键盘,而直接用端口线则只能多出一键(9 键) 。由此可见,在 需要的键数比较多时,采用矩阵法来做键盘是合理的。 矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,图 2-2 中,列线 通过电阻接正电源,并将行线所接的单片机的 I/O 口作为输出端,而列线所接的 I/O 口 则作为输入。这样,当按钮没有按下时,所有的输出端都是高电平,代表无键按下。行 9 线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态 就可得知是否有键按下了。具体的识别方法如下所述: 图 2-2 矩阵键盘接线图 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按钮识别办法,如图 2-2 所示键盘,介绍过程如下: 判断键盘中有无键按下。将全部行线 Y0-Y3 置低电平,然后检测列线的状态。 只要有一列的电平为低, 则表示键盘中有键被按下, 而且闭合的键位于低电平线与 4 根 行线相交叉的 4 个按键之中。若所有列线均为高电平,则键盘中无键按下。 判断闭合键所在的位置。在确认有键按下后,即可进入确定具体闭合键的过程。 其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在 确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线 与置为低电平的行线交叉处的按键就是闭合的按键。 为了保证键每闭合一次 CPU 仅作一次处理,必须去除键释放时的抖动。 单片机系统的键盘采用行扫描法的比较多,一般都没有采用短路保护电路。因此在 使用时要特别注意,防止双键或多键同时按下。 2.2.1.2 线反转法 线反转法也是识别闭合按键的一种常用方法。该方法比行扫描法速度要快,但在硬 件电路上要求行线与列线均需有上拉电阻,故比行扫描法稍复杂些。 以下仍以 4 4 键盘为例说明反转法的工作原理。 首先将行线作为输出线,列线作为输入线。先通过行线输出全“0”信号,读入从列 线的值。如果此时有某一个键被按下,则必然使其 1 列线值为 0.然后将行线和列线的输 入输出关系呼唤(重新设置输入输出口的状态),并且将刚才读到的列线值从列线所接 10 的并行端口输出,再读取行线的输入值。那么在闭合键所在的行线上的值必定为 0。这 样,当一个键被按下时,必定可以读的一对唯一的行值和列值。 如仍以图 2-2 所示为例,当行线输出全“0”信号时,读得的列值为 1011。然后从列 线输出该数值 1011 后,将会从行线上读得行值 0111,于是行值和列值合起来得到一个 数值 01111011 即 7BH。这就是该闭合键的特征值,它对这个键来说是唯一的。得到键 特征值以后的处理方法与行扫描法相同。 需要说明的是,若用线反转法来确定闭合键时,如果遇到多个键闭合的情况,则输 入的行值和列值中一定有一个以上的 0。 由于预先建立的键值代码表中不会有这样的值, 因而可以判断为重键而丢弃,由此可见,用这种方法可以很方便地解决重键问题2。 2.2.2 消除键的抖动由于按键为机械开关结构,因此机械触点的弹性及电压突跳等原因,往往在触点闭 合或断开的瞬间会出现电压抖动,如图 2-3 所示。键按下 前沿抖动 键稳定 后沿抖动 图 2-3 键闭合和断开时的电压抖动 为保证键识别的准确,在电压信号抖动的情况下不能进行状态的输入,为此需进行 去抖动处理(消抖)。去抖动有硬件和软件两种方法。硬件方法就是加消抖动电路,从 根本上避免抖动的产生;软件方法则采用时间延迟以避开抖动,待信号稳定之后,再进 行键扫描。一般情况下,延迟消抖的时间约为 1020ms。在单片机和大多数微型计算机 中,为简单起见,一般均采用软件延迟消抖的方法。 11 2.2.3 键盘的选择本系统是一个数字密码锁,输入数字密码是必不可少的部分,这就至少需要 09 这 十个数字的按键,再加上其他的切换键,功能键,所需要的按键很多,经统计,系统共 需要 21 个按键,其中包含 09 共 10 个数字键、确定、重新输入、修改密码、系统复位、 关门、关报警、功能切换、时间复位、时间调整、增加、减少。如果选用编码式键盘则 将占用很多 I/O 口,为了节省 I/O 口,故选用一个非编码式 44 矩阵键盘,采用行扫描 法识别按键。 4 4 矩阵键盘可以提供 16 个按键,设置其分别为 09、确定、重新输入、 修改密码、时间调整、增加、减少。系统复位、关门、关报警、功能切换、时间复位这 五个键采用普通的按键。本系统键盘采用软件消抖。 2.2.4 按键的设置本系统的按键设置主要分为三部分,第一部为密码输入及修改部分,按键全部在矩 阵键盘上,包含 09 十个数字键和“确定” “重输”和“修改密码”键;第二部分为日 、 期的设定键,其中“调整选择”键、 “增加”键、 “减少”键分布在矩阵键盘上,如图 2-4 所示;第三部分为三个普通的按键,分别为“关门”键、 “切换”键(用于切换密码输 入界面和时间显示界面)和“时间设定”键,这三个键直接接于 I/O 口,具体接法见附 录-电路原理图。矩阵键盘的界面设置如图 2-4 所示: 图 2-4 矩阵键盘界面 12 2.3 显示模块的设计通常显示模块选择包括 LED(Light Emitting Diode)和 LCD(Liquid Crystal Display)。 相对于 LED,LCD 有很多的优点:如显示字符库丰富、显示质量高、没有电磁辐射、 应用范围广、画面质量好、 “身材”匀称小巧、功率消耗小等。因此本次系统设计采用 常见的 1602 字符型液晶显示模块。它是专门用于显示字母、数字、符号等的点阵型液 晶显示模块,采用 8 位数据传输方式。它提供显示数据缓冲区 DDRAM、字符发生器 CGROM 和字符发生器 CGRAM,可以使用 CGRAM 来存储自己定义的最多 8 个 5 8 点阵 的图形字符的字模数据。提供了丰富的指令设置:清显示、光标回原点、显示开/关、光 标开/关、显示字符闪烁、光标移位、显示移位等。提供内部上电自动复位电路,当外加 电源电压超过+4.5V 时,自动对模块进行初始化操作,将模块设置为默认的显示工作状 态。 本次系统设计采用常见的 1602 字符型液晶显示模块。其各管脚功能如表 2-3 所示。 LCD1602A 与 AT89S52 连接图如图 2-5 所示。其中 V0 脚为对比度调节,直接接地时对 比度最高,接+5V 电源是对比度最低。对比度不可太高,否则会产生“鬼影” 。表 2-3 引脚 1 2 3 名 称 VSS VDD V0 方向 -LCD1602A 管脚功能介绍 说 明 电源负端(0V) 电源正端(+5V) LCD 驱动电压(可调,一般为 0V) RS=0: 当MPU 进行读模块操作,指向地址计数器。 当MPU 进行写模块操作,指向指令寄存器。 RS=1: 无论 MPU 读/写操作,均指向数据寄存器。 R/W=0 写操作; R/W=1 读操作 读操作时,信号下降沿有效;写操作时,高电平有效 MPU 与模块之间的数据传送通道, 4 位总线模式下 D0D3 脚断开 背光电源正端(+5V) 背光电源负端(0V) 4 RS I 5 6 714 15 16 R/W E DB0DB7 LEDA LEDK I I I/O - 13 P3.6 P3.7 P3.5 RS RW E P0.0P0.7 +5 DB0DB7 VDD V0 1020K VSS +5 LEDA LEDK 图 2-5 LCD1602A 与 AT89S52 连接图 2.4 密码锁动作模块设计密码锁的最终执行部件是一个关键部分,不管采用多么高级的控制方法,但最终还 是要控制两件事:开锁、闭锁。在实际应用中可以采用多种方法来执行这两个动作,比 如采用电磁继电器或步进电机等。电磁继电器主要由电磁系统、接触系统及传动机构等 组成。 当控制电路(电磁铁的线圈)中通过电流时,电磁铁即产生吸力,吸动衔铁, 传动到接触系统,使触点动作,接通、断开或换接被控电路。当用于开闭锁的执行机构 时可以将衔铁连接到锁芯,当控制电路(电磁铁的线圈)中通过电流时,电磁铁即产生 吸力,吸动衔铁,带动锁芯缩回,开锁。当控制电路断电时,电磁铁失去吸力,衔铁在 弹簧的作用下回归原位,闭锁。如果采用步进电机则可以用齿轮传动锁芯,通过控制步 进电机正向或反向旋转一定角度来实现开、闭锁。 本设计考虑到成本问题不采用以上方法作为执行部件, 而是采用一个+5V 的继电器 来模拟开、闭锁动作。其电路如图 2-6 所示: LCD1602A AT89S52 14 +5 +5 P2.7 R 1K C9012 1N4007 5V继电器 R 330 LED 图 2-6 密码锁动作模块电路 如图 2-6 所示,模拟开闭锁的工作过程为:当处理器得到开锁信号时给管脚 P2.7 置 低电位,三极管导通,继电器线圈通电,产生磁力吸合常开弹簧开关,使发光二极管亮, 模拟开锁动作。当处理器得到关门信号时,给 P2.7 置高电位,使三极管截止,继电器 线圈两端电压为零,失去磁力,弹簧开关恢复断开状态,发光二极管灭,模拟闭锁动作。 但此处需要注意两点: (1)继电器在三极管导通时,上面电压为上正下负,电流方向由上向下。在三极 管关断时,继电器中电流突然中断,会产生感应电势,其方向是力图保持电流不变,即 总想保持继电器中线圈电流方向为由下至下。这个感应电势与电源电压迭加后加在三极 管两端,容易使三极管击穿。为此要加上一个续流二极管,将继电器线圈产生的感应电 势短路掉,电流方向为顺时针方向在二极管和继电器所构成的小回路里面流动,从而保 护三极管。 (2)如果采用 NPN 三极管 C9013,就需要在系统初始化时给 P2.7 置低电位,此时 9013 截止,当执行开锁命令时给 P2.7 置高电位使 9013 导通,继电器动作。AT89S52 的 P2 口初始化电压为高电位,也就是说在初始化的短暂时间内会有一个高电平的噪声, 这可能造成系统上电或复位时继电器误动作。为了解决这个问题,系统采用 PNP 三极 管 C9012, 它是低电位导通, 当系统上电或复位时不会使继电器产生误动作。 闭锁时 P2.7 为高电位,三极管关断,而需要开锁时,只需将 P2.7 置低就行了。 2.5 报警模块设计本系统带有自动报警功能,当输入密码错误次数超过三次则自动发出报警声、光信 号。其设计思路如图 2-7 所示:报警的声音由音乐芯片 LX9561 驱动一个 8 欧姆的扬声 15 器产生。报警的光信号由发光二极管产生。 系统初始化时将 P2.0 置高电位,三极管截止,报警电路不工作。当处理器监测到 输入密码错误超过三次时,将 P2.0 置为低电位,三极管导通,继电器常开触点闭合, 音乐芯片上电工作,发光二极管得电,发出报警声、光信号。 +5 1N4007 +5 R 270K * R 1K C9012 5V继电器 LX9561 音音音音 P2.0 C9013 R 330 LED Speaker 图 2-7 报警模块电路 系统程序中通过定时的方法设置报警时间为一分钟,一分钟后系统自动将 P2.0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务专业知识试题及答案
- 专业团队专业测试题及答案
- 体系管理专业试题及答案
- 预防医学知识历年试题及答案
- 领导科学专业试题及答案
- 秋天的色彩校园秋景描写12篇范文
- 网络数据安全守秘责任书5篇
- 地理课本中的自然环境保护主题深入解读
- 广告宣传与投放效果保障协议
- 文档版本管理规范化流程(含版本号控制)
- 2025年第一届安康杯安全生产知识竞赛试题题库及答案(完整版)
- 电力工程冬季施工安全技术措施
- 贵州省贵阳市2026届高三上学期摸底考试数学试卷含答案
- 公司年度员工安全教育培训计划
- 供电所安全教育培训课件
- 2025年杭州市上城区望江街道办事处 编外人员招聘8人考试参考试题及答案解析
- 百果园水果知识培训资料课件
- 2025年灌注桩考试题及答案
- 公司安全生产责任书范本
- 养老护理员培训班课件
- 隔爆水棚替换自动隔爆装置方案及安全技术措施
评论
0/150
提交评论