电子密码锁故障分析及仿真测试报告.docx

上传人:b****7 文档编号:23718487 上传时间:2023-05-20 格式:DOCX 页数:14 大小:207.24KB
下载 相关 举报
电子密码锁故障分析及仿真测试报告.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

电子密码锁故障分析及仿真测试报告

 

电子密码锁故障分析及仿真测试报告

 

2013.11.15

项目基本信息

项目名称

基于51单片机的多功能电子密码锁

开发软件

Keil、Protuse

所用语言

C语言

项目测试时间

8周

测试参与人员分工

程序编写

编译仿真

文档编写

第一章引言

1.1目的

总结测试阶段所遇到的故障与解决方法,验证系统是否符合需求功能目标。

1.2背景

信息安全的泄露,引发了人们对安全保险的重视。

密码锁的出现满足了人们对信息安全的要求。

电子密码锁代替机械式密码锁,安全且美观,并弥补机械锁只有一个密码且密码不可改的缺陷。

伴随着科学技术的发展,大规模集成电路技术越来越成熟,单片机的问世,为带微处理器的智能密码锁的实现提供了可能,并在电子密码锁的基本功能上引入智能化管理、专家分析系统等功能,从而增加了密码锁的安全性、可靠性,使其应用日益广泛。

1.3测试对象

基于51单片机的多功能电子密码锁

1.4测试工具

Keil编译软件和proteus仿真软件

第二章前期测试

一、电路原理图及PCB图绘制

1.仿真调试阶段

1)所遇故障

(1)矩阵键盘初期,数字显示逐渐右移与习惯不符。

(2)ds1302程序在实物中可以使用在仿真时却不出效果。

(3)如何处理时间跟密码输入的切换。

(4)按键不灵敏。

(5)输入数字时显示数字,并不显示‘*’,存在一定的密码泄露风险。

(6)密码锁与时间切换,再次切换回来出错。

2)故障分析及解决方案

(1)按键按下,保存按下数字并显示。

初步思想:

定义六位数组table[6],每次按键按下,都将按键值付给数组第一位,造成显示往右移,与习惯不符和。

例如按下0、1、2、3、4……如图

解决方法:

定义变量i,每次检测到按键按下,将键值赋给table[i++],i自加1。

当i大于5时,将i置零。

且在重新输入中将i置零。

(2)ds1302程序在实物中可以使用在仿真时却不出效果。

解决方法:

通过上网查资料,得出此由时序问题导致,通过仔细查阅DS1302的时序图,修改时序。

(3)如何处理时间跟密码输入的切换。

单独模块结果出来之后如何让时间显示模块与键盘输入模块切换。

初步思想:

将两个while

(1){}部分写入一个程序,使用break,跳出一个循环然后进入另一个死循环,结果按键不灵敏。

解决方法:

上网搜索两个死循环之间的切换问题,找到定义变量flag0,让后再每个循环前加上if(flag0==0/1)判断进入那个循环。

(4)按键不灵敏。

初步想法是:

程序里包含了太多的延时。

解决方法:

减少延时时间尽量不用,将延时函数延时时间减短,将标志数增加。

(5)输入数字时显示数字,并不显示‘*’,存在一定的密码泄露风险。

问题显示:

解决方法:

查阅1602资料,知道‘*’在1602里是0x2a,这样就可以在显示的时候输入数据位“0x2a”。

(6)密码锁与时间切换,再次切换回来出错。

错误显示:

切换前

切换后

解决方法,回到源程序,手写流程图,根据流程图解决切换后时序问题。

修改将DS1302的初设值放在主函数最开始,不放入while

(1)循环中。

修改后:

再次切换试验。

2.绘制PCB阶段

由于本组成员均为接触过PCB版图的绘制,此次设计中我们采用了proteus中自带的一键生成PCB版图的功能。

在绘制过程中,由于初次接触该功能,发现仿真图中所用的元件并未完全导入ARES,如下图所示:

按键均未导入ARES中。

这说明按键并不在网表中,于是返回仿真图中查看发现按键没有网络标号。

添加网络标号后成功导入。

如下图所示:

在元件导入的过程中,软件提示需要对未封装的元件进行封装,如下图所示:

由于在默认的库里面没有对按键的封装,需要我们自己画一个按键的封装。

1.首先需要放置焊盘,如图所示:

在编辑界面中点击左侧工具栏中的

图标用于放置焊盘,这时对象选择器中列出了所有焊盘的外径和内径的尺寸,如图所示:

将第一个焊盘放在原点处,如下图:

单击工具栏中的

图标,切换为光标操作模式,选中刚才放置的焊盘,然后选择“Edit/编辑”中的“Replicate”菜单项,在弹出的对话框中进行设置,如下图所示,点击确定即可复制焊盘到指定位置。

按同样的步骤放置剩余焊盘。

2.分配引脚编号。

右键单击某个焊盘,在弹出的下拉列表中选择“EditProperties/编辑属性”项,在弹出的“EditSinglePin/编辑引脚”对话框中按下图进行设置,按照同样的方法可以完成其他焊盘的设置。

3.添加元件边框。

单击左侧工具栏中的

图标,并将左下角当前层改为丝印层

,画出元件边框。

如下图所示:

4.放置封装原点。

点击左侧工具栏中的

图标,在左侧列表框

中选择“ORIGIN”,单击第一个焊盘,确定封装原点。

如下图所示:

5.放置元件的“REFERENCE”。

在左侧列表框

中选择“REFERENCE”,在元件边框中单击添加“REFERENCE”。

如下图所示:

6.保存元件封装。

单击右键并拖动鼠标指针,将整个设计完成的封装选中,然后选择“Library/库”“Makepackage/创建封装”菜单项,弹出创建封装对话框,如图所示:

设置完成后,单击确定按钮将封装保存在“USERPKG”库中,以后就可以使用该封了。

完成按键的封装后,利用ARES的自动布局、布线功能完成PCB版图的绘制。

3.心得体会

通过本次电子密码锁的设计,我们复习了很多以前的知识,也学到了很多新的知识,明白了一个产品从最初的想法到设计需要经历的过程。

在本科的学习过程中,对于如何将按键号全部记录并显示在数码管上是将键号右移,这种方法显示数字与习惯不一样给人一种别扭的感觉。

在本次设计中,我们在本科的基础上进行了改进,做到了按下一位,在当前位显示,再有键值按下时在下一位上显示的效果,同时学习了如何将时间正确的显示在1602上。

在遇到问题时,结合原理一步步分析1602的时序,从而使结果能在protues中正确显示。

对于如何将键值显示到1602上,一般是按照习惯将键值一个个显示在所规定的地方。

经小组成员讨论后,我们决定将键值改为‘*’增加安全性,并且不影响键值的输入与比较。

这需要了解不同的数字在1602中显示时所对应的的十六进制数。

最后对于如何将这两个功能结合到一块,我们通过设定flag标志定义某按键按下时对应不同的功能函数,等等。

通过本次设计,我们了解了一个小项目的总体流程与应用,遇到问题该怎么解决。

在开始一个项目的时候,首先要明确项目的目的与要求,根据要求搜集资料,帮助我们构建思路框架,在有了初步的思路之后,通过搜集到的信息确定设计的备选方案,通过组内讨论与分析,最终确定设计方案。

随后,在方案的基础上,讨论设计的流程。

首先进行模块化设计,将目标产品的功能逐步实现,然后组合在一起进行整体调试,排除调试过程中出现的故障,修正与目标产品功能不符的地方,验证产品的稳定性和实用性。

在完成原理图的设计与调试后,进行PCB板的绘制,最后产生实物。

整个过程锻炼了我们“化整为零,再化零为整”的思维模式。

总而言之,通过这次实验课的学习,我们了解到仅仅能够依葫芦画瓢是远远不够的,我们应该做到的是学会思考,能够产生自己的想法,学会发现问题,解决问题。

第三章后期测试

一、测试情况及结果

按照功能需求分析上的要求,逐项测试各个功能是否实现:

功能测试情况概要

功能

基本要求

测试情况

测试通过

单个密码开锁

用户输入正确密码,开锁显示。

当用户输入密码错误时,提示错误。

6次

密码修改成功

用户修改密码后用新密码开锁。

3次

输入次数

输入密码多于三次后,报警。

3次

时间

正确显示时间。

3次

显示屏

能按要求显示所需字符。

3次

2、功能测评

1.测试方法

分别按照以下两种测试方案进行测试:

1 对照需求,进行功能测试。

2 随机测试,检验性能。

结合上述方法综合测试,得出更加准确的效果。

2.测试结论

1)功能性

密码锁系统正确的实现了密码锁的诸如开锁,重置密码,管理员解密,超次锁定报警的功能。

系统只设有一组可解除警报的密码,以及管理员密码,且警报会一直报警,知道管理员解锁。

2)易用性

现有系统实现了如下易用性:

操作按钮都会有相应的提示。

在保密方面存在缺陷。

 

第四章测试总结

通过本实验课(EDA)的学习,让我们复习了很多学过的知识并学到了许多新知识,同时锻炼了自己的动手和查阅资料的能力。

尤其是提高了在实际中解决问题的能力。

1、在设计中,我们学到了如何用C语言对单片机进行编写程序,熟悉了使用KEILC软件,并且加深了对单片机的编程技巧。

2、在整个设计过程中遇到了不少的问题,需要我们去筛选、查阅资料,并将理论结合到自己的设计中。

一步一步找出故障原因,并加以解决。

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

当前位置:首页 > 工程科技 > 电子电路

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

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