单片机实验设计报告电子密码锁.doc

上传人:laozhun 文档编号:4147354 上传时间:2023-04-07 格式:DOC 页数:13 大小:173.50KB
返回 下载 相关 举报
单片机实验设计报告电子密码锁.doc_第1页
第1页 / 共13页
单片机实验设计报告电子密码锁.doc_第2页
第2页 / 共13页
单片机实验设计报告电子密码锁.doc_第3页
第3页 / 共13页
单片机实验设计报告电子密码锁.doc_第4页
第4页 / 共13页
单片机实验设计报告电子密码锁.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《单片机实验设计报告电子密码锁.doc》由会员分享,可在线阅读,更多相关《单片机实验设计报告电子密码锁.doc(13页珍藏版)》请在三一办公上搜索。

1、07小学期单片机实验设计报告基于单片机的电子密码锁引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。实验摘要本系统由单片机系统、矩阵键盘、LCD显示和报警系统组成。系统能完成开锁、超次锁定、超次报警、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有掉电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用。关键词: 单片机,16F877,电子密码锁,EEPROMAbstract This paper introdu

2、ces the features of PIC16F877 single-chip-computer and its application in electronic secure-lock. This system bases on PIC16F877 as a micro-controller and consists of input and output modules. The functions of this system include locking-unlocking, alarming when excess of entering, reentering passwo

3、rd, locking keyboard when excess of entering. The characteristic of this experiment is making the best of the EEPROM module in the PIC16F877 to carry out the function of the electronic code lock. The code kept in the EEPROM will not be lost after cutting the power.Key words: Single-chip-computer; PI

4、C16F877; Secure-lock; EEPROM一.实验方案论证与比较本次实验的方案我是按照宾馆里面为客人提供的存放贵重物品的密码箱来设计的,它便于操作,使用方便,安全可靠并且有着很广泛的应用。最初的设计:密码位数由用户定义,输入错误可删除错误字符,有一个超级管理员在用户忘记密码的情况下可以打开密码箱,密码输入3次错误之后锁键盘,禁止输入3分钟。初始密码存在寄存器中,但是后来发现重新启动之后新密码又被初始密码取代,因此在进入之程序之前应该先将初始密码存如特定寄存器最终的方案:密码设定为四位密码,用户必须输入四位有效字符,设有一个初试密码,通过某种手段可以恢复原场设置,用户的新密码存在E

5、EPROM里面,以防掉电密码丢失。只有在开锁状态才能设置新密码。3次错误以后显示屏有语言提示,霹雳灯闪烁,喇叭报警。锁闭之后密码锁进入睡眠模式,以节省电耗,安开启建后激活可以输入密码开锁。用单片机来实现电子密码锁可以有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。二.硬件系统设计1.系统总体设计2.各个模块的功能输入模块4*4键盘用于输入密码实现开锁闭锁功能输出模块LCD液晶显示器用于输出提示语言,显示输入密码LED状态指示灯显示开锁闭锁,报警功能喇叭接受高低点平发出警报信号存储模块ROM RAM暂存密码EEPROM

6、存储密码,掉电存储以及安全特点核心模块PIC16F877实现电子密码锁核心模块3.各模块原理图LCD显示模块键盘输入模块LED发光管喇叭报警模块三.实验内容密码建09 AF输入四位密码功能键F输入密码E确认输入比较密码C输入新密码D进入睡眠状态按键设置密码锁操作流程:密码锁关闭状态,LED亮黄灯,按F输入四位密码,按E比较密码,比较错误锁维持锁闭,3次错误后霹雳灯闪,喇叭报警;比较正确LED灯全亮锁开,按C键输入新密码,按E键确认,再次输入密码,按E键比较两次输入,比较正确存入EEPROM;比较错误重新设定密码。设定完毕按D键进入休眠状态锁闭亮黄灯三 软件流程图 N开始调用初始化子程序输入4位

7、密码与原密码相同?开锁改密码?输入新密码再次输入新密码两次一致?更改密码到EEPROM上锁睡眠YNNYY主程序流程开锁RETURN调用键盘扫描子程序将键盘输入内容存入寄存器内从EEPROM中读取原密码到指定寄存器8个寄存器两两相减是否为0开始密码比较流程新密码修改流程重新输入按下C输入新密码存入暂存器1再输入一次存入暂存器2比较密码 存入EEPROM按下D退出电子锁关闭休眠YN 液晶初始化流程 键盘扫描翻译流程开始关显示设置D E为输出端输入方式清屏送三次30hRETURN开始调用键盘扫描程序设置B低D高为输出端调用键值翻译程序 RAM中建立位置码表RETURN四.硬件实验题目:焊接单片机最小

8、系统要求:焊点牢固美观,布局整洁合理材料:16F877单片机,LED发光二极管,晶振,电源借口,电阻导线若干完成情况:一天内完成电源设计,排版与焊接电路板工作,基本符合要求把霹雳灯程序下载到最小系统中能够按照预想结果闪烁,成功完成,并且没有损坏工具与元器件。五.遇到的问题与解决报警程序的霹雳灯设定时起初进入这个子程序以后就无法跳出了,造成了一个死循环8只二极管连续不断的闪烁,从而是程序无法继续运行。后来在外层循环加入了一个用于计数的寄存器,计数1500次之后自动跳出返回主程序,并且不断修改这个参量使得霹雳灯闪烁的时间与喇叭报警时间大概一直,完善了报警系统。液晶进行初始化,按照液晶说明书自己写了

9、一遍,但是还是读不进指令,后来发现在EN端置一与清零之间需要有一段延时,不然可能导致下降延不明显,加上之后就非常顺利的进行了初始化。液晶初始化完毕之后,进入提示语言显示模块,编写程学不难,但是在下载到单片机之后显示时经常出现乱码,字符无法显示,程序时不时会有跑飞现象。最后调试的时候打开特殊功能寄存器察看PCL的运行,发现PCL在超过255重新进行计数时,一般的顺序执行语句没问题,但一旦进入了查表程序,就跑飞回开头的程序单元内进行运行。我起初是把与液晶有关的所有程序都放入了总程序的最后,以便于管理,经过修改后把所有的查表表格放在了开头,从而所有的显示字程序在调用查表程序的时候都没在出现乱码,无法

10、显示,跑飞等错误情况。认真地阅读了提高篇的第一张关于EEPROM的读取与写入之后,原以为EEPROM的读取和存储不会有太大的问题,因为读写程序和一些例子书中已经给出,照着打出来就行了。但测试发现密码经存储后发生了变化,监控工作寄存器,发现密码由暂存寄存器往工作寄存器中转移时,数值发生了变化,这个问题很是想不通。后来发现可能是体的问题,可是书中这一块使用的也是类似的体区域。又经过一遍认真的看书,才发现体1的70H到7FH在其它3个体都有映射,在4个体都能寻址。直接对EEPROM进行读写操作并不困难,除了书上的“5指令序列”不能改变外,其他的操作还是相当简单的。除了需要改写一下体的位置外,触发沿都

11、不用管,而且由于我们涉及的存储字单位较少,没有利用间接寻址方式循环读写数据,只是在进行加减法操作完了之后简单的读入/写入命令即可。在所有基本功能完成了以后,我们还想到了应该让电子锁进入节电模式,所谓节电也无非就是让电子锁进入睡眠状态,一条sleep语句足以。但是如何唤醒呢,由于这个题目用到的中断不多出了喇叭的计时TMRO以外没有其他的了,所以我也没怎么认真研读中断章节,最后经过努力,用外部中断INT/RB0口进行唤醒控制,再进入主程序。将程序进行了认真的整理,才实现了这个功能。六.实验心得与体会刚刚放假就马上登陆实验选课网站选了单片机实验,原因有三:第一听说学习这个实验对大三第一学期的微机原理

12、很有用,其二感觉上大学以来自己就没有怎么认真动手做过像样的实验,想锻炼一下自己的操作能力和自学能力,最后一直认为自己编程不太好所以想借这个宝贵的机会好好的学习学习,成功了能让自己在以后的编程学习中有信心。因为报的是第二批小学期实验,所以一放假就去旅游了,然后上了一个月的新东方,已经基本把小学期的事情抛在脑后了。知道8月27号第一天上课我书包里还只放着一本GRE的单词书,完全对什么是单片机没有一点儿概念。那天上完一次课我才知道原来就是微型处理芯片,以前对电脑比较感兴趣所以感觉略知一二了。当天就拿到了两本厚厚的书,基础篇和提高篇,在翻了几页以后我才意识到小学期已经开始了!更重要的是此小学期非彼小学

13、期啊!难怪好多同学都说单片机很难,所以选择了另外一个实验呢。掂着厚重的书,看着繁琐的代码,默念着各种寄存器,思索着自己的题目我意识到一个上大学以来最具有挑战性的小学期已经来临了,只有放下手中的单词书全心全意地投入进来才能够在短短的三个星期里从无到有,从不会到掌握,做出一个题目出来。这个小学期遇到的第一个困难就是自学,老师基本不教授细节知识,只是有一个统领,而我们要用到的所有内容以及各反面的知识都只能自己从书本中汲取,或者在网络上搜寻相关信息。其实我看完第一遍书还是一头雾水,虽然已经想出了做什么题目但是心里还是没底,除了有一个大概的思路,但是细节部分脑子里面简直是一片空白。第一周在看书中渡过,我

14、开始有点儿后悔报这单片机了,每天8个小时基本都抱着书在看,但是可以说是看完就忘,而且有些地方看完了根本不明白在说什么,感慨自己的自学能力的确不行啊。第二周开始敲程序调适,打开寄存器观测窗口,密密麻麻的二进制数和无数个寄存器让我眼花潦乱不知道应该观察哪个,不明白的地方重新看书发现好像明白一些了,可能已经算是入门了吧,呵呵。周中作了一次课题介绍和进度描述,那时候我刚开始做液晶初始化和显示字符程序,看了三天终于明白了说明书想表达什么意思,可是对于汇编语言有没有接触过,一个简单的附值竟然要用到三条语句,粗心大意的我经常会犯一些逻辑错误,还有在指令寄存器和数据寄存器的选择会忘记还原导致了一系列现在看来非

15、常可笑的错误。老师说我们的进度有点儿慢,于是加班加点按照计划在周末之前液晶和键盘连上了,一般功劳得归功于我的搭档,我负责液晶他负责键盘扫描。液晶的过程我之前已经说过了,并不难但是一定要认真阅读说明书,我把那本小册子都翻脱页了,呵呵。键盘在看着同组编程时候也有所了解,用了反转的方法,只扫描一次。第三是真正开始工作的时候了,我们也已经对单片机有了更深入了解,我心中也有了一个程序的框架,我们的任务就是把程序分成模块,也就是各个子程序并把它们填入主程序中。想着成功在即我的心里不免有些高兴,工作一直进行的很顺利,我们想实现的功能正在一个一个地显现出来,笑容满面。可就在我们以为要大功告成的时候,一个小小的

16、错误却让我们有跌入的谷地,真正的体会到第一次课老师所说的那种极其郁闷的心情。我们只不过想加一个退格键以便于修改密码,但是加了之后由于没有设定退格计数,新密码经常会存入其他寄存器中导致整个程序进入了混乱的状态,只有在按照规定操作的情况下才能正常运行。但是这个程序就无健壮性可言了。于是我们不断地对此程序作修改,但是不幸的是并没有做好备份,程序越写越多最后不知道自己改的是哪里之前的努力算是白费了,为此郁闷了一天。就算吃一堑长一智吧,之后我们重新在框架中填写功能模块做好了保存工作,错了就从最新的备份开始修改事半功倍的效果阿,最后经过不断的完善我们的电子锁终于出炉了。 程序验收时我们怀着忐忑不安的心情,

17、但是当老师问到种种问题我们都可以对答如流的时候这种性情被自信所替代了,顺利地答辩完成,我们高兴得走出了实验室,这3个多星期里我们过着充实的生活,喜悦痛苦郁闷兴奋掺杂在一起,这是我大学期间觉得最有意义的一个小学期了。七.参考文献LCD液晶显示说明书;PIC单片机实用教程基础篇 李学海北京航空航天大学出版社PIC单片机实用教程提高篇李学海北京航空航天大学出版社PIC单片机实验教程陈学军 李荣正北京航空航天大学出版社八.经验分享还没有选这个小学期的同学们,我强烈推荐在大二的暑假选择单片机实验,太有意思了,而且非常锻炼能力。就算你什么都不了解,认真熟读老师发的两本书,基础篇和提高篇。第一周:一到九章读

18、上一遍,你就会对单片机有了大概的了解。但这还是远不够的,还需要把书中的例子用MPLAB进行编译与调试。学会观察各个寄存器的状态,也要习惯观察并牢记各个寄存器的基本功能。不懂得地方反复研读,一周过后你会发现长进不少。第二周:再读一遍4到9章,两人分工液晶与键盘。液晶的必然是看说明书还有提高第二章,键盘的看基础第七章和提高第二章就足够了。在液晶与键盘连接上之后,你们的任务就是开始给自己的题目搭框架,考虑要用到什么模块。第三周:开始完成并不断调试修改你们所编题目的程序,学会使用模拟激励和再现调试。提高篇就像工具书一样哪里不懂就差哪里。一定要做好备份工作,否则就会向我们一样大喜大悲了。还有分工一定要明确,但是两个人也都要明白对方所编程模块的原理差不多就说这么多了,这是我自己的一点儿小小的经验与建议

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号