密码锁终极版 2Word格式.docx

上传人:b****5 文档编号:21307897 上传时间:2023-01-29 格式:DOCX 页数:31 大小:251.45KB
下载 相关 举报
密码锁终极版 2Word格式.docx_第1页
第1页 / 共31页
密码锁终极版 2Word格式.docx_第2页
第2页 / 共31页
密码锁终极版 2Word格式.docx_第3页
第3页 / 共31页
密码锁终极版 2Word格式.docx_第4页
第4页 / 共31页
密码锁终极版 2Word格式.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

密码锁终极版 2Word格式.docx

《密码锁终极版 2Word格式.docx》由会员分享,可在线阅读,更多相关《密码锁终极版 2Word格式.docx(31页珍藏版)》请在冰豆网上搜索。

密码锁终极版 2Word格式.docx

2.1设计的技术指标1

2.2设计的参数要求1

3.设计原理和单元模块1

3.1方法设计与论证1

3.2设计原理2

3.3单元模块3

3.3.1单片机STC89C52简介3

3.3.2键盘输入模块3

3.3.3显示模块4

3.3.4密码存储模块5

3.3.5复位部分5

3.3.6报警部分6

3.3.7开锁部分6

3.3.8晶振部分7

4.硬件的安装与调试7

4.1硬件的安装7

4.2硬件的调试7

5.软件程序设计8

6.性能测试与数据分析9

6.1程序调试9

6.2性能测试9

6.3数据分析10

7.结束语10

8.参考文献10

附录一11

附录二12

附录三27

本科生课程设计成绩评定表28

 

摘要

本设计的电子密码锁利用52单片机控制电路,实现对锁的电子控制,并且有各种附加电路保证电路能够安工作,能够自己设置密码,有极高的安全系数。

本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。

系统能完成开锁、超次报警、修改用户密码基本的密码锁的功能。

除上述基本的密码锁功能外。

本系统成本低廉,功能实用。

关键词:

电子密码锁;

STC89C52单片机;

AT24C02;

Abstract

Thisdesignofelectronictricklockusingsingle-chipmicrocomputercontrolcircuit,realize52tolockofelectroniccontrol,andhaveallsortsofadditionalcircuittoAnnwork,thatcansetpassword,havetheextremelyhighsafetycoefficient.

Thesystemiscomposedofsingle-chipmicrocomputersystem,thematrixkeyboard,andLEDdisplayandalarmsystems.Thesystemcancompletethelock,supertimesalarm;

modifyuserpasswordbasictricklockfunction.Inadditiontothebasicfunctionofcombinationlock.Thissystemthecostislowandthefunctionispractical.

Keywords:

electronictricklock;

STC89C52single-chipmicrocomputer;

AT24C02

1.课设题目

本次课设所选的题目是《数字式电子密码锁电路设计》,主要用单片机控制电路。

2.设计的技术指标和参数要求

2.1设计的技术指标

本设计采用STC89C52单片机为主控芯片,结合外围电路,通过软件程序组成电子密码锁系统,能够实现:

1.开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开;

2.当开锁密码与存储密码不一致时,可重复进行,若连续三次未将锁打开,电路则报警并实现自锁;

3.选择电路方案,完成对确定方案电路的设计。

4.安装调试设计电路。

2.2设计的参数要求

1.其密码为方4位(或8位)二进制代码(代码自设定);

2.报警动作为响1分钟,停10秒。

3.设计原理和单元模块

3.1方法设计与论证

方案一:

采用数字电路控制

用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,将密码保存在JK触发器中,与输入密码通过比较器比较,判断结果是否相符合。

采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差,故不采用。

方案二:

采用以单片机为核心的控制方案

选用单片机作为系统的核心部件,实现控制与处理的功能。

单片机具有资源丰富、速度快、编程容易等优点。

利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标。

因此综合考虑,本系统采用方案二。

3.2设计原理

设计用STC89C52作为本次设计的核心原件,利用单片机灵活性的编程设计和其控制的准确性,实现基本的密码控制功能。

在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接1602液晶显示器用于输出显示。

本设计主要由单片机、矩阵式键盘、液晶显示器和密码存储器等部分构成。

其中矩阵键盘用于输入数字密码和进行各种功能的实现。

由用户通过连接单片机

的矩阵键盘输入密码,然后经过单片机对用户输入的密码与自己保存的密码进行核对,从而判断是否正确,然后控制引脚的高低电平转到液晶,显示密码正确还是密码错误以及蜂鸣器是否报警。

本系统一共由两部分组成,硬件和软件部分。

其中硬件部分由键盘输入部分、复位部分、晶振部分、报警部分组成,软件部分对应的主要由主程序、初始化程序、液晶显示程序、键扫程序,键功能程序、密码设置程序、延时程序等组成。

其原理框图如图

各模块功能如下:

1.键盘输入模块:

分为密码输入按键与几个功能按键,用于完成密码锁输入功能。

2.显示模块:

用于完成对系统状态显示及操作提示功能。

3.复位电路:

完成系统的复位。

4.报警电路:

用于完成输错密码时候的警报功能。

5.密码存储模块:

用于完成掉电存储功能,使修改的密码断电后仍能保存。

6.开锁电路:

应用发光二极管模拟开锁,完成开锁及开锁提示。

3.3单元模块

3.3.1单片机STC89C52简介

考虑到设计功能的需要,控制器的功能用于外部键盘信号的接受和识别、液晶的显示与密码的辨认相关的信息,我们选择了STC89C52系列的单片机,具有反应速度快,工作效率特高的特点。

STC89C52是种低功耗、高性能CMOS8的微处理器,具有8K字节系统可编程Flash存储器。

使用STC公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

另外,STC89C52可降至0Hz静态逻辑操作,支持2种

软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

其引脚图如图3.3.1。

图3.3.1STC89C52引脚图

3.3.2键盘输入模块

本设计中使用的4×

4键盘,不但能完成密码的输入还能作特别功能键使用。

键盘的每个按键功能在程序设计中设置。

工作原理,首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。

方法是:

向行线输出全扫描字,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。

如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。

判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。

依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;

如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

它与单片机的连接如图3.3.2所示

图3.3.2.键盘模块电路图

3.3.3显示模块

(1)LED1602的接口信号说明:

1602型LCD的接口信号说明如表3-1所示。

第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背光源负极

表3.11602型LCD的接口信号说明

(2)显示模块

显示部分由液晶显示器LCD1602取代普通的数码管完成。

开锁时,按下键盘上的开锁按键后,利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。

当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD显示“success”,单片机其中P1.2引脚会输出低电平,使三极管T2导通,电磁铁吸合,继电器开关跳转,电子密码锁被打开,相当于绿灯亮。

如果密码不正确,LCD显示屏会显示“error”,P1.2输出的是高电平,电子密码锁不能打开。

通过LCD显示屏,可以清楚地判断出密码锁所处的状态。

电路图如图3.3.3所示。

图3.3.3显示模块电路图图3.3.4密码存储模块电路图

3.3.4密码存储模块

图3.3.3所示AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。

在STC89C52试验开发板上它们都接地,第7脚和第8脚分别为正、负电源。

第5脚SDA为串行数据输入/输出,数据通过这条双向I²

C总线串行传送,在STC89C52试验开发板上和单片机的P2.0连接。

第6脚SCL为串行时钟输入线,在AT89S52试验开发板上和单片机的P2.1连接。

SDA和SCL都需要和正电源间各接一个10K的电阻上拉。

第6脚接P2.1。

AT24C02中带有片内地址寄存器。

每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。

所有字节均以单一操作方式读取。

为降低总的写入时间,一次操作可写入多达8个字节的数据。

存储模块的电路图如图3.3.4。

3.3.5复位部分

单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。

该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C3上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于

某一数值后,CPU脱离复位状态,由于电容C3足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。

增加手动复位按键是为了避免死机时无法可靠复位。

当复位按键按下后电容C3通过R4放电。

当电容C3放电结束后,RST端的电位由R3与R4分压比决定。

由于R3<

<

R4因此RST为高电平,CPU处于复位状态,松手后,电容C3充电,RST端电位下降,CPU脱离复位状态。

R4的作用在于限制按键按下瞬间电容C3的放电电流,避免产生火花,以保护按键触电。

电路图如图3.3.5报警部分

图3.5.5复位模块电路图

3.3.6报警部分

报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P2.3引脚为高电平,三极管T3导通蜂鸣器发出噪声报警。

如图3.3.6所示。

图3.3.6报警部分电路图3.3.7开锁模块电路图

3.3.7

开锁部分

开锁控制电路的功能是当输入正确的密码后将锁打开。

系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。

用户通过键盘任意设置密码,并储存在E2PROM中作为锁码指令。

开锁步骤如下:

首先按下键盘上的负未尝按键,然后利用键盘上自己设定的数字键0-9输入密码,最后按下确认键。

当用户输入密码后,单片机自动识别密码,如果密码不符,有三次机会,若三次都不符则报警,且红灯亮。

只有当密码正确,单片机才能使继电器处于开锁状态。

具体电路如图3.3.7所示。

3.3.8晶振部分

图3.3.8晶振模块电路

STC89C52引脚XTAL1和XTAL2与晶体振荡器及电容C1、C2按图3.3.8所示方式连接。

晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C1、C2取值范围在30pF左右。

根据实际情况,本设计中采用12MHZ作为系统的外部晶振。

电容取值为30pF。

电路图如右。

4.硬件的安装与调试

4.1硬件的安装

安装电路板,先用画图软件画出密码锁的总电路图,并把线路改至最简。

然后按照电路图开始画图,由于本电路采用单片机控制,先焊接单片机STC89C52,单片机STC89C52有四十个引脚,考虑到下载以后的使用,先焊接基座,然后再放上单片机,对于芯片AT24C02也采取同样的方法。

其他元件可直接焊在电路板上,按照布局图或PCB图把元件逐一焊接在电路板上,对于二极管或电解电容等有极性器件要用仪器判断好后在焊接,对于弹片开关也要仔细观察引脚图后再焊接。

元件全部焊接完成后,在仔细检查几遍,确保器件连接正确后,方可通电测试。

4.2硬件的调试

电路连接好之后用万用表对电路进行测试,一个模块一个模块的进行测试,

在确保一个电路模块没有错误之后才进行下一个模块的测试,这样逐个检测。

仔细对查电路图确保没有出现短路,断路,焊错等情况。

如果出现错误,立即修改,如果解决不了则请教同学或是老师,不断进行调试,直到最后电路基本上没有硬件错误。

5.软件程序设计

本程序软件设计由主程序、初始化程序、LED显示程序、键盘扫描程序、键功能程序、密码设置程序、AT24C04读写程序和延时程序组成。

软件原理图如下:

图5.1软件原理图

6.性能测试与数据分析

6.1程序调试

先调试软件程序,大致步骤如下:

第一步,调试LCD显示程序。

第二步,调试键盘,通过在键盘上输入数字在LCD上显示。

第三部,调试AT24C02,通过送一个数字来验证AT24C02是否能读数据和存储数据。

第四部,调试整个程序。

根据所要实现的功能将各个模块连在一起。

6.2性能测试

程序中定义的4*4键盘的功能如下:

确认

取消

修改密码

关锁

1

2

/

3

4

5

6

7

8

9

表6.1键盘功能

写好程序后将程序下载到单片机中,程序见附录,进行各项功能测试。

步骤如下:

第一步,复位后LED上显示enter-code,在键盘上输入初始密码,若按错数字则按下取消键,输完后按下确认,LED上显示success,同时绿灯亮,代表开锁。

若密码输错,有三次机会,一旦出现第三次输错,此时蜂鸣器响,并且红灯亮。

第二步,修改密码,先按下修改密码的按键,LED上显示enter-new-code,此时输入想要修改的密码,并按下确认,LED上显示enter-again,再次输入修改的密码,并按下确认,密码修改成功。

若头两次输入的修改密码不一样,LED显示enter-again,第三次输入修改密码,若三次都对上就会回到主页面,显示enter-code,表示修改密码不成功,密码仍为修改之前的密码。

第三步,关锁,在开锁之后,即LED上显示success之后,按下关锁,将锁住密码,需重新输入密码才能打开。

经过测试,密码锁的各项功能正常,均符合要求。

6.3数据分析

此密码锁有0—9十个输入按键,所以可以设置十位密码。

当设置的密码为十位时,小偷破译的概率为1/1010,所以这个密码锁是很难被破译的。

7.结束语

通过这次的课程设计,让我掌握了很多新知识,同时锻炼了自己的动手能力和查阅资料的能力。

尤其是在实际中解决排查问题的能力。

1.在设计中,我学到了如何使用C语言对单片机进行编程,熟悉了使用KEIL软件,并且加深了对单片机的编程技巧。

2.这次的设计使我对模电,数电的知识加深了了解,尤其是在对电路进行调试的时候,出现了很多这些方面的问题,通过请教同学,查阅资料,将问题解决了。

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,随着科学技术的发展,单片机已经成为当今计算机应用中空前活跃的领域,再生活中可以说是无处不在。

因此作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。

8.参考文献

(1)郭天祥.51单片机C语言教程.电子工业出版社,2009年

(2)胡汉.单片机原理及接口技术.清华大学出版社,1996年

(3)李广弟.单片机基础.北京航空航天大学出版社,2007年

(4)郭海英.基于单片机的电子安全密码锁的设计.现代电子技术.2005年,第三期:

57-58

(5)李钟实.实用电子报警器精选百例.科学技术文献出版社,2002年

(6)肖洪兵.跟我学单片机.北京航天航空大学出版社,2002年

附录一

元件清单

元件名称

元件个数

STC89C52单片机

1个

10K排阻

PNP三极管

蜂鸣器

30PF瓷片电容

2个

11.0592MHz晶振

10uF电解电容

弹片开关

17个

1K电阻

10K电阻

3个

1602液晶

10K滑动变阻器

芯片AT24C02

芯片LM7805

104瓷片电容

排针

若干

排母

附表1.元件清单

附录二

程序清单

#include<

reg52.h>

intrins.h>

#defineU8unsignedchar

#defineU16unsignedint

sbitSDA=P2^0;

sbitSCL=P2^1;

sbitRS=P1^4;

sbitE=P1^5;

sbitLOCK=P1^2;

sbitRED=P1^0;

sbitBUZZ=P2^3;

U8mima1[7];

//用于暂存密码

U8mima[7]={1,2,3,4,5,6};

U8iicmi[7];

U8codeerr[]="

error"

;

U8codeagain[]="

enter-again"

U8codesucc[]="

success"

U8codewarning[]="

no-chance-left"

U8codeset[]="

enter-new-code"

U8codeenter[]="

enter-code"

voiddelay(U8ms)

{

U16i;

while(ms--)

{

for(i=0;

i<

81;

i++)

_nop_();

_nop_();

}

}

}

U8key_scan(void)

{

U8sccode,recode;

P3=0xf0;

if((P3&

0xf0)!

=0xf0)

delay(5);

sccode=0xfe;

while((sccode&

0x10)!

=0)

P3=sccode;

recode=(P3&

0xf0)|0x0f;

P3=0xf0;

while((P3&

=0xf0);

return((~sccode)+(~recode));

else

sccode=(sccode<

1)|0x01;

}

return(0);

voidstart()//开始信号

{

SDA=1;

SCL=1;

SDA=0;

voidstop()//停止

voidstop_read(void)//不应答,停止读数据

SCL=0;

voidiic_ack(void)//应答,继续传输数据

voidrespons()//检查应答

U8ii;

while((SDA==1)&

&

(ii<

250))ii++;

voidwrite_byte(U8date)//写一字节

U8ii,temp;

temp=date;

for(ii=0;

ii<

8;

ii++)

temp=temp<

1;

SCL=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1