基于单片机的可改的密码锁论文说明211 45.docx

上传人:b****3 文档编号:24903383 上传时间:2023-06-02 格式:DOCX 页数:35 大小:212.25KB
下载 相关 举报
基于单片机的可改的密码锁论文说明211 45.docx_第1页
第1页 / 共35页
基于单片机的可改的密码锁论文说明211 45.docx_第2页
第2页 / 共35页
基于单片机的可改的密码锁论文说明211 45.docx_第3页
第3页 / 共35页
基于单片机的可改的密码锁论文说明211 45.docx_第4页
第4页 / 共35页
基于单片机的可改的密码锁论文说明211 45.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

基于单片机的可改的密码锁论文说明211 45.docx

《基于单片机的可改的密码锁论文说明211 45.docx》由会员分享,可在线阅读,更多相关《基于单片机的可改的密码锁论文说明211 45.docx(35页珍藏版)》请在冰豆网上搜索。

基于单片机的可改的密码锁论文说明211 45.docx

基于单片机的可改的密码锁论文说明21145

摘要

单片机技术是智能化检测与控制领域应用非常普及并且具有很大潜力的技术。

论文阐述一个基于单片机的液晶显示电子密码锁的设计与实现。

系统采用美国Atmel公司的AT89C52单片机作为系统核心,液晶显示器LCD1602作为输出设备显示系统提示信息,4*4矩阵薄膜键盘作为输入设备,配合蜂鸣器、继电器等电路构成整个系统硬件;系统软件采用汇编语言编写。

设计的系统液晶显示,密码修改方便,具有报警、锁定等功能,使用便捷简单,符合住宅、办公用锁需求,具有一定的实用价值

关键词:

单片机、电子密码锁、矩阵键盘

 

Abstract

Single-chiptechnologyisanintelligentdetectionandcontrolofthefieldofapplicationisverypopularandhasgreatpotentialforthetechnology.Thepaperdescribedamicrocontroller-basedliquidcrystaldisplaydesignandimplementationofelectroniclocks.Atmel'sAT89C52microcontrollerasthecoreofthesystem,LCDmonitorLCD1602displaysystemastheoutputdevicetothemessage,thefilm4*4matrixkeyboardasaninputdevicewithbuzzer,relaycircuitsthroughoutthesystemhardware;systemsoftwareusingwritteninassemblylanguage.ThedesignofthesystemLCD,passwordchange,withalarm,lockfunction,asimpleandeasytouse,inlinewithresidential,officelockneedstohavesomepracticalvalue

Keywords:

microcontroller,electroniccodelocks,matrixkeyboard

 

目录

引言4

1绪论4

1.1电子密码锁的背景4

1.2电子密码锁的意义和设计特点4

2课题方案的选择5

3任务和要求5

3.1要求电子密码锁设计5

3.2任务5

4设计思路6

5方案的确立6

6总体设计方框图6

7各模块的功能7

8设计原理分析7

9单片机及其外围电路8

9.1复位电路8

9.2时钟电路8

9.3矩阵键盘电路的设计8

9.4操作面板9

9.5液晶显示电路10

10系统软件设计11

10.1系统主程序11

10.2初始化及按键识别12

10.3开锁处理13

10.4改密处理14

10.5液晶显示子程序14

11原理图15

12PCB15

13心得体会16

谢辞17

参考文献18

源程序19

引言

随着人们生活水平的提高,如何实现防盗、安全这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。

1绪论

1.1电子密码锁的背景

随着社会物质财富的日益增长,安全防盗已成为社会问题。

而锁自古以来就是把门户的将军,人们对其要求比较高,不仅安全的防盗,而且还要使用方便,这是制锁者长期以来研制的主题。

锁的种类很多有密码锁、磁性锁、电子锁、激光锁、声控锁等等。

在传统钥匙的基础上加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像(如指纹、眼底视网膜等)来控制锁的开启。

从而大大的提高了锁的安全性能,是不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。

当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。

1.2电子密码锁的意义和设计特点

单片机,亦称单片机微电脑或单片微型计算机。

它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口I/O等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。

计算机的产生加快了人类改造世界的步伐,但是它毕竟大,微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?

纵观我们生活在各个领域,我们的生活中都离不开单片机。

以前没有单片机时这些东西做,但是只能使用复杂模拟电路,然而这样做出来的产品不仅体积大,而且成本不高并且由于长期使用,元器件会不断老化,控制的精度自然达不到标准。

单片机产生后,我们就将这些变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。

这些产品体积小,成本低,长期使用不会担心精度达不到了,而且容易升级改善。

电子密码锁可以在日常生活和现代办公来完成,住宅与办公室的安全防范,单位的文件档案财务报表以及一些个人资料的保存等多种场合使用。

大大提高了主人物资的安全性。

目前使用的密码锁种类多,各具特色。

2课题方案的选择

方案一:

使用89c52单片机,采用汇编语言写程序,该程序语言功能强大,调试较为简单。

具有很强的实用性。

方案二:

利用数字逻辑电路,运用电压比较器,555单稳态电路。

计数器,JK触发器,UPS电源等实现对门的电子控制。

方案三:

利用89c52单片机,利用单片机的C语言编写程序,通过KeilC51uVision2软件进行仿真模拟。

综上分析:

方案二给予数字电路,操作繁琐。

会出现较多的器件故障,同时调试难以维护。

方案三该逻辑语言较为复杂,编写程序时也较为复杂,还需进行软件仿真模拟,设计复杂。

综上所述:

使用较为简单,调试简单,硬件电路较少,易于维护。

3任务和要求

3.1要求电子密码锁设计

(1)路,理解各个元件之间的控制流程。

(2)熟悉PROTEUS平台的运行环境。

(3)熟练掌握汇编语言,矩阵式键盘的实时控制操作。

3.2任务

(1)键盘控制识别方案

(2)析电子密码锁的流程

(3)画出程序流程图

(4)分析电路图

(5)编写代码

(6)程序分析与调试

4设计思路

该电路是一种采用以AT89C51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还要根据实际需要添加调电存储、声光提示甚至增加遥控控制功能。

5方案的确立

为了实现密码的保密性,采用一个4×4的矩阵式键盘可以任意设置用户密码(1-16位长度),从而提高了密码的保密性。

设计采用一个超级密码,送电开机时,只要输入超级密码便可开门,这样可预防停电后再送电时无密码可用。

采用了1602液晶显示器来作为显示单元,提高了可读性,使用户对密码锁的运行情况一目了然。

6总体设计方框图

 

 

图2.1系统结构框图

7各模块的功能

1.键盘输入模块:

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

2.密码存储模块:

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

3.蜂鸣器报警电路:

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

4.晶振电路:

用于单片机的起振。

5.复位电路:

完成系统的复位。

6.显示模块:

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

7.LED显示模块:

用于辅助报警与输入提示。

8.开锁电路:

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

8设计原理分析

本系统外围电路包括键盘输入部分、密码存储部分、复位部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4×4矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用内部存储器来完成。

其原理图如下:

9单片机及其外围电路

9.1复位电路

9.2时钟电路

时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下的进行的,如果单片机的时钟电路停止工作(晶振停振),那么单片机也就停止运行了。

当采用内部时钟时,连接方法如下图所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个12MHZ晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,

9.3矩阵键盘电路的设计

为了加强密码的保密性,采用一个4×4的矩阵式键盘可以任意设置用户密码(1-16位长度),从而提高了密码的保密性,同时也能减少与单片机接口时所占用的I/O口线的数目,节省了单片机的宝贵资源,在按键比较多的时候,通常采用这种方法。

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

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

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

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

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

此系统中,我们采用线反转法。

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

具体方法是:

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

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

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

方法是:

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

9.4操作面板

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

更正、改密、锁定。

其中更正键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。

在输入密码状态下,0-9数字键为有效键,有时间和次数限制功能:

只有三次输入密码机会,每次限制在10秒内完成,输入密码有误或每次输入密码超时,则被认为是密码输入错误。

当3次输入都错误时,程序将返回起始状态。

密码输入正确后,继电器吸合,表示锁被打开。

在密码输入正确的情况下,程序进入查看密码和修改密码状态,。

按“改密”键进入重新设置密码状态,在输入密码时,如发现输入有误,可按“更正”键删除后,重新输入,按“锁定”确认后,程序退出修改密码状态。

9.5液晶显示电路

本系统设计的显示电路是为了给使用者以提示而设置的为了达到界面友好的目的,显示部分由液晶显示器LCD1602取代普通的数码管完成。

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

当密码输入完成时,如果输入的密码正确的话,LCD显示“OK”,绿灯亮起,单片机其中P3.0引脚会输出低电平,使三极管T2导通,电磁铁吸合,继电器开关跳转,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“ERROR”,P3.0输出的是高电平,电子密码锁不能打开,同时红灯亮起。

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

图3.7显示器电路

显示器主要用于显示以下几个字符,指示如图所示。

A

S

W

O

R

D

 

P

S

 

图3.8(a)开机状态

 

D

 

 

等待输入状态

K

 

 

O

 

 

密码输入正确状态

R

O

R

 

E

 

R

 

密码输入错误及输入密码超时的提示

10系统软件设计

系统的软件设计采用汇编语言编码。

设计方法是先用文本编辑器编写源码,然后用软件KeilC51编译,如果没有错误,可连接生成.HEX格式的文件(需事先在KeilC51中设置)。

如果有错误则无法连接,但可在生成的.OBJ文件中找到代码错误的地方,便于修改。

当然也可以直接在Keil中编码。

生成的HEX文件是记录文本行的ASCII文本文件,在HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量。

HEX文件经常被用于将程序或数据传输存储到ROM、EPROM,大多数编程器和模拟器使用HEX文件。

10.1系统主程序

系统的主程序如图4-1所示。

由于用户在使用系统的过程中,可能在任何时刻按下任何按键,而程序都必须对此作出正确响应。

主程序流程图

10.2初始化及按键识别

如图4.2,系统的初始化包括堆栈起始地址的设定,两个定时/计数器的设定,液晶显示模式的设定,密码缓冲区的初始化,一些自定义数据空间的初始化,蜂鸣器初始化发声等操作。

系统初始化并读取密码完成后,液晶显示"PASSWORDCONTROL",提示用户可以输入密码。

此时程序即不断测试按键,检查是否有按键被按下。

如果有,则进行按键识别;如果没有按键按下,或者按下的按键没有被识别,R3赋值0FFH,并跳转至按键测试。

实际程序运行时,绝大部分时间都在测试按键,等待用户输入。

初始化及按键识别流程图

10.3开锁处理

首先LCD初始化,输入密码,密码正确则使开锁电路动作,继电器得电,开锁指示灯亮。

开锁流程如图所示。

开锁流程图

10.4改密处理

如图,可以看出,改密键的处理流程跟开锁键类似,都需检查密码是否正确,错误的话,提示重新输入,只有输入密码正确才可以进行改密。

然后再按更改键,密码更改程序被调用,进而更改密码,此过程,LCD都会显示信息。

改密流程图

10.5液晶显示子程序

液晶显示子程序在每次更新显示内容时都会被调用,其流程如图所示。

液晶显示子程序流程图

每次更新显示内容前,需清显示清空LCD原先的显示内容,清屏指令的指令码为01H,即将P0口赋值01H,然后写入指令寄存器IR。

LCD1602要显示的内容是根据其控制器内置的字符码表,事先列出要显示的ASCII字符串。

每次送一个字符的ASCII码入P0口,然后写入数据寄存器DR,最后将字符地址加一,LCD1602会将写入的ASCII码对应的字符依次显示出来。

由于显示字符串的长度不尽相同,约定每串字符以00H结尾;程序检测到字符码为00H时,即停止写入,返回。

LCD显示的内容在下次更新前会一直保持。

11原理图

12PCB

 

13心得体会

这次单片机原理课程设计历时一个星期,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。

但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。

因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。

其次,以前学的C程序是纯软件的,这次针对单片机进行编写,有很大的挑战。

但是经过一段上机的实践,我对C编写单片机有了一定的认识和理解,学会了定时中断,以及怎么去了解每个寄存器的内容以确保程序的正确性等方面都有了很大程度的提高。

实验中再次证明了一个人的力量是有限的这个道理,我在编写C程序的过程中,经常走进死路,多亏了同学的提供的新思路和新方法,常常使我豁然开朗,大大的提升了编写的效率。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了单片机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了C程序的编写过程和运行过程,提高了自己的动手能力和思维能力。

最后,还要感谢老师对我们的帮助和理解,使我们在困难的时候能顺利的找到出路。

 

谢辞

感谢学校及学院制定了学期期末的实训的重要实践教学环节。

实训是学生在校期间全面素质教育的重要实践训练,其目的是为了培养学生科学的思维方式和正确的设计思想,综合运用所学理论、知识和技能分析和解决实际问题的能力。

通过本次实训,我觉得自己无论在理论知识方面还是在综合实践能力方面都得到了很大的提高。

还有,老师们严谨求实的治学态度,踏实坚韧的工作精神,将使我终生受益。

再多华丽的言语也显苍白。

在此期间,我不仅开阔了视野,而且学到了许多新的知识,提高了自己的设计能力。

我要感谢帮助过我的同学,他们的热心让我坚持把实训做好,他们助人为乐、互帮互助的精神,他们团结合作、共同进步的品质令我感动,感谢他们!

 

参考文献

[1]孙雪梅,范久臣.实时时钟芯片在单片机系统中的应用.

[2]孙安青编著.AT89S51单片机实验及实践教程

[3]郭天祥编著.51单片机C语言教程.电子工业出版社

[4]苏小红.C语言大学实用教程(第二版).电子工业出版社

[5]姜志海.单片机原理及应用(第二版).电子工业出版社

[6]王港元.电子技能基础.成都.四川大学出版社,2007

[7]杨拴科.模拟电子技术基础[M].北京:

高等教育出版社,2003

 

源程序

 

#include"delay.h"

/*------------------------------------------------

uS延时函数,含有输入参数unsignedchart,无返回值

unsignedchar是定义无符号字符变量,其值的范围是

0~255这里使用晶振12M,精确延时请使用汇编,大致延时

长度如下T=tx2+5uS

------------------------------------------------*/

voidDelayUs2x(unsignedchart)

{

while(--t);

}

/*------------------------------------------------

mS延时函数,含有输入参数unsignedchart,无返回值

unsignedchar是定义无符号字符变量,其值的范围是

0~255这里使用晶振12M,精确延时请使用汇编

------------------------------------------------*/

voidDelayMs(unsignedchart)

{

while(t--)

{

//大致延时1mS

DelayUs2x(245);

DelayUs2x(245);

}

}

 

#include"eeprom.h"

#include"delay.h"

voidStart(void)//I2开始

{

SDA=1;

SCL=1;

NOP4();

SDA=0;

NOP4();

SCL=0;

}

voidStop(void)//I2C停止

{

SDA=0;

SCL=0;

NOP4();

SCL=1;

NOP4();

SDA=1;

}

voidRACK(void)//读取应答

{

SDA=1;

NOP4();

SCL=1;

NOP4();

SCL=0;

}

voidNO_ACK(void)//发送非应答信号

{

SDA=1;

SCL=1;

NOP4();

SCL=0;

SDA=0;

}

voidWrite_A_Byte(ucharb)//写一个字节数据

{

uchari;

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

{

b<<=1;

SDA=CY;//CY进位程序状态字寄存器

_nop_();

SCL=1;

NOP4();

SCL=0;

}

RACK();

}

voidWrite_IIC(ucharaddr,uchardat)//向指写地地址写数据

{

Start();

Write_A_Byte(0xa0);

Write_A_Byte(addr);

Write_A_Byte(dat);

Stop();

DelayMs(10);

}

ucharRead_A_Byte(void)//读取一个字节

{

uchari,b;

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

{

SCL=1;

b<<=1;

b|=SDA;

SCL=0;

}

returnb;

}

ucharRead_Current(void)//从当前地址取数据

{

uchard;

Start();

Write_A_Byte(0xa1);

d=Read_A_Byte();

NO_ACK();

Stop();

returnd;

}

ucharRandom_Read(ucharaddr)//从任意地址读取数据

{

Start();

Write_A_Byte(0xa0);

Write_A_Byte(addr);

Stop();

returnRead_Current();

}

 

#include"key.h"

unsignedcharkey_scan()

{

unsignedchartemp,keyno;

P1=0x0f;

DelayMs

(1);

temp=P1^0x0f;

switch(temp)//纵行

{

case1:

keyno=1/*1*/;break;//第一纵行

case2:

keyno=2/*2*/;break;//第二纵行

case4:

keyno=3/*3*/;break;//第三纵行

case8:

keyno=4/*3*/;break;//第四纵行

}

P1=0xf0;

DelayMs

(1);

temp=P1>>4^0x0f;

switch(temp)

{//横行

case1:

keyno+=0/*A*/;break;//第一行横行

case2:

keyno+=4/*B*/;break;//第一行横行

case4:

keyno+=8/*C*/;break;//第一行横行

case8:

keyno+=12/*D*/;break;//第一行横行

}

P1=0x

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

当前位置:首页 > 自然科学 > 物理

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

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