基于单片机AT89S52的密码锁设计资料Word文档下载推荐.docx
- 文档编号:7236758
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:19
- 大小:194.56KB
基于单片机AT89S52的密码锁设计资料Word文档下载推荐.docx
《基于单片机AT89S52的密码锁设计资料Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机AT89S52的密码锁设计资料Word文档下载推荐.docx(19页珍藏版)》请在冰点文库上搜索。
第二章方案论证
方案一:
采用数字电路控制
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,将密码锁保存在JK触发器中,与输入密码通过比较器比较,判断结果是否相符合。
采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差,故不采用。
方案二:
采用单片机为核心的控制方案
选用单片机作为系统的核心部分,实现控制与处理的功能。
单片机具有资源丰富,速度快,编程容易等优点。
利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上实现设计指标,因此综合考虑,本系统采用方案二。
根据方案一设计如下系统电路,如图1所示,主要由两大部分组成:
密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电,造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:
键盘输入、密码修改、密码检测、开锁电路、显示电路、报警电路、键盘输入次数锁定电路。
图1系统电路原理图
第三章系统硬件设计
3.1总体设计
本设计主要有单片机,矩阵键盘,液晶显示器和密码存储等部分组成。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘出入密码,后经过单片机对用户输入的的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可。
系统整体框架图如图1:
图2系统结构框架
各模块功能如下:
1.键盘输入模块:
分为密码输入按键与几个功能按键,用于完成密码锁输入功能。
2.显示模式:
用于完成对系统状态显示及操作提示功能。
3.复位电路:
完成系统的复位。
4.报警电路:
用于完成输错密码时的报警功能。
5.密码存储模块:
用于完成掉电存储功能。
6.开锁电路:
用于继电器及发光二极管模拟开锁,完成开锁及开锁提示。
3.2单片机AT89S52
3.2.1AT89S52介绍
AT89S52单片机是一个低功耗,高性能CMOS8位单片机,片内含8KBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能欠打的微型计算机的AT89S52可为许多嵌入式控制应用系统提高性价比的解决方案。
AT89S52具有以下标准功能:
8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,准许RAM定时器/计数器,串行口、中断继续工作。
掉电模式下,ROM内容被保存,震荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
表1AT89S52主要特性如:
兼容MCS-51指令系统
8K可反复擦写(>1000次)ISPFlashROM
32个双向I/O口
4.5----5.5V工作电压
3个16位可编程定时/计数器
时钟频率0—33MHz
全双工UART串行中断口线
256x8bit内部RAM
2个外部中断源
低功耗空闲和省电模式
中断唤醒省电模式
3级加密位
看门狗(WDT)电路
软件设置空闲和省电功能
灵活的ISP字节和分页编程
双数据寄存器指针
3.2.2LCD1602显示器
现在的字符型液晶模块已经是单片机应用中最常见的信息显示器件了。
1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。
1602型LCD可以显示2行16个字符,有8位数据总线D0---D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。
接口信息说明:
1602型LCD接口信号说明如表2所示:
表21602型LCD的接口信号说明
第1脚
VSS电源地
第9脚
D2双向数据线
第2脚
VDD+5V电源
第10脚
D3双向数据线
第3脚
VEE液晶显示器偏压信号
第11脚
D4双向数据线
第4脚
RS数据/命令选择端
第12脚
D5双向数据线
第5脚
R/W读/写选择端
第13脚
D6双向数据线
第6脚
E使能端
第14脚
D7双向数据线
第7脚
D0双向数据线
第15脚
BLA背光源正极
第8脚
D1双向数据线
第16脚
BLK背光源正极
1602型LCD的主要技术参数,如表3所示
表31602型LCD的主要技术参数
显示容量
16×
2个字符
芯片工作电压
4.5~5.5V
工作电流
20mA(5.0V)
模块最佳工作电压
5.0V
字符尺度
2.95×
4.35(WXH)mm
基本操作程序:
读状态:
令RS=L,RW=L,E=H输出:
D0~D7=状态字
读数据:
令RS=H,RW=H,E=H输出:
无
写指令:
令RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:
D0~D7=数据
写数据:
令RS=H,RW=L,D0~D7=数据,E=高脉冲输出:
3.3密码存储电路
图3所示AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。
在AT89S51试验开发板上它们都接地,第5脚和第8脚分别为正、负电源。
第8脚SDL为串行数据输入/输出,数据通过这条双向I²
C总线串行传送,在AT89S52试验开发板上和单片机的P3.6连接。
第6脚SCL为串行时钟输入线,在AT89S52试验开发板上和单片机的P3.7连接。
SDL和SCL都需要和正电源间各接一个5.1K的电阻上拉。
第6脚接P3.5。
AT24C02中带有片内地址寄存器。
每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。
所有字节均以单一操作方式读取。
为降低总的写入时间,一次操作可写入多达8个字节的数据。
图3密码存储电路
3.4报警电路
报警电路实现的功能是:
当输入密码的时间超过40秒(一般情况下用户输入不会超过),电路报警80秒,防止他人恶意开锁。
电路包含两大部分,2分钟延时和40秒延时电路。
其工作原理是当用户开始输入密码时,电路开始2分钟计时,超出40秒,电路开始80秒的报警。
如图3所示
图4报警电路
有人走近门时,触摸了TP端(TP端固定在键盘上,其灵敏度非常高,保证电路可靠的触发),由于人体自身带的电,使IC10的2脚出现低电平,使IC10的状态发生翻转,其3脚输出高电平,T5导通(可以通过R12控制T1的基极电流),其集电极接的黄色发光二极管D3发光,表示现在电子锁处于待命状态,T6截止,C4开始通过R14充电(充电时间是40秒,此时为用户输入密码的时间,即用户输入密码的时间不能超过40秒,否则电路就开始报警,由于用户经常输入密码,而且知道密码,一般输入密码的时间不会超过40秒),IC2开始进入延时40秒的状态。
开始报警:
当用户输入的密码不正确或输入密码的时间超过40秒,IC11的2脚电位随着C4的充电而下降,当电位下降到1/3Vcc时(即40秒延时结束时候),3脚变成高电位(延时时是低电平),通过R15使(R15的作用是为了限制T7的导通电流防止电流过大烧毁三极管)T7导通,其集电极上面接的红色发光二极管D4发亮,表示当前处于报警状态,T8也随之而导通,使蜂鸣器发声,令贼人生怯,实现报警.
停止报警:
当达到了80秒的报警时间,IC10的6,7脚接的电容C5放电结束,IC10的3脚变成低电平,T5截止,T6导通,强制使强制电路处于稳态,IC11的3脚输出低电平,使T7,T8截止,蜂鸣器停止报警;
或者用户输入的密码正确,则有开锁电路中的T10集电极输出清除报警信号,送至T12(PNP),T12导通,强制使T7基极至低电位,解除报警信号。
若用户操作连续失误超过3次,电路将锁定5分钟。
其工作原理如下:
当电路报警的次数超过3次,由IC9(74161)构成的3位计数器将产生进位,通过IC7,输出清零信号送往74161的清零端,以实现重新计数。
经过IC8(与门),送到IC12(555)的2脚,使3脚产生5分钟的高电平锁定脉冲(其脉冲可由公式T=1.1RC计算得出),经T9倒相,送IC6输入端,使IC6输出低电平,使IC13不能开锁,到锁定的目的。
电路图如下图2.6所示:
图5报警次数检测及锁定电路
3.5键盘电路
使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样的方法。
其原理如图6
图6键盘电路
3.6显示电路
单片机应用系统中,通常都需要进行人机对话。
这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果等。
显示器、键盘电路就是用来完成人机对话活动的人机通道。
LCD显示器的驱动是一个非常重要的问题,由图3-1可知,显示电路由LCD显示器、段驱动电路和位驱动电路组成。
由于单片机的并行口不能直接驱动LCD显示器,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作。
如果驱动电路能力差,即负载能力不够,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏。
LCD显示器的显示控制方式分为静态显示和动态显示两种,若选择静态显示,则LCD驱动器的选择较为简单,只要驱动器的驱动能力与显示器电流相匹配即可,而且一般只需考虑段的驱动;
动态显示则不同,由于一位数据的显示是由段和位选信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。
本系统设计的显示电路是为了给使用者以提示而设置的。
本系统的显示采用串行显示的方式,在本次设计中我选择了4位的数码显示管。
其连线如图所示。
图7LCD显示电路
3.7开锁电路
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;
灭,表示没有开锁,亮,表示锁开了。
当P2.0口输出低电平时,二极管发光,表示开锁。
图8开锁电路
第四章系统软件设计
4.1系统软件流程图
进行应用软件设计时可采用模块化结构设计,其优点是:
每个模块的程序结构简单,任务明确,易于编写、调试和修改;
程序可读性好,对程序的修改可局部进行,其他部分可以保持不变,便于功能扩充和版本升级;
对于使用频繁的子程序可以建立子程序库,便于多个模块调用;
便于分工合作,多个程序员同时进行程序的编写和调试工作,加快软件研制进度。
电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。
当输入密码连续输入错误3次时,系统报警。
由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;
或者输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程。
图9总流程图
4.2系统软件源程序
ORG00H
SJMPSTART
ORG0BH
START:
PASSWORD:
MOVR4,#08H
MOVR0,#40H
MOVA,#00H
PASSNEXT:
MOV@R0,A
INCR0
INCA
DJNZR4,PASSNEXT
MLOOP:
CLRP3.0
SETBP3.1
SETBP3.2
SETBP3.3
SETBP3.4
MOVR3,#03H
GETPW:
MOVR4,#08H
MOVR0,#30H
AGAIN:
ACALLKEY
CJNEA,#0AH,CONTIUE
SJMPAGAIN
CONTIUE:
MOV@R0,A
ACALLDISPLED
DJNZR4,AGAIN
AGAIN1:
CJNEA,#0AH,AGAIN1
ACALLCOMP
SETBP3.0
CLRP3.1
WAIT:
MOVC,P3.5
JNCMLOOP
SJMPWAIT
COMP:
MOVR4,#08H
MOVR0,#30H
AGAI:
MOV50H,@R0
MOVA,R0
ADDA,#010H
MOVR0,A
MOVA,@R0
MOVB,A
SUBBA,#010H
MOVA,B
CJNEA,50H,ONCEMORE
DJNER4,AGAI
RET
ONCEMORE:
ACALLDISPLED1
ACALLDISPLED2
CLRP3.3
CLRP3.4
MOVR6,#0FFH
ACALLDELAY
SETBP3.3
SETBP3.4
DJNZR3,GETPW
CLRP3.3
W:
SJMPW
DISPLED1:
MOVR6,#80H
RET
DISPLED2:
CLRP3.4
CLRP3.4
DISPLED:
CLRP3.2
SETBP3.2
KEY:
MOVP1,#0F0H
MOVA,P1
CJNEA,#0F0H,K11
K10:
AJMPKEY
K11:
MOVR6,#02H
MOVP1,#0F0H,K12
SJMPK10
K12:
MOVP1,#0FH
CJNEA,#0FH,K122
K121:
K122:
CJNEA,0FH,K13
AJMPK10
K13:
ORLA,B
MOVR1,#11
MOVR2,#0
MOVDPTR,#K1TAB
K14:
MOVA,R2
MOVCA,@A+DPTR
CJNEA,B,K16
K15:
K16:
INCR2
DJNZR1,K14
K1TAB:
DB7eh,0beh,0deh,0eeh
DB7dh,0bdh,0ddh,0edh
DB7bh,0bbh,0bdh
DELAY:
MOVR7,#0F8H
AA1:
MOVR5,#0F8H
AA:
NOP
DJNZR5,AA
DJNZR6,AA1
END
第五章结语
一个多月的单片机已经告已段段落,这是一次难得的检验,既锻炼了自己,又提高自己得理论水平,所以我一开始我就十分认真,积极地对待这次课程设计。
单片机是一门实践性很强的学科,能充分地运用于实践中去,因而直接关系到我们以后找工作,关系到我们的将来。
这次的课题是智能密码锁设计,主要设计到的芯片主要是89S52。
虽然我们学过单片机,理论知识掌握的还算好,但总感觉不知道单片机到底有什么用。
通过这次设计让我有了较深的体会,单片机的用处还是很广的,不但用起来方便,而且其功能也是很强大的。
单片机可以实现很多我们想要实现的功能,使复杂的电路简单化,使难以实现的事情变为现实等等。
我隐约可以看到单片机在这个社会有着举足轻重的地位,并且还有着无穷大的潜能。
回顾起此次单片机课程设计,感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说是苦多于甜,但是可以学到很多很多的东西,同时,不仅可以巩固以前学过的知识,而且还学到了很多在书本上没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟是第一次做的,难免会遇到各种各样的问题,同时在设计的过程中发现了自己的不足之处,以前对所学的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好……通过这次课程设计之后,以前不理解的知识点现在基本上都掌握了。
与此同时,我们也深刻领略到细节的重要性,细节决定成败,实在是很深刻。
有一点小问题,都不会出正确的结果。
经过一次次的查错,纠错,让我们深深体会到了做设计科研,必须具备严谨的科学作风。
对我们以后从事的工作也有巨大的帮助。
总而言之,这次课程设计终于顺利完成了,在进行设计的过程中遇到了很多编程问题,在此特别感谢夏玉果等老师的耐心讲解和细心的指导。
使我们在设计的过程中,少走了许多弯路,同时也领略了老师的许多新理念。
单片机课程设计重在一个思维的改变,而不是仅仅的一个程序的设计。
参考文献
[1]康华光.电子技术基础(第四版)[M].北京:
高等教育出版社,1998
[2]梁宗善.新型集成块应用[M].武汉:
华中理工大出版社,2004
[3]胡汉才单片机原理及其接口技术清华大学出版社2004年2月
[4]周立功单片机实验与实践教程北京航空航天大学出版社2006年5月
[5]李朝青单片机原理与接口技术北京航空航天大学出版社2005年
[6]赵秀菊单片机与测控技术东南大学出版社1988年
[7]许立梓微型计算机原理及应用机械工业出版社2002
[8]微刘乐计算机接口技术及应用华中理工大学出版社2000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 AT89S52 密码锁 设计 资料