电子密码锁毕业论文_第1页
电子密码锁毕业论文_第2页
电子密码锁毕业论文_第3页
电子密码锁毕业论文_第4页
电子密码锁毕业论文_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、闽江学院本科毕业论文(设计)题 目 基于51单片机的电子密码锁 学生姓名 王颖丹 学 号 3111101215 系 别 计算机科学系 年 级 2011级 专 业 嵌入式应用 指导教师 郑明 职 称 副教授 完成日期 2015-5-26 诚信承诺书本人郑重声明:兹提交的毕业论文(设计) 基于51单片机的电子密码锁 ,是本人在指导老师 郑明 的指导下独立研究、撰写的成果;论文(设计)未剽窃、抄袭他人的学术观点、思想和成果,未篡改研究数据,论文(设计)中所引用的文字、研究成果均已在论文(设计)中以明确的方式标明;在毕业论文(设计)工作过程中,本人恪守学术规范,遵守学校有关规定,依法享有和承担由此论文

2、(设计)产生的权利和责任。 声明人(签名):王颖丹2015年 3 月 1 日摘 要本次毕业设计我选择的是基于51单片机的电子密码锁,所选芯片为AT89C51。这个电子密码锁包括了5*4矩阵键盘模块,24C02存储模块,报警模块,1602液晶屏显示模块。使用的编程工具是keil C51,画图工具是Protell 99 SE,烧写工具是STC479。在本次毕业设计的制作过程中,我经过不断的调试,更改程序,来提高锁的使用性能,最后的调试结果,我还是比较满意的。因为它基本实现了开题报告中所提到的功能:报警功能、开锁功能、掉电存储密码功能、显示功能、键盘输入功能等。但是还是有一些遗留问题的,比如显示屏老

3、是花屏,按键不够灵敏等。关键词:单片机AT89C52;密码锁 ;5*4矩阵键盘 ;1602液晶屏 AbstractThis graduation design I choose is based on the 51 singlechip electronic code lock, the selected chip AT89C51.the electronic password lock comprises a 5 * 4 matrix keyboard module, 24C02 memory module, alarm module, LCD display module. Using t

4、he programming tool is KEIL C51, drawing tools is protell 99 SE, the programming tool is STC479. In the making process of the graduation design, I through continuous debugging and change procedures, to improve the use performance of the lock and the debug result. I was satisfied, because it basicall

5、y achieved mentioned in the proposal that the function: alarm function, lock function, electric storage password function, display function, keyboard input function. But there are still some problems left, such as the display is always flower screen, buttons and other key is not sensitive.Key words:

6、SCM AT89C52; password lock; 5 * 4 matrix keyboard; 1602 LCD screen; safety performance。 目 录1.概述1.1 引言51.2 电子密码锁的背景51.3 电子密码锁设计的意义和的特点62. 系统设计2.1系统总设计结构图82.1.1 功能设计92.2 芯片的选择92.3 主控芯片AT89C52单片机的简介102.3.1主要特性102.4 编程工具123. 系统硬件设计3.1 总框图133.2 键盘图133.3 显示模块143.4 蜂鸣器模块143.5 LED流水灯模块143.6 密码掉电保护24C02存储模块1

7、53.7 晶振时钟电路153.8 复位电路设计163.9 串口引脚功能介绍163.10 硬件成品174.软件设计4.1 系统软件设计流程图:194.2 系统软件设计流程205. 程序调试5.1 程序调试用到的软件及工具245.2 调试过程245.2.1 显示模块测试:245.2.2 键盘模块测试:245.2.3 蜂鸣器模块测试:255.2.4复位模块测试:255.2.5 24C02存储模块测试:255.3遗留问题266. 设计总结27参考文献28致 谢29附录 30 基于51单片机的电子密码锁1.概述1.1 引言 大家都知道,由古至今,人们的财产安全大多都是通过锁来完成的。在现代这个社会锁对于

8、每个人,每个家庭来说都是不可或缺的生活保障。伴随着这个社会历史的发展和人类文明的进步,人们对自己生命安全的保障意识和财产安全的保障意识都得到了很大幅度的提升。而锁的花样也越来越多,由一开始的机械式锁,到现在各式各样的电子锁。显而易见的,电子锁的功能也更加的完善了,安全性能也更高了。随着社会的发展,城市规模的扩大,及各个大城市中外来人口的引入,是本来复杂的城市越来越难管理。尤其是近来,针对小区及住房入室盗窃和抢劫的事时有发生,是人们的生活受到的很大的影响。对于这些盗窃屡有发生,主要原因为:人们对于安全防范设施的不完善,个人安全防范的意识也不够高,小区物业管理不够完善。而现在,电子锁的成本越来越低

9、,功能越来越强,使它被广泛的用于小区楼道德安全管理中,这种成本相对较低的安全措施,却为小区及住宅提供了不小的安全作用。这种电子密码锁,是一种可以通过从键盘输入密码,然后来完成一个开锁的过程。而人们最开始深究这种电子密码锁的目的,便是为了提高使用锁的安全性。 从古代到今天,我们可以看到各种类型的锁出现在我们的眼前。有国内的,也有国外的,但是事实上这些锁都不具有真正的完善的防盗功能。在一些真正的惯偷面前,只需要一些钢线或者一些简单的开锁的工具就能打开这些锁。曾经有一些惯偷就说过:“没有我打不开的锁。”而事实上呢,也并不是他们的偷盗手法有多么的高明。正真的原因就是一般的锁具原理都不够复杂,很是简单。

10、而对于这样的一个社会现状,人们对锁提出了极其迫切的改进要求。1.2 电子密码锁的背景 在当今的社会,我们可以看到各类样式繁杂的锁具,有可以按指纹的,也有数码的,还有电子的。甚至还有类似于IC卡的锁。但是最常见的还是按键的锁。随着这个社会的进步和人类科学的发展。锁具也发展成了电子锁,门锁,还有激光锁等。包括了不同的声音、不同的磁域、还有不同的声波、不同光束光波、以及很多不同的图像。来控制锁的开启。从而大大提高了防盗锁,使犯罪分子不能开始,人们将能够有更多的保护自己的财产。在今天这个社会,信息安全系统也应用的越来越广泛,尤其是在保护机密上起主要作用。维护人们的隐私和保护人们的财产,是电子密码锁的安

11、全系统的一个组成部分。因此电子密码锁的研究具有很大的现实意义。1.3 电子密码锁设计的意义和的特点 单片机也被称为微机或单片机。这是一个(CPU)中央处理单元,一个随机存取存储器(RAM),一个只读存储器(ROM),输入/输出(I / 0)等电脑部件。它的主要功能基本都集成在了一块集成的电路芯片上。计算机的发展迅速,加剧了人们改造这个世界的步伐。但是它的体积毕竟过于庞大。MCU(单片机)是出生在这种情况下。这是我们要改变的吗?在我们生活的各个领域,从导航装置来控制导弹,航空仪表,通信和计算机网络在工业自动化和过程的实时控制和数据传输,数据处理。并且能够广泛的应用于我们的生活

12、中,比如在各种智能IC卡,电子宠物中。这些是离不开单片机的。如果没有以前的单片机。这些东西虽然可以做,但是它们却只能用复杂的模拟电路。而且,这样做出来的成品不仅体积大,成本还很高。同时也会由于长期使用,使得它的部件老化,控制精度达不到标准值。 SCM,我们将成为这些事情的智能控制者。因为我们只需要一个简单的单片机外围接口电路。但是该方案的核心是由人们自己编写代码来,烧写程序来完成的。该产品具有体积小,成本低的优势,长期使用也无需担心是否准确,并且它还易于升级。 在日常生活中的办公区和住宅区,单位的文件档案,财务报表,和一些个人信息中。都可以使用电子锁来完成。很大幅度提升了主材料的安全性,基本可

13、以取代老旧的防盗机械锁。目前,许多类型的锁的使用,独特的。是适用于住宅区、办公区的锁,更是一个值得推广的产品。 (1)我设计的这个电子密码锁的系统可以设置8位的密码,密码可以通过键盘输入。如果输入的密码正确,则可以将锁打开,led等会闪一下并伴有两下的滴滴声。如果输入的不正确的话,电子密码锁就会发出滴滴滴滴滴的报警声。 (2)密码可以由用户自己设置。在已经将锁打开的状态下,用户也可以自己修改密码。 (3)而且我的这个电子密码锁也具备自动报警功能。自动报警为蜂鸣器报警。 (4)这种情况下可报警:一是密码输入错误,则报警。当电子密码锁进入工作状态时,用户可以通过按键输入8位的密码。然后单片机将用户

14、所输入密码与用户所设定密码进行比较。如果两个密码比较后,密码相同则正确。那么发出开锁信号,则LED指示灯会亮一下,蜂鸣器响两声,将门打开,系统不报警。如果两个密码比较后,密码不一致则不正确。蜂鸣器发出滴滴滴滴滴的报警声,并要求重新输入密码。如果用户输入的密码累积起来一共错了3次的话,那么电子密码锁就会被锁定了。而且,锁定之后必须断电重启后才能再次输入密码。 (5)掉电存储密码功能,如果用户修改完密码之后,断电重新启动密码锁,输入的密码是用户之前修改的密码。2. 系统设计2.1系统总设计结构图如下图2.1:单片机显示 部分键盘输入部分报警电路部分密码存储部分 系统总设计结构图2.1 本设计的主控

15、芯片是AT89C52。单片机是用来负责控制电子密码锁整个系统电路的执行过程。其中:单片机:单片机这个部分的话,它的功能包括了写入数据和读取数据,以及各种命令的控制和数据的处理。与此同时呢,还需要对各执行单元分别进行控制。单片机是本系统的控制中心和数据处理中心。键盘部分:这个部分是由用户自己输入各个数据信息并传送至单片机中进行数据分析和处理。显示部分:这个模块完成的是用户所输入的数据信息的显示以及系统信息的提示显示。密码存储部分:这个模块完成的是原始密码的存储和用户所更改数据的存储。报警电路部分:这个模块的的主要功能是增加系统的安全性能和实用性。报警电路的主要功能就是在用户进行错误的操作后进行一

16、个报警提示。还有就是其他的一些部分,它们主要是:电源电路、复位模块、晶振模块、开锁电路。电源模块的话,它的主要的功能是为单片机提供工作电源,于此同时也为整个电路提供工作电源。复位模块它的功能是使系统在出现故障或死机时进行复位。开锁电路就是在用户输入正确的密码的时候,把电子密码锁给打开。2.1.1 功能设计 此电子密码锁的组成部分为:51单片机最小系统,矩阵键盘部分,电源电路部分,报警电路部分以及复位电路部分。P3口接的是矩阵键盘电路。XTAL1和XTAL2接晶振电路。p2.0口接的是报警电路。RST接的是复位电路。每个电路都由单片机控制,来实现电子密码锁功能。 此电子密码锁组成部分: 密码锁显

17、示:当我们输入密码的时候,每按下一个按键,液晶屏welcome下面中就会显示一个*号。如果我们输入密码正确,那么LED灯亮,并且伴有滴滴的声音,1602液晶屏屏幕上就会显示Right open。如果我们输入的密码错误,则蜂鸣器会报警并且发出滴滴滴滴滴的声音,1602液晶屏也会显示wrong retry。我的这个单片机本来是5*4的矩阵键盘,但是我的这个毕业设计只用到了上面三排。我设置的是可以输入8位数的密码,通过键盘来输入密码。如果密码输入正确,则可以打开锁。密码由用户自己设置,如果用户忘记了密码,则可以用万能密码打开。 而我设计的报警电路:含有蜂鸣器和一个发光二极管组成。如果输入的密码正确,

18、那么二极管会亮一下,并且蜂鸣器也会发出两下滴滴的声音。如果用户输入的密码错误,那么蜂鸣器就会发出滴滴滴滴滴的声音,即报警。 主要实现功能为: 一、解锁:输入密码->如果正确,1602液晶屏显示Right open,如果错误,显示wrong retry。 二、修改密码:按修改按键->输入密码->确定按键->再次输入密码->确定按键->1602液晶屏显示change success。 三、万能密码锁,密码忘记或被锁定时输入,打开电子锁。 四、如果输入密码错误超过3次,则会停止,需开机重启再试。五、掉电存储密码:当关闭电源后,用户所修改的密码会存储到EEPROM里

19、面,再次开启电子密码锁时,密码是用户之前所修改的密码。2.2 芯片的选择 在本次设计中,我所选择的是AT89C52的芯片,AT89C52芯片是最常见的单片机芯片。AT89C52电磁阀开锁驱动电路 密码正确 电子密码锁工作图 2.2 2.3 主控芯片AT89C52单片机的简介 AT89C52是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的EEPROM擦除可重复1000次。AT89C052是它的一种精简版本。外形及引脚排列如图所示。2.3.1主

20、要特性兼容MCS51指令系统8kB可反复擦写(大于1000次)Flash ROM;32个双向I/O口;256x8bit内部RAM;时钟频率0-24MHz;管脚说明 VCC:供电电压。 GND:接地。 还包含了P0、P1、P2、P3口的基本功能。我就不在这里做出详细的介绍了。下面我们主要来说说P3口的其他功能。P3口也可作为AT89C52的一些特殊功能口。如下表所示: P3口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(计时器0外部输入) P3.5 T1(计时器1外部输入)

21、P3.6 WR(外部数据存储器写) P3.7 RD(外部数据存储器读) RST:复位输入。振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。 SCON 串行口控制寄存器。它的各个位的具体定义如下: SM0 SM1 SM2 REN TB8 RB8 TI RI 而且SMO、SM1可以对应四种模式的设置。串行口工作模式设置。 SM0 SM1 模式 功能 波特率 0 0 0 同步移位寄存器 fosc/12 0 1 1 8位UART 可变 1 0 2 9位UART fosc/32 或fosc/64 1 1 3 9位UART 可变 下面是AT89C52芯片:

22、AT89C52引脚图及芯片图 2.32.4 编程工具 在本次毕业设计中,我所使用的编程工具是KEIL C51 。Keil C51 简介: KEIL C51软件是KeilSoftware有限公司的产品,是产于美国的C语言。不同的结构功能是51系列单片机C语言软件开发的兼容的系统。与汇编语言相比更有优势。Keil C51的优势主要在于它的可读性,可维护性和易于使用。另一个重要的一点,则是看看是否可以编译生成的汇编代码。多数语句生成的代码生成的汇编会比较紧凑,易于理解。在大型软件的开发中,可以更好地反映真正的高层次的语言。 我们要完成编辑,编译,连接,调试和仿真的发展过程。在C51的工具包中包含了u

23、Vision和IShell的是Windows和DOS C51集成开发环境(IDE)。开发人员可以使用IDE或其他编辑器编辑C源文件或程序集。 C51和A51,其中的目标文件(.OBJ)分别编译。然后您创建的目标文件是建设置于连接在一起生成绝对目标文件和库files.Abs通孔库LIB51 L51文件。调试器源代码级调试一个标准的文件OH51 ABS或16进制文件dscope51 tscope51。可以通过模拟器调试目标板直接使用,可以在程序存储器直接写,如EEPROM。3. 系统硬件设计3.1 总框图 总框图里面包括了我单片机中所用到的所有电路,下面会逐个画出来。如图3.1 硬件设计总原理图3

24、.13.2 键盘图 我的单片机是5*4的矩阵键盘,但是因为在本次毕业设计中我只用到上面那三排的按键,所以我就只画了一个4*4的按键原理图。它一共用到了7个引脚,分别是P3.0、P3.1、CSDA(P3.2)、LCDEN(P3.4)、RS(P3.5)、WR(P3.6)、RD(P3.7),如图3.2 按键模块原理图3.23.3 显示模块 下面是1602显示屏的原理图模块,如图3.3 1602显示模块原理图3.33.4 蜂鸣器模块 单片机的FM口接两个电阻及一个PNP元件,再接一个FM接地,形成蜂鸣器电路。如图3.4 蜂鸣器模块原理图3.43.5 LED流水灯模块 八个LED灯与P2相接。74HC5

25、73锁存器的1-9引脚分别与单片机的DB1-DB8相连,引脚11与单片机AT89C52DIOLA引脚相连。这样形成一个led流水灯模块。如图3.5 LED流水灯模块原理图3.53.6 密码掉电保护24C02存储模块 24C02的SDA、SCL分别接1个10K的电阻。SCL是时钟信号引脚,它是在上升沿送入eeprom,下降沿把数据读出来的。SDA是数据的输入、输出引脚。A0-A2这三个引脚是24C02硬件连接的器件地址输入引脚。而且A2、A1和A0的内部都是必须连接着的。 24C02存储模块原理图3.63.7 晶振时钟电路 单片机的XIAL1引脚和XIAL2引脚都分别接一个30PF的电容,然后再

26、在中间并1个12MHZ的晶振。这样就形成AT89C52单片机的晶振电路。如图3.7 晶振时钟电路原理图3.73.8 复位电路设计在这里,我用的是电平,而不是脉冲方式。电平复位时通过RST端经电阻与电源VCC接通而实现的。如图3.8。J13代表的是AT89C52芯片。 复位电路设计原理图3.83.9 串口引脚功能介绍 单片机的P3口外接1602显示屏,用来当做密码输入时显示的显示器。AT89C52的INT0引脚外接蜂鸣器。同时,如果INT0引脚被设置成0的时候,蜂鸣器会发出报警的声音。P1口外接发光二极管用来当做系统工作状态提示。 本电路绘制是使用PROTEL 99 SE绘制的。 PROTEL

27、99 SE简介: Protel99SE是Protel公司近10年在Windows平台上所开发出来的最新成果。可以从设计到输出物理生产数据电器概念实现,而所有的分析,验证和设计数据管理。但工具的系统中,覆盖印刷电路板的整个物理设计的核心。该软件Protel的最新版本可以毫无障碍地阅读的OrCAD,加速度(PCAD)等知名EDA公司设计文件,使用户顺利过渡到新平台的EDA。PROTEL99 SE可以分为五个模块,其中包括原理图设计,PCB设计,包括信号完整性分析,自动路由设备,混合信号仿真,PLD设计原理图。下面是一些用Protel99SE的新功能的大部分的: 该电连接可以产生30种网络表的格式。

28、 强大的全局编辑功能。 同时操作原理图和PCB图,再开放搜索组件之间的原理图和PCB地图,允许双向交叉。 可以转发注释组件标记(从示意图到PCB),也可以反向注解(由PCB至示意图)。电气原理图和PCB的设计,都可以保持一致性。易于使用的数字模式的混合仿真(兼容3F5)。支持中国政法大学的语言和PLD,杰德生成标准的下载文件的原理图设计。 还包含了放置汉字的功能。 检验的传输线路特性和仿真验证了准确的计算算法,信号完整性分析直接开始从印刷电路板。 反射和串扰仿真波形显示效果和便捷的测量工具组合。3.10 硬件成品 这是一整块的单片机板。如图3.10 单片机板成品图3.10 下面是1602显示屏

29、,如图3.11 1602显示屏图3.11开始4.软件设计4.1 系统软件设计流程图:系统唤醒上电流程图:系统等待密码输入 输入错误,蜂鸣器报警,要求重新输入密码。从键盘输入8位数密码,确定密码错误比较输入的密码与EEPROM密码是否相同错误次数累加,若错误3次,系统锁定。否修改密码密码正确是LED灯亮,蜂鸣器响两声,开门断电重启输入新密码系统返回密码保存后系统返回再次输入密码蜂鸣器报警提示密码错误否判断两次输入的密码是否一致是系统软件设计流程图4.14.2 系统软件设计流程 本设计的软件程序设计主要有: (1) 初始化程序 这段程序主要做的就是1602的显示。我们先设置的是1602液晶屏显示的

30、模式。然后显示开关,及清屏。还有就是1602显示屏的显示光标的移动。 (2)按键功能实现 密码输入按键:按键功能的是实现是用户先输入8位密码,然后按确定键。此时,系统会自动判断用户输入的密码是否与EEPROM里面所存储的密码是不是一样的。如果用户输入的密码,和eeprom里面存储的密码是一样的。那么1602显示屏就会提示RIGHT,OPEN。那么相反的,如果用户输入的密码,和eeprom里面存储的密码是不一样的。那么1602显示屏就会提示wrong,retry。要是用户输入的密码,错误的次数累计超过了3次。那么程序会被锁定,需要断电重启才能再从键盘输入密码。密码修改按键:用户选择修改密码,然后

31、用户需要先输入旧密码。此时,由系统判断用户输入的密码是否与EEPROM里面所存储的密码是一样的。如果用户输入的密码,和eeprom里面存储的密码是一样的。那么1602显示屏就会提示RIGHT,OPEN。如果不是一样的,即用户输入的密码,和eeprom里面存储的密码是不一样的。那么1602显示屏就会提示wrong,retry。要是用户输入的密码的错误累计次数超过了3次。那么程序会被锁定,需要断电重启才能再从键盘输入密码。 (3)密码修改程序按修改密码按键输入想要修改的密码第二次输入密码输入密码不一致 修改失败比较两次输入的密码输入密码一致修改成功 返回主程序密码修改程序流程图5.2.3 (4)报

32、警程序输入密码N比较输入密码与存储密码是否一致Y蜂鸣器报警5声蜂鸣器响两声密码正确,密码锁打开密码错误错误次数累加,若错误3次,系统锁定。 输入错误,蜂鸣器报警,要求重新输入密码。返回断电重启系统报警程序流程图5.2.4 (5)显示模块程序系统上电唤醒 清屏 液晶屏亮显示welcome iInput password 返回 显示模块程序流程图4.2.55. 程序调试第一,把你已经编写好的C语言程序代码下载到你的软件调试工具里面。其次,汇编后就查看所编写完成的代码是否有错误。然后再查看编译时的错误提示,分析提示,把这个程序进行修改。修改无误后再进行单片机生成机器代码hex文件。如果程序可以进行编

33、译,并且没有提示错误。那么就使用STC479将之前完成的51单片机的代码烧录至开发板。再根据实际情况,如果有未实现的功能,则再次将代码进行修改,直到完成所需要的功能为止。5.1 程序调试用到的软件及工具 我的这个毕业设计的调试软件主要是有用到KEIL C51,以及51开发板一块和与其配套的下载烧录软件STC479。5.2 调试过程首先我们先打开KEIL C51软件,然后新建工程时选择ATMEL、89C52并且保存,新建文本框写入代码后再点击保存,并添加到组中。然后开始检查是不是有语法错误,经过检查后确认没有错误,则生成51单片机可执行的HEX文件。然后用51开发板相匹配的烧录STC479软件把

34、HEX文件烧写进单片机内,烧写成功后,测试程序是否可以在单片机上运行,并且查看所编写的功能是否有实现。5.2.1 显示模块测试:第一,我要先测试的是屏幕是否能显示,测试过程中,刚开始是不能显示的。于是我想通过修改程序来改变它的状态,但是改完代码发现还是不能显示。在最后,我选择查看自己的硬件是否出了问题,最后发现是在1602液晶屏与单片机相接时。引脚插反了,所插的引脚和我代码所写的引脚是相反的。第二,测试能显示之后还要测试显示的是否是正常状态,要求显示的内容必须正确。在测试过程中,我发现屏幕老是会出现花屏,但是它的内容显示的是正确的。于是我就这个问题作了修改,将屏幕的延时作了修改,改完之后,会好

35、一些。但是还是会出现花屏。5.2.2 键盘模块测试:第一,我首先要测的也是键盘按键按下之后,按键传输至AT89C52中,再从AT89C52中传送至显示屏。然后通过查看显示屏是否会有反应来确定键盘是否正常。第二,确定正常之后再给键盘定义我所需要它输出来的数字和功能分别是哪些,是否都能实现,最后测试完毕后发现基本都是正常的,只是有时候按键会不够灵敏。5.2.3 蜂鸣器模块测试: 第一,我首先要先用代码确定蜂鸣器是否可用,确定可用之后,调试发出声音的次数和我代码写的次数是否一致,测试之后发现是对的。 第二,再测发出声音的频率是否正确,然后再将完整的代码烧入进去测试,发现密码输入错误是会报警,那么蜂鸣

36、器的测试结果正常。5.2.4复位模块测试:首先要确定测试复位按钮可用,将代码烧写进去之后,若出现显示屏花屏现象时,我们可以选择按复位键必须回到初始状态,而不用像我之前一样,断电重启才行。最后的测试结果正常。5.2.5 24C02存储模块测试: 第一,我们要先测试24C02这个芯片是否能正常使用,使用数码管测试。先将测试程序即测试开机次数代码,烧录至单片机板内。然后反复开关机,查看数码管的状态,次数是否会增加。测试结果是24C02芯片是可用的。第二,我再将已经改写完成的掉电存储密码的程序烧录至单片机板内,选择修改密码,修改完成后断电。使用新密码登陆,看能否登陆。能登陆即代码改写成功,否则不成功。

37、测试的结果是不成功的。在经过多次更改和反复测试后,一直都不成功。于是,我向同学求助。同学看过之后发现我代码的写入和读出有问题。在同学的帮助下,我修改了代码。使得电子密码锁掉电之后终于能够记住掉电前所修改的密码了。第三,就是测试整个电子密码锁功能是否正常,在修改的过程中是否有影响到其他功能的使用。于是,我将电子密码锁所有的功能都进行了一次测试,发现又出现了一个新的问题,那便是密码输入错误后提示再次输入,按按键没有反应,即密码出错一次就不能再输入密码了,只能断电重启。于是我就重新查看代码是否哪里有误,最后发现,我所定义的数据写入的参数与按键输入密码的参数相同。最后我将定义的参数改了一下就可以正常使

38、用了。 所以,24C02的最后测试结果是正常的。 5.3遗留问题在最后,还要说一下在本次毕业设计中的遗留问题。在设计过程中我遇到了很多的问题,有的解决了,有的还未解决。下面就是我遗留下来的问题: 1.再输入密码的过程中,我的显示屏老是会出现中间跳空了某一个数字。我也修改了代码,延迟数据接收的速率,但是效果并不是很明显。 2.在按键按动的过程中,经常性的出现花屏现象。我先选择用延时来解决,修改完延时后,这个问题有所改善,但并没有完全解决。我想可能还需要去抖,还有就是我在想也许我的硬件也存在一些接触问题。但由于现在时间紧迫,只能先将这个问题留在这里了。我觉得解决这个问题的大致的一个方案,就是选择延

39、时,然后去抖或者硬件方面做出的修改。 3.最后还有一个就是按键不是很灵敏 。很多时候按一下,它会跳出两个数字,要不然就是没有反应。我想可能还是和键盘模块的代码有关系。还需要修改按键的接收字节的速率。 4.还有一个比较严重的问题就是,用户不需要先输入密码就能选择修改密码。虽然说用户不需要进入电子密码锁就能修改密码比较奇怪。但是由于时间的问题,我还不能够将它改正。但我的解决方案大概就是在用户按修改密码之前,要先判断用户是否进入电子密码锁成功。如果用户还没有进入电子密码锁,则提示请开锁。如果已经进入电子密码锁,那么久、用户就可以自行进行密码的修改。6. 设计总结 在本次毕业设计中,我看到了自己很多的

40、不足之处,首先,对于自己要做的这个设计,没有做到完善功能。其次,有些问题还是没有改正,比如说屏幕去斗。很经常出现屏幕变花,但是我多次修改,还是没有将它改正。在调试过程中也出现了很多的问题,比如总是出现重复定义,或者没有定义的情况。最最困难的一件事情就是点点后密码的存储问题。经过多我自己的多次修改,还是没有办法将它改正,应此我不得不向同学们求解。在不断的求解过程中,我发现自己的能力还是很不足的。至少在实践上还是与理论上有很大差的。 从本次毕业设计中,告诉了我,要不断的努力,不断的去复习,去学习。不管是做什么事,我们都要用尽全力去做去拼。完成毕业设计的过程中,我的导师-郑明老师,他给了我很大的鼓励

41、,让我不断的完善自己,不断的去学习,去做的更好,将毕业设计完成得更加的完善。 但是,由于我的能力有限,还是遗留了很多问题的。而且因为时间关系,所以只能等到日后我自行去解决。如今,电子密码锁在社会上是越来越广泛了,随着科技的发展,我相信电子密码锁会变得更加的完善,成为保护人们财产安全的一大助手。在我们现在生活的社会,哪里都要用到密码。所以我相信,电子密码锁一定会是一个很成功的存在。不管什么时候,都不会过时,而我们现在最需要做的就是不断的去完善它,加强它的功能和安全性。让人们今后在使用它时,尽量少的出现问题。能够放心的去使用。 最后,我想说的是,虽然在设计这个电子密码锁的时候。会出现很多的难处,很

42、多不理解和不能完成的地方,但是我还是坚持下来了。这件事情让我明白了一个道理,遇到事情不能随随便便就放弃。如果你选择了做一件事,就不要随随便便放手。因为你永远不知道,你什么时候会成功,但是你如果放弃,却马上可以知道你一定会失败。 参考文献1 江春来.电梯曳引机扭振测试新方法的研究重庆:机械电子工程,2008 2 康华光.电子技术基础(模拟部分)M.北京:高等教育出版社,2006 3 余发山,王福忠.单片机原理及应用技术M.徐州:中国矿业大学出版社,20084 潘永雄.新编单片机原理及应用M.西安:西安电子科技大学出版社,20035 康华光.电子技术基础(数字部分)M.北京:高等教育出版社,200

43、66 百度文库.存储芯片24C02中文资料7 张毅刚.MCS51单片机应用设计M.哈尔滨:哈尔滨工业大学出版社,2004 8 李广第等.单片机基础M.北京:北京航空航天大学出版社,2001.9 彭为.单片机典型系统设计实例精讲M.北京:电子工业出版社,2006.10 余发山,王福忠.单片机原理及应用技术M.徐州:中国矿业大学出版社,2008 11 刘和平.刘跃.单片机原理及应用.重庆.重庆大学出版社,200412 陈明荧.89C51单片机课程设计实训教材.北京.清华大学出版社,200413 刘瑞新.单片机原理及应用教程.北京.机械工业出版社,200314 李朝青.单片机原理及接口技术.北京.北

44、京航空航天大学出版社,200215 张立科.单片机典型外围器件及应用实例.北京.人民邮电出版社,200616 王忠飞.胥芳 MCS-51单片机原理及嵌入式系统应用.西安电大出版社,2007致 谢首先,在我的本次论文设计过程中,郑明老师给予了我很大的帮助。郑明导师从选题构思到最后定稿的各个环节都给予了我细心指引与教导。在此我表示衷心的感谢。郑明老师是一个很负责任的老师,从我第一天上他的课开始,我就发现了。他严谨的教学态度,是最值得我学习的地方。在我的论文出现比较多问题的时候,他都很认真的指导我。教导我怎么做,怎么去修改才能做得更好。还有就是要感谢我的同学们,在我遇到不懂的问题时,他们都给了我很多

45、的帮助,尤其是在写代码的方面。最后,我要感谢各科老师和同学们这些年来的帮助和陪伴,因为有他们在,使我的大学生涯变得这么的多姿多彩。在毕业答辩之前,我还要感谢各位评委老师在这么忙碌的时间里,还要抽出时间来帮我审批毕业论文。并且参与我论文答辩的评议。在此我还要感谢各位老师的耐心指导。感谢各位老师在我学习生涯中给与的鼓励和帮助,在今后的生活中,我会不断的改正自己,提升自己,使得自己能够将每件事都做的更好。最后,还要感谢我的学校-闽江学院,它给了我一个难忘的回忆,一个有关我青春故事的回忆。在这个学校里,我收获了很多东西,有知识,有友情。还有很多很多我们忘不掉的回忆。我的大学生活虽然在这里停步了,但我相

46、信,我的未来不会停下。 附录Main.c/*- 名称:液晶显示密码锁 论坛: 编写:wangyd 日期:2015.3 修改:无 内容:-*/#include<reg52.h> /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include<stdio.h>#include"1602.h"#include"delay.h"#include"keyboard.h"#include"spk.h"#include<intrins.h> /包含_nop_()函数定义的头文

47、件/#include"i2c.h"sbit SDA=P20; /将串行数据总线SDA位定义在为P3.5引脚sbit SCL=P21; #defineOP_READ0xa1/ 器件地址以及读取操作,0xa1即为1010 0001B#defineOP_WRITE 0xa0/ 器件地址以及写入操作,0xa1即为1010 0000Bunsigned int password8=1,2,3,4,5,6,7,8;/可以更改此密码做多组测试unsigned char Admpassword8=8,8,8,8,8,8,8,8;/可以更改此密码做多组测试/定义密码,实际上密码需要存在eeprom中,可以通过程序更改。请用户自行添加/*函数功能:延时1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i<10;i+) for(j=0;j<33;j+) ; /*函数功能:延时若干毫秒入口参数:n*/ void delaynms(unsigned char n) unsigned char i;for(i=0;i<n;i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论