当前位置:文档之家› 电子密码锁设计报告

电子密码锁设计报告

电子密码锁设计报告湖南工程学院课程设计任务书课程名称单片机原理与应用课题电子密码锁设计专业班级电子信息0801 学生姓名学号指导老师周向红、李晓秀、赵葵银审批周向红任务书下达日期 2011年 5月 9 日任务完成日期2011年 5月 25 日345目录第1章概述 .....................P7 第2章系统总体方案设计 .....................P8 第3章硬件设计 .....................P9 第4章软件设计及调试 .....................P12 第5章总结 .....................P15 第6章参考文献 .....................P15 第7章附录A 系统硬件原理图 ...............P16 第8章附录B 程序清单 .....................P1667第1章概述密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。

它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。

现在应用较广的数字密码锁是以芯片为核心,通过编程来实现的。

其性能和安全性已大大超过了机械锁。

其特点是保密性好,随机开锁成功率几乎为零。

密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。

无活动零件,不会磨损,寿命长。

使用灵活性好,不像机械锁必须佩带钥匙才能开锁。

数字密码锁操作简单易行,一学就会。

本设计使用软件仿真,实现了既定的功能和要求,能使系统正确地开启密码锁和更改密码,而数码管能够正确地显示输入密码。

本实验设计了16个开关按键,每次按下键需要检验是否确实按下,若是则输入密码;否则,就等待按键按下。

关键字:AT89C51、7段LED数码管、74LS247、74LS138、与非门、4*4矩阵键盘等89第2章 系统总体方案设计用以AT89S51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的IO 端口,及其控制的准确性,完成设计的要求和功能。

其原理如图所示。

单片机控制方案 初步设计思路如下:输入密码用矩形键盘,包括数字键和功能键。

LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。

用发光二极管代替开锁的电路,发光表示开锁。

输入密码错误次数超过3次,系统报警(用红色LED灯代替)。

打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。

这样可预防停电后再来电时无密码可用。

按“#”键,清除显示器为“000000”。

欲重新设定密码,先输入密码在按“*”。

输入密码,再按“D”键。

若密码与设定密码相同,则开门。

否则显示器清为“000000”。

第3章硬件电路设计3.1 键盘电路设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。

其原理如下图:矩阵键盘10每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。

在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就要识别哪一个按键按下。

对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。

对照图所示的4×4键盘,说明线反转个工作原理。

首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。

方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。

如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。

判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。

方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

具体的功能设计如表:按键功能表# 键清除键使显示器清零3.2 LED显示电路本系统设计的显示电路是为了给使用者以提示而设置的。

本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路的电路原理图如图所示。

LED显示为4位共阳极显示器,用P0.0—P0.3接74LS247的A,B,C,D四端口,74LS247的输出口接LED 的七段显示(输出端低电平有效);而P0.4—P0.6接74LS138的A,B,C 三个输入口,74LS138的输出口接LED的位显示。

通过软件实现数字和位控制。

LED显示电路3.3 开锁电路在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。

电路图如下所示。

当P2.0口输出低电平时,二极管发光,表示开锁。

开锁电路3.4报警电路报警模块由红色LED灯和单片机组成。

当89C51的P2.1口输出为低电平时,红色LED灯亮,89C51输出为高电平时,红色LED灯处于熄灭状态。

第四章软件设计4.1软件设计思路电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。

当输入密码连续输入错误3次时,系统报警。

密码的设定,在此程序中密码是固定40H—45H 中,假设预设的密码为"123456"共6位密码。

由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。

在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。

进入密码的判断比较处理状态并给出相应的处理过程。

4.2 各子程序设计通过流程图来体现各个子程序的工作原理,及程序执行情况和功能。

4.2.1 、键盘扫描子程序流程图:键盘扫描流程图4.2.2 、LED显示子程序流程图:LED显示流程图4.2.3、密码比较和报警程序警流程图:密码比较和报警流程4.2.4、延时子程序说明:我们的延时子程序通过软件延时,也就是先个两个寄存器分别赋予初值,然后减一之后判断是否为零,都为零时延时结束,不为零继续执行,从而实现延时。

第五章总结第六章参考文献1.王迎旭编.《单片机原理与应用》[M].机械工业出版社.2.楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.3.黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社4.刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.5.陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社. 第七章附录A 系统硬件原理图第八章附录B 程序清单ORG 0000H ;程序初始化及原始密码输入程序 MOV R7,#00HDJNZ R7,$MOV R7,#10HMOV R6,#06HMOV R1,#35HMOV R5,#00HL1: MOV A,R7MOV DPTR,#TABLEMOVC A,@A+DPTRMOV @R1,ADEC R1INC R7DJNZ R6,L1START: MOV P2,#0FFH ;键盘扫描程序 MOV R4,#06HMOV R0,#40HCLEAR: MOV @R0,#00HINC R0DJNZ R4,CLEARL2: MOV R3,#0F7HMOV R1,#00HL3: MOV A,R3MOV P1,AMOV A,P1MOV R4,ASETB CMOV R6,#04HL4: RLC AJNC KEYININC R1DJNZ R6,L4CALL DISPMOV A,R3SETB CRRC AMOV R3,AJC L3JMP L2KEYIN: MOV A,R1 ;判断键值程序XRL A,#0BHJZ X3MOV A,R1XRL A,#0FHJZ X4MOV R7,#10D1: MOV R6,#24DJNZ R6,$DJNZ R7,D1D2: MOV A,P1XRL A,R4JZ D2MOV A,R1MOV DPTR,#TABLE MOVC A,@A+DPTR MOV R7,AMOV A,R7XRL A,#0AHJZ SET0MOV A,R7XRL A,#0BHJZ STARTMOV A,R7XRL A,#0CHJZ L2MOV A,R7XRL A,#0DHJZ L2MOV A,R7XRL A,#0EHJZ L2MOV A,R7XCH A,40HXCH A,41HXCH A,42HXCH A,43HXCH A,44HXCH A,45HCALL DISPJMP L2X3: JMP DISP2X4: JMP COMPDISP: MOV R0,#45H ;显示程序 MOV A,@R0ADD A,#50HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#40HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#30HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#20HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#10HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#00HMOV P0,ACALL DELAYRETSET0: MOV R2,#06H ;重设密码程序 MOV R0,#45HMOV R1,#35HE1: MOV A,@R0XCH A,@R1DEC R0DEC R1DJNZ R2,E1CALL DELAYE2: JMP STARTCOMP: MOV R1,#45H ;密码比较 MOV R0,#35HMOV R2,#06HC1: MOV A,@R1XRL A,@R0JNZ C3 ;错误跳转 DEC R1DEC R0DJNZ R2,C1CLR P2.0MOV R1,#50 ;密码正确CC2: MOV R2,#100C2: MOV R6,#100DJNZ R6,$DJNZ R2,C2DJNZ R1,CC2JMP STARTC3: CLR P2.2 ;密码错误显示 MOV R1,#10CC5: MOV R2,#100C5: MOV R6,#100DJNZ R6,$DJNZ R2,C5DJNZ R1,CC5INC 46HMOV A,46HCJNE A,#03H,CC4 ;错误是否有3次判断 MOV 46H,#00HACALL K1CC4: JC C4C4: JMP STARTK1: SETB P2.2MOV R0,#3K11: CLR P2.1MOV R2,#20KK1: MOV R3,#50KK2: MOV R4,#100DJNZ R4,$DJNZ R3,KK2DJNZ R2,KK1RETDISP2: MOV R0,#35H ;清零程序CALL DISPMOV A,P1XRL A,R4JZ DISP2CALL DELAYJMP STARTDELAY: MOV R7,#93 ;延时子程序D3: MOV R6,#248DJNZ R7,D3RETORG 0300HTABLE: DB 01H,02H,03H,0CHDB 04H,05H,06H,0DHDB 07H,08H,09H,0EHDB 0AH,00H,0BH,0FHDB 01H,02H,03H,04H,05H,06HEND电气与信息工程系课程设计评分表指导教师签名:________________日期:________________注:①表中标*号项目是硬件制作或软件编程类课题必填内容;②此表装订在课程设计说明书的最后一页。

相关主题