电子密码锁课程设计任务书 精品

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
1 系统的总体方案设计 (1)
1.1 系统方案的选择 (1)
1.2系统的设计思路: (1)
2 硬件电路设计 (2)
2.1 键盘电路设计 (2)
2.2 LED显示电路 (3)
2.3 开锁电路 (5)
2.4 报警电路 (5)
3 软件设计 (6)
3.1软件设计思路 (6)
3.2 各子程序设计 (6)
4 系统调试 (10)
4.1系统硬件连接示意图: (10)
4.2 系统测试的局部 (11)
5 心得体会 (12)
参考文献 (13)
致谢 (13)
附录 (14)
1 系统的总体方案设计
1.1 系统方案的选择
综合其他多种方案设计的优缺点,采用以AT89S51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。

其原理如图1-1所示。

图1-1单片机控制方案
该方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。

本方案采用一种是用以89S51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。

1.2系统的设计思路:
1.输入密码用矩形键盘,包括数字键和功能键。

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

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

4.输入密码错误次数超过3次,系统报警。

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

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

6.按“C”键,清除显示器为“000000”。

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

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

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

否则显示器清为“000000”。

9.软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序。

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

其原理如图2.1。

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

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

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

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

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

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

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

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

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

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

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

本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和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 开锁电路
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。

电路图如2.3所示。

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

图2.3 开锁电路
2.4 报警电路
图2.4 报警电路
报警模块由蜂鸣器和单片机组成。

选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。

蜂鸣器电路如图2.4所示。

当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。

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

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

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

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

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

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

3.2 各子程序设计
1. 键盘扫描子程序
键盘扫描流程图如图3.2.1
图3.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
RRC 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,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#30H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
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 DELAY
RET
3 密码比较和报警程序
密码比较和报警流程图如3.2.3
图3.2.3 密码比较和报警流程
密码比较和报警程序(请结合总程序进行阅读):
COMP: MOV R1,#45H
MOV R0,#35H
MOV R2,#06H
C1: MOV A,@R1
XRL A,@R0
JNZ 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
4 系统调试
4.1系统硬件连接示意图:
图4.1 系统硬件连接示意图
4.2 系统测试的局部
本次调试采用Protues软件仿真。

首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。

依次按下1,2,3,4,5,6后,LED显示如图4.2
图4.2 LED显示
按下确定键后,二极管亮,表示密码正确开门。

如图4.3
图4.3 密码正确开门
5 心得体会
经过此次两个星期的单片机课程设计过程,我感慨颇多。

从最初的选定课题,到后来辛勤努力的查找资料研究设计,当中有苦也有甜。

苦的是每天都忙忙碌碌的研究问题解决问题,甜的自然是从解决问题的过程中得到了快乐得到了前所未有的满足感。

从中我们不但学习到了新的知识,也对再课堂上学习的理论知识进行了有效的实践,既是巩固有事发展。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

参考文献
[1]《单片机原理及及应用》王迎旭编著机械工业出版社
[2]《单片机应用程序设计技术》周航慈编著北京航空航天大学出版社
[3]《单片机原理及应用》江世民编著中国铁道出版社
[4]《单片机原理及应用实验教程》江世民编著中国铁道出版社
致谢
在此,我非常感谢我的指导老师申寿云老师和同学对我的指导和帮助。

附录
源程序清单:
ORG 00H
MOV R5,#00H
MOV R7,#00H
DJNZ R7,$
MOV R7,#10H
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
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
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,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
XCH A,45H
CALL DISP
JMP L2
X3: JMP DISP2
X4: JMP COMP
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
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
MOV A,@R0
ADD A,#00H
MOV P0,A
CALL 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 COMP: MOV R1,#45H
MOV R0,#35H
MOV R2,#06H C1: MOV A,@R1
XRL A,@R0
JNZ 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
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。

相关文档
最新文档