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

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

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

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

2、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 by single

3、chip 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 and practic

4、al.Key word: singlechip LED electronic code lock matrix keyboard alarm system 目录1 绪论12 系统总设计22.1保护锁设计分析22.2双重保护密码锁设计概述23 硬件电路设计33.1单片机AT89S51相关概述33.2显示模块93.3 键盘模块133.4 音频模块143.5电子锁控制开锁模块153.6 整体电路184 软件程序设计194.1主程序194.2 键盘扫描子程序204.3 警示及音频程序224.4电子锁控制程序26结束语26致 谢27参考文献28附录29安全护卫双重保护密码锁1 绪论 随着人们防患意识的增

5、强,结合高科技的不断翻新与发展,具有防盗报警功能的电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步,而结合于传统锁的电子密码锁却是使安全性加倍的电子密码锁。仅从电子密码锁的角度,从目前的技术水平和市场认可程度看,国内外使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。当然现在也逐渐应用到家用式门锁柜锁等等。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除

6、非自己泄露)。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测,显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码,也有为了应和用户不变原则固定密码的电子密码锁,更新需通知厂家刷机,

7、虽麻烦却体现了稳固不变的原则。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁仍然“老树发新芽”,不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。2 系统总设计2.1保护锁设计分析 科技高速发展的今天,对于住宅、财产、车辆等等日常相伴我们生活的物件,安全防范设施更显得尤为重要,于是有安全性高、功耗低、易操作等优点的电子密码锁应运而生。考虑到与我们生活最贴近的产品性能,电子密码锁该是成为价格低廉,简单实用的日常工具之一。 对于设计,首先与输入密码相对应的该有足够多的按键,密码数字输入,功能按键等等,用4X4矩阵键盘完全可以满足需求。在输入密码时难免有输错的时候

8、,拥有可删除的按键是完全有必要的。而在显示方面,主流产品有数码管显示和LCD液晶屏显示,前者具有价格低廉,显示亮,寿命长等优点,除却显示多样性能不如LCD液晶屏,在这里弃价格昂贵的液晶屏而选用数码管好处多于劣处,故综合上述,本设计选用数码管显示系统。另外,增强型电子密码锁在警示音方面该有些许突破,提高电子防盗锁之防护能力的必然途径是报警,在许多场所有人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用。报警的前提是具备探测功能,根据电子防盗锁的使用场所和防护要求,可选择多种多样的探测手段。在中国的城市金融业中,实现联网报警已经成为对各金融网点的基本要求。本设计选用喇叭扬声系统,

9、不仅使报警花样化,更可以丰富功能不同提示音,还可以根据用户爱好选用音乐作为提示音,生活更加情趣化。2.2双重保护密码锁设计概述 本设计遵循市场主流密码锁设计,采用单片机控制系统、4X4矩阵键盘模块、8位八段数码管显示模块、提示音音频放大模块、电子锁模拟控制、指示灯模拟开锁功能。总设计框图如图所示。图2.1 总体设计框图 本设计实现功能: 8位数码显示,初始化时,显示“P ”。 用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”。键盘数字个代表数字09,输完一组数字按确认键。当数字输入超过6个时,给出报警信息在密码输入过程中,若输入错误,可以利用“DEL”键删除刚才输入的错误的数字输

10、入完密码,打开电子锁,若密码正确,则指示灯亮一秒钟,并且喇叭同时发出“叮咚”声。输入完密码,打开电子锁,若密码错误,则指示灯一闪一闪3秒钟,并且喇叭同时发出“滴滴”报警声。若密码输入错误,3秒钟内仍有密码输入错误,则指示灯闪烁与报警声顺延3秒钟。3 硬件电路设计3.1单片机AT89S51相关概述3.1.1 特性简述微型计算机具有体积小,功耗低重量轻,价格低,可靠性高,开发使用简便等一系列优点,自问世以来得到了非常广泛的应用。作为微型计算机发展的其中一大支,单片机系统全力满足测控对象的测控功能,兼顾数据处理能力。单片机本身有着优异的特色,它性能价格比好,集成度高,体积小,可靠性好控制能力强,且低

11、功耗,低电压,便于生产便携式产品,还易扩展。 图3.1 单片机管脚目前,应用广泛的主流机型是80C51系列8位单片机。 其优点不容知否,它的性能价格比很高而且开发装置多,被国内技术人员熟悉广泛熟悉,芯片功能也够用适用,还有众多芯片制造厂商加盟,可选择空间大。而单片机本身又有着优异的特色,它性能价格比好, 集成度高,体积小,可靠性好控制能力强,且低功耗,低电压,便于生产便携式产品,还易扩展。单片机的应用相当广泛,无论是在智能化家用电器,办公自动化设备商业营销设备,工业自动化控制,智能化仪表还是智能化通信产品,汽车电子产品,航空航天系统和国防军事、尖端武器等等都有着不可小觑的地位。单片机引脚图如3

12、.1所示。单片机系统分为两大部分,一为硬件部分,即组成单片机系统的物理实体。二为软件部分,即对硬件使用和管理的程序。图3.2为单片机系统硬件结构框图。图3.2 单片机系统硬件结构框图单片机程序设计软件语言可分为机器语言,汇编语言,高级语言,本设计使用的是AT89S51,汇编语言。AT89S51单片机是ATMEL公司生产的高性能8位单片机,主要功能特性如下: 兼容MCS-51指令系统; 32个双向I/O口,两个16位可编程定时/计数器; 1个串行中断,两个外部中断源; 可直接驱动LED; 低功耗空闲和掉电模式; 4 kB可反复擦写(1 000次)FLASI ROM; 全静态操作O24 MHz;

13、1288 b内部RAM。 该款芯片的超低功耗和良好的性能价格比使其非常适合嵌入式产品应用3.1.2 引脚说明AT89S51总共40个引脚,以下分别作说明。Vcc:电源电压 GND:地 P0口:P0口是一组8位漏极开路型双向I0口,也即地址数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1口:Pl 是一个带内部上拉电阻的8位双向IO口,P

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

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

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

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

18、持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。 XTALl:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。3.1.3 震荡电路 如图3.3所接电路,单片机X1和X2两端分别接12MHz晶振两端,并分别接30P电容的一端,两个电容的另外一端都接地。以此构成本课程设计的时钟电路。 晶振的大小决定了机器周期的大小。时钟周期是89S51振荡器产生的时钟脉冲频率的倒数,是最基本最小的定时信号。89S51单片

19、机工作的基本定时单位,简称机周。机器周期是时钟周期的12倍。 当时钟频率为12MHz时,机器周期为1mS; 当时钟频率为6MHz时,机器周期为2mS。3.1.4 复位系统 图3.3 震荡电路 如图3.4所示,为接到单片机上按键复位电路,10微法的电容负极连RST引脚,正极连5V电源,10K电阻两端分别连RST和5V和地,开关接在电容两端。系统复位条件为单片机RST引脚保持2个机器周期以上的高电平。复位后CPU状态为:PC: 0000H TMOD: 00HAcc: 00H TCON: 00H 图3.4 复位电路B:00H TH0: 00HPSW: 00H TL0: 00HSP: 07H TH1:

20、 00HDPTR:0000H TL1: 00HP0P3:FFH SCON: 00HIP:00000B SBUF: 不定IE:000000B PCON: 00000B3.1.5 EA/Vpp连接此引脚即内外ROM选择/片内EPROM编程电源 EA功能:内外ROM选择端。接高电平则从片内ROM读起,接低电平则从片外ROM读起 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 本设计EA/Vpp引脚连接在5V电源上即高电平。从片内ROM读取程序。3.2显示模块3.2.1 LED数码管简介数码管是一种半导体发光器件,其基本单元是发光二极管。防水,防尘,防紫外线,耐压,耐破

21、裂,耐高低温,耐燃,超强抗冲击老化数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某

22、一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管是一类显示屏,通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字。数码管能够显示时间、日期、温度 等所有可用数字表示的参数。由于它的价格便宜,使用简单,在电器,特别是家电领域应用极为广泛:空调、热水器、冰箱等等。数码管使用的电流与电压:电流:静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA,峰值电流50-60mA。电压:查引脚排布图,看一下每段的芯片数量是多少?当红色时,使用1.9V乘以每段的芯片串联的个数;当绿色时,使用2.1V乘以每段的芯片串联的个数

23、。图3.5 数码管引脚图测量数码管引脚,区分共阴和共阳:找公共共阴和公共共阳:首先,我们找个电源(3到5伏)和1个1K(几百欧的也行)的电阻,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的,找到一个就够了,然后GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳的。也可以直接用数字万用表,红表笔是电源的正极,黑表笔是电源的负极。3.2.2 74LS245简介74LS245是我们常用的芯片,它的管脚图如图3.6所示,它用来驱动led或者其

24、他的设备,它是8路同相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。74LS245真值表如图3.6所示。当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。另外由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,/E端接地,保证数据现畅通。

25、8051的/RD和/PSEN相与后接DIR,使得/RD或/PSEN有效时,74LS245输入(P0.iDi),其它时间处于输出(P0.iDi)。 图3.6 真值表 图3.7 管脚图3.2.3 驱动电路及与单片机的连接数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则

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

27、就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。 本设计所使用的是动态数码管显示,其驱动电路和单片机的连接电路图如图3.8所示:图3.8 数码管驱动电路将把“单片机系统”区域中的P0.0P0.7用8芯排线连接到“动态数码显示”区域中的ABCDEF端子上。把“单片机系统“区域中的P

28、2.0P2.7用8芯排线连接到“动态数码显示”区域中的S1S2S3S4S5S6S7S8端子上。3.3 键盘模块为了轻松实现密码输入与功能键,本系统使用了4X4矩阵键盘16个按键,不仅拥有数字09,还有确认及删除按键,另外还空置5个按键以便今后的系统功能扩展。4X矩阵键盘原理:每个按键有它的行值和列值 ,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭

29、合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。 键盘电路及与单片机系统的连接如图3.9所示:图3.9 矩阵键盘把“单片机系统”区域中的P3.0P3.7用8芯排线连接到“44行列式键盘”区域中的R1R2R3R4C1C2C3C4端子上。3.4 音频模块3.4.1 LM386简述LM386是美国国家半导体公司生产的音频功率放大器,管脚图如图3.10所示,它主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调

30、为任意值,直至 200。输入端以地位参考,同时输出端 图3.10 管脚图被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。 LM386的封装形式有塑封8引线双列直插式和贴片式。特性:静态功耗低,约为4mA,可用于电池供电。 工作电压范围宽,4-12V or 5-18V。 外围元件少。 电压增益可调,20-200。 低失真度 3.4.2 音频放大电路该音频放大模块采用LM386芯片作为音频的功率放大,音频信号由“SPK IN”端口输入,信号的输出由“SPK OUT”端口输出,只要在“SPK OUT”接一个喇叭即可,具体电路图及与单片机

31、连接如图所示:图3.11 音频放大电路将“单片机系统”区域中的P1.7用导线连接到“音频放大模块”区域中的SPK IN端子上。另外 “音频放大模块”区域中的SPK OUT接到喇叭上3.5电子锁控制开锁模块3.5.1 开锁机构电磁锁开锁具体流程图如图3.12所示:图3.12 电磁锁开锁流程图当用户输入的密码正确并且是在按下确定键的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的 电路驱动和开锁两级组成。由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管如9014、9018都可以满足要求。D5作为开锁的提示;由D6、C24、T11组成。其中D6、C24

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

33、整体电路图3.15 整体电路图4 软件程序设计4.1主程序主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。主程序的流程图如图4.1所示:图4.1 主流程图部分主程序:void main(void) unsigned char i,j; TMOD=0x01; TH0=(65536-500)/256; TL0=(65536-500)%256; TR0=1; ET0=1; EA=1; 4.2 键盘扫描子程序44行列式键盘的按键功能分布图如图4.2所示:键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返

34、回。流如图4.3所示: 图4.2 44行列式键盘的按键功能分布图 图4.3 流程图部分代码如下:uchar get_key() uchar row_code; uchar col_code; P1=0xf0; if(P1!=0xf0) delayms(10); if(P1!=0xf0) row_code=0xfe; while(row_code!=0x7f) P1=row_code; if(P1!=row_code) col_code=(P1&0xf0)|0x0f; return( (col_code)|(row_code); row_code=(row_code1)|0x01); Retur

35、n(0X00);4.3 警示及音频程序当数字输入超过6个时,给出报警信息;打开电子锁,若密码正确,则指示灯亮一秒钟,并且喇叭同时发出“叮咚”声;若密码错误,则指示灯一闪一闪3秒钟,并且喇叭同时发出“滴滴”报警声。部分代码如下:judge: if(errorflag=1) & (rightflag=0) /发出“嘀、嘀”报警声 bb+; if(bb=800) bb=0; alarmflag=alarmflag; if(alarmflag=1) /sound alarm signal P1_7=P1_7; aa+; if(aa=800) /light alarm signal aa=0; P1_0

36、=P1_0; /LED发光二极管闪 second3+; if(second3=6400) /闪4次后(8次变换),自动复位到按ENTER前的状态 second3=0; errorflag=0; rightflag=0; alarmflag=0; bb=0; aa=0; else if(errorflag=0) & (rightflag=1) /发出“叮咚”声 P1_0=0; /LED发光二极管亮 cc+; if(cc1000) okflag=1; else if(cc2000) okflag=0; else /自动复位到按ENTER前的状态 errorflag=0; rightflag=0;

37、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) okb=0; P1_7=P1_7; if(keyoverflag=1) /嘀一声。 P1_7=P1_7; 4.4电子锁控制程序当确认输入完密码后,识别P1.2口是高电平还是低电平,低电平代表已经开启锁,此时识别若密码正确,则指示灯亮一秒钟,并且喇叭同时发出“叮咚”声,若密码错误,则指示灯一闪一闪3秒钟,并且喇叭同时发出“滴滴”报警声。结束语 毕业设

38、计紧锣密鼓的完成了,当初规划的功能一一实现后,让我真切的感觉到一切都圆满的结束了。虽然在设计过程中遇到很多有关硬件和软件的问题,如数码管不能正常显示、按键功能不能实现、电子锁失控等等,在翻阅了大量资料和指导老师陈斯的指导下完成了一个又一个功能实现,收获颇多,不仅让我学习到更多的专业知识,更将我的专业素养提高一个层次,对待事物的耐力与仔细度都得到很好的锻炼。 我的电子密码锁在功能上还能进行很多扩展,如加上遥控器,加入指纹识别系统,语音系统等等,由于知识水平与能力有限,不得已放弃众多优越的功能模块,不仅暴露了自身知识的不足,更是留下一份专业设计的遗憾。在今后的工作与学习中我更加努力的获取知识,不停

39、的探索实践,将电子带给我的东西发扬光大,无论是在学术领域还是在精神领域。致 谢 本次毕业设计的顺利完成,心中除却胜利的喜悦就是满满的感谢之情。感谢学校与院系组织,为我们的学习与研究提供那么好的环境,使毕业设计能顺利进行下去。感谢我的指导老师,此毕业设计是在陈斯老师的鼓励和支持下开展的,在整个设计过程中提供了细致的知识提供与帮助,给我的毕业设计带来一次又一次的生机。 感谢我大学的老师和同学,在我知识的积累过程中少不了你们的教导与帮助。 感谢我的亲朋好友,在我学习与设计的道路中提供无微不至的关怀,让我有动力排除一个又一个的障碍。 在今后的道路中,我会怀着这一份感谢之情更努力的去奋斗。 请答辩老师指

40、正我的毕业设计。参考文献1 张俊谟编 单片机高级教程-原理与应用 第二版 北京:北京航空航天大学出版社 全书2 张友德 赵志英 涂时亮 编 单片微型机原理、应用与实验 上海:复旦大学出版社2005.12 全书3 邦田. 电子电路实用抗干扰技术 M . 北京:人民邮电出版社,1994.4 阎石. 数字电子技术基础(第四版).北京:清华大学电子学教研室组编 2005.12 全书.5 胡汉才. 单片机原理及系统设计M. 北京:清华大学出版社,20026 忠梅. 单片机的C语言应用程序设计M. 北京:北京航空航天大学出版社,19977 吉鹏 ,马云峰等. 微机原理与接口技术 M. 北京:高等教育出版社

41、,2001.8 余永权. ATMEL 89系列单片机应用技术M. 北京:北京航空航天大学出版社2002.9 陈光东编著 单片微型计算机原理及其C语言程序设计 华中科技大学出版社 2004年4月附录参考程序:#include unsigned char ps=1,2,3,4,5; /设定的密码unsigned char code dispbit=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f; unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f, 0x77,

42、0x7c,0x39,0x5e,0x79,0x71, 0x00,0x40,0x73,0xff; unsigned char dispbuf8=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; /g

43、et到的密码bit keyoverflag; bit errorflag; /错误标志位bit rightflag; /正确标志位unsigned int second3; unsigned int aa,bb; /aa,bbunsigned int cc; /ccbit okflag; /ok标志位bit alarmflag; /报警标志bit hibitflag; /高位标志unsigned char oka,okb,k; bit lockflag;/判定是否开锁标志void main(void) unsigned char i,j; /用于循环. TMOD=0x01; TH0=(6553

44、6-500)/256; /TH0初始化 整除 TL0=(65536-500)%256; /TL0初始化 取余 TR0=1; /TR0初始成1 ET0=1; /ET0初始成1 EA=1; /EA初始成1 while(1) /死循环开始 P3=0xff; /P3赋值 为255 P3_4=0; /P3_4置为0 temp=P3; / temp=temp & 0x0f;/按位取与/ temp= 11111111 / 0x0f= 00010000 &/ 结果 00010000/ 最后temp=16 if (temp!=0x0f) /如果 temp不等于16 进入循环 for(i=10;i0;i-) fo

45、r(j=248;j0;j-); /空循环 temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=7; break; case 0x0d: key=8; break; case 0x0b: key=9; break; case 0x07: key=10; break; temp=P3; P1_1=P1_1;/后面也有,貌似无用 if(key=0) & (key10) if(keycount6) keycount=6; keyoverflag=1; /key

46、 overflow 输入密码长度超过 else if(key=12) /delete key if(keycount0) keycount-; getpskeycount=0; /最近1次数入的数值清0 dispbufkeycount+2=16; else 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 & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=4; break; case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x07: key=11; break; temp=P3; P1_1=P1_1; if(key=0) & (key10) if(keycount6) getpskeycount=key; d

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