- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
概述
本次基于8051单片机电子密码锁的设计,其主要具有如下功能:
(1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
(2)密码可以由用户自己修改设定(只支持6位密码),锁打开后才能
改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确
以防止误操作。
(3)报警、锁定键盘功能。密码输入用发光管显示,当连续3次输入错误
密码,系统声光报警。
电子密码锁的设计主要由三部分组成:4×4矩阵键盘接口电路、密码锁
的控制电路、输出八段显示电路。另外系统还有LED提示灯等。
密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:
(1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码
管上,同时将先前输入的所有“-”向左移动一位。
(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所
有显示。
(3)密码更改功能:将输入的值作为新的密码。
(4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果
确锁打开,否则不打开。
主要的设计实施过程:首先,选用8051单片机,以及选购其他电子元器件。第二步,设计硬件电路。第三步,编写单片机语言实现功能。第四部,分别进行软件和硬件的调试。最后,联合软、硬件调试整个系统,完成本次课程设计。
关键词:4×4矩阵键盘;8051单片机;密码锁;密码二次确认
课题要求
本次课程设计,基于8051单片机电子密码锁的设计,利用4*4小键盘作为输入,LED作为显示。当输入密码和设定的密码一致时,系统利用继电器输出解锁信号,其主要具有如下功能:
(1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
(2)密码可以由用户自己修改设定(只支持6位密码),锁打开后才能
改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确
以防止误操作。
(3)报警、锁定键盘功能。密码输入用发光管显示,当连续3次输入错误
密码,系统声光报警。
课题分析
电路主要包括矩阵键盘输入密码,外部密码验证,单片控制,原理方框图如下:
图一:电子密码锁原理方框图
4.1矩阵键盘输入控制电路
设计方案是非编码键盘,每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。 行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。通过不断读行线口线,或者中断方式触发键位扫描。 当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。 将每个行线和列线的组合值作成列表,每次就可以通过查表确定键位,以决定之后要进行的操作。
课题方案选择
方案一:使用8051单片机,采用汇编语言编写程序,该程序语言功能强大,调试较为方便,具有很强的实用性。
方案二:利用数字逻辑电路,运用电压比较器,555单稳态电路,计数器,JK触发器,UPS电源等实现对门的电子控制。
方案三:使用8051单片机,利用基于单片机的C语言编写程序,通过Keil C51 uVision2软件进行仿真模拟。
方案二基于数字电路,操作繁琐,会出现较多的器件故障,同时调试复杂,难于维护。方案三该逻辑语言较为复杂,编写程序时也较为复杂,还需进行软件仿真模拟,设计复杂。综上所述,使用方案一,设计较为简便,调试简单,硬件电路较少,易于维护。
程序部分
ORG 1000H
MOV R4,#08H ;密码个数8个
MOV R0,#40H ;密码暂存区
MOV A,#00H ;初始密码0,1,2,3,4,5
GO: MOV @R0,A
INC R0
INC A
DJNZ R4,GO
SETB P3.0; 确认
SETB P3.1 ;锁开
SETB P3.2 ;错误
SETB P3.4 ;报警
MOV R0,#20H
MOV A,#03H
MOV @R0,A ;8155初始化
MOV R0,#79H
MOV R7,#06H
INIT: MOV @R0,#0 ;显示缓冲区清零
INC R0
DJNZ R7,INIT
LOP: LCALL DISP
LCALL KEYB
JB ACC.4,LOP ;未按键返回
MOV R0,#7EH
MOV R7,#05H
PUSH A
SETD: DEC R0
MOV A,@R0
INC R0
MOV @R0,A
DEC R0
DJNZ R7,SETD
POP ACC
MOV @R0,A
MOV 7DH,7CH
CJNE ,A,#0AH,LOP
CLR P3.0
ACALL COMP
文档评论(0)