




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于MSP430的电子密码锁设计预期性能指标1、(1)密码通过键盘输入,若密码正确,则将锁打开。(2)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,LED红灯亮并且锁定键盘。2、密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:(1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,再输入时显示数码管向右移动一个。(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。(3)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。工作原理工作原理概述利用MSP430单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。此次课程设计是以以前学过的msp430F149单片机为核心,加上一些外围模块来实现电子锁应该具有的基本功能。单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能,为其功能的扩展提供便利。由于条件的限制此次实验只实现其基本功能,锁的开启关闭与锁定以二极管的发光来模拟,密码的输入用4X4键盘替代,功能键用键盘上对应的10以后的数字代替,这实现了在条件有所限制的情况下以有限的资源模拟电子锁的功能。输入密码用矩形键盘,包括数字键和功能键。LED数码管显示输入密码,用uln2003A驱动数码管发光且控制哪一位显示数码,用430的P4脚控制各位显示器分时进行显示。用发光二极管代替开锁的电路,发光表示开锁锁定。输入密码错误次数超过3次,系统蜂鸣器响,发出警报。打开电源后,显示器显示“0000”,设原始密码为“1234”,只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。按“C”键,清除显示器为“000000”。欲重新设定密码,先输入密码在案“*”。输入密码,再按“D”键。若密码与设定密码相同,则开门。否则显示器清为“0000”。软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序设计方案与原理框图(1)主要的设计实施过程:第一步,选用msp430单片机,以及选购其他电子元器件(电阻(100欧、150欧、2K欧等)、发光二极管、三极管、数码管(阴极)、ULN2003AG芯片、按键、电线、PADS9.3软件、MATLEB软件、焊接电路板一块)。第二步,使用PADS9.3软件设计硬件电路原理图,并设计PCB图完成人工布线。第三步,焊接电路第四步,MATLEB软件编写单片机的C语言程序、仿真、软件调试。第五步,联合软、硬件调试电路板,完成本次设计。(2)原理框图:原理框图的说明用户根据数码管显示使用键盘输入密码,输入密码时用户可以按相应的功能键来进行不同的操作控制,按键A可以删除上一次输入的一位密码,按键B确认密码,按键C可以再“锁开”的状态下修改原始密码。用户输入完密码后,单片机将用户输入的密码与真的密码进行比较,如果正确就开锁,如果不正确提示用户再次输入密码并累加密码输入错误的次数,当密码输入错误的次数大于3时就发出警报,如果从新输入正确的密码则将累加器清零。在输入密码正确锁开的状态下,按功能键C,就可以输入新的密码,新的密码需要进行二次确认,如果前后两次输入的密码一致单片机则保存新输入的4位数字作为密码。硬件设计器件选型选用msp430单片机,以及选购其他电子元器件(电阻(100欧、150欧、2K欧等)、发光二极管、三极管、数码管(阴极)、ULN2003AG芯片、按键、电线、PADS9.3软件、MATLEB软件、焊接电路板一块)。参数匹配键盘通过阻值为10千欧的电阻与单片机的引脚可直接相连。数码管的驱动电流很大,不能直接与单片机相连,选用可以同时驱动8路500mA电流的uln2003a芯片驱动数码管显示。原理图及PCB图(包括PADS软件使用)(1)键盘电路设计Msp430单片机接口相对本次设计较多,故,采用独立按键的接法,一个按键占用一条I/O线的数目。下图(为电路按键按键一组(4个)的解法):键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的中断响应法。(2)LED显示电路显示电路是为了给使用者以提示而设置。MSP430单片机驱动数码管发光显示数码和控制位选信号,以完成显示功,能显示电路的电路。原理图如图:数码管的a,b,c,d,e,f,g,dp八个管脚,接在单片机的P4口八个口上,ULN2003的4个IN脚接在P3.7-P3.4口,用来控制那个数码管亮。(3)msp430单片机的接口电路通过把MATLEB软件编写的单片机C语言程序,烧到单机芯片中,来运行功能、响应按键、控制输出。(4)开锁和报警电路用发光二极管代替电磁锁,来反应单片机运行的功能。电路图如下图:绿灯亮表示电子锁已经打开;红灯亮表示密码输入错误;黄灯亮表示设置密码阶段,允许修改密码;白灯亮表示单片机已锁且正常工作。(5)ULN2003AG电路ULN2003AG是提高控制信号的驱动能力(即驱动芯片),用来作输出瑞驱动,单片机通过控制ULN2003AG的输入来控制是哪一个数码管亮。(6)PCB图软件设计软件框图(1)键盘扫描(2)LED显示(3)密码比较与报警流程图设计体会这是一次理论结合实践的课程设计,而且对于实践的要求特别强,需要接触实际的器件和电路,查阅相关资料,并动手设计电路图和PCB图,这次硬件电路的设计,让我学会了用PADS软件自己去设计一块满足要求的电路板,在老师的示范下,一步一步的按照要求如何画原理图。刚刚开始时,使用软件还不熟练,有的地方画错了而不自知,或者不知道怎么样画,随着对软件的熟悉,和别的同学请教,慢慢掌握了技巧,比如器件它实际的形状和在电路板上的实际焊接,比如元器件如何画封装,画完图后还检查出很多不知道如何修改的电气错误,请教别人之后,就换种方法画,把错误一点点的改正,最终达到良好的设计效果,修改过程中是比较繁琐的,要耐着性子,细心认真的修改才行,当最终设计完成后心里是非常自豪和有成就感的。不仅学习了新知识,加强了动手能力,还养成了越是繁琐的工作越要细致的好习惯。说明键盘采用行列式矩阵键盘,键盘处理程序首先执行等待按键并确认有无按键按下的程序段,采用中断响应法响应即在有按键按下时中断处理程序才会执行,节省电量。LED显示采用动态扫描显示,一次只显示一个数码管,不同时刻在不同位的数码管上显示相应的数字,但是更新的频率为2ms,所以显示的效果与静态一样。按不同的功能键会调出不同的处理程序,实现相应的功能。调试试验试验验证方法设计完硬件后,完成软件的设计,把程序烧录进单片机,就可以直接测试。首先,正确的输入4位密码,锁开在锁开的状态下按下修改密码键,两次真确输入新的密码,按确定键输入新密码,所重新打开连续输入错误的密码3次,键盘锁定遇到问题及解决方法新输入的密码无法同时显示,由于数码管只由一个口8线控制显示,所以显示时一个时间只能显示同一数字。解决方法:使用动态显示,修改程序。在没有开锁的情况下按修改密码键的时候仍然可以修改。解决办法:无论什么时候按键,首先提示输入以前的密码,如果正确才让修改。有时候会忘记自己的密码。解决办法:在修改密码的时候,连续两次输入新的密码,两次输入的密码一致时,才保存新的密码。在未完全输入密码时,按其他的功能键,有时候系统也会去相应,造成系统发生错误。解决办法:在输入密码时(解锁或者修改密码),屏蔽其他中断,直到输入完毕,按确定键为止。总结分析性能分析密码锁的基本功能:解锁,密码修改,电路报警,基本实现。密码设计的是四位十进制密码,碰巧打开的机会很少。由于缺少掉电保护,所以在断电后,再次开启的时候,前面的操作会失效。而且有可能在修改密码后,出现密码复原现象。试验结果分析实验过程中,规范的输入密码,开锁,修改密码都会成功。当不按规范输入时,程序有时会出错,数码管出现乱码,需要断电后再开启才能恢复正常。修改完密码后断电,再开启,密码依旧是没有修改的密码。连续输入错误密码3次系统会报警10秒,且键盘锁定。结果分析:程序编的不是很完善,缺少错误处理措施。硬件没有断电保护电路,无法记忆前序操作自我评价设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾这两个星期的课程设计,我发现自己收获很大,学到很多的东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,更重要的是养成了细致耐心的处理复杂枯燥工作的习惯,刚刚开始时确实遇到很多困难,但随着一项一项的解决,自己也受到了很大的磨练。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,才能做出有用、实用的东西来,提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,由于第一次做,有很多不懂的,错误的。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,通过这次课程设计之后,把以前所学过的书重新翻了出来,温习以前的相关内容。最终顺利的完成了任务。进一步改进措施通过这次课程设计,我学到了很多。首先在设计之前要想好自己要设计什么,设计的东西要达到什么标准,有什么要求,在这次设计过程中我们小组就犯了这样的错误,在选题上没有彻底了解选题的内容,在做到一定程度后发现自己做不下去了,就只能改变选题了。设计必须要有一个清晰地思路,要有一个大体的框架。最初设计的时候,老是觉得设计过于复杂,到现在想一下,整个系统分为键盘,显示,系统,开锁模块是非常容易清晰的。程序的设计必须依据硬件电路,还有就是要考虑各种意外情况,增加错误处理程序这样的系统才能稳定,接下来的改进措施应该注重电子锁的安全性、稳定性进行设计,还可以加上一些人性化设计。附录软件和硬件工作时的图片报警中的图片程序主程序:/***********************************************程序功能:电子锁------------------------------------------------跳线设置:将跳线座J3上的短路帽拔下------------------------------------------------测试说明:按动K1~K16按键,观察数码管显示,聆听按键时蜂鸣器是否发声************************************************/#include<msp430x14x.h>#include"BoardConfig.h"#include"Keypad.h"#include"gdata.h"uintnum;uchara[4];/*******************报警函数*******************/voidalert(void){longinti;P6OUT=0;//蜂鸣器报警for(i=99999;i>0;i--);P6OUT|=BIT7;num++;}/**********************************************//********************主函数********************/voidmain(void){uintj,x,flag,flag1;longinti;num=0;flag=0;//标记新一轮输入flag1=0;//改码a[0]=1;a[1]=2;a[2]=3;a[3]=4;//初始密码值BoardConfig(0x80);//打开数码管、流水灯,关闭电平转换WDTCTL=WDT_ADLY_1_9;//设置内部看门狗工作在定时器模式,1.9ms中断一次IE1|=WDTIE;//使能看门狗中断P2DIR=0xff;//LED显示P4DIR=0xff;P5DIR=0xff;//设置P2,P4,P5的IO方向为输出P6DIR|=BIT7;P2OUT=0xff;P4OUT=0x00;//设置P4,P5的输出初值P5OUT=0xff;P6OUT|=BIT7;//蜂鸣器对应IO设置为输出_EINT();//打开全局中断Init_Keypad();for(j=0;j<4;j++)//初始显示为“AAAA”Dispbuf[j]=10;j=0;while(1){if(num>2){P1DIR=0x00;P1OUT|=0x00;P6OUT=0;P2OUT^=0xff;for(i=999999;i>0;i--);P6OUT|=BIT7;P2OUT=0xff;P1DIR=0xf0;//P1.0~P1.3设置为输入状态,P1.4~P1.7设置为输出状态P1OUT|=0xf0;//P1.4~P1.7输出高电平num=0;}Key_Event();if(key_Flag==1)//按键已释放{key_Flag=0;if((key_val==12)||(key_val==14)||(key_val==15))//容错{flag=1;alert();for(j=0;j<4;j++)Dispbuf[j]=10;j=0;}if(key_val==11)//取消密码{flag=1;for(j=0;j<4;j++)Dispbuf[j]=10;j=0;}/*GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG*/if(flag1==2)//改码{P2OUT^=0xff;for(i=2000;i>0;i--);P2OUT=0xff;//提示灯a[j]=key_val;if(j==4){flag=1;//???flag1=0;for(j=0;j<4;j++)Dispbuf[j]=10;j=0;}}if(key_val==13)//改码的另一个条件{P2OUT^=0xff;for(i=2000;i>0;i--);P2OUT=0xff;//提示灯flag=1;flag1+=1;for(j=0;j<4;j++)Dispbuf[j]=10;j=0;}if(flag1!=2)flag1=0;//若两条件不同时满足,则取消/*GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG*/if(j==4)//验证密码{flag=1;if(key_val==10){if(a[0]==Dispbuf[0]){if(a[1]==Dispbuf[1]){if(a[2]==Dispbuf[2]){if(a[3]==Dispbuf[3]){P2OUT^=0xff;for(i=99999;i>0;i--);P2OUT=0xff;flag1=1;//改码的一个条件num=0;}elsealert();}elsealert();}elsealert();}elsealert();}elsealert();for(j=0;j<4;j++)Dispbuf[j]=10;j=0;}if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流配送路径优化对比表
- 开幕致辞与企业愿景演讲实录
- 抵押房产借款合同
- 江西省吉安市2024-2025学年高一上学期期末教学质量检测生物学试题(含答案)
- 安徽省宿州市砀山县2024-2025学年高一上学期期末考试生物学试题(含答案)
- 商务活动策划与执行指南
- 医院门诊部运营管理协议
- 私人营养师营养指导服务合同
- 智慧城市综合项目实施方案合同
- 企业品牌使用权转让协议
- 《服饰手工艺欣赏》课件
- 海外派遣人员管理办法
- 混凝土灌注桩质量平行检查记录(钢筋笼)
- 化工行业关键装置、重点部位档案
- 铁路旁站监理记录表(桩基)
- 4.4 数学归纳法课件-高二下学期数学人教A版(2019)选择性必修第二册
- 名人介绍l梁启超
- 幼儿绘本故事:波西和皮普大怪兽
- 译林版五年级英语下册 Unit 5 第2课时 教学课件PPT小学公开课
- 全套电子课件:混凝土结构设计
- 数据结构英文教学课件:chapter2 Array
评论
0/150
提交评论