编码键盘式电子密码锁(附电路图及源程序)_第1页
编码键盘式电子密码锁(附电路图及源程序)_第2页
编码键盘式电子密码锁(附电路图及源程序)_第3页
编码键盘式电子密码锁(附电路图及源程序)_第4页
编码键盘式电子密码锁(附电路图及源程序)_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计说明书(论文)题 目: 编码键盘式电子密码锁 摘 要随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。本文从经济实用的角度出发,采用美国atmel公司的单片机at89c51,结合外围的键盘输入、显示、报警等电路,用汇编语言编写主控芯片的控制程序,设计了一款设置6位密码,密码通过键盘输入,若密码正确,则将锁打开,具有报警功能的电子密码锁。本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,在protues

2、上实现了功能的仿真,通过调试软硬件实现了密码的正确输入则显示绿灯,密码输入错误则亮红灯,蜂鸣器响的功能。关键字: 44矩阵键盘;at89c51;led显示;报警系统abstractwith the development of large-scale integrated circuit technology, especially the advent of single-chip, a microprocessor with intelligent locks, which in addition to the functions of electronic locks, but also

3、 the introduction of intelligent management, expert analysis system, etc. function, so that locks with high security, reliability, application of the increasingly widespread. this article from the economical and practical point of view, the use of u.s. single-chip atmels at89c51, combined with the e

4、xternal keyboard input, display, alarm circuits, assembly language with the preparation of master chip control procedures, designed a set 6 password, password through the keyboard input, if the password is correct, it will open the lock, alarm function with electronic locks. the design is based on t

5、he single-chip design of the locks, according to the requirements given in the single-chip hardware circuitry locks and software programs, protues achieved in the simulation function, through the debug hardware and software to achieve the correct password enter the show the green light, the password

6、 input error is red, ring buzzer function.keywords: 4 4 matrix keyboard; at89c51; led display; alarm system目 录第一章 绪论11.1 引言11.2 背景21.3 电子锁21.4 电子密码锁的特点.31.5电子密码锁的发展趋势4第二章 硬件电路设计及实现52.1系统整体设计52.2单片机控制系统.62.2.1 单片机应用与发展72.2.2 89s51芯片72.2.3 at89s51芯片控制电路设计82.3外围电路102.3.1 复位电路102.3.2 74ls245芯片112.3.3 数码

7、管12 2.3.4 发光二极管.14 2.3.5 44矩阵键盘.15 2.3.6 蜂鸣器.162.4整体电路原理图172.4.1电路原理图172.4.2制图与制版18第三章 软件设计及实现203.1软件开发环境203.2程序编写流程213.3程序设计原理233.3.1 44键盘识别程序263.3.2 数码管显示程序28第四章 综合调试304.1硬件调试304.2软件调试314.3 综合调试31第五章 结论与展望32致 谢33参考文献35附录a 总原理图36附录b 具体程序371.4倍行距第一章 绪论1.1 引言随着单片机的迅速发展,其应用领域越来越广,如消费电子、家用电器、办公设备、商业营销设

8、备、工业控制和机电一体化控制系统、智能测量仪表以及汽车与航空航天电子系统中都广泛采用了单片机。51系列单片机由于具有可靠性好,以及扩展控制功能强等优点,成为国内目前应用最广泛的一种8为单片机之一。随着单片机的应用领域越来越广泛,可以看出其的优越性和可靠性,所以将其应用到保密和安全方面是必然的,也是相当可靠,相当有意义的,基于单片机的电子密码锁的研究在保护财产和人身安全方面可以给人们带来更多更好的选择。在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安

9、全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。随着人们对安全的重视和

10、科技的发展,许多电子智能锁(指纹识别、ic卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,ic卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。1.2 背景少前面的点 目录出不来随着社会物质财富的日益增长,安全防盗已成为社会问题。而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。目前国内,大部分人使用的还是传统的机械

11、锁。然而,眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。所谓互开率,是各种锁具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。经国家工商局、国家内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍。为何弹子锁的“互开率”会如此之高?据有关专家人士剖析,弹子锁质量好坏主要取决于弹子数量的多少以及弹子的大小,而弹子的多少和大小受一定条件的限制。此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。机械锁的这些弊端为一种新型的锁-电子密码锁,提供了发展的空间。1.3 电子锁电子锁是采取电子电路控制,以电磁铁或者卫星电机和锁体作为执行装置的机电一体

12、化锁具,相比传统的机械锁具,电子锁不使用金属钥匙,保密性、精度都有很大提高。电子锁的发明思路,源自古代发明的自动机械,例如古希腊数学家赫伦的液压自动门,中国古代诸葛亮的木牛流马,它们以重力或蒸汽压力驱动,最广泛的用途乃是用在古代墓道的地下机关。电子工业的诞生,使得以微小电量驱动机械成为可能,于是有了电子锁一日千里的跃进。1.4 电子密码锁的特点 电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过

13、了机械锁,特点如下:1保密性好,编码两多,远远大于弹子锁。随机开锁的成功率几乎为零。2密码可变。用户可以经常更改密码,防止密码被盗,同时也可以避免因人员更替而使锁的保密级下降。3误码输入保护。当输入密码多次错误时,报警系统会自动启动。4电子密码锁操作简单易行,一学即会。从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。但是密码不能太简单

14、,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示”技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”

15、技术使得单组密码不一定有效,适合多人分权使用,需要输入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,则保密性还可提高。在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁仍然“老树发新芽”,不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。1.5 电子密码锁的发展趋势电子防盗锁应用于金融业,其根本的作用是“授权”,即被“授权”的人才可以存取钱、物。广义上讲,金融业的“授权”主要包括以下三种层次的内容:1、授

16、予保管权,如使用保管箱、保险箱和保险柜;2、授予出入权,如出入金库、运钞车和保管室;3、授予流通权,如自动存取款。目前,金融行业电子防盗锁的应用主要集中在前两个层面上。下面将介绍几种在金融行业中使用较多的电子防盗锁以及它们的技术发展方向。 当然,以上所说的授权技术再高超,都必须由精良的“锁具”担当承载结构部件,实现开启、闭锁的功能,而且承担实体防护作用,抵抗住或尽量延迟破坏行为,让电子防盗锁“软、硬不吃”。一般情况下,锁具防盗的关键是锁身外壳、闭锁的部件(如伸缩的锁舌或锁栓、锁扣盒锁扣板以及依靠电磁力直接闭锁的电磁部件等)的强度(应有足够的机械强度和刚度,能够承受一定数值、一定方向的静压力和冲

17、击力以及力矩)、锁止型式(能承受某些方式和工具的作用)、配合间隙(防止采用机械的、电子的方法探入锁具内部而被开启)和布局(将薄弱的、与锁的开启直接相关的零部件和电路置于壳体保护之下,并且不易被识别出来)。 提高电子防盗锁之防护能力的必然途径是报警,在金融业的许多场所有人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用。报警的前提是具备探测功能,根据电子防盗锁的使用场所和防护要求,可选择多种多样的探测手段。在中国的城市金融业中,实现联网报警已经成为对各金融网点的基本要求。 根据国内外的实践经验,金融业实行安全防范风险等级很有必要,即依据使用的防盗报警器材的性能、安装布局和人员值

18、守状况等,可以评估被防护物或区域的防护能力,得出风险等级,其中,电子防盗锁的性能至关重要。第二章 硬件电路设计及实现2.1系统整体设计本次设计使用atmel公司的at89c51实现一基于单片机的电子密码锁的设计,要具有如下功能: 本次设计使用atmel公司的at89c51实现一基于单片机的电子密码锁的设计,其主要具有如下功能: (1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。 (2)密码可以由用户自己修改设定(只支持6位密码),锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。 (3) 报警、锁定键盘功能。密码输入错误数码显示器会出现

19、错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。 电子密码锁的设计主要由三部分组成:44矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有led提示灯,报警蜂鸣器等。 密码锁设计的关键问题是实现密码的输入、清楚、更改、开锁等功能: 密码输入功能:按下一个数字键,一个“”就显示在最右边的数码管上,同时将先前输入的所有“”向左移动一位。 密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。 密码更改功能:将输入的值作为新的密码。 开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。系统框图如下图:图2.1 系统总框图2.2

20、单片机控制系统2.2.1 单片机应用与发展在工业自动化系统中,单片机承担了实现智能化的任务。由于单片机在体积、功能、价格和操作性能等方面有着很好的优势,因而得到了广泛的应用。单片机是将微处理器、存储器、定时/计数器、i/o接口电路等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系统。自从1976年intel公司推出第一批单片机以来,80年代单片机技术进入快速发展时期,近年来,随着大规模集成电路的发展,单片机继续朝快速、高性能方向发展,从4位、8位单片机发展到16位、32位单片机。单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显

21、其能67。单片机在国内的三大领域中应用得十分广泛8:(1)家用电器业,例如全自动洗衣机、智能玩具;(2)通讯业,包括电话、手机和bp机等等;(3)仪器仪表和计算机外设制造,例如软硬盘、收银机、电表。除了上述传统领域外,汽车、电子工业在国外也是单片机应用十分广泛的一个领域。它成本低、集成度高、功耗低、控制功能多,能灵活的组装成各种智能控制装置,采取智能控制对受控方状态的信息反馈,从而使操作者能够及时了解受控方信息,使产品达到交互式与智能化,被广泛应用在智能产品和工业自动化上,同时由它构成的智能仪表解决了长期以来测量仪器中的误差的修正、线性处理等问题 。同时,单片机具有较强的管理功能。采用单片机对

22、整个测量电路进行管理和控制,使得整个系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制造、安装、调试及维修方便。2.2.2 89s51芯片一、 简介单片机是一种控制芯片,一个微型的计算机,而加上晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器),按钮(类似键盘),扩展芯片,接口等那是单片机系统。mcs51是指由美国intel公司(对了,就是大名鼎鼎的intel)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所

23、以人们习惯于用8051来称呼mcs51系列单片机,intel公司将mcs51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89s51就是这几年在我国非常流行的单片机,其存储器容量最大且是flash可擦写的,可以不断擦除和烧写,是一款高性能的芯片。二、89s51引脚功能介绍单片机的40个引脚大致可分为4类:电源、时钟、控制和i/o引脚。(1)电源: vcc - 芯片电源,接+5v;vss - 接地端;(2)时钟:xtal1、xtal2 - 晶体振荡电路反相输入端和输出端。(3)控制线:控制线共有4根,ale/prog

24、:地址锁存允许/片内eprom编程脉冲 ale功能:用来锁存p0口送出的低8位地址 prog功能:片内有eprom的芯片,在eprom编程期间,此引脚输入编程脉冲。psen:外rom读选通信号。rst/vpd:复位/备用电源。 rst(reset)功能:复位信号输入端。 vpd功能:在vcc掉电情况下,接备用电源。ea/vpp:内外rom选择/片内eprom编程电源。 ea功能:内外rom选择端。 vpp功能:片内有eprom的芯片,在eprom编程期间,施加编程电源vpp。(4)i/o线:89s51共有4个8位并行i/o端口:p0、p1、p2、p3口,共32个引脚。p3口还具有第二功能,用于

25、特殊信号输入输出和控制信号(属控制总线)。三、主要特性与mcs-51产品指令系统完全兼容4k字节可重擦写flash闪速存储器4.0v5.5v的工作范围全静态操作:0hz-33mhz三级加密程序存储器1288字节内部ram32个可编程i/o口线2个16位定时/计数器6个中断源可编程串行uart通道低功耗空闲和掉电模式 中断恢复掉电模式 看门狗定时器 双数据指针 断电检举 快速编程时间 灵活的isp编程(字节和页模式) 四、芯片擦除 整个perom阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ale管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被

26、重复编程以前,该操作必须被执行。此外,at89c51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,cpu停止工作。但ram,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存ram的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.2.2 at89s51芯片控制电路设计单片机常用的一些电源、晶震的连接已经比较成熟,这里不一一介绍,关键是单片机对74ls245芯片、控键、显示的控制如何接口。p1.0和p1.1是连接发光二极管,分别接个电阻然后接5v电源,用于人机接口的视觉提示灯,分别提示录、放音过程。p1.6按键,用于密码错

27、误时后的复位。p1.7接蜂鸣器。x1,x2接外部晶体震荡器,给单片机提供时钟周期。reset接左边复位电路,是单片机的复位键,用来对单片机寄存器清零。2.3 外围电路2.3.1复位电路一、基本复位电路 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。单片机复位电路原理:电阻给电容充电,电容的电压缓慢上升直到vcc,没到vcc时芯片复位脚近似低电平,于是芯片复位,接近vcc时芯片复位脚近高电平,于是芯片停止复位,复位完成。图1所示的rc复位电路可以实现上述

28、基本功能,但解决不了电源毛刺(a点)和电源缓慢下降(电池电压不足)等问题 而且调整 rc 常数改变延时会令驱动能力变差。左边的电路为高电平复位有效,右边为低电平sm为手动复位开关, ch可避免高频谐波对电路的干扰 图2所示的复位电路增加了二极管,在电源电压瞬间下降时使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。使用比较电路,不但可以解决电源毛刺造成系统不稳定,而且电源缓慢下降也能可靠复位。q1的放大作用也能改善电路的负载特性,但跳变门槛电压 vt 受 vcc影响是该电路的突出缺点,使用稳压二极管可使 vt 基本不受vcc影响。入微电路如下:图2.2 rc复位电路注意图下面的间距不要太大

29、2.3.2 74ls245芯片3一、简介74ls245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。74ls245还具有双向三态功能,既可以输出,也可以输入数据。二、引脚描述当8051单片机的p0口总线负载达到或超过p0最大负载能力时,必须接入74ls245等总线驱动器。当片选端/ce低电平有效时,dir=“0”,信号由 b 向 a 传输;(接收)dir=“1”,信号由 a 向 b 传输;(发送)当/ce为高电平时,a、b均为高阻态。由于p2口始终输出地址的高8位,接口时74ls245的三态控制端/1g和/2g接地,p2口与驱动器输入线对应相连

30、。p0口与74ls245输入端相连,/e端接地,保证数据现畅通。8051的/rd和/psen相与后接dir,使得/rd或/psen有效时,74ls245输入(p0.idi),其它时间处于输出(p0.idi)。图 2.3 74ls2452.3.3 数码管一、码管的驱动方式数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。(1) 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的i/o端口进行驱动,或者使用如bcd码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显

31、示亮度高,缺点是占用i/o端口多,如驱动5个数码管静态显示则需要5840根i/o端口来驱动,要知道一个89s51单片机可用的i/o端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。(2) 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极com增加位选通控制电路,位选通由各自独立的i/o线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通com端电路的控制,所以我们只要

32、将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的com端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的i/o端口,而且功耗更低。二、数码管参数8字高度:8字上沿与下沿的距离。比外型高度小。通常用英寸来表示。范围一般为0.25-20英寸。长*宽*高:长数码管正放时,水平方向的长度;宽数码管正放

33、时,垂直方向上的长度;高数码管的厚度。时钟点:四位数码管中,第二位8与第三位8字中间的二个点。一般用于显示时钟中的秒。三、数码管使用的电流与电压电流:静态时,推荐使用10-15ma;动态时,16/1动态扫描时,平均电流为4-5ma,峰值电流50-60ma。电压:查引脚排布图,看一下每段的芯片数量是多少?当红色时,使用1.9v乘以每段的芯片串联的个数;当绿色时,使用2.1v乘以每段的芯片串联的个数。四、怎样测量数码管引脚,分共阴和共阳找公共共阴和公共共阳:首先,我们找个电源(3到5伏)和1个1k(几百欧的也行)的电阻,vcc串接个电阻后和gnd接在任意2个脚上,组合有很多,但总有一个led会发光

34、的,找到一个就够了,然后gnd不动,vcc(串电阻)逐个碰剩下的脚,如果有多个led(一般是8个),那它就是共阴的了。相反用vcc不动,gnd逐个碰剩下的脚,如果有多个led(一般是8个),那它就是共阳的。也可以直接用数字万用表,红表笔是电源的正极,黑表笔是电源的负极。2.3.4 发光二极管发光二极管简称led,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个pn结,具有单向导电性。 当在发光二极管pn结上加正向电压时,pn结势垒降低,载流子的扩散运动大于漂移运动,致使p区的空穴注入到n区,n区的电子注入到p区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式

35、出现,因此而发光。 发光二极管在制作时,使用的材料有所不同,那么就可以发出不同颜色的光。 发光二极管的发光颜色有:红色光、黄色光、绿色光、红外光等。 发光二极管的外形有:圆形、长方形、三角形、正方形、组合形、特殊形等。 常用的发光二极管应用电路有四种,即直流驱动电路、交流驱动电路、脉冲驱动电路、变色发光驱动电路。 使用led作指示电路时,应该串接限流电阻,该电阻的阻值大小应根据不同的使用电压和led所需工作电流来选择。 发光二极管的压降一般为1.52.0 v,其工作电流一般取1020 ma为宜。2.3.5 44矩阵键盘一、44矩阵键盘识别处理 。 二、每个按键都有它的行值和列值,行值和列值的组

36、合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和cpu通信。键盘的一端(列线)通过电阻接vcc,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。其电路原理图如下图:图2.4 矩阵键盘部分图2.4 键盘模块电路2.3.6蜂鸣器一、蜂鸣器的介绍(1)蜂鸣器的作用 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机

37、、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。(2)蜂鸣器的分类 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。(3)蜂鸣器的电路图形符号 蜂鸣器在电路中用字母“h”或“ha”(旧标准用“fm”、“lb”、“jd”等)表示。二、蜂鸣器的结构原理(1)压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515v直流工作电压),多谐振荡器起振,输出1.52.5khz的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸

38、铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。(2)电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。2.4 整体电路原理图2.4.1 电路原理图将系统整个电路的模块叠加到一张图上,即是整个硬件设计的电路原理图,如图2.6所示。图2.5 系统电路原理图2.4.2 制图与制版protel 99 se是原protel technology公司(altium limited)开发的基于windows环境

39、的电路板设计软件。它是目前国内最流行的通用eda软件,通过将电路原理图设计、pcb板图设计、电路仿真和pld设计等多个实用工具软件组合后构成eda工作平台。它是第一个将eda软件设计成基于windows环境的普及型产品。该软件功能强大,人机交互界面友好,易学易用,现在仍然是大中专院校电类专业必修课程,同时也是业界人士首选的电路板设计工具。一般而言,设计电路板最基本的过程可以分为三大步骤1112。(1)电路原理图的设计电路原理图的设计主要是用protel99的原理图设计系统来绘制一张电路原理图。在这一过程中,要充分利用protel99所提供的各种原理图绘图工具,各种编辑功能,来实现我们的目的,即

40、得到一张正确的,精美的电路原理图。 原理图的设计可按照下面的过程来完成。设置图纸大小。首先要构思好零件图,设计好图纸大小。图纸大小是根据电路图的规模和复杂程度而定的,设置合适的图纸大小是设计好原理图的第一步。设置protel 99/schematic设计环境。设置protel 99/schematic设计环境包括设置格点大小和类型,光标类型等等,大多数参数也可以使用系统默认值。旋转零件。 用户根据电路图的需要,将零件从零件库里放置到图纸上,并对放置零件的序号、零件的封装等进行定义和设定工作。原理图布线。利用protel 99/schematic提供的各种工具,将图纸上的元件用具有电气意义的导线

41、、符号连接起来,构成一个完整的原理图。调整线路,将初步绘好的电路图作进一步的调整和修改,使得原理图更加美观。报表输出 通过protel 99/schematic提供的各种报表工具生成各种报表其中最重要的报表是网络表,通过网络表为后续的电路板设计做准备。 文件保存及打印输出。这是最后的步骤。(2)产生网络表网络表是电路原理图(sch)和印制电路板设计(pcb)之间的一座桥梁。网络表可以从电路原理图中获得,也可以从印制电路板中提取出来。(3)印制电路板的设计规划电路板。在绘制印制电路板之前,用户要对电路板有一个初步的规划,比如说电路板采用多大的物理尺寸,采用几层电路板(单面板还是双面板),各个元器

42、件采用何种封装形式及安装位置等等。这是一项极其重要的工作,是确定电路板设计的框架。设置参数。参数的设置是电路板设计的非常重要的步骤。设置参数主要是设置元器件的布置参数、层参数、布线参数等等。一般说来,有些参数用其默认值即可,有些参数在使用过protel99se以后,即第一次设置后,几乎无需更改。装入网络表及元器件封装。网络表是电路板自动布线的灵魂,也是电路原理图设计系统与印制电路板设计系统的接口。因此这一步是非常重要的环节。只有将网络表装入之后,才可能完成对电路板的自动布线。元器件的封装就是元器件的外形,对于每个装入的元器件必须有响应的外形封装,才能保证电路板布线的顺利进行。元器件的布局。元器

43、件的布局可以让protel99se自动布局。规划好电路板并装入网络表后,用户可以让程序自动装入元器件,并自动将元器件布置在电路板边框内。protel99se也可以让用户手工布局。元器件的布局合理,才能进行下一步的布线工作。自动布线。protel99se采用世界最先进的无网格、基于形状的对角线自动布线技术。只要将有关的参数设置得当,元器件的布局合理,自动布线的成功率是很高的。手工调整。自动布线结束后,往往存在令人不满意的地方,这时就需要进行手工调整。文件保存及输出。完成电路板的布线后,保存完成的电路线路图文件。然后利用各种图形输出设备,如打印机或绘图仪输出电路板的布线图。印制电路板的设计主要是针

44、对protel99的另外一个重要的部分pcb而言的,在这个过程中,我们借助protel99提供的强大功能实现电路板的版面设计。第三章 软件设计及实现3.1软件开发环境系统的软件部分采用在keil编译器环境下进行编程13,keil c-51软件是众多单片机开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,plm,c等多种程序设计语言,界面友好。熟悉keil软件的应用(1)建立一个新工程。单击“progect”菜单,从下拉菜单中选中“new project”选项。(2)然后选择你要保存的路径,输入工程文件的名字,比如保存到c51的目录里,工程文件的名字为c51。(3)这是会弹出一个对话框,

45、要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核单片机。(4)单击file菜单,再下拉菜单中单击new 选项。(5)回到编辑界面后,单击“target 1 ”前面的+号,然后在source group 1 上单击右键,然后单击 “add file to group source group 1”。(6)“source group 1”文件夹中多了一个子项“text1.asm” 。子项的多少与所增加的源程序的多少相同.在输入程序时,如果事先保存了待编辑的文件, keil c51会自动识别关键字,并以不同的颜色提示,这样会使我们少犯错误,有利于提高编程效

46、率。程序输入完毕后(7)程序输入完毕后,单击“project”菜单,再在下拉菜单中单击“built target”选项(或者使用快捷键f7),编译成功后,再单击“project”菜单,在下拉菜单中单击“start/stop debug session”(或者使用快捷键ctrl+f5)。 (8)调试程序:单击“debug”菜单,在下拉菜单中单击“go”选项,(或者使用快捷键f5),然后再单击“debug”菜单,在下拉菜单中单击“stop running”选项(或者使用快捷键esc);再单击“view”菜单,再在下拉菜单中单击“serial windows #1”选项,就可以看到程序运行后的结果。

47、 至此,我们在keil c51上做了一个完整工程的全过程。但这只是纯软件的开发过程,还要使用程序下载器看一看程序运行的结果。(9)单击“project”菜单,再在下拉菜单中单击“options for target target 1”,单击“output”中单击“create hex file” 选项,使程序编译后产生hex代码,供下载器软件使用。把程序下载到aduc841单片机中。3.2程序编写流程软件设计主要是按硬件完成语音存储与再现的流程,在程序设计时考虑到接口的实用性,采用信号检测与查询的方式进行控制。电路接通电源后一直对按键进行查询,一旦有键按下,判断按键指示,然后转向相应的子程序执

48、行。具体过程见流程图,如图3.1所示空白页太大。 图3.1 主程序流程图3.3程序设计原理3.3.1 44键盘扫描识别把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。 比如说扫描码送入01111111,前面的0111是代表此时扫描第一行p1.0列,而后面的1111是让读取的4行接脚先设為vcc,若此时第一行的第三列按键被按下,那读取的结果就会变成01111101(注意1111变成1101),其中lsb的第三个bit会由1变成0,这是

49、因為这个按键被按下之后,会被垂直的扫描码电位short,而把读取的lsb的bit电位拉到0,此即為扫描原理。 由于这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,為了避免让8051误判為多次输入同一按键,我们必须在侦测到有按键被按下,就delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。 程序代码如下:lscan:movp3,#0f0h;扫描行码l1:jnbp3.0,l2lcalldly_sjnbp3.0,l2movline,#00hljmprscanl2:jnbp3.1,l3lcalldly_sjnbp3.1,l3movline,#01hl

50、jmprscanl3:jnbp3.2,l4lcalldly_sjnbp3.2,l4movline,#02hljmprscanl4:jnbp3.3,a0lcalldly_sjnbp3.3,a0movline,#03hrscan:movp3,#0fh;扫描列码c1:jnbp3.4,c2movrow,#00hljmpcalcuc2:jnbp3.5,c3movrow,#01hljmpcalcuc3:jnbp3.6,c1movrow,#02hcalcu:mova,line;计算键值movb,#03hmulabadda,rowmovval,a;*;以下为按键处理程序,对不同的按键作出响应cjnea,#0a

51、h,j1;是否为clr键movr1,key_cntcjner1,#00h,j2lcallalarm_1ljmpstart j2:lcallshiftr deckey_cntw00:lcalldisp;等待按键抬起mova,p3cjnea,#0fh,w01ljmpa0w01:mova,p3cjnea,#0f0h,w02ljmpa0w02:sjmpw00j1:mova,valcjnea,#0bh,j3;判断是否为enter键movr1,key_cntcjner1,#06h,j4mova,word_1;比较密码cjnea,3eh,j5mova,word_2cjnea,3fh,j5mova,word_

52、3cjnea,40h,j5mova,word_4cjnea,41h,j5mova,word_5cjnea,42h,j5mova,word_6cjnea,43h,j5clrp1.0lcalldly_lljmpfinij5:lcallalarm_2ljmpstartj4:lcallalarm_1ljmpstartj3:inckey_cnt;按下数字键mova,key_cntcjnea,#07h,k1lcallalarm_1w10:lcalldisp;等待按键抬起mova,p3cjnea,#0fh,w11ljmpstartw11:mova,p3cjnea,#0f0h,w12ljmpstartw12:

53、sjmpw10ljmpstartljmpstartk1:lcallshiftlw20:lcalldisp;等待按键抬起mova,p3cjnea,#0fh,w21ljmpa0w21:mova,p3cjnea,#0f0h,w22ljmpa0w22:sjmpw20ljmpa0alarm_1:setbtr0;操作错误报警jbtr0,$retalarm_2:setbtr0;密码错误报警jbtr0,$lcalldly_lret3.3.2 数码管显示子程序单片机对数码管的显示方式可分为静态显示和动态显示两种。静态显示中每一个数码管需要一个独立的输出口控制,在各输出口输出相应的数据,则数码管可以显示相应的字符。静态显示的特点是显示程序简单、亮度高、稳定性好、占用cpu时间少,但占用的i/o口线较多,所以静态显示常用在显示器数目较少的应用系统中。当显示位数较多时,可以采用动态显示。因为我设计为八个数码管,所以在程序设计中,我选择使用动态数码管显示技术。动态数码管控制原

温馨提示

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

评论

0/150

提交评论