单片机课程设计可改密码的电子密码锁设计.docx

上传人:b****6 文档编号:5104321 上传时间:2022-12-13 格式:DOCX 页数:14 大小:1.27MB
下载 相关 举报
单片机课程设计可改密码的电子密码锁设计.docx_第1页
第1页 / 共14页
单片机课程设计可改密码的电子密码锁设计.docx_第2页
第2页 / 共14页
单片机课程设计可改密码的电子密码锁设计.docx_第3页
第3页 / 共14页
单片机课程设计可改密码的电子密码锁设计.docx_第4页
第4页 / 共14页
单片机课程设计可改密码的电子密码锁设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机课程设计可改密码的电子密码锁设计.docx

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

单片机课程设计可改密码的电子密码锁设计.docx

单片机课程设计可改密码的电子密码锁设计

 

 

课程设计(论文)任务书

设计题目:

可改密码电子密码锁

设计任务:

以89C52单片机为核心,制作一个能够更改6位密码的模拟电子密码锁。

设计要求:

•密码位数为6位。

•显示利用1602液晶显示。

•更改的密码支持断电保留。

•支持持续输入三次错误密码报警。

•密码输入状态动态显示。

•别离利用两个发光二极管表示输入正确和错误密码。

可改密码电子密码锁设计报告

摘要本文介绍基于MCS-51单片机的可更改密码的电子密码锁设计,并支持掉电保留密码,程序利用了C语言编写。

关键词单片机电子密码锁改变

Abstract:

ThisarticledescribestheMCS-51microcontrollerbasedonthepasswordchangethedesignofelectroniclocks,andtosupportpower-downsavethepassword,theprogramusestheClanguage.

Keyword:

MCUElectroniccodelockChange

 

第一章概述

密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。

它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。

此刻应用较广的数字密码锁是以芯片为核心,通过编程来实现的。

其性能和安全性已大大超过了机械锁。

其特点是保密性好,随机开锁成功率几乎为零。

密码可变,用户能够随时更改密码,避免密码被盗,同时也能够避免因人员的更替而使锁的密级下降。

无活动零件,不会磨损,寿命长。

利用灵活性好,不像机械锁必需佩带钥匙才能开锁。

数字密码锁操作简单易行,一学就会。

本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。

到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。

本设计是基于单片机的密码锁设计方案,按照要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分派、C语言源程序及详细注释等内容。

第二章系统整体方案设计

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

利用单片机灵活的编程设计和丰硕的IO端口,及其控制的准确性,不但能实现大体的密码锁功能,还能添加掉电存储。

其原理如图所示。

单片机控制方案

 

设计思路如下:

一、输入密码用矩形键盘(4*3),包括数字键和功能键。

二、LCD1602用来实时显示当前的各操作状态。

3、用发光二极管代替开锁的电路,发光表示开锁。

4、输入密码错误次数超过3次,系统报警。

五、打开电源后,LCD交替显示“Inputpassword,pleasepress0”和“Changepassword,pleasepress1”,设原始密码为“123456”,只要输入此密码便了开门。

如此可预防停电后再来电时无密码可用。

六、任何状态下,按“取消”键,LCD返回功能交替选择的初始状态。

7、欲从头设定密码,需先输入旧密码后才能更改。

八、修改密码时,需输入两次新密码确认一致,若是两次输入的密码不一样则LCD显示“error”并返回初始状态。

软件的设计主要包括键盘键值的读取,LCD显示程序,密码比较程序和报警程序等。

第三章硬件电路设计

键盘电路设计

利用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数量,在按键比较多的时候,通常采用如此方式。

其原理如图。

本设计中矩阵键盘接在单片机的P1口。

 

图矩阵键盘

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

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

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

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

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

对照图所示的4×3键盘,说明线反转个工作原理。

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

方式是:

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

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

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

方式是:

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

具体的功能设计如表:

表按键功能

按键

键名

功能说明

0-9键

数字键

功能选择和输入密码

确认键

确认键

完成并确认当前操作

取消键

取消键

取消当前操作返回初始状态

显示电路

本系统设计的显示电路是为了给利用者以提示而设置的。

本系统的显示采用了LCD1602作为显示模块,其能够同时显示16x02即32个字符。

LCD在系统中一共负责显示12条操作提示,其D0-D7引脚别离接单片机的P0口、VSS和VDD别离接电源和地线、VEE为液晶亮度调节按钮(可接电位器)、RS为数据或命令的选择端接、RW为读写的选择端接、E为使能信号接。

如图所示。

 

图LCD显示电路

LCD1602的管角及寄放器介绍如下:

  

引脚说明

1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中:

  

引脚

符号

功能说明

1

VSS

一般接地

2

VDD

接电源(+5V)

3

V0

液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

4

RS

RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

5

R/W

R/W为读写信号线,高电平

(1)时进行读操作,低电平(0)时进行写操作。

6

E

E(或EN)端为使能(enable)端,下降沿使能。

7

DB0

低4位三态、双向数据总线0位(最低位)

8

DB1

低4位三态、双向数据总线1位

9

DB2

低4位三态、双向数据总线2位

10

DB3

低4位三态、双向数据总线3位

11

DB4

高4位三态、双向数据总线4位

12

DB5

高4位三态、双向数据总线5位

13

DB6

高4位三态、双向数据总线6位

14

DB7

高4位三态、双向数据总线7位(最高位)(也是busyflag)

15

BLA

背光电源正极

16

BLK

背光电源负极

 

寄放器选择控制表  

RS

R/W

操作说明

0

0

写入指令寄存器(清除屏等)

0

1

读busyflag(DB7),以及读取位址计数器(DB0~DB6)值

1

0

写入数据寄存器(显示各字型等)

1

1

从数据寄存器读取数据

  注:

关于E=H脉冲——开始时初始化E为0,然后置E为1,再清0。

busyflag(DB7):

在此位为被清除为0时,LCD将无法再处置其他的指令要求。

开锁电路

在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,,表示开锁;第二个发光管亮表示密码错误。

电路图如所示。

当和口输出低电平时,二极管发光,表示开锁或密码错误。

图开锁电路

报警电路

图报警电路

报警模块由蜂鸣器和单片机组成。

选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。

蜂鸣器电路如图所示。

当89C52的口输出为低电平时,蜂鸣器产生蜂鸣音,89C52输出为高电平时,蜂鸣器不发声。

本设计中当持续输入三次错误密码时(包括开锁和更改密码两种功能操作),蜂鸣器就会发声表示报警。

密码掉电保留电路

本设计中为了在系统掉电时能够保留系统的设置密码,利用了具有I2C总线接口的E2PROM的AT24C02芯片来保留密码锁的密码。

如图所示。

图密码保留电路

AT24C02的介绍如下:

管脚描述  

管脚名称

功能

A0A1A2

器件地址选择

SDA

串行数据/地址

SCL

串行时钟

WP

写保护

Vcc

+~工作电压

Vss

SCL串行时钟  AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。

  

SDA串行数据/地址  AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。

 

A0、A一、A2器件地址输入端  这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默许值为0。

当利用AT24C02时最大可级联8个器件。

若是只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A一、A2)可悬空或连接到Vss,若是只有一个AT24C02被总线寻址这三个地址输入脚(A0、A一、A2)必需连接到Vss。

  

WP写保护  若是WP管脚连接到Vcc,所有的内容都被写保护只能读。

当WP管脚连接到Vss或悬空允许器件进行正常的读/写操作

第四章软件设计

软件设计思路

电子密码锁工作的主要进程是LCD提示开始选择操作功能(选择开锁仍是更改密码),通过键盘输入功能选择键0或1(现在键盘其它按键被暂时屏蔽)。

当用户选择开锁时,通过键盘输入开锁密码。

若是密码输入正确,则LCD提示密码正确、第二个LED灯亮表示开锁。

若是密码输入错误则LCD提示密码错误并亮一个LED灯亮。

当输入密码持续输入错误3次时,系统报警。

当用户选择更改密码功能时,要求用户先输入当前密码。

当密码正确时LCD提示用户进一步操作,且用户必需输入两次新密码用以确认。

当两次输入的新密码一致时,单片机想AT24C02写入新密码,不然提示错误并返回处状态。

LCD在提示用户输入密码时,会光标闪烁并逐位显示。

当光标没有闪烁时表示已经不能输入数字了,需按“确认”键以告知单片机已完成操作。

“取消”键用来消除当前的状态,无论出于系统处于哪个阶段都能返回初始状态。

 

程序设计流程图

 

 

 

程序设计

系统的源程序采用了C语言编写,因为C语言具有专门好的模块性,故编写的程序都采用了子程序模块化编写。

具体程序及程序说明见附件2。

第五章系统调试

1、单片机开发板实物图:

2、功能选择时的初始状态:

3、开锁状态:

3、开锁状态:

4、密码输入状态:

5、密码正确开锁:

6、修改密码状态:

7、密码修改失败和成功:

第六章心得体会

在着抄本次课程设计时,通过查阅网络与图书馆搜集到的资料,加上指导老师指点,结合生活中对密码锁的功能特性要求,设计出了这一套电子密码锁系统的主要硬件结构和软件结构,大体完成了课题。

不过由于了解的专业知识尚浅,对课题的研究经验的不足,使得在技术的解决与运用上显得粗糙了一些,专门是功能键的设定。

在设计的进程当中经历和克服了许多困难,暴露咱们知识和经验不足的同时也积累了实践经验,检阅了大学所学的知识,使所学的知识取得温习和巩固。

通过这次毕业设计我学到了很多东西,温习了理论知识,专门是单片机外围电路模块电路设计及其应用编程;学会搜集和处置资料的一些大体问题,提高获取新知识的能力、分析和解决问题的能力和交流与合作的能力。

这次课程设计终于顺利完成了,在设计中碰到了很多编程问题,在同窗的帮忙下,终于游逆而解。

超级感激!

致谢

在学习单片微型运算机与接口技术课程,我要感激的指导老师的耳提面命。

固然,还要感激的在我完成设计进程中给予我帮忙的同窗们。

此刻即将完成我的课程学习,还有我大学第三年的生活,虽然恋恋不舍,可是对未来的路,我充满信心。

相信有了这次的实践设计经验,在接下来的学习和以后的工作中,将能更好的将学到的知识应用于实践。

也相信在接下来的补充学习与应用中能更好的巩固这门课程的知识。

最后,再次感谢老师对我学习的指导和帮忙和同窗们的鼓励!

参考文献:

一、李群芳张士军.片微型运算机与接口技术.北京:

电子工业出版社,2010.

二、郭天祥.51单片机C语言教程.北京:

电子工业出版社,2009.

3、白延敏.51单片机典型系统开发实例精讲.北京:

电子工业出版社,2009.

4、XX百科:

 

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

当前位置:首页 > 高等教育 > 军事

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

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