文档详情

基于51单片机的多功能电子密码锁故障分析及仿真测试报告_精品.doc

发布:2018-04-04约4.09千字共11页下载文档
文本预览下载声明
基于51单片机的多功能电子密码锁故障分析及仿真测试报告 2013.11.15 目 录 目 录 1 项目基本信息 2 第一章 引言 3 1.1 目的 3 1.2 背景 3 1.3 测试对象 3 1.4 测试工具 3 第二章 前期测试 4 一、电路原理图及PCB图绘制 4 1. 仿真调试阶段 4 1)所遇故障 4 2)故障分析及解决方案 4 2. 绘制PCB阶段 7 3. 心得体会 11 第三章 后期测试 13 一、测试情况及结果 13 二、 功能测评 13 1. 测试方法 13 2. 测试结论 13 1 功能性 13 2 易用性 14 第四章 测试总结 15 项目基本信息 项目名称 基于51单片机的多功能电子密码锁 开发软件 Keil 、Protuse 所用语言 C语言 项目测试时间 8周 测试参与人员分工 程序编写 编译仿真文档编写第一章 引言 目的 总结测试阶段所遇到的故障与解决方法,验证系统是否符合需求功能目标。 背景 信息安全的泄露,引发了人们对安全保险的重视。密码锁的出现满足了人们对信息安全的要求。电子密码锁代替机械式密码锁,安全且美观,并弥补机械锁只有一个密码且密码不可改的缺陷。 伴随着科学技术的发展,大规模集成电路技术越来越成熟,单片机的问世,为带微处理器的智能密码锁的实现提供了可能,并在电子密码锁的基本功能上引入智能化管理、专家分析系统等功能,从而增加了密码锁的安全性、可靠性,使其应用日益广泛。 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)如何处理时间跟密码输入的切换。 单独模块结果出来之后如何让时间显示模块与键盘输入模块切换。 初步思想:将两个while1部分写入一个程序,使用break,跳出一个循环然后进入另一个死循环,结果按键不灵敏。 解决方法:上网搜索两个死循环之间的切换问题,找到定义变量flag0,让后再每个循环前加上if(flag00/1)判断进入那个循环。 (4)按键不灵敏。 初步想法是:程序里包含了太多的延时。 解决方法:减少延时时间尽量不用,将延时函数延时时间减短,将标志数增加。 输入数字时显示数字,并不显示‘*’,存在一定的密码泄露风险。 问题显示: 解决方法:查阅1602资料,知道‘*’在1602里是0x2a,这样就可以在显示的时候输入数据位“0x2a”。 密码锁与时间切换,再次切换回来出错。 错误显示:切换前 切换后 解决方法,回到源程序,手写流程图,根据流程图解决切换后时序问题。修改将DS1302的初设值放在主函数最开始,不放入while1循环中。。修改后: 再次切换试验。 2. 绘制PCB阶段 由于本组成员均为接触过PCB版图的绘制,此次设计中我们采用了proteus中自带的一键生成PCB版图的功能。在绘制过程中,由于初次接触该功能,发现仿真图中所用的元件并未完全导入ARES,如下图所示: 按键均未导入ARES中。这说明按键并不在网表中,于是返回仿真图中查看发现按键没有网络标号。添加网络标号后成功导入。如下图所示: 在元件导入的过程中,软件提示需要对未封装的元件进行封装,如下图所示: 由于在默认的库里面没有对按键的封装,需要我们自己画一个按键的封装。 1. 首先需要放置焊盘,如图所示: 在编辑界面中点击左侧工具栏中的或图标用于放置焊盘,这时对象选择器中列出了所有焊盘的外径和内径的尺寸,如图所示: 将第一个焊盘放在原点处,如下图: 单击工具栏中的图标,切换为光标操作模式,选中刚才放置的焊盘,然后选择“Edit/编辑”中的“
显示全部
相似文档