电子密码锁课程设计2.docx
《电子密码锁课程设计2.docx》由会员分享,可在线阅读,更多相关《电子密码锁课程设计2.docx(24页珍藏版)》请在冰豆网上搜索。
电子密码锁课程设计2
摘要
围绕电子密码锁系统的设计与开发进行研究和实践,详细介绍了电子密码锁系统的整体结构,硬件设计,软件设计,系统方案以及其它的开发和具体实现。
介绍一种基于在系统可编程技术和AT89C51编译器配有集成开发的新型电子密码锁的设计方法,阐述其工作原理和软硬件设计。
在硬件上,用KEIL公司的C51大规模集成芯片对其外围电路进行集成,用一片AT89C51实现了几十片分离元件才能实现的功能,几乎将整个系统下载与同一芯片中,实现了所谓的片上系统,从而大大简化了系统结构,增强系统的结构的可靠性和性价比。
该密码锁特别适用于宾馆,办公大楼,公寓等场所。
关键字:
密码锁AT89C51芯片Keil软件Proteus软件74LS245芯片蜂鸣箱显示屏
目录
1.绪论 3
1.1.引言 3
1.2.电子密码锁的背景 3
2.设计说明 4
2.1.总体说明 4
2.2.总体结构图 5
3.硬件设计 5
3.1.元件清单 5
3.2.原理图 6
3.3.电路元件说明及原理图 7
3.3.1.LED数码显示器 7
3.3.2.复位电路 9
3.3.2.时钟电路 9
3.3.4.矩阵电路 10
3.3.5.74LS245说明 11
3.3.6.单片机引脚说明 11
4.程序存储器和数据存储器的单元分配 12
4.1.程序存储器和数据存储器的单元分配 12
4.1.1.程序存储器 13
4.1.2.数据存储器 13
4.1.3.特殊功能寄存器 13
5.程序设计 14
5.1.程序流程图 14
5.2.原程序 16
6.运行结果 26
7.总结 27
8.参考文献 28
1绪论
1.1引言
随着人们生活水平的提高,如何实现防盗这一问题也变的尤其突出,传统的机械锁由于其构造的简单,被撬的时间屡屡发生。
电子所由于其保密性高,使用灵活性好,安全系数高,受到了广大人民的喜爱。
锁是置于可启闭的器物上,用以关注某个确定的空间范围或某种器具的,必须以钥匙或暗码打开的扣件。
锁具发展到现在已有若千年的历史了,人们对他的结构,机理也研究的很透彻,因此,不用钥匙打开的方式也层出不穷。
现代人类文明社会里,由于各种矛盾冲突十分激烈,人们的思想道德观念,价值观,文化修养水平等差异,群众中良莠不齐,善良的人们能够自觉规范自己的行为,“非礼不为”,虽无钥匙亦不会乱闯。
然而,那些毫无道德观念的盗贼却想法设法利用高科技设备撬开门锁,使广大居民防不胜防。
所以更为现在的锁具需要需要革命。
1.2电子密码锁的背景
随着社会科技的进步,锁已经发展到了密码锁。
电子锁,激光锁,声控锁等等。
在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同光束,光波,不同图像(指纹,脸部等)来控制锁的开启。
从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。
当今安全信息系统越来越广泛,特别是保护机密,维护隐私和财产保护方面起到重要作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。
2设计说明
2.1总体说明
用4*3的矩阵键盘组成0至9及确认键和清除键;提示信息的显示电路用8位数码管组成显示,初始化时显示器显示“EF”,当输入密码时,只显示“-”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码输入正确,则锁开,即LED发光二极管发光;若密码输入不正确,则蜂鸣器一直发出“嘀”、“嘀”的报警声,直到复位。
在输入密码的后按“ENTER”键,进行密码比较然后给出相应信息。
若输入密码错误,可以利用“CLR”键删除刚才输入的错误的数字。
2.2总体结构图:
显示屏幕
AT89C51
晶振电路
复位电路
键盘
3硬件设计
3.1元件清单:
原件名称
所属类
所属子类
AT89C51
MicroprocessorICs
8051family
CAP
Capacitors
Generic
CAP-ELEC
Capacitors
Generic
CRYSTAL
Miscellameous
-------
RES
Resistors
Generic
7SEG-MPX8-CC-BLUE
Optoelectronics
6-SegmengDisplays
74LS245
TTL74LSseries
Transceivers
BUTTON
Switches&Relays
Switches
SOUNDER
Speakers&Sounder
-------
LED-YELLOW
Optoelectronics
LEDs
元件全部添加完后,在ProteusISIS的编辑区域中按下图所示的原理图连接硬件电路。
3.2原理图:
3.3电路元件说明及原理图:
3.3.1 LED数码显示器
LED显示块是由发光显示二极管显示字段的显示器件。
它实际上是由8个发光二极管,其中7个发光二极管构成七笔字形“8”,另一个发光二极管构成小数点。
七段显示块与单片机接口非常容易。
只要将一个8位并行输出与显示块的发光二极管引脚相连即可。
8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制发光二极管的8位字节数据称为段选码。
LED数码显示器内部有两种不同的形式:
共阳极显示和共阴极显示,此设计采用共阴极显示。
其内部结构及共阴极显示其内部电路如下:
LED数码显示字形(段)码表如下:
显示字形
字形码(共阳极)
字形码(共阴极)
0
C0H
3FH
1
F9H
06H
2
A4H
5BH
3
B0H
4FH
4
99H
66H
5
92H
6DH
6
82H
7DH
7
F8H
07H
8
80H
7FH
9
90H
6FH
A
88H
77H
B
83H
7CH
C
C6H
39H
D
A1H
5EH
E
86H
79H
F
8EH
71H
3.3.2复位电路:
复位电路有上电自动复位和手动复位,此设计用的是上电复位,电路图如上。
pin9:
RESET/VPD复位信号复位脚,当8951通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统及初始复位。
3.3.3时钟电路:
89C51芯片内部有一个高增益反相放大器,用于构成振荡器。
反相放大器的输入端为XTAL1,输出端为XTAL,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。
电容
器C1和C2通常取30PF,可稳定频率并对振荡频率有微调作用。
此振荡脉冲频率为12MHZ。
单片机时钟电路振荡脉冲可以由内部方式和外部方式产生,XTAL1(19引脚)XTAL2(18引脚)即为单片机的两个时钟引脚。
3.3.4矩阵键盘:
矩阵式键盘又称行列式键盘,往往用于按键个数多的场合,矩阵式键盘的按键于行、列的交叉点上,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接,列线通过上拉电阻接电源,将行线所得单片机的I/O口作为输出端,列线所接的I/0口为输入端,编程所有行线输出低电平,列线输出高电平,当没有键被按下时,所有输出端为高电平,表示无键按下,一旦有键按下,则出现输入端被拉低变为低电平。
这样,通过读入列线的状态即可知道是否有键按下。
3.3.5 74LS245说明:
74LS45芯片常来驱动LED或者其它设备,它是8路同相三态双向总线收发器,可双向传输数据。
当单片机的PO口总线负载达到或者超过PO最大负载能力是,必须接入74LS245等总线驱动器。
3.3.6 单片机引脚说明
Pin20:
接地脚。
pin40:
正电源脚,工作时,接+5v电源。
pin19:
时钟XTAL1引脚,片内振荡电路的输入端。
pin18:
时钟XTAL2脚,片内振荡电路的输出端。
4程序存储器和数据存储器的单元分配
4.1程序存储器和数据存储器的单元分配
存储器是单片机的一个重要组成部分,每个存储单元对应一个地址,每个个单元共有1个地址,用两位16进制数表示,即存储器的地址(00H~FFH)。
存储器中每个存储单元可存放一个八位二进制信息,通常用两位16进制数来表示,这就是存储器的内容。
4.1.1程序存储器
在单片机处理问题之前必须事先将编好的程序、表格、常数汇编成机器代码后存入单片机的存储器中,该存储器称为程序存储器。
程序存储器可以放在片内或片外,亦可片内片外同时设置。
由于PC程序计数器为16位,使得程序存储器可用16位二进制地址,因此,内外存储器的地址最大可从0000H到FFFFH。
4.1.2数据存储器
单片机的数据存储器由读写存储器RAM组成。
其最大容量可扩展到64k,用于存储实时输入的数据。
8051内部有256个单元的内部数据存储器,其中00H~7FH为内部随机存储器RAM,80H~FFH为专用寄存器区。
4.1.3特殊功能寄存器
特殊功能寄存器(SFR)的地址范围为80H~FFH。
在MCS-51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。
MCS-51共有P0~P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。
其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能。
5程序设计
8位数码显示,初始化时,显示“EF”,接着输入最大6位数的密码,当密码输入完毕后,按下“ENTER”键,与密码初始值进行比较,若发光二极管发光,则说明密码正确;如果蜂鸣器发出报警声,则说明密码错误。
在输入密码过程中,显示器只显示“-”,当输入密码位数超过6个数字时,蜂鸣器会发出报警声。
在输入密码过程中,若输入错误,则可以通过清零键“CLR”删除输入错误的数字,接着可以继续输入数字。
5.1程序流程:
如下图
否
是
是
否
是
5.2源程序
LED_BIT1EQU30H
LED_BIT2EQU31H
LED_BIT3EQU32H
LED_BIT4EQU33H
LED_BIT5EQU34H
LED_BIT6EQU35H
LED_BIT7EQU36H
LED_BIT8EQU37H
WORD_1EQU38H
WORD_2EQU39H
WORD_3EQU3AH
WORD_4EQU3BH
WORD_5EQU3CH
WORD_6EQU3DH
KEY_1EQU3EH
KEY_2EQU3FH
KEY_3EQU40H
KEY_4EQU41H
KEY_5EQU42H
KEY_6EQU43H
KEY_CNTEQU46H
LINEEQU47H
ROWEQU48H
VALEQU49H
ORG0000H
SJMPSTART
START:
MOVCNT_A,#00H
MOVCNT_B,#00H
MOVKEY_CNT,#00H
MOVLINE,#00H
MOVROW,#00H
MOVVAL,#00H
CLRP1.0
CLRP1.7
MOVLED_BIT1,#00H
MOVLED_BIT2,#00H
MOVLED_BIT3,#00H
MOVLED_BIT4,#00H
MOVLED_BIT5,#00H
MOVLED_BIT6,#00H
MOVLED_BIT7,#79H
MOVLED_BIT8,#73H
MOVKEY_1,#00H
MOVKEY_2,#00H
MOVKEY_3,#00H
MOVKEY_4,#00H
MOVKEY_5,#00H
MOVKEY_6,#00H
MOVWORD_1,#6
MOVWORD_2,#5
MOVWORD_3,#4
MOVWORD_4,#3
MOVWORD_5,#2
MOVWORD_6,#1
A0:
LCALLDISP
LSCAN:
MOVP3,#0F0H
L1:
JNBP3.0,L2
LCALLDLY_S
JNBP3.0,L2
MOVLINE,#00H
LJMPRSCAN
L2:
JNBP3.1,L3
LCALLDLY_S
JNBP3.1,L3
MOVLINE,#01H
LJMPRSCAN
L3:
JNBP3.2,L4
LCALLDLY_S
JNBP3.2,L4
MOVLINE,#02H
LJMPRSCAN
L4:
JNBP3.3,A0
LCALLDLY_S
JNBP3.3,A0
MOVLINE,#03H
RSCAN:
MOVP3,#0FH
C1:
JNBP3.4,C2
MOVROW,#00H
LJMPCALCU
C2:
JNBP3.5,C3
MOVROW,#01H
LJMPCALCU
C3:
JNBP3.6,C1
MOVROW,#02H
CALCU:
MOVA,LINE
MOVB,#03H
MULAB
ADDA,ROW
MOVVAL,A
CJNEA,#0AH,J1
MOVR1,KEY_CNT
CJNER1,#00H,J2
LCALLALARM_2
LJMPSTART
J2:
DECKEY_CNT
LCALLSHIFTR
W00:
LCALLDISP
MOVA,P3
CJNEA,#0FH,W01
LJMPA0
W01:
MOVA,P3
CJNEA,#0F0H,W02
LJMPA0
W02:
SJMPW00
J1:
MOVA,VAL
CJNEA,#0BH,J3
MOVR1,KEY_CNT
CJNER1,#06H,J4
MOVA,WORD_1
CJNEA,3EH,J5
MOVA,WORD_2
CJNEA,3FH,J5
MOVA,WORD_3
CJNEA,40H,J5
MOVA,WORD_4
CJNEA,41H,J5
MOVA,WORD_5
CJNEA,42H,J5
MOVA,WORD_6
CJNEA,43H,J5
SETBP1.0
LCALLDLY_L
LJMPFINI
J5:
LCALLALARM_2
LJMPSTART
J4:
LCALLALARM_2
LJMPSTART
J3:
INCKEY_CNT
MOVA,KEY_CNT
CJNEA,#07H,K1
LCALLALARM_2
W10:
LCALLDISP
MOVA,P3
CJNEA,#0FH,W11
LJMPSTART
W11:
MOVA,P3
CJNEA,#0FH,W12
LJMPSTART
W12:
SJMPW10
LJMPSTART
K1:
LCALLSHIFTL
W20:
LCALLDISP
MOVA,P3
CJNEA,#0FH,W21
LJMPA0
W21:
MOVA,P3
CJNEA,#0F0H,W22
LJMPA0
W22:
SJMPW20
LJMPA0
ALARM_2:
SETBP1.7
LCALLDLY_L
SHIFTL:
MOVLED_BIT6,LED_BIT5
MOVLED_BIT5,LED_BIT4
MOVLED_BIT4,LED_BIT3
MOVLED_BIT3,LED_BIT2
MOVLED_BIT2,LED_BIT1
MOVLED_BIT1,#40H
MOVKEY_6,KEY_5
MOVKEY_5,KEY_4
MOVKEY_4,KEY_3
MOVKEY_3,KEY_2
MOVKEY_2,KEY_1
MOVKEY_1,VAL
RET
SHIFTR:
MOVLED_BIT1,LED_BIT2
MOVLED_BIT2,LED_BIT3
MOVLED_BIT3,LED_BIT4
MOVLED_BIT4,LED_BIT5
MOVLED_BIT5,LED_BIT6
MOVLED_BIT6,#00H
MOVKEY_1,KEY_2
MOVKEY_2,KEY_3
MOVKEY_3,KEY_4
MOVKEY_4,KEY_5
MOVKEY_5,KEY_6
MOVKEY_6,#00H
RET
DISP:
CLRP2.7
MOVP0,LED_BIT8
LCALLDLY_S
SETBP2.7
CLRP2.6
MOVP0,LED_BIT7
LCALLDLY_S
SETBP2.6
CLRP2.5
MOVP0,LED_BIT6
LCALLDLY_S
SETBP2.5
CLRP2.4
MOVP0,LED_BIT5
LCALLDLY_S
SETBP2.4
CLRP2.3
MOVP0,LED_BIT4
LCALLDLY_S
SETBP2.3
CLRP2.2
MOVP0,LED_BIT3
LCALLDLY_S
SETBP2.2
CLRP2.1
MOVP0,LED_BIT2
LCALLDLY_S
SETBP2.1
CLRP2.0
MOVP0,LED_BIT1
LCALLDLY_S
SETBP2.0
RET
DLY_S:
MOVR6,#10
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
DLY_L:
MOVR5,#100
D2:
MOVR6,#100
D3:
MOVR7,#248
DJNZR7,$
DJNZR6,D3
DJNZR5,D2
RET
FINI:
NOP
6运行结果
按下Play键,显示器显示字母“EF”,输入密码后,按“ENTER”键,密码正确,二极管发光,密码不正确,发出警报声。
若操作错误也会发出警报声。
7总结
通过此次课程设计,我重新把单片机及相关知识联系在了一起,虽然掌握的知识不是很多,但通过查找资料我还是对单片机有了很好的了解和掌握。
在设计中我才发现单片机虽然体积小但是功能很强大,在生活中很多地方都可以用到它。
单片机这门学科博大精深,在以后的学习中只有多看书,理论与实践结合才能把这门课掌握好。
同时我也体会到合作的好处。
让我懂得了如何合作,对不同看法发表自己的意见。
此次设计中最要的一点是,让我知道了,理论联系实践的好处。
不管理论学的再怎么好都必须联系实践,只有在实践中我们才会更加懂得如何运用自己的所学,在实践中将自己的知识实物化。
理论联系实践是我们获取知识的最佳途径。
8参考文献
[1]周润景张丽娜丁莉.基于PROTEUS的电路及单片机设计与仿真(第二版).北京航天航空大学出版社2009.12
[2]李朝清.单片机原理及接口技术(第三版).北京航天航空大学出版社.2006.12
[3]周兴华.手把手教你学单片机.北京航天航空大学出版社.2006.12
[4]张文利.微机原理及单片机接口技术.中国科学技术大学出版社2007.7