电子密码锁毕业设计C51程序.docx

上传人:b****5 文档编号:5687535 上传时间:2022-12-31 格式:DOCX 页数:24 大小:188.09KB
下载 相关 举报
电子密码锁毕业设计C51程序.docx_第1页
第1页 / 共24页
电子密码锁毕业设计C51程序.docx_第2页
第2页 / 共24页
电子密码锁毕业设计C51程序.docx_第3页
第3页 / 共24页
电子密码锁毕业设计C51程序.docx_第4页
第4页 / 共24页
电子密码锁毕业设计C51程序.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

电子密码锁毕业设计C51程序.docx

《电子密码锁毕业设计C51程序.docx》由会员分享,可在线阅读,更多相关《电子密码锁毕业设计C51程序.docx(24页珍藏版)》请在冰豆网上搜索。

电子密码锁毕业设计C51程序.docx

电子密码锁毕业设计C51程序

泉州信息职业技术学院

毕业设计(论文)

 

题目:

系别:

专业:

届别:

学号:

姓名:

指导老师:

 

泉州信息学院教务处印制

带断电存储功能的电子密码锁设计

摘要

本文介绍一种基于单片机和串行EEPROM的智能密码锁,是密码锁设计中比较简单的一种,考虑到经济和水平的原因设计中扩展的功能还不够强大,但是其主要功能有键盘输入、LED数码管显示、加密、修改密码、密码检测、错误报警等简单易懂、使用方便、安全性能高等。

本设计采用AT89S52单片机为芯片主体,采用AT24C08为掉电存储器的芯片。

这种芯片稳定性高,成本低,还能扩展很多功能,如红外探测技术,指纹识别技术,语音识别技术,图像识别技术等,但本设计没有采用这些扩展。

它是采用AT89S52单片机和AT24C08串行EEPROM,通过AT89S52模拟I2C总线和AT24C08通讯,实现密码锁的功能。

在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点,本次设计使用ATMEL公司的AT89S52实现一基于单片机的电子密码锁的设计。

件调试电路板,完成本次毕业设计。

 

关键词:

AT89S52,AT24C08,密码锁,矩阵键盘

 

目录

第1章引言------------------------------------------------3

第2章方案论证---------------------------------------------4

2.1方案一:

采用数字电路控制方案--------------------------4

2.2方案二:

采用一种是用以AT89S51为核心的单片机控制方案---5

第3章硬件设计---------------------------------------------6

3.1功能模块---------------------------------------------6

3.2原理图---------------------------------------------9

3.3PCB图-----------------------------------------------9

3.4实物------------------------------------------------10

第4章软件设计--------------------------------------------11

4.1程序流程图-------------------------------------------11

4.2程序实现功能.----------------------------------------12

第5章总结-------------------------------------------------13

致谢语------------------------------------------------------14

参考文献---------------------------------------------------15

附录一程序-------------------------------------------------16

附录二元件清单--------------------------------------------22

 

第1章引言.

 

在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。

但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。

而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。

加上其成本较高,一定程度上限制了这类产品的普及和推广。

鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

本次设计使用ATMEL公司的AT89S52实现一基于单片机的电子密码锁的设计

 

第2章方案论证

 

设计本课题时构思了两种方案:

一种是用以AT89S52为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。

考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,所以本文采用前一种方案。

2.1方案一:

采用数字电路控制方案

采用数字电路控制,其原理方框图如图2-1所示。

图2-1数字密码锁电路方案

采用数字密码锁电路的好处就是设计简单,用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。

电路由两大部分组成:

密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。

密码锁电路包含:

键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。

 

2.2方案二:

采用一种是用以AT89S51为核心的单片机控制方案

以AT89S51为核心的单片机控制方案利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。

其原理如图2-2所示。

图2-2单片机控制方案

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

 

第3章硬件设计

3.1功能模块

3.11开锁电路设计

通过单片机送给开锁执行机构,将P3.5置低电平,密码正确指示灯亮,从而达到开锁的目的。

其原理如图3-1所示。

图3-1密码锁开锁示意图

3.12按键电路设计

由于设计要求使用矩阵键盘,所以本设计就彩行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O口线的数目,在按键比较多的时候,通常采用这样方法,其原理如图3—2所示。

图3-2行列式键盘原理电路图

每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。

在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就要识别哪一个按键按下。

对键的识别通常有两种方法:

一种是常用的逐行扫描查询法,另一种是速度较快的线反转法。

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

方法是:

依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

按键的操作面板如图图3-3所示。

共计数字键10个,功能键4个,键盘上还有2个指示灯和蜂鸣器。

图3-3按键操作面板示意图

其中10个数字键用来输入密码,另外4个功能键分别是:

A、B、C、D。

其中A键的功能是显示密码,B键的功能是确认输入的密码,C键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入,D是用来进入修改密码的状态。

上面的两个指示灯L1、L2、是用来指示操作的状态:

L1是开门指示灯,正常的情况下无显示,当键盘动作且密码正确的时候,灯亮;L2是电源状态指示灯,当接通电源时,指示灯自动点亮,否则,灯灭。

面板上还有一个蜂鸣器,其功能是当用户输入密码错误时或密码输入错误次数超过了3次,鸣笛以示报警。

3.13显示电路设计

本系统设计的显示电路是为了给使用者以提示而设置的,选择四位连体共阳的数码管,本系统的显示采用并行显示的方式,只使用单片机的两个口P0口和P2口,就可以完成单片机的显示功能,显示电路的电路原理图如图3-4所示,P0口完成段码显示,P2口完成位选功能。

电路设定:

当密码输入错误次数达到三次以上时,显示”E”,当无输入\断电时,则关闭显示,当忘记密码,输错密码,判断密码正确无误时,可通过功能键进行显示更改密码及判断。

图3-4显示器原理图

3.14AT24C08断电存储单元的设计

断电存储单元的作用是在电源断开的时候,存储当前设定的信息。

AT24C08是ATMEL公司的8KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。

其电路如图3-5所示。

图3-5断电存储电路原理图

由于AT24C08的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。

每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。

3.15总体设计总框图

图3-6总体设计框图

3.2原理图

3.3PCB图

3.4实物

第4章软件设计

4.1程序流程图

图4-1主程序流程图图4-2修改密码流程图

图4-3键盘程序流程图图4-324c08程序流程图

4.2程序实现功能.

该主要由三部分组成:

4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。

另外系统还有LED提示灯,报警蜂鸣器等,可分为以下几个模块:

垣残壁

(1)主程序模块

主程序主要完成初始化、检查有无按键按下、以及调用显示等等,其流程图如4-1所示。

(2)显示子程序

由于是分屏显示数据,所以就要用到4个显示子程序,分别是:

功能键显示密码状态子程序、修改密码显示子程序、判断密码输入正确提示子程序、密码输入错误次数超过3次后的锁定状态显示子程序,其流程图如4-2所示。

(3)键盘扫描及识别子程序

键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回,其程序流程图如4-3所示。

(4)调电存储服务程序

当比较密码的时候,需要读AT24C08程序,将存储在芯片内的数据读到RAM中,然后和输入的密码相比较。

当修改密码的时候,需要把输入的密码保存到AT24C08中,并实现断电保护,其流程图如4-4所示。

第5章总结

 

以上为实习期间所设计的电子密码锁电路,它经过多次修改和整理,是一个能满足人们的基本要求,但因为水平有限,此电路中也存在一定的问题,譬如说电路的密码不能立即清除,数码管不是很亮,这可以通过增加电路解决,但过于复杂,本次设计未其中;

我感觉有很大的收获:

首先,通过学习使自己对课本上的知识可以应用于实际,使的理论与实际相结合,加深自己对课本知识的更好理解,同时实习也段练了我个人的动手能力:

能够充分利用图书馆去查阅资料,增加了许多课本以外的知识。

能对protel99、和KeiluVision等仿真软件操作,能达到学以致用。

对我们学生来说,理论与实际同样重要,这是我们以后在工作中说明自己能力的一个重要标准。

在做设计的过程中,我感受到了老师对学生的那种悔人不卷的精神,每天的固定时间,老师都来给我们指导,使我们少走弯路,顺利完成实习任务,请允许我向你们致意崇高的敬意,感谢你们,老师!

在没有做毕业设计以前,觉得毕业设计只是对知识的单纯总结,但是通过这次毕业设计发现自己的看法有点太片面,课程设计不仅是对前面所学知识的一种检验,也是对自己能力的一种提高,通过这次课程设计使自己明白了原来的那点知识是非常欠缺的,要学习的东西还很多,通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。

在这次毕业设计中,同学之间互相帮助,有什么不懂的大家在一起商量,发现我们所学的知识实在是有限,不过我们能够充分利用网络的优势去查阅资料。

在整个设计过程中懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦。

虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益

 

致谢语

在此,,我很感谢我的指导老师陈海彬,在做毕业设计的过程中得到他的悉心指导,在论文行文过程中,多次帮助我分析思路,开拓视角,在我遇到困难想放弃的时候给予我最大的支持和鼓励。

从论文选题到搜集资料,从写稿到反复修改,期间经历了喜悦、聒噪、痛苦和彷徨,在写作论文的过程中心情是如此复杂,陈海彬老师始终认真负责地给予我深刻而细致地指导,在百忙之中抽出时间帮助我搜集文献资料,帮助我理清论文写作思路,对我的论文提出了诸多宝贵的意见和建议。

帮助我开拓研究思路,精心点拨、热忱鼓励。

正是老师的无私帮助与热忱鼓励,我的毕业论文才能够得以顺利完成,谢谢陈海彬老师。

他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。

陈老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关怀,在此谨向陈老师致以诚挚的谢意和崇高的敬意。

我还要感谢在一起愉快的度过毕业论文小组的同学们,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。

我要感谢,非常感谢自己。

在论文的写作过程中,自己总是积极主动的,主动与老师同学们沟通,不耻下问。

通过写作论文,我更加深刻理解了“态度决定一切”这句话,论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!

最后,再次对关心、帮助我的老师和同学表示衷心地感谢,感谢我的家人和那些永远也不能忘记的朋友,他们的支持与情感,是我永远的财富

 

参考文献

 

1.孙涵芳,徐爱卿编著。

MCS—51/96系列单片机原理及应用(修订版)。

北京:

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

2.何立民编著。

MCS-51系列单片机应用系统设计(系统配置与接口技术)。

北京:

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

3.吴微,文军编著。

单片机原理及制作。

武汉:

武汉大学出版社,1991.5

4.孙育才,苏学成编著。

单片微型计算机应用系统设计与实现。

南京:

东南大学出版社,1990.5

5.郑步生,Multisim2001电路设计及仿真入门与应用,北京。

电子工业出版社,2002

6.何小艇。

电子系统设计。

杭州:

浙江大学出版社,2000

7.李瀚荪主编。

电路分析基础(上、中、下册(第三版))。

北京:

高等教育出版社,1983

8.温照方编。

电路基础。

北京:

北京理工大学出版社,19969。

9.杨志忠。

电子技术基础——数字部分。

北京:

电力出版社,1999

10.杨颂华。

数字电子技术基础。

西安:

西安电子科技大学出版社,2000

11.杜刚。

电路设计与制板——Protel应用教程(电子电路设计循序渐进系列教程)。

北京:

清华大学出版社,2006

12.曾峰。

印刷电路板(PCB)设计与制作。

北京:

电子工业出版社,2005

13.童诗白,华成英,模拟电子技术基础(第三版),北京,高等教育出版社,2001

康华光,电子技术基础(模拟部分,第四版),北京,高等教育出版社,1999

14.王佩珠,电路与模拟电子技术,南京,南京大学出版社,1994

15.杨清学,电子装配工艺【M】北京,电子工业出版社,2004

16.王成安,模拟电子技术(实训篇)【M】,2版,大连,大连理工大学出版社,2005

17.黄纯,电子产品工艺【M】北京,电子工业出版社,2001

 

附录一程序及部分说明

 

#include

#include

unsigned

charb[14]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0xff,0xff,0xff,0xff};

unsignedcharc[4];

unsignedchara[4]={0xf1,0xf2,0xf4,0xf8},kk[8];

unsignedcharK,Key,ac,i,z,wr,ii;//ac表示数码管显示个数

sbitscl=P2^6;

sbitsda=P2^7;

sbitP35=P3^5;

sbitP34=P3^4;

//延时子程序

voiddelay(unsignedcharpp)//延迟时间等于pp*1ms

{

while(pp--)

{

unsignedcharj;

for(j=0;j<126;j++);//j进行的内部循环,1次延迟8us,延迟1ms

}

}

voiddelayNOP()

{

_nop_();_nop_();_nop_();_nop_();

}

//开始位

voidstart()

{

sda=1;

delayNOP();

scl=1;

delayNOP();

sda=0;

delayNOP();

}

//停止位

voidstop()

{

sda=0;

delayNOP();

scl=1;

delayNOP();

sda=1;

delayNOP();

}

//应答//

voidrespons()

{

unsignedchari;

scl=1;

delayNOP();

while((sda==1)&&(i<250))i++;

scl=0;

delayNOP();

}

//总线初始化//

voidinit()

{

sda=1;

delayNOP();

scl=1;

delayNOP();

}

//写字节//

voidwrite_byte(unsignedchardate)

{

unsignedchari,temp;

temp=date;

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

{

temp=temp<<1;

scl=0;

delayNOP();

sda=CY;

delayNOP();

scl=1;

delayNOP();

}

scl=0;

delayNOP();

sda=1;

delayNOP();

}

//读字节//

unsignedcharread_byte()

{

unsignedchari,j,k;

scl=0;

delayNOP();

sda=1;

delayNOP();

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

{

scl=1;

delayNOP();

if(sda==1)

j=1;

else

j=0;

k=(k<<1)|j;

scl=0;

delayNOP();

}

returnk;

}

//写地址//

voidwrite_add(unsignedcharaddress,unsignedchardate)

{

start();

write_byte(0xa0);

respons();

write_byte(address);

respons();

write_byte(date);

respons();

stop();

}

//读地址//

unsignedcharread_add(unsignedcharaddress)

{

unsignedchardate;

start();

write_byte(0xa0);

respons();

write_byte(address);

respons();

start();

write_byte(0xa1);

respons();

date=read_byte();

stop();

returndate;

}

//功能//

voidfun1()//功能键显示密码

{

for(z=0;z

{

P0=c[z];

P2=read_add(wr++);

c[3]=c[2];

c[2]=c[1];

c[1]=c[0];

c[0]=read_add(i++);

}

}

voidfun2()//判断密码

{

if(((P0=read_add(i))!

=(P0=c[i]))&&((P2=read_add(i))!

=(P2=a[i])))

{

P34=0;

delay(100);

P34=1;

ii++;

}

else

{

P35=0;

}

}

voidfun3()//删除功能键

{

for(K=10;K<11;K++)

{

c[0]=c[1];

c[1]=c[2];

c[2]=c[3];

c[3]=b[K];

}

}

voidfun4()//更改密码确认键

{

if(P35==0)

{

write_add(i,c[0]);

write_add(wr,a[0]);

delay(10);

write_add(i+1,c[

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

当前位置:首页 > 医药卫生 > 基础医学

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

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