




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、令狐采学创作闽江学院令班采学本科毕业论文(设计)题目基于51单片机的电子密码锁学生姓名王颖丹学号 3111101215系别计算机科学系年级级专业嵌入式应用指导教师郑明职称副教授完 成 日 期526诚信承诺书本人郑重声明:兹提交的毕业论文(设计)基于51单片机的电子密码锁,是本人 在指导老师郑明的指导下独立研究、撰写的成果;论文(设计)未剽窃、 抄袭他人的学术观点、思想和成果,未篡改研究数据,论文(设计)中所 引用的文字、研究成果均已在论文(设计)中以明确的方式标明;在毕业 论文(设计)工作过程中,本人恪守学术规范,遵守学校有关规定,依法 享有和承担由此论文(设计)产生的权利和责任。声明人(签名
2、):王颖丹3 月 1 日令狐采学创作令狐采学创作摘要本次毕业设计我选择的是基于51单片机的电子密码锁,所选芯片为 AT89C51 o这个电子密码锁包括了 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 the progra
4、mming 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 basically achieve
5、d 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 wor
6、ds: SCM AT89C52; password lock; 5 * 4 matrix keyboard; 1602LCD screen; safety performanceo目录1 .概述1.2 电子密码锁的背景51.3 电子密码锁设计的意义和的特点62 .系统设计2.2 系统总设计结构图72.3 1功能设计92.4 芯片的选择102.5 主控芯片AT89C52单片机的简介11231主要特性112.6 编程工具133 .系统硬件设计1516.173.2 键盘图3.3 显示模块3.4 蜂鸣器模块3.5 LED流水灯模块173.6 密码掉电保护24co2存储模块183.7 晶振时钟电路193
7、.8 复位电路设计203.9 串口引脚功能介绍203.10 硬件成品214 .软件设计4.2 系统软件设计流程图:234.3 系统软件设计流程245 .程序调试5.2 程序调试用到的软件及工具285.3 调试过程285.3.1 显示模块测试:285.3.2 键盘模块测试:28令狐采学创作令狐采学创作524复位模块测试:29525 24C02存储模块测试: 2953遗留问题306 .设计总结31参考文献32致谢33附录错误!未定义书签。基于51单片机的电子密码锁1 .概述1 . 1引言大家都知道,山古至今,人们的财产安全大多都是通过锁来完成的。在现 代这个社会锁对于每个人,每个家庭来说都是不可或
8、缺的生活保障。伴随 着这个社会历史的发展和人类文明的进步,人们对自己生命安全的保障意 识和财产安全的保障意识都得到了很大幅度的提升。而锁的花样也越来越 多,由一开始的机械式锁,到现在各式各样的电子锁。显而易见的,电子 锁的功能也更加的完善了,安全性能也更高了。随着社会的发展,城市规 模的扩大,及各个大城市中外来人口的引入,是本来复杂的城市越来越难 管理。尤其是近来,针对小区及住房入室盗窃和抢劫的事时有发生,是人 令狐采学创作 们的生活受到的很大的影响。对于这些盗窃屡有发生,主要原因为:人们 对于安全防范设施的不完善,个人安全防范的意识也不够高,小区物业管 理不够完善。而现在,电子锁的成本越来越
9、低,功能越来越强,使它被广 泛的用于小区楼道德安全管理中,这种成本相对较低的安全措施,却为小 区及住宅提供了不小的安全作用。这种电子密码锁,是一种可以通过从键 盘输入密码,然后来完成一个开锁的过程。而人们最开始深究这种电子密 码锁的目的,便是为了提高使用锁的安全性。从古代到今天,我们可以看到各种类型的锁出现在我们的眼前。有国内 的,也有国外的,但是事实上这些锁都不具有真正的完善的防盗功能。在 一些真正的惯偷面前,只需要一些钢线或者一些简单的开锁的工具就能打 开这些锁。曾经有一些惯偷就说过:“没有我打不开的锁。”而事实上呢,也 并不是他们的偷盗手法有多么的高明。正真的原因就是一般的锁具原理都 不
10、够复杂,很是简单。而对于这样的一个社会现状,人们对锁提出了极其 迫切的改进要求。1.2 电子密码锁的背景在当今的社会,我们可以看到各类样式繁杂的锁具,有可以按指纹的,也 有数码的,还有电子的。甚至还有类似于IC卡的锁。但是最常见的还是按 键的锁。随着这个社会的进步和人类科学的发展。锁具也发展成了电子 锁,门锁,还有激光锁等。包括了不同的声音、不同的磁域、还有不同的 声波、不同光束光波、以及很多不同的图像。来控制锁的开启。从而大大 提高了防盗锁,使犯罪分子不能开始,人们将能够有更多的保护自己的财 产。在今天这个社会,信息安全系统也应用的越来越广泛,尤其是在保护 令狐采学创作令狐采学创作机密上起主
11、要作用。维护人们的隐私和保护人们的财产,是电子密码锁的 安全系统的一个组成部分。因此电子密码锁的研究具有很大的现实意义。1.3 电子密码锁设计的意义和的特点单片机也被称为微机或单片机。这是一个(CPU)中央处理单元,一个随 机存取存储器(RAM), 一个只读存储器(ROM),输入/输出(I/O)等 电脑部件。它的主要功能基本都集成在了一块集成的电路芯片上。计算机 的发展迅速,加剧了人们改造这个世界的步伐。但是它的体积毕竟过于庞 大。MCU (单片机)是出生在这种情况下。这是我们要改变的吗?在我们 生活的各个领域,从导航装置来控制导弹,航空仪表,通信和计算机网络 在工业自动化和过程的实时控制和数
12、据传输,数据处理。并且能够广泛的 应用于我们的生活中,比如在各种智能IC卡,电子宠物中。这些是离不开 单片机的。如果没有以前的单片机。这些东西虽然可以做,但是它们却只 能用复杂的模拟电路。而且,这样做出来的成品不仅体积大,成本还很 高。同时也会由于长期使用,使得它的部件老化,控制精度达不到标准 值。SCM,我们将成为这些事情的智能控制者。因为我们只需要一个简单 的单片机外围接口电路。但是该方案的核心是由人们自己编写代码来,烧 写程序来完成的。该产品具有体积小,成本低的优势,长期使用也无需担 心是否准确,并且它还易于升级。在日常生活中的办公区和住宅区,单位的文件档案,财务报表,和一些个 人信息中
13、。都可以使用电子锁来完成。很大幅度提升了主材料的安全性, 基本可以取代老旧的防盗机械锁。目前,许多类型的锁的使用,独特的。 是适用于住宅区、办公区的锁,更是一个值得推广的产品。(1)我设计的这个电子密码锁的系统可以设置8位的密码,密码可以通过 键盘输入。如果输入的密码正确,则可以将锁打开,led等会闪一下并伴有 两下的滴滴声。如果输入的不正确的话,电子密码锁就会发出滴滴滴滴滴 的报警声。(2)密码可以由用户自己设置。在已经将锁打开的状态下,用户也可以自 己修改密码。(3)而且我的这个电子密码锁也具备自动报警功能。自动报警为蜂鸣器报 警。(4)这种情况下可报警:一是密码输入错误,则报警。当电子密
14、码锁进入 工作状态时,用户可以通过按键输入8位的密码。然后单片机将用户所输 入密码与用户所设定密码进行比较。如果两个密码比较后,密码相同则正 确。那么发出开锁信号,则LED指示灯会亮一下,蜂鸣器响两声,将门打 开,系统不报警。如果两个密码比较后,密码不一致则不正确。蜂鸣器发 出滴滴滴滴滴的报警声,并要求重新输入密码。如果用户输入的密码累积 起来一共错了 3次的话,那么电子密码锁就会被锁定了。而且,锁定之后 必须断电重启后才能再次输入密码。(5)掉电存储密码功能,如果用户修改完密码之后,断电重新启动密码 锁,输入的密码是用户之前修改的密码。2 .系统设计2.2 系统总设计结构图如下图2.1:令狐
15、采学创作令狐采学创作系统总设计结构图2.1本设计的主控芯片是AT89C52o单片机是用来负责控制电子密码锁整个系 统电路的执行过程。其中:单片机:单片机这个部分的话,它的功能包括了写入数据和读取数 据,以及各种命令的控制和数据的处理。与此同时呢,还需要对各执行单 元分别进行控制。单片机是本系统的控制中心和数据处理中心。键盘部分:这个部分是由用户自己输入各个数据信息并传送至单片机 中进行数据分析和处理。显示部分:这个模块完成的是用户所输入的数据信息的显示以及系统 令狐采学创作信息的提示显示。密码存储部分:这个模块完成的是原始密码的存储和用户所更改数据 的存储。报警电路部分:这个模块的的主要功能是
16、增加系统的安全性能和实用 性。报警电路的主要功能就是在用户进行错误的操作后进行一个报警提 示。还有就是其他的一些部分,它们主要是:电源电路、复位模块、晶振 模块、开锁电路。电源模块的话,它的主要的功能是为单片机提供工作电 源,于此同时也为整个电路提供工作电源。复位模块它的功能是使系统在 出现故障或死机时进行复位。开锁电路就是在用户输入正确的密码的时 候,把电子密码锁给打开。21.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 retrya二、修改密码:按修改按键输入密码确定按键再次输入密码,确定按 键1602 液晶屏显示 change successo三、万能密码锁,密码忘记或被锁定时输入,打开电子锁。四、如果输入密码错误超过3次,则会停止,需开机重启再
19、试。五、掉电存储密码:当关闭电源后,用户所修改的密码会存储到 EEPROM里面,再次开启电子密码锁时,密码是用户之前所修改的密码。 2.2芯片的选择在本次设计中,我所选择的是AT89C52的芯片,AT89C52芯片是最常见 的单片机芯片。电子密码锁匚作图2.22. 3主控芯片AT89C52单片机的简介AT89C52 是一种带 4K 字节 FLASH 存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8位微处理器,俗称单片机。单片机的EEPROM擦除可重复1000 次。AT89co52是它的一种精简版
20、本。外形及引脚排列如图所示。2.1.1 主要特性兼容MCS51指令系统8kB可反复擦写(大于1000次)Flash ROM;32个双向I/O 口;256x8bit 内部 RAM;时钟频率024MHz;管脚说明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 TO (计时器0夕卜
21、部输入)P3.5T1 (计时器1外部输入)P3.6WR (外部数据存储器写)P3.7 RD (外部数据存储器读)RST:复位输入。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。SCON串行口控制寄存器。它的各个位的具体定义如下:SMO SM1 SM2 REN TB8 RB8 Tl RI而且SMO、SM1可以对应四种模式的设置。串行口工作模式设置。SMO SM1模式功能波特率000同步移位寄存器fosc/120 1 1 8位UART可变1 0 2 9 位 UART fosc/32 或 fosc/641. 1 3 9位UART可变下面是AT89c52芯片:令狐采学创作(T2JP1
22、. 0 (T2EX)P1. 1 RESET RXD/P9. 0 TKD/P3. 1 IM0/P3. 2 IBT1/P3, 3 T0/P3, 4 T2./P3. 5 WP3. 6 RD/P3. 7 XUL2 XTAL1 Yss 01234567890 4A oc 4 cu CW 7 § AT* 1A 1* 11 1A 1A 1 1A 4A 1A 1A ofc09876543210987654321433333333332222222220 12 3456VFPFPFFFF/N E E L s A pO12345S7 -GAT89C52引脚图及芯片图2.32. 4编程工具在本次毕业设计中
23、,我所使用的编程工具是KEIL C51。Keil C51 简介:KEIL C51软件是KeilSoftware有限公司的产品,是产于美国的C语言。门 不同的结构功能是51系列单片机C语言软件开发的兼容的系统。与汇编语 言相比更有优势。Keil C51的优势主要在于它的可读性,可维护性和易于 使用。另一个重要的一点,则是看看是否可以编译生成的汇编代码。多数 语句生成的代码生成的汇编会比较紧凑,易于理解。在大型软件的开发 中,可以更好地反映真正的高层次的语言。我们要完成编辑,编译,连接,调试和仿真的发展过程。在C51的工具包 中包含了 uVision和IShell的是 Windows和DOS C5
24、1集成开发环境 (IDE) o开发人员可以使用IDE或其他编辑器编辑C源文件或程序集。C51和A51,其中的目标文件(.OBJ)分别编译。然后您创建的目标文件 是建设置于连接在一起生成绝对目标文件和库files.Abs通孔库LIB51 L51 文件。调试器源代码级调试一个标准的文件OH51 ABS或16进制文件 dscope51 tscope51 o可以通过模拟器调试目标板直接使用,可以在程序存 储器直接写,如EEPROM, 3.系统硬件设计 3. 1总框图总框图里面包括了我单片机中所用到的所有电路,下面会逐个画出来。如 图3.1三辛中 .j 0PI三! =4441# 匚U +卜 z rY,二
25、,rrr ,ffi:,j硬件设计总原理图3.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.31602显示模块原理图3.33. 4蜂鸣器模块单片机的FM 口接两个电阻及一个PNP元件,再接一个FM接地,形成蜂 鸣器电路。如图3.43. 5 LED流水灯模块八个LED
26、灯与P2相接。74HC573锁存器的19引脚分别与单片机的DB1DB8相连,引脚11与单片机AT89C52DIOLA引脚相连。这样形成一 个led流水灯模块。如图3.5LED流水灯模块原理图3.53. 6密码掉电保护24C02存储模块24C02的SDA、SCL分别接1个10K的电阻。SCL是时钟信号引脚,它 是在上升沿送入eeprom,下降沿把数据读出来的。SDA是数据的输入、 输出引脚。A0A2这三个引脚是24C02硬件连接的器件地址输入引脚。而 且A2、A1和A0的内部都是必须连接着的。224co2存储模块原理图3.63.7晶振时钟电路单片机的XIAL1引脚和XIAL2引脚都分别接一个30
27、PF的电容,然后再在 中间并1个12MHz的晶振。这样就形成AT89C52单片机的晶振电路。如令狐采学创作3. 8复位电路设计在这里,我用的是电平,而不是脉冲方式。电平复位时通过RST端经 电阻与电源VCC接通而实现的。如图3.8。J13代表的是AT89c52芯片。复位电路设计原理图3.83.9 串口引脚功能介绍单片机的P3 口外接1602显示屏,用来当做密码输入时显示的显示器。 AT89C52的INTO引脚外接蜂鸣器。同时,如果INTO引脚被设置成0的时 候,蜂鸣器会发出报警的声音。P1 口外接发光二极管用来当做系统工作状 态提示。本电路绘制是使用PROTEL99SE绘制的。PROTEL 9
28、9SE简介:Protel99SE是Protel公司近10年在Windows平价上所开发出来的最新成 果。可以从设计到输出物理生产数据电器概念实现,而所有的分析,验证 和设计数据管理。但工具的系统中,覆盖印刷电路板的整个物理设计的 核心。该软件Protel的最新版本可以毫无障碍地阅读的OrCAD,加速度 (PCAD)等知名EDA公司设计文件,使用户顺利过渡到新平台的EDA。 令狐采学创作令狐采学创作PROTEL99SE可以分为五个模块,其中包括原理图设计,PCB设计, 包括信号完整性分析,自动路由设备,混合信号仿真,PLD设计原理图。 下面是一些用Protel99SE的新功能的大部分的: 该电连
29、接可以产生30种网络表的格式。强大的全局编辑功能。同时操作原理图和PCB图,再开放搜索组件之间的原理图和PCB地图,允 许双向交叉。可以转发注释组件标记(从示意图到PCB),也可以反向注解(由PCB至 示意图)。电气原理图和PCB的设计,都可以保持一致性。易于使用的数 字模式的混合仿真(兼容3F5)。支持中国政法大学的语言和PLD,杰德生成标准的下载文件的原理图设 计。还包含了放置汉字的功能。检验的传输线路特性和仿真验证了准确的计算算法,信号完整性分析直接 开始从印刷电路板。反射和串扰仿真波形显示效果和便捷的测量工具组合。3.10 硬件成品这是一整块的单片机板。如图3.10令狐采学创作卸8回回
30、田目. 鲍 单片机板成品图3.10下面是1602显示屏,如图3.111602显示屏图3.11输入错误,蜂鸣 器报警,要求重 新输入密码。令狐采学创作4. 2系统软件设计流程本设计的软件程序设计主要有:(1)初始化程序这段程序主要做的就是1602的显示。我们先设置的是1602液晶屏显示的 模式。然后显示开关,及清屏。还有就是1602显示屏的显示光标的移动。令狐采学创作(2)按键功能实现密码输入按键:按键功能的是实现是用户先输入8位密码,然后按确定 键。此时,系统会自动判断用户输入的密码是否与EEPROM里面所存储的 密码是不是一样的。如果用户输入的密码,和eeprom里面存储的密码是 一样的。那
31、么1602显示屏就会提示RIGHTQPEN。那么相反的,如果用 户输入的密码,和eeprom里面存储的密码是不一样的。那么1602显示屏 就会提示wrong,retry。要是用户输入的密码,错误的次数累计超过了 3 次。那么程序会被锁定,需要断电重启才能再从键盘输入密码。密码修改按键:用户选择修改密码,然后用户需要先输入旧密码。此 时,由系统判断用户输入的密码是否与EEPROM里面所存储的密码是一样 的。如果用户输入的密码,和eeprom里面存储的密码是一样的。那么 1602显示屏就会提示RIGHTQPEN。如果不是一样的,即用户输入的密 码,和eeprom里面存储的密码是不一样的。那么160
32、2显示屏就会提示 wrong,retryo要是用户输入的密码的错误累计次数超过了 3次。那么程序 会被锁定,需要断电重启才能再从键盘输入密码。(3)密码修改程序令狐采学创作(5)显示模块程序第一,把你已经编写好的C语言程序代码下载到你的软件调试工具里 面。其次,汇编后就查看所编写完成的代码是否有错误。然后再查看编译 时的错误提示,分析提示,把这个程序进行修改。修改无误后再进行单片 机生成机器代码hex文件。如果程序可以进行编译,并且没有提示错误。 那么就使用STC479将之前完成的51单片机的代码烧录至开发板。再根据 实际情况,如果有未实现的功能,则再次将代码进行修改,直到完成所需 要的功能为
33、止。令狐采学创作令狐采学创作5. 1程序调试用到的软件及工具我的这个毕业设计的调试软件主要是有用到KEIL C51,以及51开发板 一块和与其配套的下载烧录软件STC479o5. 2调试过程首先我们先打开KEIL C51软件,然后新建工程时选择ATMEL、 89C52并且保存,新建文本框写入代码后再点击保存,并添加到组中。然 后开始检查是不是有语法错误,经过检查后确认没有错误,则生成51单片 机可执行的HEX文件。然后用51开发板相匹配的烧录STC479软件把 HEX文件烧写进单片机内,烧写成功后,测试程序是否可以在单片机上运 行,并且查看所编写的功能是否有实现。5.1.1 显示模块测试:第一
34、,我要先测试的是屏幕是否能显示,测试过程中,刚开始是不能 显示的。于是我想通过修改程序来改变它的状态,但是改完代码发现还是 不能显示。在最后,我选择查看自己的硬件是否出了问题,最后发现是在 1602液晶屏与单片机相接时。引脚插反了,所插的引脚和我代码所写的引 脚是相反的。第二,测试能显示之后还要测试显示的是否是正常状态,要求显示的 内容必须正确。在测试过程中,我发现屏幕老是会出现花屏,但是它的内 容显示的是正确的。于是我就这个问题作了修改,将屏幕的延时作了修 改,改完之后,会好一些。但是还是会出现花屏。5.1.2 键盘模块测试:第一,我首先要测的也是键盘按键按下之后,按键传输至AT89C52
35、令狐采学创作中,再从AT89c52中传送至显示屏。然后通过查看显示屏是否会有反应来 确定键盘是否正常。第二,确定正常之后再给键盘定义我所需要它输出来的数字和功能分 别是哪些,是否都能实现,最后测试完毕后发现基本都是正常的,只是有 时候按键会不够灵敏。5.1.3 蜂鸣器模块测试:第一,我首先要先用代码确定蜂鸣器是否可用,确定可用之后,调试发出 声音的次数和我代码写的次数是否一致,测试之后发现是对的。第二,再测发出声音的频率是否正确,然后再将完整的代码烧入进去测 试,发现密码输入错误是会报警,那么蜂鸣器的测试结果正常。5.1.4 复位模块测试:首先要确定测试复位按钮可用,将代码烧写进去之后,若出现
36、显示屏 花屏现象时,我们可以选择按复位键必须回到初始状态,而不用像我之前 一样,断电重启才行。最后的测试结果正常。5.1.5 24co2存储模块测试:第一,我们要先测试24co2这个芯片是否能正常使用,使用数码管测 试。先将测试程序即测试开机次数代码,烧录至单片机板内。然后反复开 关机,查看数码管的状态,次数是否会增加。测试结果是24C02芯片是可 用的。第二,我再将已经改写完成的掉电存储密码的程序烧录至单片机板 内,选择修改密码,修改完成后断电。使用新密码登陆,看能否登陆。能 登陆即代码改写成功,否则不成功。测试的结果是不成功的。在经过多次 令狐采学创作令狐采学创作更改和反复测试后,一直都不
37、成功。于是,我向同学求助。同学看过之后 发现我代码的写入和读出有问题。在同学的帮助下,我修改了代码。使得 电子密码锁掉电之后终于能够记住掉电前所修改的密码了。第三,就是测试整个电子密码锁功能是否正常,在修改的过程中是否 有影响到其他功能的使用。于是,我将电子密码锁所有的功能都进行了一 次测试,发现乂出现了一个新的问题,那便是密码输入错误后提示再次输 入,按按键没有反应,即密码出错一次就不能再输入密码了,只能断电重 启。于是我就重新查看代码是否哪里有误,最后发现,我所定义的数据写 入的参数与按键输入密码的参数相同。最后我将定义的参数改了一下就可 以正常使用了。所以,24co2的最后测试结果是正常
38、的。5.3遗留问题在最后,还要说一下在本次毕业设计中的遗留问题。在设计过程中我 遇到了很多的问题,有的解决了,有的还未解决。下面就是我遗留下来的 问题:1 .再输入密码的过程中,我的显示屏老是会出现中间跳空了某一个数 字。我也修改了代码,延迟数据接收的速率,但是效果并不是很明显。2 .在按键按动的过程中,经常性的出现花屏现象。我先选择用延时来解 决,修改完延时后,这个问题有所改善,但并没有完全解决。我想可能还 需要去抖,还有就是我在想也许我的硬件也存在一些接触问题。但由于现 在时间紧迫,只能先将这个问题留在这里了。我觉得解决这个问题的大致 的一个方案,就是选择延时,然后去抖或者硬件方面做出的修
39、改。3 .最后还有一个就是按键不是很灵敏。很多时候按一下,它会跳出两个 数字,要不然就是没有反应。我想可能还是和键盘模块的代码有关系。还 需要修改按键的接收字节的速率。4 .还有一个比较严重的问题就是,用户不需要先输入密码就能选择修改 密码。虽然说用户不需要进入电子密码锁就能修改密码比较奇怪。但是由 于时间的问题,我还不能够将它改正。但我的解决方案大概就是在用户按 修改密码之前,要先判断用户是否进入电子密码锁成功。如果用户还没有 进入电子密码锁,则提示请开锁。如果已经进入电子密码锁,那么久、用 户就可以自行进行密码的修改。6.设计总结在本次毕业设计中,我看到了自己很多的不足之处,首先,对于自己
40、要做 的这个设计,没有做到完善功能。其次,有些问题还是没有改正,比如说 屏幕去斗。很经常出现屏幕变花,但是我多次修改,还是没有将它改正。 在调试过程中也出现了很多的问题,比如总是出现重复定义,或者没有定 义的情况。最最困难的一件事情就是点点后密码的存储问题。经过多我自 己的多次修改,还是没有办法将它改正,应此我不得不向同学们求解。在 不断的求解过程中,我发现自己的能力还是很不足的。至少在实践上还是 与理论上有很大差的。从本次毕业设计中,告诉了我,要不断的努力,不断的去复习,去学习。 不管是做什么事,我们都要用尽全力去做去拼。完成毕业设计的过程中, 我的导师郑明老师,他给了我很大的鼓励,让我不断
41、的完善自己,不断的 去学习,去做的更好,将毕业设计完成得更加的完善。但是,由于我的能力有限,还是遗留了很多问题的。而且因为时间关系, 所以只能等到日后我自行去解决。如今,电子密码锁在社会上是越来越广 泛了,随着科技的发展,我相信电子密码锁会变得更加的完善,成为保护 人们财产安全的一大助手。在我们现在生活的社会,哪里都要用到密码。所以我相信,电子密码 锁一定会是一个很成功的存在。不管什么时候,都不会过时,而我们现在 最需要做的就是不断的去完善它,加强它的功能和安全性。让人们今后在 使用它时,尽量少的出现问题。能够放心的去使用。最后,我想说的是,虽然在设计这个电子密码锁的时候。会出现很多 的难处,
42、很多不理解和不能完成的地方,但是我还是坚持下来了。这件事 情让我明白了一个道理,遇到事情不能随随便便就放弃。如果你选择了做 一件事,就不要随随便便放手。因为你永远不知道,你什么时候会成功, 但是你如果放弃,却马上可以知道你一定会失败。参考文献江春来.电梯曳引机扭振测试新方法的研究重庆:机械电子工程,2康华光.电子技术基础(模拟部分)M.北京:高等教育出版社, 网余发山,王福忠.单片机原理及应用技术M.徐州:中国矿业大学出版 社,4潘永雄.新编单片机原理及应用M.西安:西安电子科技大学出版社,5康华光.电子技术基础(数字部分)M.北京:高等教育出版社,6百度文库.存储芯片24C02中文资料7张毅
43、刚.MCS51单片机应用设计M.哈尔滨:哈尔滨工业大学出版社,8李广第等.单片机基础M.北京:北京航空航天大学出版社,.9彭为.单片机典型系统设计实例精讲M.北京:电子工业出版社,.10余发山,王福忠.单片机原理及应用技术M.徐州:中国矿业大学出版 社,11刘和平.刘跃.单片机原理及应用.重庆.重庆大学出版社,12陈明荧.89C51单片机课程设计实训教材.北京.清华大学出版社,13刘瑞新.单片机原理及应用教程.北京.机械工业出版社,14李朝青.单片机原理及接口技术.北京.北京航空航天大学出版社, 15张立科.单片机典型外围器件及应用实例.北京.人民邮电出版社, 16王忠飞.胥芳MCS51单片机
44、原理及嵌入式系统应用.西安电大出版社,致谢首先,在我的本次论文设计过程中,郑明老师给予了我很大的帮助。郑明 导师从选题构思到最后定稿的各个环节都给予了我细心指引与教导。在此我表 示衷心的感谢。郑明老师是一个很负责任的老师,从我第一天上他的课开始, 我就发现了。他严谨的教学态度,是最值得我学习的地方。在我的论文出现比 较多问题的时候,他都很认真的指导我。教导我怎么做,怎么去修改才能做得 更好。还有就是要感谢我的同学们,在我遇到不懂的问题时,他们都给了我很 多的帮助,尤其是在写代码的方面。最后,我要感谢各科老师和同学们这些年 来的帮助和陪伴,因为有他们在,使我的大学生涯变得这么的多姿多彩。在毕业答
45、辩之前,我还要感谢各位评委老师在这么忙碌的时间里,还要抽 出时间来帮我审批毕业论文。并且参与我论文答辩的评议。在此我还要感谢各 位老师的耐心指导。感谢各位老师在我学习生涯中给与的鼓励和常助,在今后 的生活中,我会不断的改正自己,提升自己,使得自己能够将每件事都做的更 好。最后,还要感谢我的学校闽江学院,它给了我一个难忘的回忆,一个有关 我青春故事的回忆。在这个学校里,我收获了很多东西,有知识,有友情。还 有很多很多我们忘不掉的回忆。我的大学生活虽然在这里停步了,但我相信, 我的未来不会停下。附录Main.c/*名称:液晶显示密码锁论坛:编写:wangyd日期:.3修改:无内容:*/#inclu
46、devreg52.h> 包含头文件,一般情况不需要改动,头文件包含特殊 功能寄存器的定义#include<stdio.h>#include"1602.h"#include"delay.h"#include"keyboard.h"#include"spk.h"#include<intrins.h> 包含_nop_()函数定义的头文件/#include"i2c.h"sbit SDA=P2A0;将串行数据总线SDA位定义在为P3.5引脚sbit SCL=P2A1;#def
47、ine OP_READ Oxa1 /器件地址以及读取操作,0xa1即为 1010 0001B#define OP_WRITE OxaO 器件地址以及写入操作,0xa1即为 1010 0000Bunsigned int passw。rd8=123,4,5,6,7,8;可以更改此密码做多组测试unsigned char 庆10a$77。9网=8,8,8,8,8,8,8,8;可以更改此密码做多组 测试定义密码,实际上密码需要存在eeprom中,可以通过程序更改。请用户 自行添加函数功能:延时1ms(3j+2户=(3x33+2)x10=1010(微秒),可以认为是1毫秒*w*w*w*w*ww*ww*/
48、void delay1ms()(unsigned char i,j;for(i=0;i<10;i+)for(j=0;jv33;j+)/*w*w*w*w*w*w*w函数功能:延时若干毫秒入口参数:nvoid delaynms(unsigned char n)(unsigned char i;for(i=0;i<n;i+) delay1ms();)y* *y* 以下是对AT24C02的读写操作程序*y*WW#W#*WWWW*W*函数功能:开始数据传送*/ void start()/开始位(SDA = 1; SDA初始化为高电平“1”SCL=1; 开始数据传送时,要求SCL为高电平“1”
49、_nop_(); 等待一个机器周期_nop_(); 等待一个机器周期SDA=0; SDA的下降沿被认为是开始信号_nop_(); 等待一个机器周期_nop_(); 等待一个机器周期_nop_(); 等待一个机器周期_nop_(); 等待一个机器周期SCL = 0; /SCL为低电平时,SDA上数据才允许变化(即允许以后 的数据传递) )y* *函数功能:结束数据传送A*/ void stop()停止位SDA = 0; /SDA初始化为低电平“0”_nop_(); 等待一个机器周期_nop_(); 等待一个机器周期SCL=1; 结束数据传送时,要求SCL为高电平“1”_nop_(); 等待一个机
50、器周期_nop_(); 等待一个机器周期_nop_(); 等待一个机器周期_nop_(); 等待一个机器周期SDA=1; /SDA的上升沿被认为是结束信号)/*1*1*函数功能:从AT24CXX读取数据出口参数:xunsigned char ReadData()/从AT24CXX移入数据到MCU(unsigned char i;unsigned char x; 储存从AT24Cxx中读出的数据for(i = 0; i < 8; i+)SCL= 1;SCL置为高电平x«=1;将x中的各二进位向左移一位x|=(unsigned char)SDA; 将SDA上的数据通过按位“或“运
51、算存入x中SCL = 0;在SCL的下降沿读出数据)return(x);将读取的数据返回函数功能:向AT24CXX的当前地址写入数据入口参数:y (储存待写入的数据)在调用此数据写入函数前需首先调用开始函数start(),所以SCL=0 bit WriteCurrent(unsigned char y)(unsigned char i;bit ack_bit;/储存应答位for(i = 0; i < 8; i+)/ 循环移入 8 个位(SDA = (bit)(y&0x80); 通过按位“与”运算将最高位数据送到S 因为传送时高位在前,低位在后_nop_();等待一个机器周期SCL
52、=1;在SCL的上升沿将数据写入AT24CXX_nop_(); 等待一个机器周期_nop_();等待一个机器周期SCL = O; 将SCL重新置为低电平,以在SCL线形成 传送数据所需的8个脉冲y «= 1; 将y中的各二进位向左移一位SDA = 1;/发送设备(主机)应在时钟脉冲的高电平期间(SCL=1)释放SDA线,/以让SDA线转由接收设备(AT24CXX)控制_nop_();等待一个机器周期_nop_();等待一个机器周期SCL= 1;根据上述规定,SCL应为高电平_nop_();等待一个机器周期_nop_();等待一个机器周期_nop_();等待一个机器周期_nop_();等待一个机器周期ack_bit = SDA; 接受设备(AT24CXX)向SDA送低电平,表示已经 接收到一个字节若送高电平,表示没有接收到,传送异常SCL = 0;/SCL为低电平时,SDA上数据才允许变化(即允许以后的数据传递)return ack_bit;返回 AT24Cxx 应答位函数功能:向AT24CXX中的指定地址写入数据入口参数:add (储存指定的地址);dat(储存待写入的数据)*w*w*w*w*ww*ww*yvoid W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓库灯具改造合同范例
- 农庄养殖种植合同范例
- 劳务派遣个人合同范例
- 农村地皮出租合同范本
- 劳务框架合同范例
- 农村别墅装修出售合同范例
- 动物委托购买合同范例
- 公司并购合同范例英语
- 二人合伙养狗合同范例
- 中学教师资格考试《综合素质》综合练习试题(含答案)
- 时代与变革-为人生而艺术
- 人教八年级下册英语U5Do-you-remember-what-you-were-doing?课件
- 2009-2022历年上海市公安机关勤务辅警招聘考试《职业能力倾向测验》真题含答案2022-2023上岸必备汇编3
- 柴油甲醇发动机的燃烧与排放特性
- 小学人教版四年级下册数学租船问题25题
- 露天矿开采技术课件汇总全套ppt完整版课件最全教学教程整套课件全书电子教案
- 中学生乐团组建与训练分析
- 教育部人文社科研究一般项目申请表-参考范本
- 大气简约深蓝色商务汇报总结PPT模板课件
- 放射物理与防护全套ppt课件
- 锂电池安全知识培训-课件
评论
0/150
提交评论