智能密码锁系统设计.docx
- 文档编号:25559665
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:23
- 大小:253.61KB
智能密码锁系统设计.docx
《智能密码锁系统设计.docx》由会员分享,可在线阅读,更多相关《智能密码锁系统设计.docx(23页珍藏版)》请在冰豆网上搜索。
智能密码锁系统设计
智能密码锁系统设计
引言
随着科学技术的进步,电子器件和电子系统设计方法日新月异,电子设计自动化技术正是适应了现代电子产品设计的要求,吸收了多学科最新成果而形成的一门新技术。
为保证电子产品设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术已成为不可缺少的一项先进技术和重要工具,掌握EDA技术是电子信息类专业学生,工程技术人员所必备的基本能力和技能。
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。
意外事故或人为破坏可能造成中的灾难性后果的系统称为要害系统。
要害系统的保证性包括安全性、可开性和保全性,内涵非常丰富。
我们设计的电子密码锁是一类针对要害系统的安全保险器件,其设计概念与常见的保安密码锁有所不同。
从系统设计观点看,电子安全密码锁是一个实体域定义的概念,比较机械安全密码锁,具有设计实现简便、密码装订灵活、制造成本低廉等优点。
主要的设计实施过程:
首先,选用ATMEL公司的单片机AT89C51,以及选购其他电子元器件。
第二步,使用DXP2004设计硬件电路原理图,并设计PCB图完成人工布线(后因PCB板损坏决定采用万能板焊接的方法)。
第三步,使用KeiluVision3软件编写单片机的C语言程序、仿真、软件调试。
第四部,使用PROTEUS软件进行模拟软、硬件调试。
最后,联合软、硬件调试电路板,完成本次课程设计。
第1章
课题研究的背景
1.1任务分析
根据设计要求,电子密码锁可以有数字电路控制完成,还可以由采用一种是用以AT89C51为核心的单片机控制方案。
相比之下,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
1.2方案设计
采用一种是用以AT89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
其原理如图11所示。
图11单片机控制方案
本方案采用一种是用以89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
初步设计思路如下:
输入密码用矩形键盘,包括数字键和功能键。
LED数码管显示输入密码,用数码管发光显示数码,用采用一种是用以AT89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
其原理如图12所示。
图12单片机控制方案
本方案采用一种是用以89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
初步设计思路如下:
输入密码用矩形键盘,包括数字键和功能键。
LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。
用发光二极管代替开锁的电路,发光表示开锁。
输入密码错误次数超过3次,系统报警。
打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。
这样可预防停电后再来电时无密码可用。
按“C”键,清除显示器为“000000”。
欲重新设定密码,先输入密码在案“*”。
输入密码,再按“D”键。
若密码与设定密码相同,则开门。
否则显示器清为“000000”。
软件的设计主要包括键值的读取,LED显示程序,密码比较程序和报警程序。
控制各位显示器分时进行显示。
用发光二极管代替开锁的电路,发光表示开锁。
输入密码错误次数超过3次,系统报警。
打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。
这样可预防停电后再来电时无密码可用。
按“C”键,清除显示器为“000000”。
欲重新设定密码,先输入密码在案“*”。
输入密码,再按“D”键。
若密码与设定密码相同,则开门。
否则显示器清为“000000”。
软件的设计主要包括键值的读取,LED显示程序,密码比较程序和报警程序。
第2章硬件设备的选择
2.1键盘电路
方案一:
采用独立式键盘。
由于各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。
此种键盘适用于按键较少或操作速度较高的场合。
但本题发挥部分要求12个功能键,按键数目较多,这就需要较多的输入口线,而且电路结构复杂。
故此方案不可取。
方案二:
采用行列式键盘。
它由行线和列线组成,按键位于行列的交叉点上,行线信号和列线信号分别通过两个接口和CPU相连,他有行线和列线组成,按键位于行列的交叉点,通过单片机对行列的快速扫描,从而得到那个键被按下的信息,而且节约IO口,节省资源。
综合考虑,通过对电子密码锁题目的分析,采用4*3行列式键盘。
2.2显示模块
采用1602显示模块。
能显示复杂的信息,具有质量轻,体积小,功耗低,指令功能强,接口简单,可靠性强等优点,显示内容丰富,图形美观,易于人机交流。
应用起来十分方便。
2.3电子密码锁的控制
组成0~9数字键及确认键、复位键、修改密码键。
用1602液晶显示电路提示信息,当输入密码时,在12.5秒内输入密码有效,当密码位输入完毕按下确认键,对输入的密码与设定的密码进行比较,若密码正确,则开锁。
当密码正确开锁后,7秒后恢复初态,如果输入密码三次不正确,则自动报警10秒。
2.4单片机的选择
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(EPROM)和128bytes的随机存取数据序存器(RAM),器件采用ATMEL公司的高密度/非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元,AT89C51单片机为许多嵌入式控制系统提供了一种灵活行高且价廉的方案。
第3章硬件电路的设计
3.1键盘电路
3.2行列式式键盘的设计
键盘电路如图3所示。
设计键号依次为0~9,确认键的键号为“enter”
3.3LCD显示电路
12864液晶显示,显示所需的字库,采用排阻驱动。
3.4主要元器件选择
主要元器件选用型号和数量如表31所示:
表31主要元器件清单
序号
材料名称
规格型号
数量
元件代号
1
单片机
AT89C51
1
LCD1
2
晶振
12MHz
1
X1
3
键盘
4*3
12
4
1602液晶
1
5
排阻
10k
1
RP1
第4章主要组件介绍
4.1程序流程图
4.2程序设计
说明:
首先显示器提示输入密码,密码在.5S内输入有效,
;输入次三次错误报警S,输入正确开门,7秒后返回初态
;以上参数均可在主程序里设定,修改系统密码在程序的结尾
;===================================================
RSBITP2.7
RWBITP2.6
EBITP2.5
ENTERBIT22H.0
OPENBITP3.6
SPEAKBITP3.7
PASSBUFEQU40H
KEYNUMBEREQU41H;存放识别后的按键号
ORG0000H
AJMPMAIN
ORG0003H
JMPKEY_INT
ORG000BH
AJMPINTT0
ORG001BH
AJMPINTT1
ORG0030H
;==========主程序开始==============
MAIN:
MOV30H,#07H;输入密码为位最高只可设位
MOV42H,#200;设定报警的时间,42H单元里的数*50MS
MOV43H,#250;设定开门时间14的倍数(实际上液晶显示器执行指令占用了时间,开门时间会比*250MS大)
;44H号单元存放输入错误的次数
;45H为定时器中断次数
;46H为定时器中断次数
MOV47H,#250;输入密码时间设定,50MS倍数
MOVSP,#60H
CLROPEN
CLRSPEAK;初始化输出设备
CLRENTER;标志位初始化
MOVTMOD,#11H;定时器工作方式
MOVTH0,#3CH;初值MS
MOVTL0,#0BH
MOVTH1,#3CH
MOVTL1,#0BH
SETBEA
SETBET0
SETBET1
MOVTCON,#00000000B;电平触发
START:
MOVR0,30H
MOVR1,#31H
SS1:
MOV@R1,#00H
INCR1
DJNZR0,SS1;将输入密码缓冲单元清零
MOVP1,#0FH;初始化按键口
MOVR1,#31H;从号单元开始存放按建输入的密码
CLR20H;报警标志清零
CLR21H;密码超时标志
MOV46H,#00H;超时后对定时器中断次数清零,便于下一轮重新计时
INIT:
ACALLSELLCD;设定液晶工作方式
ACALLLINE1;在第一行显示
MOVDPTR,#MES_P;显示请输入密码
ACALLDISPLAY
setbEX0;开中断,允许键盘输入
KEYIN:
JB21H,ERR;超时转到错误程序
JNBENTER,KEYIN;等待ENTER按下
CLRENTER
clrEX0;密码输入完后锁定键盘
;当使用边沿触发时用上面的指令为什么禁止不了中断
;==========密码判断程序============
COMP:
MOVDPTR,#PASS
MOVR4,30H;密码的长度
MOVA,#0
MOVR1,#31H
LOOP:
MOVR5,A
MOVCA,@A+DPTR
MOVPASSBUF,A;取出系统设定的密码
MOVA,@R1;从号单元开始取出输入的密码
CJNEA,PASSBUF,ERR;比较
MOVA,R5
INCA
INCR1;取下一位
DJNZR4,LOOP
;正确
MATCH:
MOVA,#01H
ACALLENABLE;清屏,光标复位
ACALLLINE1;从第一行开始显示
MOVDPTR,#MES_C
ACALLDISPLAY;显示"请进"
ACALLLINE2
MOVDPTR,#TAB_1
ACALLDISPLAY
SETBOPEN;开门
MOV44H,#00H;输入错误次数清零
MOVR6,43H
ACALLDELAY
CLROPEN;复位
JMPSTART
;错误
ERR:
ACALLBACK
MOVR6,#03H
ACALLDELAY
ACALLBACK;输错提示音,鸣两下
MOVA,#01H
ACALLENABLE
ACALLLINE1
MOVDPTR,#MES_E
ACALLDISPLAY;显示错误
MOVR6,#40H
ACALLDELAY
INC44H
MOVA,44H
CJNEA,#03H,EE0
EE0:
JCERROUT;输错不到三次返回
MOV44H,#00H;清零
ACALLWRANING;报警
ERROUT:
JMPSTART
;===========按键中断服务程序==========
KEY_INT:
pushacc
pushpsw
clrex0
acalldelay10ms;延时消抖
SETBTR1;启动定时器
ACALLSMKEY;按键识别
MOVA,KEYNUMBER;返回按键号
ACALLBACK;按键发声
MOVR3,A
CJNER3,#0BH,K1;ENTER是否按下
SETBENTER
clrtr1;按下确认后关毕定时器
mov46h,#00h;对中断次数清零
AJMPKEY_RTN
K1:
ADDA,#30H;将按键号转换为ASCⅡ码
MOV@R1,A;将输入的密码存入缓冲单元
INCR1;修改地址
ACALLWRDATA;输入一位显示一个"*"
KEY_RTN:
poppsw
popacc
setbex0
RETI
;===========按键识别程序==========
SMKEY:
MOVA,P1
ANLA,#0FH
WKEY:
MOVB,A;反转法查询
;清屏,光标复位
ACALLENABLE
MOVA,#38H;设置显示模式,8位两行,5*7点阵
ACALLENABLE
MOVA,#0DH;MOVP1,#0F0H
NOP
MOVA,P1
ANLA,#0F0H
ORLA,B
MOVP1,#0FH;还原P1口初态
CJNEA,#0EEH,WKEY1
MOVKEYNUMBER,#00H
AJMPRETURN
WKEY1:
CJNEA,#0EDH,WKEY2
MOVKEYNUMBER,#01H
AJMPRETURN
WKEY2:
CJNEA,#0EBH,WKEY3
MOVKEYNUMBER,#02H
AJMPRETURN
WKEY3:
CJNEA,#0E7H,WKEY4
MOVKEYNUMBER,#03H
AJMPRETURN
WKEY4:
CJNEA,#0DEH,WKEY5
MOVKEYNUMBER,#04H
AJMPRETURN
WKEY5:
CJNEA,#0DDH,WKEY6
MOVKEYNUMBER,#05H
AJMPRETURN
WKEY6:
CJNEA,#0DBH,WKEY7
MOVKEYNUMBER,#06H
AJMPRETURN
WKEY7:
CJNEA,#0D7H,WKEY8
MOVKEYNUMBER,#07H
AJMPRETURN
WKEY8:
CJNEA,#0BEH,WKEY9
MOVKEYNUMBER,#08H
AJMPRETURN
WKEY9:
CJNEA,#0BdH,WKEY10
MOVKEYNUMBER,#09H
AJMPRETURN
WKEY10:
CJNEA,#0BbH,WKEY11
MOVKEYNUMBER,#0AH
AJMPRETURN
WKEY11:
CJNEA,#0B7H,RETURN
MOVKEYNUMBER,#0BH;判断哪个键按下,返回相应按键号码
RETURN:
MOVP1,#0FH
NOP
NOP
MOVA,P1
CPLA
ANLA,#0FH
JNZRETURN;等待按键松开
RET
;==========液晶工作方式设置============
SELLCD:
MOVA,#01H显示器开,允许内烁
ACALLENABLE
MOVA,#06H;文字不动,光标右移
ACALLENABLE
RET
;==========液晶执行指令============
ENABLE:
CLRRS
CLRRW;RS,RW同为低电平时写入指令
MOVP0,A
CLRE;E由高变低时执行指令
ACALLWAIT
SETBE
RET
;==========WAIT============
;判断液晶是否忙的子程序
WAIT:
MOVP0,#0FFH
CLRRS
SETBRW;RW为高,RS为低时可读忙信号
CLRE
NOP
SETBE
JBP0.7,WAIT
RET
;==========显示的起始地址============
;在第一行
LINE1:
MOVA,#80H
ACALLENABLE
RET
;在第二行
LINE2:
MOVA,#0C0H
ACALLENABLE
RET
;===========显示程序============
DISPLAY:
MOVR7,#00H
NEXT:
MOVA,R7
MOVCA,@A+DPTR
CJNEA,#10H,DSP
RET
DSP:
ACALLWRDATA
INCR7
AJMPNEXT
;==========将A里面的数据写入液晶============
WRDATA:
SETBRS
CLRRW
MOVP0,A
CLRE
ACALLWAIT
SETBE
RET
;===========报警程序============
WRANING:
SETBTR0
ACALLBACK
MOVR4,#00H
ACALLD2
JNB20H,WRANING
RET
;===========发声程序============
BACK:
MOVR0,#100
KK1:
CPLSPEAK
LCALLDELAY2MS
DJNZR0,KK1;不断取反P2.0使其产生一定频率的方波推动扬声器
RET;延时的长短可以改变输出的频率
;===========INTT0============
;报警时间设定
INTT0:
PUSHACC
PUSHPSW
MOVTH0,#3CH
MOVTL0,#0BH
INC45H
MOVA,45H
CJNEA,42H,INTT0OUT
MOV45H,#00H
SETB20H;置标志位
CLRTR0;关闭定时器
INTT0OUT:
POPPSW
POPACC
RETI
;===========INTT1============
;输入超时
INTT1:
PUSHACC
PUSHPSW
INC46H
MOVA,46H
CJNEA,47H,INTT1OUT
CLRTR1;关闭定时器
SETB21H;时间到置标志位
MOV47H,#00H;中断次数清零
INTT1OUT:
POPPSW
POPACC
RETI
;===========延时程序============
DELAY:
MOVR4,#38H
D1:
MOVR5,#0F9H
DJNZR5,$
DJNZR4,D1
DJNZR6,DELAY;14R6毫秒
RET
DELAY2MS:
MOVR4,#02H
D2:
MOVR5,#0F0H
DJNZR5,$
DJNZR4,D2
RET
DELAY10ms:
MOVR4,#20
D3:
MOVR5,#248
DJNZR5,$
DJNZR4,D3
RET
PASS:
DB"1234567"
MES_P:
DB"Password?
",10H
MES_C:
DB"welcome!
",10H
MES_E:
DB"Error!
",10H
TAB_1:
DB"shixinli",10h
END
第5章仿真与调试
5.1电子密码锁控制器仿真
在完成了电子密码锁硬件设计和软件设计以后,便进入系统的调试阶段。
系统的调试步骤和方法基本上是相同的,但具体细节和所采用的开发系统以及用户系统选用的单片机型号有关,如可选用Keil软件进行软件调试,用Proteus软件完成硬件调试。
5.2程序调试
参考文献
[1]王迎旭.《单片机原理及及应用》,机械工业出版社,2001
[2]周航慈.《单片机应用程序设计技术》,北京航空航天大学出版社
[3]张洪润.《单片机应用技术教程》.北京:
清华大学出版社,1997
[4]宋彩利.《单片机原理与C51接口编程》,西安交通大学出版社,2008.6
[5]夏继强,沈德金等.《单片机实验与实践教程》,北京航天大学出版社,2004年1月出版
[6]王新颖.《单片机原理及应用》,北京大学出版社,2008年1月出版
[7]喻萍,郭文川.《单片机原理与接口技术》,化学工业出版社,2005年12月
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 密码锁 系统 设计