[说明]饭店飞人染发膏
第一节 引言
1.1 简述电子密码锁
随着社会物质财富的日益增长和人们生活水平的提高,安全成为居民最为重视的问
。而锁自古以来就是把守门的铁将军,人们对它的要求十分高,既要求可靠的防盗,又要求简单方便,这也是制锁者长久以来亘古不变研究的主题。传统的门锁需要涉及大量的钥匙,又要担心钥匙丢失后的麻烦。另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。从而使密码锁具有很高的安全性、可靠性。目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。
很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。
设计本课题时构思的
,:采用以AT89C2051为核心的单片机控制方案;能防止多次试探而不被破译,从而有效地克服了现实生活中存在的许多缺点。 1.2 本设计主要任务
以下是初步设定的电子密码锁的功能:
(1)共8位密码,每位的取值范围为1,8。
(2)用户可以自行设定和修改密码。
(3)按每个密码键时都有声、光提示。
(4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。 (5)开锁密码错3次要报警10分钟,报警期间输入密码无效,以防窃贼多
次试探密码。
(6)键入的8位开锁密码完全正确才能开锁,开锁时要有1秒的提示音。 (7)密码键盘上只允许有8个密码按键和1个发光管因此,锁内有备用电池,
只有内 部上电复位时才能修改或设置密码。因此,仅在门外按键是不能
修改或设置密码的。
(8)密码设定完毕后要有2秒的提示音。
1.3 系统主要功能
本系统主要由单片机系统、键盘、报警系统组成。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用。
第二节 系统主要硬件电路设计
2.1 系统的硬件构成及功能
根据总体的要求,我们所设计的密码锁电路需要的I/O口线要少于15个,所以应该选择价廉物美的AT89C2051,而且还不需要外接程序存储器和数据存储器及其它拓展部件。
电子密码锁是有电路部分和机械部分组成的,此次设计的电子密码锁可以完成密码的修改、设定及非法入侵报警、驱动外围电路等功能。
进行修改密码操作的实质就是输入的新密码代替原来的旧密码。密码的存储用存储一位地址加1,密码位数减1进行操作,当八个地址均存入一位密码,既密码位数减为0时,密码输入完毕,此时按下确认键,新密码产生,跳出子程序。为防止非管理员任意的进行密码修改,必须输入正确密码后,按修改密码键,才能重新设置密码。密码输入值的比较主要有两部分,密码位数与内容任何一个条件不满足,都将会产生出错信息。当连续三次输入密码出错时,就会出现报警信息,LED显示出错信息,蜂鸣器鸣叫,提醒人注意。
从硬件上来看,它由四个部分都成,分别是:
(1)、LED显示器,显示亮度均匀,显示管各段不随显示数据的变化而变化,
价格低廉,它用于显示键盘输入的相应信息
(2)、无须再加外部EPROM存储器,且外围扩展器件较少的AT89C2051单
片机是整个电路的核心部分
(3)、振荡电路为CPU产生赖以工作的时序
(4)、显示灯是通过CPU输出的一个高电平,通过三极管放大,驱动继电器
吸合,使外加电压与发光二极管导通,从而使发光二极管发光,电机
工作
在电路中,P1口连接8个密码按键AN1,AN8,开锁脉冲由P3.5输出,报警和提示音由P3.7输出。BL是用于报警与声音提示的喇叭,发光管D1用于报警和提示,L是电磁锁的电磁线圈。
图1 电子密码锁硬件电路图
2.2 AT89C2051单片机及其引脚说明
AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、
造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器。
AT89C2051是一个有20个引脚的芯片,引脚配置如图2所示。与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。
图2 AT89C2051引脚配置
AT89C2051芯片的20个引脚功能为:
VCC 电源电压
GND 接地
RST 复位输入,当RST变为高电平并保持2个机器周期时,所有I/O
引脚复位至1
XTAL1 反向震荡放大器的输入及内部始终工作电路的输入 XTAL2 来自反向震荡放大器的输出
P1口 8位双向I/O口。引脚P1.2,P1.7提供内部上拉,当作为输入并
被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘
故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正
向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收
20mA电流,并能直接驱动LED显示器;P1口引脚写入“1” 后,
可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数
据
P3口 引脚P3.0,P3.5与P3.7为7个带内部上拉的双向I/0引脚。P3.6
在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。
P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,
内部上拉,可用输入。P3口也可用作特 殊功能口,功P3口同时
也可为闪速存储器编程和编程校验接收控制信号。
1 P3口特殊功能
第三节 系统软件设计
3.1 软件设计思想
软件任务分析环节是为软件设计做一个总体规划。从从软件的功能来看可以分为两大类:一类是执行软件,它能完成各种实质性的功能(如计算、显示、输出控制和通信等);另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色;执行软件的设计偏重算法效率,与硬件关系密切,千变万化;监控软件着眼全局,
主要处理人机关系,特点是逻辑严密、千头万绪。
本设计要完成的软件任务主要有:一是键盘输入的识别;二是8位LED的显
示;三是密码的比较、修改、存储;;四是报警和开锁控制电平的输出。
根据以上任务,结合硬件结构,可以将键盘输入的识别用来作为系统的监控程序(主程序),用显示程序来延时,不断查询键盘。如果有键按下,就得到相应的键值。结合当前系统所处的状态,调用不同的操作模块,实现相应的功能。而执行模块主要有数字输入模块、确定键模块、修改键模块、显示模块及报警模
块。
3.2 存储单元的分配
该电子密码锁中RAM存储单元的分配方案如下:
31H,38H 依次存放8位设定的密码,首位密码存放在31H单元中
R0 指向密码地址
R2 已经键入密码的位数
R3 存放允许的错误次数3与实际错误次数的差值
R4,R7 延时使用
00H 错误标志位
对于ROM存储单元的分配,由于程序比较短,而且占用的存储空间比较少,因此,在无特殊要求时,可以从0030H单元(其它地址也可以)开始存放主程序。
3.3 系统源程序
ORG 0000H
AJMP START
ORG 0030H
START:ACALL BP
MOV:R0,#31H
MOV:R2,#8
SET:MOV:P1,#0FFH
MOV:A,P1
CJNE:A,#0FFH,L8
AJMP SET
L8: ACALL DELAY
CJNE A,#0FFH,SAVE
AJMP SET
SAVE:ACALL BP
MOV @R0,A
INC R0
DJNZ R2,SET
MOV R5,#16
D2S:ACALL BP
DJNZ R5,D2S
MOV R0,#31H
MOV R3,#3
AA1:MOV R2,#8 AA2:MOV P1,#0FFH
MOV A,P1
CJNE A,#0FFH,L9
AJMP AA2
L9:ACALL DELAY CJNE A,#0FFH,AA3
AJMP AA2
AA3 ACALL BP
CLR C
SUBB A,@R0
INC R0
CJNE A,#00H,AA4
AJMP AA5
AA4:SETB 00H AA5:DJNZ R2,AA2 JB 00H,AA6
CLR P3.5
L3:MOV R5,#8
ACALL BP
DJNZ R4,L3
MOV R3,#3