用单片机设计电子密码锁.docx

上传人:b****9 文档编号:25833780 上传时间:2023-06-15 格式:DOCX 页数:28 大小:368.05KB
下载 相关 举报
用单片机设计电子密码锁.docx_第1页
第1页 / 共28页
用单片机设计电子密码锁.docx_第2页
第2页 / 共28页
用单片机设计电子密码锁.docx_第3页
第3页 / 共28页
用单片机设计电子密码锁.docx_第4页
第4页 / 共28页
用单片机设计电子密码锁.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

用单片机设计电子密码锁.docx

《用单片机设计电子密码锁.docx》由会员分享,可在线阅读,更多相关《用单片机设计电子密码锁.docx(28页珍藏版)》请在冰豆网上搜索。

用单片机设计电子密码锁.docx

用单片机设计电子密码锁

专业课程设计报告

 

题目:

密码锁的硬件设计

 

姓名:

陈浩乐

专业:

通信工程

班级学号:

10042216

同组人:

陈知龙

指导教师:

刘敏

 

南昌航空大学大学信息工程学院

2013年7月5日

 

专业课程设计任务书

2012-2013学年第2学期 第16周-19周

题目

密码锁的设计

内容及要求

(1)设计一个数字式密码锁;

(2)密码由4-6位数字组成;

(3)密码相符开锁,三次不符报警;

(4)密码可以更新。

 

进度安排

第16周:

查阅资料,确定方案,完成原理图设计及仿真;

第17周:

领取元器件、仪器设备,制作、焊接电路;

第18周:

调试电路,完成系统的设计;

第19周:

检查设计结果、撰写课设报告。

学生姓名:

陈浩乐、陈知龙

指导时间:

第16~19周

指导地点:

E楼604室

任务下达

2013年6月10日

任务完成

2013年7月5日

考核方式

1.评阅

2.答辩□3.实际操作

4.其它□

指导教师

刘敏

系(部)主任

付崇芳

 

摘要

如今的社会上,有些门锁上有一个数字键盘,开启时按序键入一个数字系列。

这种锁就是电子控制的密码锁,常见於办工室与小区单元楼内。

优点是只要知道密码便可,无须复制钥匙。

不过,如果有人把密码告诉外人,这锁便形同虚设。

因此这类密码锁的密码需要经常更换才可以。

本文较为详细的介绍了以单片机ATS89C52为核心设计的电子密码锁。

硬件部分由单片机最小系统、矩阵键盘、显示模块、开锁电路和报警电路组成,层次清晰,以便于按模块化方式组织程序,从而易于调试和维护。

该系统可以完成开锁、三次错误输入则报警、更改密码、重新输入密码等密码锁的功能,实现简单,成本低廉且功能实用。

关键字:

C52单片机逐位比较报警电子产品

目录

前言1

课题背景1

课题内容1

第一章系统组成及工作原理2

1.1系统组成2

1.1.1开锁模块2

1.1.2报警模块3

1.2系统工作原理3

第二章系统及系统各功能模块电路的设计4

2.1最小系统设计4

2.1.1时钟电路5

2.1.2复位电路6

2.2HD7279键盘显示模块7

2.3开锁电路9

2.4报警电路模块10

第三章实验调试及测试结果12

3.1调试12

3.2测试结果13

结论与体会14

参考文献15

附录一电路原理总图16

附录二元器件清单17

附录三电子密码锁完整程序18

前言

课题背景

众所周知,传统的机械式钥匙开锁是麻烦又不安全,且已经逐渐被淘汰了。

随着人们生活水平的提高,许多智能锁(如指纹辨别、IC卡识别)已相继问世,但这类产品的特点是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。

另外,卡片式的IC卡易丢失,加上其成本一般较高,在一定程度上限制了这类产品的普及和推广。

电子密码防盗锁则是用密码代替钥匙,不但省去了佩戴钥匙的烦恼,而且其全系数高,性能稳定,从根本上解决了普通门锁保密性差的缺点,所以电子密码防盗锁作为防盗卫士的作用日趋重要。

随着科技的发展,自动控制系统在工业过程中已成为不可缺少的重要组成部分,是电子技术与自动控制理论的紧密结合,并广泛应用于各个领域。

自动控制系统应用于工业控制有各种各样的结构和形式,实现各钟不同的功能。

在现在的电子世界中,单片机作为自动控制系统的核心部件是很普遍的,而此次设计中用到STC89C51就是一种新型的价格便宜且性能优良的单片机系统,结构简单,布局合理,功能齐全,用途广泛。

 

课题内容

1.设计一个数字式密码锁;

2.密码由4-6位数字组成;

3.密码相符开锁,三次不符报警;

4.密码可以更新。

第一章系统组成及工作原理

1.1系统组成

本次设计的基于单片机的电子密码锁系统主要由三个模块组成,核心是89C52单片机,键盘及数码管显示由HD7279模块电路完成,报警电路由放大电路接蜂鸣器组成,而开锁电路则由发光二极管作为指示代替锁。

单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。

密码锁设计的原理框图如下图1.1:

数据输入

状态显示

图1.1系统框图

1.1.1开锁模块

通过单片机送给开锁电路,再通过软件编程让单片机去控制P1.4口输出。

从而达到开锁的目的。

其原理如图1.2所示:

 

图1.2密码锁开锁框图

1.1.2报警模块

报警模块由软件编程控制,由P1.5口输出报警信号,信号经三极管放大后驱动蜂鸣器报警。

其框图如下图所示:

图1.3报警模块

1.2系统工作原理

通电复位,电路进入初始状态,等待用户的操作,LED数码管没有显示,此时锁闭合。

当用户每输入一个密码,数码管显示一次‘_’,输入完成后,按下“确认”键,当输入密码正确时开锁,继电器动作使得红灯亮。

若连续三次输入错误,则输出报警控制信号,并控制音频放大电路,发出报警声音,同时锁闭合,开锁指示灯灭。

并且必须等待解除报警后即输入正确密码后方可重新开锁。

输入密码正确后,按下“改密”键则可以修改密码,输入的密码必须是4位的,否则密码错误,再按下“确认”键时将回到等待输入新密码的状态;如果输入的密码位数正确再按下“确认”键,LED数码管显示“----”,则完成了密码更新。

第二章系统及系统各功能模块电路的设计

2.1最小系统设计

本次设计中使用的微处理系统是以STC89C52为核心的超想3000单片机应用开发系统。

超想-3000TB开放式综合实验/仿真系统由仿真器、综合实验仪、软件、电源组成。

选配51CPU适配板可在超想-3000TB开放式综合实验仪上完成MCS51单片机实验。

89C51附带的两种典型的电路是时钟电路和复位电路。

主控机系统采用了STC公司生产的89C51单片机,它含有128字节数据存储器,内置4K的电可擦除FLASHROM,可重复编程,大小满足主控机软件系统设计,所以不必再扩展程序存储器。

复位电路和晶振电路是89C51工作所需的最简外围电路。

STC89C51单片机内部结构如下图2.1所示:

图2.1STC89C52单片机内部结构

8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,其中以中央处理器为核心,它是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

2.1.1时钟电路

时钟电路是计算机的心脏,89C51芯片内部有一个由反向放大器所构成的振荡电路。

XTAL1、XTAL2分别为反向放大器的输入和输出端。

通常晶振频率为1.2MHz~12MHz。

89C51的时钟电路有内部和外部两种,如图2.2和图2.3所示。

内部时钟由晶振控制,一般典型值为6MHz、12MHz。

外部时钟电路由外接时钟来控制。

本次设计采用的是内部时钟方式,使得电路更更加简化,也减小系统的生产成本。

图2.2内部时钟电路

图2.3外部时钟电路

2.1.2复位电路

89C51的复位电路有上电复位和系统复位电路。

上电复位电路如图2.4所示:

图2.4上电复位电路

图2.5系统复位电路

本次采用的是系统复位电路,如图2.5所示,89C51的复位端是一个史密特触发输入,高电平有效,而系统中的时钟接口复位信号都是低电平有效。

在复位电路中,按一下复位开关就使在RS端出现一段时间的高电平,经过74LS14的一次反相整形,提供给单片机复位端。

再经过一次反相整形,通过I/ORST端提供给外部接口电路。

外接6MHZ个20PF电容组成系统的内部时钟电路。

单片机最小系统电路图如图2.6所示:

图2.6单片机最小系统电路图

2.2HD7279键盘显示模块

HD7279A是一种管理键盘和LED显示器的专用智能控制芯片,其管脚图如图2.7所示。

DIG0~DIG7和SA~SG同时还分别是64键盘的列线和行线端口,完成对键盘的监视,译码和键值的识别。

在8×8阵列中每个键的键码是用十六进制表示的,可用读键盘数据指令读出,其范围是00H~3FH。

HD7279与微处理器仅需4条接口线,其中CS为片选信号(低电平有效)。

当微处理器访问HD7279A(读键号或写指令)时,应将片选端置为低电平。

DATA为串行数据端,当向HD7279A发送数据时,DATA为输入端;当HD7279A输出键盘代码时,DATA为输出端。

CLK为数据串行传送的同步时钟输入端,时钟的上升沿表示数据有效。

KEY为按键信号输出端,在无键按下时为高电平;而有键按下时此引脚变为低电平并且一直保持到键释放为止。

图2.7HD7279A管脚图

RC引脚用于连接HD7279A的外接振荡元件,RESET为复位端。

该端口由低电平变成高电平并保持25ms即复位结束。

DIG0~DIG7分别为8个LED管的位驱动输出端。

SA~SG分别为LED数码管的A段~G段的输出端。

DP为小数点的驱动输出端。

HD7279A片内具有驱动电路,它可以直接驱动1英寸及以下的LED数码管,使外围电路变得简单可靠。

A-G和DP为显示数据,分别对应7段LED数码管的各段。

当对应的数据位为‘1’时,该段点亮,为‘0’时则不亮。

此指令灵活,通过造字形表,可以显示用户所需的字符。

字形码表如表2-1所示:

表2-17279字形码表

显示字符

显示码

显示字符

显示码

0

7EH

8

7FH

1

30H

9

7BH

2

6DH

g

5FH

3

79H

o

1DH

4

33H

d

3DH

5

5BH

p

67H

6

5FH

L

16H

7

70H

熄灭码

00H

 

HD7279键盘显示模块电路如图2.8所示

图2.87279键盘显示模块电路

2.3开锁电路

开锁控制电路由单片机P1口的P1.4控制。

通过单片机送给开锁执行机构开锁信号,电路驱动电磁锁吸合与打开,从而达到开锁的目的。

光耦可以隔离输入量与输出量,在本设计中起到隔离单片机与电磁继电器的作用。

当单片机发出开锁信号时,P1.4口为低电平,此时光耦内部的的发光二极管导通,接收三极管吸收光而导通,因此使继电器处于常开端即开锁。

当输入密码错误时,输入端为高电平,电磁继电器的中心抽头由“常开”接到“常闭”,锁闭合。

开锁电路如图2.9所示:

图2.9开锁电路控制电路

由于电磁继电器没有领到,所以在焊电路板的时候用一个发光二极管代替。

图2-10发光二极管指示电路

2.4报警电路模块

方案一:

为了避免密码锁被多次试探而解密,输入三次不符报警。

当三次密码错误时P1.5输出高电平,9014的基极为高电平且两个三极管均导通,驱动扬声器工作,即报警。

否则输出低电平,不报警。

报警电路如图2.9所示:

图3.0报警电路一

方案二:

该方案中采用简单的放大电路,信号通过三极管9011放大后即送给蜂鸣器,且报警声音响亮,适合于报警,所以也实现了设计要求。

报警电路如图3.1所示。

两方案相比,方案一需要精确的计算,电路也比较复杂,且不能容许有点误差。

而方案二则电路简单,实用性强,廉价容易实现,所以选择方案二

图3.1报警电路二

第三章实验调试及测试结果

3.1调试

1.在程序中需要用到键值,所以一开始就应该读出键值。

输入读键值程序读出每个按键的键值并送显。

读键值子程序:

所读键值保存到A中,其值与按键在键盘中的位置有关。

TAB[]={0x1c,0x1d,0x1e,0x1f,0x14,0x15,0x16,0x17,0x0c,0x0d,0x0e,0x0f,0x04

0x05,0x06,0x07};

2.排除硬件故障后开始对程序进行调试,调试软件时采取的是分步测试后再集成测试的原则。

首先将键扫程序输入单片机开发系统,运行后按开发系统上的键盘,看显示数码管能否显示所按键的键号。

3.捎入完整的程序并开通电源,发现二极管发光时不停地闪烁以致肉眼无法辨别出,这是调用的延时时间太短造成的,将延时时间加长后即可观察出发光二极管的变化;接着再输入数字位数与密码不符时,二极管也会发光,比如密码是1234,若输入为3456或2345时,标志开锁的二极管会亮,不合要求,于是在判断密码子程序中加了先判断输入位数与密码位数的比较指令,这样就能达到设计要求了。

4.调试中发现密码修改后,当第一输入新密码校验时显示密码错误,而在第二次输入新密码时才显示密码正确,并将锁打开。

检查程序发现是由于程序设计中,在“确认”键处理子程序中,没有重新将输入密码的位数清零,导致修改密码后,再次输入新密码校验时,由于密码位数不正确,导致显示密码错误。

5.调试中输入三次错误密码后,并没有报警,只是显示密码错误而已,再次回到程序,报警处理由原来的“确认”键处理子程序移到密码校验子程序中进行,主要是因为回到“确认”键处理中,标志已经改变,导致无法报警,移动后,报警正常。

调试完毕,程序运行正常并实现设计要求。

3.2测试结果

经过了对硬件和软件的调试后,所有的功能都得以实现。

在锁闭合的状态下,数码管没有显示,当输入与密码相符时,开锁发光二极管正常发光,此时数码管显示“----”。

输入密码错误三次后显驱动报警电路发出十分响亮的警报。

当通过了密码校验后,密码正确,按下改密键,P1.6口输出高电平表示此时正在修改密码。

调试使用的是4位密码。

一切秘密寓于密钥之中。

当破译密码的花费大于文件或信息的价值时,说明加密时有效的、安全的、可靠的。

相应输入4位密码后,回到开锁的状态,密码更新成功。

在锁打开的状态下,按下“输入”键后,锁重新闭合,数码管显示“----”,表示锁已闭合,用户可以离开。

且经过反复多次测试,测试结果都是正确的,所以该系统正确可用。

 

结论与体会

经过查阅资资料设计方案,电路连接后进行实验调试,所设计的基于单片机的电子密码锁安全系统已经实现了所要求的基本功能。

主要功能有:

具有友好便捷的键盘、显示接口;单片机控制电磁继电器密码锁的开关;三次输入错误报警功能;输入密码正确后修改密码功能。

本系统不足之处在于密码掉电后不能存储,重新加电后密码为恢复为原始密码,应该加入存储芯片使得系统掉电后也能存储密码,增强系统的安全性。

这次课题设计,从开始设计到设计的完成,感觉收获挺多,使自己在理论上得到提高。

同时这次课设也让我意识到一个设计的成功需要把握一些关键阶段。

首先是审题,审题就是认真分析设计课题的要求,分析每一个要求实现的功能需要用到哪些硬件模块,应该与哪些电路进行连接,各模块之间有哪些联系,通过查资料、请教老师得出设计的方案,仔细考虑及比较各方案,选择出最合理可行的,并进一步理解原理,这样在调试和查错时,就可以更快找出错误和解决问题。

其次在设计程序之前一定要清楚地分析出系统各资源的分配,如内存单元的分配,显示缓冲区、密码暂存区等的分配,还有P口的分配,只有完全掌握了系统资源才能在程序设计中很好地进行调配,从而完成预定的功能。

最后在课设中充分运用资料是很重要的,尤其是各芯片的功能及其测试方法,设计方案的确定需要查找资料,在组装与调试时,若出现了问题则常常要考虑到芯片的问题,所以要了解芯片的连接与功能,这对排除电路故障有很大帮助。

只有硬件和软件紧密配合,协调一致,才能组成高性能的单片机应用系统。

通过此次设计我学得了一些以前没有学到的知识,同时进一步巩固了以前所学习的知识,同时让我的构想能力和思考能力得到的了一定程度的提高,对事物的严谨性也有更进一步的认识。

设计时需要用到一些电子仪器仪表和计算机模拟电路设计辅助软件,让我对电子仪器和辅助软件的使用更加熟练。

此外课设中需要自己焊接电路板,通过这次的焊接巩固了焊接方面的知识,提高了动手能力。

总的来说,完成这次的设计之后自己的动手能力和动脑能力都得到了一定程度的提高,进而提高了自己的综合素质水平。

参考文献

[1]洪道辉.单片机系统设计与实践[M].北京:

电子工业出版社,2006.5

[2]周立功.单片机实验与实践[M].北京:

北京航空航天大学出版社,2004.8

[3]林军.单片机型计算机原理及接口技术实验指导与实训[M].北京:

中国水利水电出版社,2004.6

[4]张友德,赵志英,涂时亮.单片微型机原理、应用与实验[M].上海:

复旦大学出版社出版,2000.11

[5]吴金戍,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:

清华大学出版社出版,2002.9

[6]沈美明,温冬婵.IMB-PC汇编语言程序设计[M].北京:

清华大学出版社出版,1991.6

[7]李朝清.单片机原理及接口技术[M].北京:

北京航空航天大学出版社,2005

[8]潘新民,王燕芳.单片微型计算机实用系统设计[M].人民邮电出版社出版.1992.7

[9]何立民.单片机应用技术选编[M].北京:

北京航空航天大学出版社.2001

[10]王福瑞.单片微机测控系统设计大全[M].北京:

北京航空航天大学出版社.1998.4

[11]雷霖.现场总线控制网络技术[M].北京:

电子工业出版社.2004

[12]AndrewS.Tanenbaum.TheTestTechnologyofSingle-chipSwitchingPower.ICEMI.2001

 

附录一电路原理总图

 

附录二元器件清单

序号

类型

型号

数量

1

芯片

AT89C52(带插座)

1

2

晶振

12MHz

1

3

四合一数码管

共阴型

1

4

按钮

-

12

5

蜂鸣器

-

1

6

二极管

发光二极管

1

7

三极管

8255

2

8

电容

10pF

1

9

电容

30pF

2

10

电阻

10K

4

11

电阻

1K

1

12

插针

-

若干

13

继电器

5V

1

14

排阻

1K

1

15

导线

-

若干

16

电路板

-

1

 

附录三电子密码锁完整程序

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitbuzzer=P3^0;

sbitrelay=P3^1;

ucharcodetable[2]={0x40,0x00};//共阴极数码管编码显示‘-’和熄灭

ucharkeyword[4]={1,1,1,1};

ucharkeycmp[4];

ucharkey=0,num=0,flg=0;

ucharcount=0;

//==============================延迟程序延时x毫秒

voiddelay(uintx)

{

uinti,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

//==============================报警程序

voidalarm()

{//num=0;

//buzzer=0;

//delay(100);

buzzer=0;

}

//==============================数码管显示程序

voiddisplay()

{uchari,j,cs=0x7f;

for(i=num;i>0;i--)

{

P0=table[0];

cs=_crol_(cs,1);

P2=cs;

delay(10);

}

for(j=4-num;j>0;j--)

{

P0=table[1];

cs=_crol_(cs,1);

P2=cs;

delay(10);

}

}

//==============================密码重置程序

voidset()

{

num=0;

display();

flg=1;

}

//==============================确认键程序

voidok()

{uchari=0;

display();//P0=(flg+1);delay(1000);

if(flg==0)

{

for(i=0;i<4;i++)

if(keyword[i]!

=keycmp[i]){num=0;break;}

if(num==4){relay=0;num=0;count=0;buzzer=1;}

}

if(flg==2)

{

num=0;

for(i=0;i<4;i++)keyword[i]=keycmp[i];

flg=0;

}

if(flg==1)

{

for(i=0;i<4;i++)

if(keyword[i]!

=keycmp[i]){num=0;break;}

if(num==4)

{

num=0;

display();//P0=0x07;delay(1000);

flg=2;

}

}

}

//==============================键盘扫描程序

voidkeyscan()

{

uchartemp1,temp2;

P1=0xfe;//令第一列为低电平,检测第1列

temp1=P1;

if(temp1!

=0xfe)+

{

display();

delay(5);//去抖

temp2=P1;

display();

if(temp1==temp2)

{

switch(temp2)

{

case0xf6:

if(num<4){key=1;keycmp[num]=key;num++;display();}

elsenum=0;

break;

case0xee:

if(num<4){key=4;keycmp[num]=key;num++;display();}

elsenum=0;

break;

case0xde:

if(num<4){key=7;keycmp[num]=key;num++;display();}

elsenum=0;

break;

case0xbe:

set();break;

}

}

}

while(temp1!

=0xfe)temp1=P1;//等待按键释放

display();

P1

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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