![单片机密码锁设计_自己做的[1].doc_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-2/29/21c18a6d-939b-45c2-92fa-2cc388398abc/21c18a6d-939b-45c2-92fa-2cc388398abc1.gif)
![单片机密码锁设计_自己做的[1].doc_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-2/29/21c18a6d-939b-45c2-92fa-2cc388398abc/21c18a6d-939b-45c2-92fa-2cc388398abc2.gif)
![单片机密码锁设计_自己做的[1].doc_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-2/29/21c18a6d-939b-45c2-92fa-2cc388398abc/21c18a6d-939b-45c2-92fa-2cc388398abc3.gif)
![单片机密码锁设计_自己做的[1].doc_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-2/29/21c18a6d-939b-45c2-92fa-2cc388398abc/21c18a6d-939b-45c2-92fa-2cc388398abc4.gif)
![单片机密码锁设计_自己做的[1].doc_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-2/29/21c18a6d-939b-45c2-92fa-2cc388398abc/21c18a6d-939b-45c2-92fa-2cc388398abc5.gif)
已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密码锁的设计一、实验方案:利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。在该实验中共设了9个用户输入键,其中只有6个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过15秒电路将报警10秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。其原理如图所示。单片机矩阵键盘控制输入错误锁定键盘延时报警控制电路AT24C02掉电存储开锁控制电路指示电路串口显示电路二、总体设计初步设计思路如下:1输入密码用矩形键盘,包括数字键和功能键,数字键包括数字09功能键包括退格键和确认键。2LED数码管显示输入密码,但是只是输出显示符号8 。采用动态扫描输出。3用发光二极管模拟锁的情况,锁关时发光二极管灭,打开时发光二极管亮。4输入密码错误时报警,3次输入错误时键盘锁定5min,防止他人非法操作。 软件的设计主要包括矩形键盘键值的读取、LED动态扫描输出程序、密码判断程序和报警程序。 三、硬件设计根据设计思路,硬件电路可通过实验平台上的一些功能模块电路组成,由于实验平台上的各个功能模块已经设计好,用户在使用时只要设计模块间电路的连接,硬件电路由LED数码管显示模块、按键模块、开锁模块和报警锁定模块等组成。四、整体设计的流程图如下:开始初始化提示输入密码有键按下?启动定时识别按键全部按完?超时?密码正确?比较密码自动更新3次?报警锁定开锁NYNYYNNYYN五、模块设计1、LED显示电路电路设定:当程序检测在2分钟内没有按键操作的时候,就关闭显示。这个功能使用程序来实现的,一旦没有按键动作就启动一个定时器,检测在2分钟内没有按键动作的时候,启动一个程序,关闭显示。从单片机串口输出的信号先送到移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的目的。2、按键电路设计按键模块包括有数字键和功能键。数字键包括09键,用于密码的输入。功能键有退格键和确认键。具体的功能定义如下表。具体的功能定义如下表。按键键名功能说明09键数字键输入密码A键退格键取消刚才输入的密码B键确认键密码输入完成此部分电路如下:关于矩阵式键盘的工作过程: 键扫描: CPU先通过输出口使所有列线输出为低电平,然后从输入口读入所有行线的状态。若行线状态都为高电平,则说明没有键被按下,若行线中有低电平,则表明有键被按下。 判断按键位置。CPU通过输出口使列线从低位至高位逐位变低电平输出,每次均读入行线的状态,以确定那条列线为“0”状态。由行、列线的状态就可判断是哪一个键被按下(行、列交叉处) 当判断出哪个键压下后,程序转入相应的键处理程序。 参照本例:1、检测当前是否有键被按下。检测的方法是P1.4-P1.7输出全“0”,读取P1.0-P1.3的状态,若P1.0-P1.3为全“1”,则无键闭合,否则有键闭合。 2、去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。 3、若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描。P1.4-P1.7按下述4种组合依次输出: P1.7 1 1 1 0P1.6 1 1 0 1P1.5 1 0 1 1P1.4 0 1 1 1在每组行输出时读取P1.0-P1.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用查表法将闭合键的行值和列值转换成所定义的键值4、为了保证键每闭合一次CPU仅作一次处理,必须去除键释放时的抖动。3、开锁机构和报警模块通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。当用户输入的密码正确而且是在规定的时间(普通用户要求在12s内输入正确的密码,管理员要求在5s输入正确的密码)输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。其实际电路如图22所示。电路驱动和开锁两级组成。由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管如9014、9018都可以满足要求。D5作为开锁的提示;由D6、C24、T11组成。其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。T11可选用中功率的三极管如8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。4、 关于AT24C02掉电存储单元的设计 这是比较陌生的一块知识内容,所以靠自己开始想,考虑不到这方面,所以这边只能将别的实验中的这部分内容应用于此。掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。其电路如所示。掉电存储电路原理图图中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。5密码锁的电源电路设计为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。电源电路图如图所示。市电供电电路220V市电通过变压器降压成12V的交流电,再经过整流桥整流,7805稳压到5V送往电子切换电路,由于本电路功耗较少,所以选用10W的小型变压器。由R8,R9,R6,R7及IC14构成电压比较器,正常情况下,V+V- IC14输出高电平,由T3,T4构成的达林顿管使继电器J开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。其电路图如下所示:停电检测及电子开关切换电路T1,T2构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D1亮为正在充电,D2为工作指示。由R4,R5,T1构成电压检测电路,蓄电池电压低,则T1,T2导通,实现对其充电;充满后,T1,T2截止,停止充电,同时D1熄灭,电路中C4的作用是滤除干扰信号。其电路图如图所示:蓄电池自动充电电路注:此部分内容都是将别人的经验应用于此,自己是很难想到的。不过经过自习学习,发现思路并不难,这边用到模电以及PLC的一些知识,只是自己的知识太缺乏,所以学习得不断深入进行。六、整体设计框图修改如下:输入错误锁定键盘AT89S51单片机矩阵键盘控制延时报警控制电路电源电路及UPS电路开锁控制电路AT24C02掉电存储指示电路串口显示电路七、程序代码如下:;显示缓冲区LED1 EQU 6FHBUFF EQU 6EHTIMERS1 EQU 6DH ;输入回车的次数TIMERS2 EQU 6CH ;报警的次数TIMERS EQU 6BH ;输入数字的位数LED6 EQU 6AH;密码缓冲区PS1 EQU 69HPS2 EQU 68HPS3 EQU 67HPS4 EQU 66HPS5 EQU 65HPS6 EQU 64H;AT24C02读取缓冲区AT1 EQU 63HAT2 EQU 62HAT3 EQU 61HAT4 EQU 60HAT5 EQU 5FHAT6 EQU 5EH;按键标志位F_1 BIT 20HF_2 BIT 21HF_3 BIT 22HF_4 BIT 23HBUF_FULL BIT 24H ;密码已经够六位的标志位,为1表示满CH_STATE BIT 25H ;系统更改的状态标志位,为1表示忙PSW_F BIT 29H ;密码是否正确的标志位;口资源定义SPK BIT P2.1JDQ BIT P2.3SDA BIT P2.4 ;定义串口数据端SCL BIT P2.5ORG 0000HAJMP MAINORG 000BHAJMP TIMER0ORG 001BHAJMP TIMER1ORG 0030HMAIN:MOV SP, #70HMOV TMOD, #11H ; 00010001HMOV TH0, #3CHMOV TL0, #0B0HMOV TH1, #3CHMOV TL1, #0B0HCLR F_1 ;清除标志位CLR F_2CLR F_3CLR F_4CLR BUF_FULLCLR CH_STATECLR F_F1CLR F_F2CLR PSW_FMOV BUFF,#00H ;调用LCALL INITPS ;初始化环境LCALL INITATLCALL XSA ;调用默认显示MOV TIMERS1,#00HMOV PS1, #00H ;初始化密码为学号050906MOV PS2, #05HMOV PS3, #00HMOV PS4, #09HMOV PS5, #00HMOV PS6, #06HSTART: ;程序开始LCALL CH_KEY ;检查键盘AJMP START ;返回CH_KEY:LCALL KS ;检查有没有按键按下JNZ LK1AJMP CH_KEYLK1:LCALL T12MSACALL KSJNZ LK2RETLK2:NOPLCALL SBIE ;调用按键识别子程序;*数字按键输入并且存放到缓冲区内等待比较*KEY_DIG: ;设一标志,辨别输入是否满SETB TR0INC TIMERS ;输入数字的位数MOV A, TIMERSCLR CSUBB A, #01HJNZ PS_2MOV PS1, BUFF ;依照顺序存放密码AJMP NEXTPS_2:MOV A, TIMERSSUBB A, #02HCLR CJNZ PS_3MOV PS2, BUFFAJMP NEXTPS_3:MOV A, TIMERSCLR CSUBB A, #03HJNZ PS_4MOV PS3, BUFFAJMP NEXTPS_4:MOV A, TIMERSCLR CSUBB A, #04HJNZ PS_5MOV PS4, BUFFAJMP NEXTPS_5:MOV A, TIMERSCLR CSUBB A, #05HJNZ PS_6MOV PS5, BUFFAJMP NEXTPS_6:MOV A, TIMERSCLR CSUBB A, #06HJNZ CH_KEYMOV PS6, BUFFNEXT: MOV R7, TIMERS ;比较输入的次数。CJNE R7, #06H ,FULLFULL:JC NEXT9SETB BUF_FULLMOV TIMERS,#06HCLR P2.1 ;接蜂鸣器LCALL T100MSD ;调用延时100msSETB P2.1AJMP CH_KEYNEXT9:CLR P2.1 ;密码输入一位,鸣叫一声。LCALL T100MSD SETB P2.1AJMP CH_KEY;*功能按键比较并且跳转*KEY_FUN:CLR CMOV A, BUFFSUBB A, #03H ;按键“清除”跳转JNZ EN_CAJMP CLEN_C:CLR CMOV A, BUFF ;按键“确认”跳转SUBB A, #00HJNZ F1_CAJMP ENF1_C:CLR CMOV A, BUFFSUBB A, #1BHJNZ F2_CAJMP FU1F2_C:CLR CMOV A, BUFFSUBB A, #1AHJNZ F3_CAJMP FU2F3_C:CLR CMOV A, BUFFSUBB A, #19HJNZ F4_CAJMP FU3F4_C:CLR CMOV A, BUFFSUBB A, #18HJZ FU4EXIT8:LJMP CH_KEY;*开门子程序 *CL:MOV TIMERS,#00HLCALL INITPS ;消除AT缓冲,加调电存储后一定要加上LCALL BPLCALL T100MSDLCALL BPAJMP CH_KEYFU4:LCALL BPLCALL T100MSDLCALL BPLCALL T100MSDLCALL BPLCALL T100MSDLCALL BPLCALL T100MSDLCALL BPAJMP CH_KEYFU3: LCALL BPLCALL T100MSDLCALL BPLCALL KILLXS ;关闭显示CLR FLAG1AJMP CH_KEYFU2: JB F_F2, NEXT_F2LCALL BPSETB F_F2AJMP CH_KEYNEXT_F2: LCALL BPCLR F_F2AJMP CH_KEYFU1: JB F_F1, NEXT_F1LCALL BPSETB F_F1AJMP CH_KEYNEXT_F1:LCALL BPCLR F_F1LCALL CH_STATE ;查看现在的状态以防误按SETB TR1 ;报警限制暂时不开INC F_F1AJMP CH_KEY;*按键及开锁*EN: JB BUF_FULL, FUNCAJMP EXITFUNC:CLR BUF_FULLLCALL AT_RADELCALL C_PSW ;调用比较密码子程序JB PSW_F,OPEN ;密码比较正确,则调用开锁子程序INC TIMERS2MOV R7,TIMERS2 ;密码错误,调入输入密码输入次数,准备锁定键盘CJNE R7,#03H,D0D0:JC NEXT1 ;错误次数小于3次LCALL XSA ;锁定2分钟LCALL WARN10SLCALL LOCK_2MNEXT1:LCALL WARN10S ;报警10秒钟EXIT:LCALL INITPSMOV BUFF, #00HMOV TIMERS, #00HAJMP CH_KEY ;跳出OPEN:MOV A, TIMERS1CJNE A, #09H,CLT1CLT1:JC FUNC1MOV TIMERS1,#00HFUNC1:INC TIMERS1 ;输入回车的次数MOV TIMERS2,#00HCLR PSW_FCLR JDQ ;开门LCALL BPLCALL BPLCALL BPLCALL BPLCALL SECLCALL SECLCALL SECLCALL SECLCALL SECLCALL SECLCALL SECSETB JDQLCALL XSAAJMP EXIT;*各类子程序*CLR_BUF: MOV R7, #06HMOV R0, #6FHLOOP1:MOV A, #00HMOV R0, ADEC R0DJNZ R7,LOOP1RET;*初始化显示缓冲区以及其他缓冲区*INITPS:PUSH ACCPUSH PSWMOV R7, #06HMOV R1, #PS1MOV A, #00HINIT_PS:MOV R1, ADEC R1DJNZ R7, INIT_PSPOP PSWPOP ACCRET INITAT:PUSH ACCPUSH PSWMOV R7,#06HMOV R1,#AT1MOV A, #00HINIT_AT:MOV R1, ADEC R1DJNZ R7, INIT_ATMOV TIMERS,#00H ;密码输入的次数清零。POP PSWPOP ACCRETKS:MOV P0, #0FHMOV A, P0CPL AANL A, #0FHRETT12MS:MOV R7, #18HTM1:MOV R6, #0FFHTM66:DJNZ R6, TM66DJNZ R7, TM1RET;*密码判断程序*C_PSW:PUSH PSW ;保护现场PUSH ACCMOV R2,#06HMOV R0,#PS1MOV R1,#AT1C_P:CLR CMOV A,R0SUBB A,R1JNZ RETURNDEC R0DEC R1DJNZ R2,C_PSETB PSW_FAJMP EXIT7RETURN:CLR PSW_FEXIT7:NOPPOP ACCPOP PSWRET;*锁定及报警程序*LOCK_2M: MOV R4,#78H ;锁定2分钟M1_LOOP:LCALL SECDJNZ R4,M1_LOOPRETWARN10S:PUSH PSWPUSH ACCMOV R5, #14H ;调用100次BP,报警10sWARN:LCALL BPDJNZ R5,WARNPOP ACCPOP PSWRETBP:CLR SPK ;鸣笛子程序LCALL T100MSDSETB SPKRET;* 显示子程序 *;功能:分屏幕显示数据,分别是XSA,XSB代表两种种状态。;锁定状态显示。XSA:PUSH ACCPUSH PSWMOV A, TIMERS1MOV DPTR, #TABMOV C A, A+DPTRMOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 期中专题复习-词汇句型训练-2025-2026学年 译林版2024 英语八年级上册 解析卷
- 河南省洛阳市涧西区2024-2025学年三年级下册期末英语试题(含答案无听力原文无听力音频)
- 2025七年级试卷第三单元 秦汉时期:统一多民族封建国家的建立和巩固 单元试卷(含答案)
- 中考语文小说阅读赏练-包利民小说(含解析)
- 达旗安全培训教育基地课件
- 基于数字孪生的仪表系统全生命周期运维模式创新与成本效益悖论
- 城市密集区微型分类屋的适老化设计与无障碍使用场景重构
- 国际能源署标准与本土油气管网能效评价体系兼容性矛盾解析
- 噻吩基丙酮衍生物的绿色合成路径与工业级成本效益平衡研究
- 可降解生物材料在分体筷标准型筷柄中的产业化应用瓶颈分析
- 道路运输安全员考试题库及答案
- 2025年全国高考一卷英语真题(解析版)
- 食品安全包保制度
- Module 1 Unit 1 How long is the Great Wall(教学设计)-2023-2024学年外研版(一起)英语六年级上册
- 2025重庆某国有企业招聘新媒体运营(偏拍摄剪辑)参考题库含答案
- GJB297B-2020钝化黑索今规范
- 考勤管理制度全套表格
- 关于懂你的600字初三作文9篇
- 2025-2026学年青岛版(五四制)(2024)小学科学三年级上册(全册)教学设计(附目录P230)
- 联邦学习在二零二五年保险精算模型跨机构协作中的实践
- 2025至2030年中国猫砂行业发展监测及投资战略研究报告
评论
0/150
提交评论