1、电子密码锁得设计说明书 院 系: 机电汽车工程学院 专 业: 机械设计制造及其自动化 班 级: 姓 名: 学 号: 指导老师: 同组人员: 中文摘要 摘要: 随着经济得发展,人们对日常生活质量得要求也越来越高,从工作、学习、出行、购物等得各个方面,人们也对现代安全设施提出来更高得要求。在安全技术防范领域,具有防盗报警功能得电子密码锁逐渐代替传统,克服了机械式密码锁密码量少、安全性能差得缺点,使密码锁无论在技术上还就是在性能上都大大提高一步。密码锁具有安全性高、成本低、功耗低、易操作等优点,同时还引入了智能化管理、
2、专家分析系统等功能,从而使密码锁具有很高得安全性、可靠性,应用日益广泛。 本次电子密码锁得设计主要就针对于这种社会需求,从程序设计到硬件设计以及硬件安装连接都做了详细得说明。 设计说明 本次设计使用 ATMEL公司得 AT89C51 实现一基于单片机得电子密码锁得设计,其主要具有如下功能: ①密码通过键盘输入,若密码正确,则将锁打开。 ②报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过 3 次,蜂鸣器报警并且锁定键盘。 电子密码锁得设计主要由三部分组成:4×4 矩阵键盘接口电路、密码锁得控制电路、输出八段显示电路。另外系统还有 LED 提示灯,
3、报警蜂鸣器等. 密码锁设计得关键问题就是实现密码得输入、清除、更改、开锁等功能: ①密码输入功能:按下一个数字键,一个“-”就显示在最右边得数码管上,同时将先前输入得所有“-"向左移动一位。 ②密码清除功能:当按下清除键时,清除前面输入得所有值,并清除所有显示。 ③开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。 主要得设计实施过程:首先,选用 ATMEL公司得单片机 AT89C51,以及选购其她电子元器件.第二步,使用 DXP 2004 设计硬件电路原理图,并设计 PCB图完成人工布线(后因 PCB 板损坏决定采用万能板焊接得方法)。
4、第三步,使用 Keil uVision3 软件编写单片机得 C 语言程序、仿真、软件调试。第四部,使用 PROTEUS 软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次毕业设计。 关键词:4×4矩阵键盘;AT89C51;密码锁;密码二次确认;电子密码锁 目录 中文摘要 ……………………………………………………………… 2 设计说明…………………………………………………………………3 目录………………………………………………………………………5 第1章 系统总体方案设计…………………………………………… 1 1、1 系统法案得选择 ………………………………………
5、……… 1 1、2 系统设计思路……………………………………………………2 第2章 硬件电路设计 ………………………………………………、3 2、1 键盘电路设计 ………………………………………………… 3 2、2 LED显示电路……………………………………………………4 2、3 开锁电路 ……………………………………………………… 6 2、4 报警电路…………………………………………………………7 第3章 软件设计 …………………………………………………… 9 3、1 软件设计思路……………………………………………………9 3、2 各子程序设计……………………………………
6、…………… 10 第4章 系统调试 ……………………………………………………、15 4、1系统硬件连接示意图……………………………………………15 4、2系统测试得局部示意图…………………………………………16 第5章 心得体会………………………………………………………17 第6章 参考文献………………………………………………………18 附 录 ………………………………………………………………19 源程序清单 …………………………………………………………19 第一章:系统得总体方案设计 1、1 系统方案得选择: 综合其她多种方案设计得优缺点,采用以AT89S51为核
7、心得单片机控制方案。利用单片机灵活得编程设计与丰富得IO端口,及其控制得准确性,不但能实现基本得密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图1-2所示. 89S51 单片机 矩阵 键盘 控制 输入错误锁定键盘 延时报警控制电路 AT24C02掉电存储 开锁控制电路 指示电路 串口显示电路 图2-2单片机控制方案 该方案有较大得活动空间,不但能实现所要求得功能而且能在很大得程度上扩展功能,而且还可以方便得对系统进行升级.本方案采用一种就是用以89S51为核心得单片机控制方案。利用单片机
8、灵活得编程设计与丰富得I/O端口,及其控制得准确性,实现基本得密码锁功能。 1、2系统得设计思路: 1、输入密码用矩形键盘,包括数字键与功能键。 2、LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。 3、用发光二极管代替开锁得电路,发光表示开锁。 4、输入密码错误次数超过3次,系统报警. 5、打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。 6、按“C”键,清除显示器为“000000”。 7、欲重新设定密码,先输入密码在案“*”。 8
9、输入密码,再按“D”键.若密码与设定密码相同,则开门。否则显示器清为“000000”。 9、软件得设计主要包括键盘键值得读取,LED显示程序,密码比较程序与报警程序。 第2章 硬件电路设计 2、1 键盘电路设计 使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用得I/O线得数目,在按键比较多得时候,通常采用这样方法。其原理如图2、1 。 图2、1 矩阵键盘 每一条水平(行线)与垂直线(列线)得交叉处不相通,而就是通过一个按键来连通,利用这种行列式矩阵结构只需N条行线与M条列线,即可组成具有N×M个按键得键盘。 在这种行列式矩阵键盘非键盘编
10、码得单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下得程序段。 当确认有按键按下后,下一步就要识别哪一个按键按下.对键得识别通常有两种方法:一种就是常用得逐行扫描查询法;另一种就是速度较快得线反转法。 对照图2、1所示得4×4键盘,说明线反转个工作原理。 首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法就是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线得电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。 判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现得。方
11、法就是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下得键不在此列;如果不全为1,则所按下得键必在此列,而且就是在与零电平行线相交得交点上得那个键。 具体得功能设计如表2、1: 表2、1 按键功能 按 键 键 名 功 能 说 明 1-9键 数 字 键 输 入 密 码 * 键 重 设 密 码 键 设 定 新 密 码 D键 确 定 键 比 较 密 码 # 键 清 除 键 使 显 示 器 清 零 2、2LED显示电路 本系统设计得显示电路就是为了给使用者以提示而设置得。本系统得显示采用串行显示得方式,只使用单片机得一个串行口,利用74LS247驱动
12、数码管发光显示数码与74LS138控制位选信号,就可以完成单片机得显示功能,显示电路得电路原理图如图2、2所示。 用P0、0—P0、3接74LS247得A,B,C,D四端口,74LS247得输出口接LED得七段显示;而P0、4—P0、6接74LS138得A,B,C三个输入口,74LS138得输出口接LED得位显示。通过软件实现数字与位控制。 图2、2 LED显示电路 用74LS247可以控制输出什么字型。74LS247得逻辑功能表如表2、2: 表2、2 74LS247得逻辑功能表 用74LS138控制位循环显示,其逻辑功能表如表2、3: 表2、3 74LS1
13、38逻辑功能表 C B A Y1 Y2 Y0 Y3 Y4 Y5 Y6 Y7 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 2、3 开
14、锁电路 在本次设计中,基于节省材料得原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如2、3所示。当P2、0口输出低电平时,二极管发光,表示开锁。 图3、3 开锁电路 2、4报警电路 图2、4 报警电路 报警模块由蜂鸣器与单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图2、4所示。当89C51得P2、1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。 第三章 软件设计 3、1软件设计思路 电子密码锁工作得主要过程就是LED数码管提示开始输入密码,通过键盘输入密码
15、同时LED显示密码输入情况,按下确认键后判断密码得正确性,作出开锁或报警处理.当输入密码连续输入错误3次时,系统报警。 密码得设定,在此程序中密码就是固定40H—45Hﻩ中,假设预设得密码为"123456”共6位密码。 由于采用两个按键来完成密码得输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码得长度,接着根据密码得长度输入密码得位数,直到所有长度得密码都已经输入完毕;或者输入确认功能键之后,才能完成密码得输入过程。进入密码得判断比较处理状态并给出相应得处理过程。 3、2 各子程序设计 1、 键盘扫描子程序 键盘扫描流程图如图3。2。1 图3
16、2.1 键盘扫描流程图 键盘扫描子程序如下(请结合总程序进行阅读): L2: MOV R3,#0F7H MOV R1,#00H L3: MOV A,R3 MOV P1,A MOV A,P1 MOV R4,A SETB C MOV R5,#04H L4: RLC A JNC KEYIN INC R1 DJNZ R5,L4 CALL DISP MOV A,R3 SETB C
17、 RRC A MOV R3,A JC L3 JMP L2 2、 LED显示子程序 LED显示流程图如图3.2。2 图3.2.2 LED显示流程图 LED显示子程序如下(请结合总程序进行阅读): DISP:MOV R0,#45H DISP1: MOV A,R0 ADD A,#50H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#40H MOV P0,
18、A CALL DELAY DEC R0 MOV A,R0 ADD A,#30H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#20H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#10H MOV P0,A CALL DELAY DEC R0
19、 MOV A,R0 ADD A,#00H MOV P0,A CALL DELAY RET 3 密码比较与报警程序 密码比较与报警流程图如3.2.3 图3.2.3 密码比较与报警流程 密码比较与报警程序(请结合总程序进行阅读): P: MOV R1,#45H MOV R0,#35H MOV R2,#06H C1: MOV A,R1 XRL A,R0 JNZ C3 DEC R1 DEC R0
20、 DJNZ R2,C1 CLR P2、0 MOV R2,#200 C2: MOV R6,#248 DJNZ R6,$ DJNZ R2,C2 C3: INC R5 MOV A,R5 MOV R5,A CJNE R5 ,#03H,C4 CLR P2、1 MOV R5,#00H C4: JMP START 第四章 系统调试 4、1系统硬件连接示意图: 4、2 系统测试得局部 本次调试采用Protues软件仿
21、真.首先设计电子密码锁得源程序,源程序经过汇编后,生成得目标文件经过仿真调试. 依次按下1,2,3,4,5,6后,LED显示如图4、1 图4、1 LED显示 按下确定键后,二极管亮,表示密码正确开门。如图4、2 图4、2 密码正确开门 第6章 心得体会 课程设计旨在让学生养成独立思考研究进而对现实中得问题进行开发解决得过程,就是使学生提高发现、提出、解决问题得能力,锻炼学生实践能力得关键,也就是对学生综合能力与工作能力得具体训练与考察过程。随着科学技术发展得日新日异,单片机已经成为当今计算机应用中空前活跃得领域, 在生活中可以说得就是无处不在。因此作为二十一
22、世纪得大学来说掌握单片机得开发技术就是十分重要得。 回顾起此次两个星期得单片机课程设计过程,至今我仍感慨颇多。从最初得选定课题,到后来辛勤努力得查找资料研究设计,当中有苦也有甜。苦得就是每天都忙忙碌碌得研究问题解决问题,甜得自然就是从解决问题得过程中得到了快乐得到了前所未有得满足感.从中我们不但学习到了新得知识,也对再课堂上学习得理论知识进行了有效得实践,既就是巩固有事发展。通过这次课程设计使我懂得了理论与实际相结合就是很重要得,只有理论知识就是远远不够得,只有把所学得理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己得实际动手能力与独立思考得能力。这次课程设计终于
23、顺利完成了,在设计中遇到了很多编程问题,在同学得帮助下,终于游逆而解。非常感谢! 第7章 参考文献 [1]《单片机原理及及应用》王迎旭编 机械工业出版社 2001 [2]《单片机应用程序设计技术》 周航慈 著 北京航空航天大学出版社 [3] 黄志君,高峰,王建、轮胎压力监测系统[J]、广西工学院学报、2006(4):9~12、 [4] 其她网路知识论坛以及百度文库等. 附 录 源程序清单 ORG 00H MOV R5,#00H MOV R7,#00H DJNZ R7,$ MOV R7,#10H
24、 MOV R6,#06H MOV R1,#35H L1: MOV A,R7 MOV DPTR,#TABLE MOVC A,A+DPTR MOV R1,A DEC R1 INC R7 DJNZ R6,L1 START: ORL P2,#0FFH MOV R4,#06H MOV R0,#40H CLEAR: MOV R0,#00H INC R0 DJNZ R4,CLEAR L2: MOV R3,#0F7H
25、 MOV R1,#00H L3: MOV A,R3 MOV P1,A MOV A,P1 MOV R4,A SETB C MOV R5,#04H L4: RLC A JNC KEYIN INC R1 DJNZ R5,L4 CALL DISP MOV A,R3 SETB C RRC A MOV R3,A JC L3 JMP L2
26、KEYIN: MOV A,R1 XRL A,#0BH JZ X3 MOV A,R1 XRL A,#0FH JZ X4 MOV R7,#10 D1: MOV R6,#24 DJNZ R6,$ DJNZ R7,D1 D2: MOV A,P1 XRL A,R4 JZ D2 MOV A,R1 MOV DPTR,#TABLE MOVC A,A+DPTR MOV R7,
27、A XRL A,#0AH JZ SET0 MOV A,R7 XRL A,#0BH JZ START MOV A,R7 XRL A,#0CH JZ L2 MOV A,R7 XRL A,#0DH JZ L2 MOV A,R7 XCH A,40H XCH A,41H XCH A,42H XCH A,43H XCH A,44H
28、 XCH A,45H CALL DISP JMP L2 X3: JMP DISP2 X4: JMP P DISP: MOV R0,#45H DISP1: MOV A,R0 ADD A,#50H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#40H MOV P0,A CALL DELAY DEC R0 MOV A,R0 A
29、DD A,#30H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#20H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#10H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#00H MOV P0,A CALL
30、 DELAY RET SET0: MOV R2,#06H MOV R0,#40H MOV R1,#30H E1: MOV A,R0 XCH A,R1 INC R0 INC R1 DJNZ R2,E1 CALL DELAY E2: JMP START P: MOV R1,#45H MOV R0,#35H MOV R2,#06H C1: MOV A,R1 XRL A,R0 JN
31、Z C3 DEC R1 DEC R0 DJNZ R2,C1 CLR P2、0 MOV R2,#200 C2: MOV R6,#248 DJNZ R6,$ DJNZ R2,C2 C3: INC R5 MOV A,R5 MOV R5,A CJNE R5 ,#03H,C4 CLR P2、1 MOV R5,#00H C4: JMP START DISP2: MOV R0,#35H
32、 CALL DISP MOV A,P1 XRL A,R4 JZ DISP2 CALL DELAY JMP START DELAY: MOV R7,#C3 D3: MOV R6,#248 DJNZ R7,D3 RET ORG 300H TABLE: DB 01H 02H 03H 0CH DB 04H 05H 06H 0DH DB 07H 08H 09H 0EH DB 0AH 00H 0BH 0FH DB 01H 02H 03H 04H 05H 06H END






