语言单片机电子密码锁简析.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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)

富贵礼包 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档