毕业设计(论文)基于单片机的电子密码锁设计1

上传人:仙*** 文档编号:32641035 上传时间:2021-10-15 格式:DOC 页数:42 大小:1.60MB
收藏 版权申诉 举报 下载
毕业设计(论文)基于单片机的电子密码锁设计1_第1页
第1页 / 共42页
毕业设计(论文)基于单片机的电子密码锁设计1_第2页
第2页 / 共42页
毕业设计(论文)基于单片机的电子密码锁设计1_第3页
第3页 / 共42页
资源描述:

《毕业设计(论文)基于单片机的电子密码锁设计1》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的电子密码锁设计1(42页珍藏版)》请在装配图网上搜索。

1、目 录目目 录录设计总说明设计总说明.IDESIGN INTRODUCTION .II第第 1 1 章章 绪论绪论.11.1背景.11.2电子锁.11.3电子密码锁的特点.11.4电子密码锁的发展趋势.2第第 2 2 章章 系统总体设计系统总体设计.22.1系统结构.32.2 系统组成.32.3 系统可行性分析.3第第 3 3 章章 硬件电路设计硬件电路设计.43.1单片机 AT89C51 简介.4 3.1.1 主要特性.4 3.1.2 管脚说明.5 3.1.3 震荡特性.6 3.1.4 芯片擦除.63.2 44 矩阵键盘.63.3复位电路.73.4 振荡电路.73.5 数码管.83.6 发光

2、二极管 LED.93.7 电动锁.93.8 蜂鸣器.103.9 完整电路图.11第第 4 4 章章 软件程序设计软件程序设计.124.1软件设计流程图.134.2 具体功能软件实施.14第第 6 章章 结束语及展望结束语及展望.28第第 7 7 章章 鸣谢鸣谢.29第第 7 7 章章 参考文献参考文献.30附附 录录.22设计总说明I设计总说明在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的

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

4、内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC 卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。基于以上思路,本次设计使用 ATMEL 公司的 AT89C51 实现一基于单片机的电子密码锁的设计,其主要具有如下功能:(1) 设置 6 位密码,密码通过键盘输入,若密码正确,则将锁打开。(2) 密码可以由用户自己修改设定(只支持 6 位密码) ,锁打开后才能修改密码。修改密码之前必须再次输入密

5、码,在输入新密码时候需要二次确认,以防止误操作。(3) 报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过 3 次,蜂鸣器报警并且锁定键盘。电子密码锁的设计主要由三部分组成:44 矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有 LED 提示灯,报警蜂鸣器等。密码锁设计的关键问题是实现密码的输入、清楚、更改、开锁等功能:(1)密码输入功能:按下一个数字键,一个“”就显示在最右边的数码管上,同时将先前输入的所有“”向左移动一位。(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。(3)密码更改功能:将输入的值作为新的密码。(4

6、)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。关键词:44 矩阵键盘;AT89C51;密码锁;密码二次确认DESIGN INTRODUCTIONIIDESIGN INTRODUCTIONIn our daily life, the security of house, company department, documents and finance forms, also some personal information always used the lock to protect them. If use the normal keys to lo

7、ck out the door, we should taken many keys with ourself.That is so difficult to use. And if we lost the keys with careless, the security looks very easy to break out. As the developing of the technology,peopleask for high securty machines.For satisfy this request, the cipher lock is appeared.The cip

8、her has higher security, lower cost, lower power and easy to use. Base on the thinking of the cipher lock, this design uses AT89C51 of ATMEL COMPANY to carry out the SCM digital cipher lock, its main function as follow:1. set password with 6 words, enter the words via keybord, if enter the right num

9、ber, the lock will unlock.2. password can set and fix by yourself, you can just fix the password when the lock is keeping unlock. It need to enter the new password twice to avoid the wrong activity.3. alarm function. If enter the wrong password, the mon will show the error message, when enter the wr

10、ong password over 3 times, the buzzer will alarm and lock the keybord at the same time.this lock is made by 3 parts: gob circuit of 4x4 matrix keybord , gob circuit of cipher lock, gob circuit of 8 way display output. other wise, the system has LED light, and warning buzzer.the main function of this

11、 cipher lock is carried out enter, clear, and change the password, and unlock the door.1. enter the password: press one number button, one signal - will show on the digital tube on the right side, pls put the - to left side at the same time.2. clear the password: press the clear button to clear all

12、codes you have enter before.3. change the password: use the new enter number as the new password.4. unlock function: press the unlock button, the system will check up the enter number and password, if yes the lock will open, if not it keep lock.Key word : matrix keybord; AT89C51: LED digital tube.xx

13、 大学 2007 届本科生毕业设计 1 电子密码锁设计电子密码锁设计第 1 章 绪论1.1背景随着社会物质财富的日益增长,安全防盗已成为社会问题。而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。目前国内,大部分人使用的还是传统的机械锁。然而,眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。所谓互开率,是各种锁具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。经国家工商局、国家内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍。为何弹子锁的“互开率”会如此之高?据有关专家人士剖析,弹子锁质量好坏主要取

14、决于弹子数量的多少以及弹子的大小,而弹子的多少和大小受一定条件的限制。此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。机械锁的这些弊端为一种新型的锁-电子密码锁,提供了发展的空间。1.2电子锁电子锁是采取电子电路控制,以电磁铁或者卫星电机和锁体作为执行装置的机电一体化锁具,相比传统的机械锁具,电子锁不使用金属钥匙,保密性、精度都有很大提高。 电子锁的发明思路,源自古代发明的自动机械,例如古希腊数学家赫伦的液压自动门,中国古代诸葛亮的木牛流马,它们以重力或蒸汽压力驱动,最广泛的用途乃是用在古代墓道的地下机关。电子工业的诞生,使得以微小电量驱动机械成为可能,于是有

15、了电子锁一日千里的跃进。1.3电子密码锁的特点电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,主要特点如下:1保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2密码可变。 用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3误码输入保护。当输入密码多次错误时,报警系统自动启动,防止试探密码。xx 大学 2007 届本科生毕业设计 2 1.4电

16、子密码锁的发展趋势从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记) ,难以被窃(除非自己泄露) 。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码

17、”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示”技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”技术使得单组密码不一定有效,适合多人分权使用,需要输入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,则保密性还可提高。在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次或若干时间内输入不正确,即“

18、封锁”键盘,不再接受输入操作。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。第 2 章 系统总体设计xx 大学 2007 届本科生毕业设计 3 2.1系统结构 AT89C51数码管蜂鸣器LED44 键盘复位电路图 212.2 系统组成如图 21 所示系统主要由 AT89C51(51 系列)、八位数码管、蜂鸣器、LED、44矩阵键盘、复位电路等组成。2.3 系统可行性分析系统工作原理分析:使用 AT59C51 单片机、44 矩阵键盘、LED、蜂鸣器等。矩阵键盘分别为 0、1、2、3、4、5、6、7、8、9、*、

19、CLE、Enter、MODIFY。系统开始显示“INPUT”提示输入密码;输入密码时,LED 显示电路显示为“-” ,当密码输入完毕按下 Enter 键时,对输入密码与设定的密码进行比较,若密码正确则 LED 显示电路显示为“PASS”提示锁打开;若密码不正确,LED 显示电路显示提示“ERROR” ,若连续 3 次输入不正确,则发出警报声同时锁定键盘。在输入正确密码后,按下修改键时,LED 显示电路显示“old”提示“输入旧密码”,此时输入正确的旧密码,则显示电路会有提示输入新密码在输入新密码后,显示电路会再次提示“再次输入新密码”若两次输入密码不一致,则修改密码失败,一致则成功。在修改密码

20、的过程中,如果一开始输入的旧密码错误显示电路会显示提示,同时系统返回到开始。电源xx 大学 2007 届本科生毕业设计 4 若在“再次输入新密码”的时候输入新密码与前次不一致,则会返回到系统开始。修改密码完成后,系统自动清零上锁。要再次开锁则需要输入正确的密码。 系统中 CEL 键用于退格,在输入密码时,若输入错误且未按下 Enter 键,按下CLE 可以删除刚输入的密码,然后再次输入。 为了防止恶意尝试,系统才用若连续输入 3 次错误密码则发出报警声,且锁定键盘,可以提高系统的安全系数,同时也能够保护合法用户的正常使用。第 3 章 硬件电路设计3.1 单片机 AT89C51 简介AT89C5

21、1 是美国 ATMEL(爱特梅尔)公司生产的低电压,高性能 CMOS8 位单片机,片内含 4K bytes 的可反复擦写的只读程序存储器(EPROM)和 128bytes 的随机存取数据序存器(RAM) ,器件采用 ATMEL 公司的高密度/非易失性存储技术生产,兼容标准MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 FLASH 存储单元,AT89C51 单片机为许多嵌入式控制系统提供了一种灵活行高且价廉的方案。3.1.1 主要特性 8031 CPU 与 MCS-51 兼容 4K 字节可编程 FLASH 存储器(寿命:1000 写/擦循环)xx 大学 2007 届本科生毕业设

22、计 5 全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8 位内部 RAM 32 条可编程 I/O 线 两个 16 位定时器/计数器 6 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图 313.1.2 管脚说明VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P

23、0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或

24、 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示:管脚 备选功能:P3.0 RXD(串行输入

25、口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。xx 大学 2007 届本科生毕业设计 6 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频

26、率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储

27、器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3.1.3 震荡特性XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须

28、保证脉冲的高低电平要求的宽度。3.1.4 芯片擦除整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.2 44 矩阵键盘如图所示,本系统采用 44 矩阵键盘,16

29、 个按键分为输入数字键:*、0、#、1、2、3、4、5、6、7、8、9;功能键 lock、modify、cel、Enter。矩阵键盘。xx 大学 2007 届本科生毕业设计 7 图 323.3复位电路图 33时钟电路工作后,在 REST 管脚上加两个机器周期的高电平,芯片内部开始进行初始复位(如图 33) 。3.4 振荡电路图 34xx 大学 2007 届本科生毕业设计 8 本设计晶振选择频率为 12MHZ,电容选择 30pF 如图(34)。经计算得单片机工作胡机器周期为:12(112M)=1us。振荡器的振荡信号从 XTAL2 端输入到片内的时钟发生器上。时钟发生器是个二分频的触发器,它将振

30、荡器的信号频率 fosc 除以 2,向 CPU 提供两相时的时钟信号。3.5 数码管图 35本设计采用两个 4 位 8 段共阴极数码管。由于由单片机直接驱动的直流电流不够,数码管亮度显得不足,所以加上三极管 S9013 用以放大电流。因为LED 数码管合适的驱动电流大约为 9mA 到 20mA 左右,为了适 LED 数码管工作电流在 10mA 左右,具体计算如下:Ib=(5V-1.4V-0.7V)/27K=0.110-3Axx 大学 2007 届本科生毕业设计 9 Ie= Ib(+1)=10 mA 使用的 9013 的放大倍数 为 100. 图63.6 发光二极管 LED图 3由于 LED 使

31、用 P0 口驱动要加上上拉电阻如图 37。3.7 电动锁图 3由于电动锁使用 P0 口驱动要加上上拉电阻如图 38。xx 大学 2007 届本科生毕业设计 10 3.8 蜂鸣器图 39由于蜂鸣器使用 P0 口驱动要加上上拉电阻如图 39。xx 大学 2007 届本科生毕业设计 11 3.9 完整电路图图 393.10 使用到的元器件列表xx 大学 2007 届本科生毕业设计 12 元器件规格/型号数量四位八段共阴数码管3461AFR1-B101四位八段共阴数码管SR420361三极管SR90138三极管S9651电阻27k8电阻10k电阻1k电解电容0.47uF/50V1瓷片电容30pF2单片

32、机AT89C511 表 31第 4 章 软件程序设计本系统程序部分使用 C 语言编写,C 语言是一种高级程序设计语言,它的优点是简洁明了、可移植性高。主要完成,开始时数码管显示提示“INPUT”输入密码。输入密码后按下确认键,系统会将所输入与系统密码进行比对。若输入密码正确则显示“PASS”开锁。然后可以选择上锁或者修改密码。开锁后,按下上锁“LOCK”键,系统上锁并返回;选择修改密码则可以对系统进行修改密码操作。在修改密码前要输入正确旧的密码。正确输入旧密码之后,会有提示输入两次新密码,若两次密码一致,则修改成功。期间操作出现失误,系统会返回xx 大学 2007 届本科生毕业设计 13 初始

33、状态,操作错误超过 3 次,系统会锁定键盘,并报警用以防止恶意试探密码。4.1 软件设计流程图xx 大学 2007 届本科生毕业设计 14 开始输入密码正确否?开锁判断按键LOCKModify 键上锁结束输入密码正确否?输入新密码再次输入一致否?修改密码YesNoNoYesNoYes图 414.2 具体功能软件实施4.2.1 开始等待流程xx 大学 2007 届本科生毕业设计 15 系统开始一直显示提示“INPUT”,并判断有否按键,当有键按下跳出等待。 开始显示“INPUT”判断是否有按键?结束NoYes图 424.2.2 密码检查功能本系统使用数组 PASSWORD6存储密码,系统初始化对

34、数组负值 PASSWORD65,6,7,9,10,11相当于键盘上的 1,2,3,4,5,6。输入密码的时候,先将输入的每一位密码分别放置在数组 check6中,然后再将 check6与 PASSWORD6的每一位分别对照。若每一位都相等,密码检查通过。xx 大学 2007 届本科生毕业设计 16 开始输入一位密码,数码管显示“”K=6?k=0按键为CEL?结束YesNoNoYes图 434.2.3 显示功能 本系统使用共阴极数码管显示(如图 35)。选码由 P3 口输出高电平有效,选位由 P1 口输出低电平有效。显示原理如下图及下表: 图 4 表 4显示方式分别有静态显示与动态显示两种。在显

35、示提示信息如:输入密码“INPUT”,操作通过“PASS”,操作错误“ERROR”,4 位数码管上的管脚单片机输出管脚a11P3.7b7P3.2c4P3.1d2P3.5e1P3.6f10P3.3g5P3.0h3P3.4xx 大学 2007 届本科生毕业设计 17 输入旧密码“OLD”,输入新密码“NE”,再次输入“AGAIN”等信息时使用的是动态显示。由于 8 个显示器的段码同名端是连接在一起的,如果选码的管脚(本系统中为 P1)都为 0,那么 8 个显示器则显示同一字符。要使各个数码管出现不同字符必须采用“分时动态扫描”的方法显示。即每次点亮一个 LED 显示器,延时一段时间再点亮下一个 L

36、ED显示器周而复始,8 个 LED 显示器轮流动态扫描。利用人视觉余辉的暂留效应,看起来好像几个显示器上“同时”显示不同的字符。如子程序 view_input_password():void view_input_password(void) for(i=0;i200;i+) P3=0X48;P1=0XFe;/第四个显示器显示 I for(i=0;i200;i+) P3=0X43;P1=0X7F;/第五个显示器显示 N for(i=0;i200;i+) P3=0XCD;P1=0XBF;/第六个显示器显示 P for(i=0;i200;i+) P3=0X62;P1=0XDF;/第七个显示器显示

37、U for(i=0;i200;i+) P3=0X69;P1=0XEF;/第八个显示器显示 T 静态显示应用在输入密码时数码管的显示进行输入密码操作时,每输入一位密码数码管显示一个“”,实施方法为:当有第一个按键时,第八个数码管的片选信号为低电平,其他为高。当有第二个按键时,第八、第七个数码管的片选信号为低,其他为高,如此类推。如子程序 input_view():void input_view(void) /k 为判断输入第几位的变量switch(k) case 0:P1=0XEF;P3=0X01;/显示由右至左 1 个“” case 1:P1=0XcF;P3=0X01;/显示由右至左 2 个“

38、” case 2:P1=0X8F;P3=0X01;/显示由右至左 3 个“” case 3:P1=0X0F;P3=0X01;/显示由右至左 4 个“” case 4:P1=0X0E;P3=0X01;/显示由右至左 5 个“” case 5:P1=0X0A;P3=0X01;/显示由右至左 6 个“” 4.2.4 键盘扫描如图 3-2,本系统使用 44 矩阵键盘当没有键按下时,行线和列线之间是不相连的,若第 N 行与第 M 列的键被按下,那么第 N 行与第 M 列的线就被接通。根据上述原理,本系统的键盘扫描方法是利用 P2 口的低四位作为行扫描线,P2 口的高四位作为列回扫线。具体实施方法为:先使

39、 P2.0 口输出低电平,P2 口其他口输出高电平,然后对 P2.4、P2.5、P2.6、P2.7 四个口分别作判断。若此四口都为高电平,则没有键按下;若有键按下,P2.4、P2.5、P2.6、P2.7 四个口必定有一个口输入为低xx 大学 2007 届本科生毕业设计 18 电平,再判断 P2.4、P2.5、P2.6、P2.7 哪个口为低电平则可判断按键在哪列上。如P2.4、P2.5、P2.6、P2.7 没有低电平,再使 P2.1 为低电平,其他口为高电平,依次扫描下去,找到按键所在的行,再判断 P2 口的高四位哪一位为低,便可知道键在哪一列上。键盘扫描子程序 key()如下:/*加上行扫描信

40、号后,判断 P2 口高四位同时给标记变量 falg 赋值并跳出循环*/void key(void)while(1) P2=0XFE;if(P2_4=0)falg=1;break; if(P2_5=0)falg=2;break; if(P2_6=0)falg=3;break; if(P2_7=0)falg=4;break; P2=0XFd;if(P2_4=0)falg=5;break; if(P2_5=0)falg=6;break; if(P2_6=0)falg=7;break; if(P2_7=0)falg=8;break; P2=0XFb;if(P2_4=0)falg=9;break; if

41、(P2_5=0)falg=10;break; if(P2_6=0)falg=11;break; if(P2_7=0)falg=12;break; P2=0XF7;if(P2_4=0)falg=13;break; if(P2_5=0)falg=14;break; if(P2_6=0)falg=15;break; if(P2_7=0)falg=16;break; 4.2.5 修改密码本系统设定的修改密码过程为,在输入正确的密码后,按 modify,此时提示输入旧密码“old”,输入正确的旧密码后,可以输入新密码。此时键入的六位新密码将保存到数组 check6中。然后显示器提示再次输入,输入完毕后,

42、第二次输入的密码将保存在 check26中,然后将 check6中六位分别与 check26中的六位比对,若两次密码输入一直,即将新的密码,也就是 check26和 check26中的六位赋值到PASSWORD6中。此时修改密码工作完成,系统将跳翻到开始,即提示输入密码“INPUT”。xx 大学 2007 届本科生毕业设计 19 第 5 章 机械部分设计 我本次设计的电子密码锁的机械部分是由单片机 at89c51 带动步进电机进行转动,而步进电机通过联轴器带动齿轮转动,而齿轮和齿条组成传动系统,来控制锁头芯体进行前后移动。从而达到开锁,上锁的目的。总体结构方案如下图:xx 大学 2007 届本

43、科生毕业设计 20 5.1 步进电机的选择 步进电机又称脉冲电动机或阶跃电动机,国外一般称为 STEP motor。目前,随着电子技术、控制技术以及电机本体的发展和变化,传统电机分类间的界面越来越模糊。这将是机电一体化元件组件的必然趋势。就传统的步进电机来说,步进电机可以简单的定义为,根据输入的脉冲信号,每改变一次励磁状态就前进一定角度(或长度) ,若不改变励磁状态则保持一定位子而静止的电动机。从广义上讲,步进电机是一种受电脉冲信号控制的无刷式直流电机,也可看做是在一定频率范围内转速与控制脉冲频率同步的同步电动机。步进电机有如下特点: 步进电动机的角位移与输入脉冲严格成正比,因此,当它转一转后

44、,没有累计误差,具有良好的跟随型。xx 大学 2007 届本科生毕业设计 21 由于步进电动机与驱动电路组成的开环数控系统,既非常简单,廉价,又非常可靠。同时,它也可以与角度反馈环节组成高性能的闭环数控系统。 步进电动机的动态响应快,易于启停、正反转及变速。 速度可在相当宽的范围内平滑调节,低速下仍能保证获得大转矩,因此,一般可以不用减速器而直接驱动负载。 步进电动机只能通过脉冲电源供电才能运行,它不能直接使用交流电源和直流电源。 步进电动机存在振荡和失步现象,必须对控制系统和机械负载采取相应的措施。 步进电动机自身的噪声和振动较大,带惯性负载的能力差。步进电动机可以分为三类:(1)反应式步进

45、电动机反应式步进电动机的转子是由软磁材料制成的,转子中没有绕组。它的结构简单,成本低,步距角可以做的很小,但是动态性能差。(2)永磁试步进电动机永磁试步进电动机的转子式永磁材料做成的,转子本身就是一个磁源。它的输出转矩大,动态性能好,转子的极属和定子的极数相同,所以步距角一般较大。需供给正负脉冲信号。(3)混合式步进电动机混合式步进电动机综合了反应式和永磁试两者的优点,它的输出转矩大,动态性能好,步距角小,但是结构复杂,成本较高。由于反应式步进电动机的性能价格比比较高,因此我选择反应式步进电动机。通过比较我选择我选反应式步进电动机 45BF005参数:步距角 电压 电流 相数 转矩 1.5/3

46、27v 2.5 3 0.196 牛米 5.2 传动齿轮设计 齿轮材料,热处理及精度考虑此电子密码锁的功率较小及现场安装的限制,故大小齿轮都选用硬齿面渐开线斜齿轮(1) 齿轮材料及热处理 材料:选用钢调质,齿面硬度为 280HBS 取齿数=24451Z 齿轮精度按 GB/T100951998,选择 7 级,齿根喷丸强化。初步设计齿轮传动的主要尺寸按齿面接触强度设计xx 大学 2007 届本科生毕业设计 22 2131)(12HEHdttZZuuTKd确定各参数的值:试选=1.6tK查课本机械设计选取区域系数 Z=2.433 H由课本机械设计 78. 0182. 02则6 . 182. 078.

47、0功率 p=272.5=67.5w=0.0675kwn=503=150rpm由机械设计计算应力值环数N =60n j =601501(283008)11hL=0.3610 h9查机械设计得:K=0.93 K=0.9612齿轮的疲劳强度极限取失效概率为 1%,安全系数 S=1,应用公式得: =0.93550=511.5 H1SKHHN1lim1MPa =0.96450=432 H2SKHHN2lim2MPa许用接触应力 MPaHHH75.4712/ )4325 .511(2/ )(21查机械设计得: =189.8MP EZa 得: =0.5d3.设计计算传动齿轮的分度圆直径 dt 12131)(

48、12HEHdttZZuuTKd=mm12.30)75.4718 .189433. 2(25. 324. 46 . 15 . 0196. 06 . 1223计算圆周速度10006011ndtsm/24. 010006015012.3014. 3计算齿宽 b 和模数ntm计算齿宽 b b=15.06mmtdd1计算模数 mn 初选螺旋角=14=ntmmmZdt22. 12414cos12.30cos11xx 大学 2007 届本科生毕业设计 23 计算齿宽与高之比hb齿高 h=2.25 =2.251.22=2.75ntmmm = =5.47hb75. 206.15计算纵向重合度=0.318=1.9

49、031d14tan241318. 0tan计算载荷系数 K使用系数=1AK根据,7 级精度, 查课本由表 10-8 得smv/24. 0192P动载系数 K=1.07,V查课本由表 10-4 得 K的计算公式:194PHK= +0.2310bH)6 . 01 (18. 012. 12d2d3 =1.12+0.18(1+0.61) 1+0.231049.53=1.423查课本由表 10-13 得: K=1.35195PF查课本由表 10-3 得: K=1.2193PHFK故载荷系数:KK K K K =11.071.21.42=1.82HH按实际载荷系数校正所算得的分度圆直径d =d=30.12

50、=32.031t 1tKK /36 . 182. 13mm圆整取 d =32mm1齿轮宽度 B=15mm计算模数nm=nmmmZd29. 12414cos03.32cos115.3 齿条及弹簧的设计 我的传动机构是齿轮齿条传动机构,齿条前端设置一个挡板,弹簧的一端就连在挡板上,另一端就连在齿条上的凸起上。齿条的前端是锁头,锁头设置 45 度斜面,材料选择 45 号钢设计简图如下:xx 大学 2007 届本科生毕业设计 24 齿条结构简单,受力不大,不用考虑过多的应力等要素,所以本次设计没有考虑内在的应力要求,只设计简单的尺寸。1,齿条各部分的长度高度设计 综合考虑到密码锁的锁体大小,我的齿条总

51、长度我取 200mm,宽度和齿轮差不多取 20mm 对于锁头 D 的长度我考虑实际应用不用太长,我取 20mm。 对于齿条上,齿的总长应该至少大于 1.5 倍 D 的长度,应为大于 30mm,我取 40mm。 A 端长度,萎了方便齿轮的安放,我取 30mm。 凸起的作用只求挡住弹簧,我取其宽度 8mm,高 15mm。 而 B 的长度应该大于一半,取 120mm。挡板的长度 12mm,宽度应该比齿条的宽度大一点 40mm.F 的长度我也取 8mm。齿条的高度我取 25mm而装弹簧的 C 是一段直径为 20mm 的圆柱。2,齿条 c 上的弹簧设计计算xx 大学 2007 届本科生毕业设计 25 工

52、作载荷最小工作载荷 F1=0N最大工作载荷 F2=0.1960.02=9.8N工作载荷下的最小压缩变形量错误!未找到引用源。错误!未找到引用源。1=0mm工作载荷下的最大压缩变形量2=20mm工作行程错误!未找到引用源。错误!未找到引用源。=200=20mm载荷的性质是变载荷,且有冲击,属类弹簧。弹簧的结构形式:一端焊接在突起上,另一端自然状态,套在齿条上, 。许用应力=540MP 切变模量 G=80000MP弹簧指数 CC= 这里我取 c 值为 5dD2曲度指数 K=,算出来 k=1.31054-4C1-4CC0.165弹簧丝直径 d1.6=1.6=0.72KF2C54059.81.3105

53、查表去的 d=1mm弹簧的总直径取 D=mm有效工作圈数 n1=7.5 圈2F2C38Gd358 . 9820180000n2=1.52.5,根据结构,两端各并紧一圈 n2=2 圈总圈数 n=n1+n2螺旋角 a=arctg=5 度 44 分D2t弹簧的总长度 30mm 5.4 齿轮的驱动轴设计以及联轴器的选择xx 大学 2007 届本科生毕业设计 26 . 求驱动轴上的功率 P,转速,转矩nTP=67.5W =150r/minn=0.198NmT. 求作用在齿轮上的力 已知传动齿轮的分度圆直径为 =32 dmm而 圆周力 F ,径向力 F 及轴向力 FtraF =tdT2N375.12103

54、2198. 023 F = FrtNoon64. 486.13cos20tan375.12costan F = F tan=12.3750.246734=3.05Nat. 初步确定轴的最小直径先按课本初步估算轴的最小直径,选取轴的材料为 45 钢,调质处理,根据机械设计手册mmnPAdo93min输出轴的最小直径显然是安装联轴器处的直径,为了使所选的轴与联轴器吻合,故需同时选取联 d轴器的型号查机械设计手册选取4aKmNTKTca792. 0198. 04因为计算转矩小于联轴器公称转矩,所以查机械设计手册选取 LT1 型弹性套柱销联轴器其公称转矩为 6.3Nm,半联轴器的孔径kg,转动惯量 0

55、.0005kg.m282. 0.20.9,91质量半联轴器的长度故取mmLmmdmmdxx 大学 2007 届本科生毕业设计 27 . 根据轴向定位的要求确定轴的各段直径和长度。为了满足半联轴器的要求的轴向定位要求,轴的长度 20mm,和轴的直径都取 9mm。-轴段右端需要制出一轴肩,故取-的直径;左端用轴端挡圈定位,按轴端mmd10直径取挡圈直径半联轴器与 为了保证轴端挡圈只压在mmD10轴配合的轮毂孔长度半联轴器上而不压在轴端上, 故-的长度 略短一些,现取mml20-轴的长度取 10mm 行程开关放在锁的后面,它是用来切断步进电动机电源的开关,当锁头处于自然伸长的时候,齿条末尾距离行程开

56、关的距离为 20mm。及当锁头全部缩进锁体内部时,齿条末尾刚好撞到行程开关上,电机断电。这样能够保证电动机不被烧坏。 xx 大学 2007 届本科生毕业设计 28 第 5 章 结束语及展望通过这次毕业设计,让我复习了很多学过的旧知识,同时锻炼了自己的动手能力和查阅资料。尤其是解决在实际中解决排查问题的能力。1、通过这次的设计,我熟悉了使用 Protel 的技巧,学会了制作电路板的一些技巧,并且熟悉了如何选购使用电子元器件。2、在设计中,我学到了如何使用 C 语言对单片机进行编写程序,熟悉了使用KEIL C 软件,并且加深了对单片机的编程技巧。3、在做这个设计的过程中,我遇到了不少的问题。这锻炼

57、了我筛选、查阅资料,并将理论结合到自己的设计中的能力。一步一步的排除故障原因,找到故障的原因并解决故障。4、这次的设计使我对模拟电子、数字电子知识加深了了解,尤其是在对电路进行调试的时候,出现了很多这些方面的问题,通过对以往知识的复习巩固,将问题解决。这次的设计有很多的不足,和市场上的产品有一定的差距,例如没有使用液晶显示屏,电动锁的部分在实物中使用一个 LED 代替等,还可以做得更好,还请老师同学们提出宝贵意见!鸣 谢 29 第 6 章 鸣谢在本次设计完成之际,在这里要衷心感谢我的毕业设计知道老师 xxx 老师在设计中对我的指导、帮助,并且提出了很多非常宝贵的意见。感谢在本次设计中给予我帮助

58、的 xxx、xxx 等各位同学。还要感谢大学四年来教导我的各位老师,不计较浪费自己学习时间帮助我的同学。感谢答辩小组的老师百忙之中对我本次设计的阅览与指导!参考文献 30 第 7 章 参考文献1 当方微型计算机控制技术M中国水利水电出版社,2001 年2 胡汉才单片机原理及其借口技术M清华大学出版社,1996 年3 赵新民智能仪器设计基础M哈尔滨工业大学出版社,1999 年4 潘新,民王,燕芳微型计算机控制技术M电子工业出版社,2003 年5 李钟实实用电子报警器精选百例M北京:科技技术文献出版社,2002 年6 陈爱弟Protel99se 实用培训教程M人民邮电出版社,2000 年。7 阎石

59、数字电子技术基础M高等教育出版社,1998 年8 童诗白模拟电子技术基础M高等教育出版涉,1998 年9 候振鹏嵌入式 C 语言程序设计M北京:人民邮电出版社,2006 年10 徐士良C 语言程序设计教程M北京:人民邮电出版社,2001 年11 Brian W. Kernighan.The C Programming Language. Prentice Hall PTR,198812 Janice Mazidi.8051 Microcontroller and Embedded Systems. Prentice Hall,199913 14 15 16 附 录 31 附 录电子密码锁源程序

60、:#includevoid view_input_password(void);void view_input_error(void);void key1(void);void key2(void);void key3(void);void newpassword(void);void again(void);void key(void);void input_view(void);void voice(void);void view_again(void);void oldpassword(void);unsigned int x,y,i,j,k,falg;unsigned int coun

61、ter=0;unsigned int password6=5,6,7,9,10,11;unsigned int check6;unsigned int check26;void delay();void newpassword(void);main() P0=0;EA=0;start:falg=0; delay(); while(1) P0=0; key1(); if(counter=3) /输入错误超过 3 次报警 P0_1=1;P0_2=0; voice(); counter=0; for(i=0;i255;i+) for(j=0;j255;j+) view_input_error();

62、P3_0=1; goto start; for(k=0;k6;k+)附 录 32 key(); checkk=falg; if(falg=8)k=0;P1=0 xFF;goto start;/取消 if(falg=4) /输入未够 6 位都视作错误k=0;P1=0 xFF;counter+;P0_1=1;P0_2=0;voice(); for(y=0;y100;y+) view_input_error();goto start; input_view(); delay(); key(); if(falg=8)k=0;P1=0XFF;continue; if(falg=4)/按下确认键盘,密码开

63、始比对 for(k=0;k6;k+) if(checkk=passwordk)falg=1;continue; if(checkk!=passwordk) falg=0;counter+;P0_1=1;P0_2=0;voice(); for(i=0;i100;i+) view_input_error();goto start; if(falg=1)/6 位都正确,开锁 P0_1=0;P0_2=1;voice(); for(k=0;k100;k+) for(i=0;i200;i+) P3=0Xcd;P1=0X7F;/P for(i=0;i200;i+) P3=0Xcf;P1=0XBF;/A fo

64、r(i=0;i200;i+) P3=0Xab;P1=0XDF;/S for(i=0;i200;i+) P3=0Xab;P1=0XEF;/S break; if(falg!=1)P0_1=1;P0_2=0;voice();for(i=0;i100;i+) view_input_error();goto start; while(1)附 录 33 P1=0XFF;voice(); key(); if(falg=16)P3=0 xff;P1=0X00;P0_2=0;delay();goto start;/上锁键 if(falg=12)/修改键 delay(); key2(); for(k=0;k6;

65、k+) key(); checkk=falg; input_view(); delay(); if(falg=8)k=0;continue; if(falg=4)k=0;counter=0;goto start; key(); if(falg=8)k=0;continue; if(falg=4) for(i=0;i6;i+) if(checki=passwordi)falg=1;continue; if(checki!=passwordi) counter=0;falg=0; for(j=0;j500;j+) for(k=0;k500;k+) view_input_error();goto s

66、tart; falg=0;for(k=0;k70;k+) P0=0XFF; for(i=0;i200;i+) P3=0Xcd;P1=0X7F;/P for(i=0;i200;i+) P3=0Xcf;P1=0XBF;/A for(i=0;i200;i+) P3=0Xab;P1=0XDF;/S for(i=0;i200;i+) P3=0Xab;P1=0XEF;/S附 录 34 while(1) P1=0XFF; key3(); for(k=0;k6;k+) key(); checkk=falg; input_view(); delay(); if(falg=8)k=0;P1=0 xFF;continue; if(falg=4)k=0;falg=0;counter=0; for(j=0;j50;j+) view_input_error(); goto start; if(k=6)for(j=0;j50;j+)again();break; delay(); while(1) for(k=0;k6;k+) key(); check2k=falg; input_view(); delay(); i

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