ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:953.54KB ,
资源ID:4242848      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4242848.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易电子密码锁课程设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简易电子密码锁课程设计.docx

1、简易电子密码锁课程设计江西理工大学应用科学学院微机控制系统课程设计报告 题 目: 简易电子密码锁 姓 名: 学 号: 专业班级: 指导教师: 完成时间: 设计报告综合测试平时总评格式(10分)内容(10分)图表(5分)功能测试(35分)答辩(20分)考勤(20分)指导教师签名:第一章 系统概述 2 3.1.6 报警器和发光二极管 9参考文献 17附录 18摘要随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤其的突 出,传统的机械锁由于其构造的简单,被撬的事件也屡见不鲜,因此,人们在日常生活中越来越越离不开密码的使用。在人们对安全的重视和科技的发展的同时,许多电子智能锁(指纹识别、IC卡

2、辨认)已相继问世,但这类产品是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。另外,卡片式的IC卡易丢失和损坏,加上其成本较高,在一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平和市场的接收程度,电子密码锁是这类电子防盗产品的主流。基于以上思路,本次设计使用PHILIPS公司的P89C51实现基于单片机的电子密码锁的设计。 关键字:P89C51 单片机密码电子锁 withtheimprovementofpeoplelivingstandards,howtoachieve securityofthisfamilyalsochangedparticularlyp

3、rominent,thetraditionalmechanicallockbecauseofitssimplestructure,theincidentwasnothingnew.therefore,moreandmorepeopleintheirdailylifeisinseparablefromtheuseofpasswords.aspeopleattachimportancetosecurityandthedevelopmentoftechnology,atthemoment,manyElectronicsmartlock(fingerprint,ICcardidentification

4、)hasbeenpublishedathomeandabroad.Howevertheseproductsarecharacterizedbyspecificandeffectivefingerprintcards,canonlyapplytotheconfidentialityrequirementsofthebox,counter,doors,andsoon.Andfingerprintrecognitionknowledgeforuseinpublicplacesifthereeasilydamagedmachinery,Ccardtherearestilleasilylost,dama

5、ged,andsoon.Coupledwithitshighcost,tosomeextent,limitedthepopularityofsuchproductsandpromotion.Giventhecurrentleveloftechnologyandthemarketreceptionofelectroniccodelockissuchamainstreamelectronicanti-theftproducts.Basedontheaboveideas,thisdesignusestheP89C51PHILIPSachieveanelectronicpasswordbasedSCM

6、lockdesign. Keywords:P89C51 SCMpasswordelectroniclocks第一章 系统概述本次设计使用P89C51单片机实现简易电子密码锁的设计,其主要具有如下功能:1.设8置位密码,密码通过键盘输入,此时黄灯亮,若密码正确则绿灯亮。2.密码可以由用户自己修改设定,绿灯亮后后才能修改密码。在输入新密码时候需要确认,以防止误操作。3.报警、锁定键盘功能。密码输入错误红色发光二极管和蜂鸣器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。电子密码锁的设计主要由三部分组成:34矩阵键盘接口电路、密码锁的控制电路、输出数码显示电路。另外系统还有LED

7、提示灯,报警蜂鸣器等。密码锁设计的关键问题是实现密码的输入、确认、更改等功能:1.密码输入功能:按下数字键,输入密码长度 。2.密码确认功能:当按下确认键时,表示密码输入完成。3.密码设置功能:将输入的值作为新的密码。主要的设计实施过程:首先,选用单片机P89C51,以及选购其他电子元器件。第二步,使用DXP 2004设计硬件电路原理图,并设计PCB图完成人工布线(后因时间和材料准备不充分,所以没做出实物)。第三步,使用Keil uVision4软件编写单片机的C语言程序、仿真、软件调试。第四部,使用PROTEUS软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次设计。 第二章

8、基本功能设计2.1实验任务通过对本题目的设计掌握单片机控制系统设计的相关方法与技巧。用P89C51RC2HBP设计一个简单电子密码锁,完成密码的识别功能。2.2基本设计要求2.2.1 基本要求(1)设置(09)十个按键和一个设置/确认按键,当系统正常工作时可通过设置/确认按键修改密码,使用时初始密码为12345678,随后可任意设置密码。(2)当密码输入正确时,用一个发光二极管和蜂鸣器作为指示。当密码输入错误时,则提示密码输入错误。(3)当密码连续输入错误3次后锁定键盘,锁定时间为1分钟。2.2.2发挥部分不改变硬件电路,增加蜂鸣器音乐输入功能,即编出三种音乐分别对应密码输入正确、输入错误和键

9、盘锁定三种状态。2.3 主要元件介绍2.3.1 P89C51芯片P89C51RB2/RC2/RD2具有16K/32K/64K并行可编程的非易失性FLASH 程序,存储器并可实现对器件串行在系统编程ISP和在应用中编程(IAP)在系统编程ISP( In-SystemProgramming)。当MCU安装在用户板上时允许用户下载新的代码,在应用中编程IAP(In-ApplicationProgramming),MCU可以在系统中获取新代码并对自己重新编程。这种方法允许通过调制解调器连接进行远程编程片内ROM中,固化的默认的加载程序,BootLoader允许ISP通过UART将程序代码装入Flash

10、 存储器而Flash代码中,则不需要加载程序对于 IAP 用户程序擦除和重编程。FlashMemory的操作是通过使用片内ROM中的标准程序该器件的1个机器周期由6 个时钟周期组成因此运行速度是传统80C51的2 倍一个OTP配置位可让用户选择传统的12 时钟周期该系列单片机是80C51微控制器的派生器件是采用先进CMOS工艺 制造的8位微控制器 指令系统与80C51完全相同有4组8位I/O 口3个16位定时/计数器多个中断源4个中断优先级嵌套中断结构个增强型UART片内振荡器及时序电路新增的特性使得89C51RB2/RC2/RD2 成为功能更强大的微控制器更好地支持应用于脉宽调制高速 I/O

11、递增/递减计数能力如电机控制等场合。图2.1 P89C51的DIP封装及管脚功能2.4 系统框图图2.2 系统框图第三章 硬件设计3.1 硬件电路的设计3.1.1 硬件工作接线口P0口接数码管,用来显示按键是否按下,P1口接报警器和发光二极管。P3口接3x4矩阵键盘,分别为(09)和设置/确认按键。3.1.2 LED显示器结构与原理LED显示块是由发光显示二极管显示字段的显示器件。在单片机中我们通常用七段LED,这种显示共有共阴极和共阳极两种,本设计是用共阴极,如图3.1所示。 图3-1 LED数码显示部分 显示字符共阴极段选码显示字符共阴极段选码03FHA77H106HB7CH25BHC39

12、H34FHD5EH466HE79H56DHF71H67DH707H87FH96FH表3.1 LED显示块通常的七段显示块中共有8个发光二极管,其中7个发光二极管构成七笔字形“8”,一个发光二极管构成小数点。七段显示块与单片机接口非常容易。只要将一个8位并行输出与显示块的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制发光二极管的8位字节数据称为段选码。3.1.3复位电路图3.2 复位电路时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位(如图3.2)。3.1.4 振荡电路图3.3 振荡电路本设计晶振选择频率为12MHZ,

13、电容选择22pF,如图3.3所示。3.1.5 按键设置 按键方式有独立式和行列式两种,本设计是采用行列式,共设置12个按键。能减少键盘与单片机接口时所占用的I/O线的数目。如图所示:S1S10分别为09数字按键,S11为设置/确认按键。如图3-4,当没有键按下时,行线和列线之间是不相连的,若第N行与第M列的键被按下,那么第N行与第M列的线就被接通。 本系统的键盘扫描方法是利用P3口的低四位作为行扫描线,P3口的高四位作为列回扫线。具体实施方法为:先使P3.0口输出低电平,P3口其他口输出高电平,然后对P3.4、P3.5、P3.6三个口分别作判断。若此三口都为高电平,则没有键按下;若有键按下,P

14、3.4、P3.5、P3.6三个口必定有一个口输入为低电平,再判断P3.4、P3.5、P3.6哪个口为低电平则可判断按键在哪列上。如P3.4、P3.5、P3.6没有低电平,再使P3.1为低电平,其他口为高电平,依次扫描下去,找到按键所在的行,再判断P3口的高四位哪一位为低,便可知道键在哪一列上。 图3.4 按键设置3.1.6 报警器和发光二极管图3.5 报警器与发光二极管如果按下设置/确认按键,则黄灯亮。当密码输入正确时,绿灯亮。输入密码错误时,红灯亮且蜂鸣器响。当第三次输入错误时,锁定键盘一分钟。3.2 硬件电路图图3.6 硬件电路Protel图 图3.6 硬件电路PCB图图3.7 硬件电路P

15、CB 3D图第四章 软件设计本系统程序部分使用C语言编写,C语言是一种高级程序设计语言,它的优点是简洁明了、可移植性高。主要完成,先按下设置/确认键输入密码,系统会将所输入与系统密码进行比对。若输入密码正确则绿灯亮。然后可以任意设置密码。每设置完一次都要按确认键。期间操作出现失误,红灯亮蜂鸣器响,操作错误超过3次,系统会锁定键盘一分钟,并报警用以防止恶意试探密码。4.1 系统软件设计本系统软件设计由主程序、初始化程序、数码显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。主要程序设计流程图如下所示: 图4.1 程序设计流程图 图4.2 开锁流程图4.1.1

16、密码开锁功能 本系统使用数组PASSW存储密码,系统初始化对数组赋值PASSW1,2,3,4,5,6,7,8。输入密码的时候,先将输入的每一位密码分别放置在数组PASST中,然后再将PASST与PASSW的每一位分别对照。若每一位都相等,密码检查通过。第五章 系统PROTUSE仿真图图5.1 PROTUES仿真图图5.2 PROTUES仿真加载HEX文件在下图中,当按下设置/确认键时,黄灯亮,然后输入密码。如密码输入正确,则绿灯亮。如输入错误,红灯亮且蜂鸣器响。当出现三次错误时,同时要锁定键盘一分钟。经调试,所需要的功能都能实现。图5.3 按下设置/确认键黄灯亮图5.4 密码正确时绿灯亮图5.

17、5 当密码错误时红灯亮图5.6 设置新密码时黄灯绿灯同时亮第6章 设计总结 通过这次课程设计,掌握了单片机的一些基本知识,并将计算机控制以及所有关知识联系起来,本来有些原理还是懵懂的,但是在找电子密码锁的基本知识时,我发现只有动手做才会掌握一些技巧。通过这次的设计,我们熟悉并熟练掌握了Protel和Protues的技巧;在C语言程序设计中,学到了如何使用C语言对单片机进行编写程序,熟悉了使用KEIL软件,并且加深了对单片机的编程技巧。 在做这个设计的过程中,我遇到了不少的问题。这锻炼了我们筛选、查阅资料,并将理论结合到自己的设计中的能力。一步一步的排除故障原因,找到故障的原因并解决故障。 这次

18、的设计使我们对模拟电子、数字电子知识加深了了解,尤其是在对电路进行调试以及对C语言程序的编写和调试的时候,出现了很多这些方面的问题,通过对以往知识的复习巩固,将问题解决。在此设计中,学到了很多知识,不仅对于技术有了更深入的学习,而且对于一个项目的完成的工作时序、任务分配也有了一定的了解。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。这次课程设计终于顺利完成了,在设计中遇到了些问题,最后在老师和各位同学的辛勤指导下终于解决了。我们学得到很多实用

19、的知识,在此表示感谢!同时,对给过我们帮助的所有同学和指导老师再次表示忠心的感谢! 参考文献1 当方微型计算机控制技术M中国水利水电出版社,2001年2 胡汉才单片机原理及其借口技术M清华大学出版社,1996年3 赵新民智能仪器设计基础M哈尔滨工业大学出版社,1999年4 潘新,民王,燕芳微型计算机控制技术M电子工业出版社,2003年5 李钟实实用电子报警器精选百例M北京:科技技术文献出版社,2002年6 陈爱弟Protel99se实用培训教程M人民邮电出版社,2000年。7 阎石数字电子技术基础M高等教育出版社,1998年8 童诗白模拟电子技术基础M高等教育出版涉,1998年附录1.源程序#

20、include #define uchar unsigned char #define uint unsigned int uchar i,j,num,temp,wrong; uchar passw=1,2,3,4,5,6,7,8; uchar passt=0,0,0,0,0,0,0,0; uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71, 0x76,0x79,0x38,0x3f,0; bit lockflag; bit editflag; bit

21、cmpflag; bit pressflag; sbit alarm=P13; sbit rled=P10; sbit gled=P11; sbit yled=P12; uint t0,a; uchar right; void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void lock() TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; ET0=1; EA=1; TR0=1; while(1) if(t00;a-) rled=rled; delay(100

22、0); else alarm=0; rled=1; TR0=0; t0=0; break; void timer0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; t0+;uchar keyscan() P3=0xfe; temp=P3; temp=P3&0xf0; while(temp!=0xf0) delay(50); if(temp!=0xf0) temp=P3; switch(temp) case 0xee:num=0;pressflag=1; /1110 1110 break; case 0xde:num=1;p

23、ressflag=1; /1101 1110 break; case 0xbe:num=2;pressflag=1; /1010 1110 break; case 0x7e:num=3;pressflag=1; /0111 1110 break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; P3=0xfd; temp=P3; temp=P3&0xf0; while(temp!=0xf0) delay(50); if(temp!=0xf0) temp=P3; switch(temp) case 0xed:num=4;pressflag=1; break;

24、 case 0xdd:num=5;pressflag=1; break; case 0xbd:num=6;pressflag=1; break; case 0x7d:num=7;pressflag=1; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; P3=0xfb; temp=P3; temp=P3&0xf0; while(temp!=0xf0) delay(50); if(temp!=0xf0) temp=P3; switch(temp) case 0xeb:num=8;pressflag=1; break; case 0xdb:num=

25、9;pressflag=1; break; case 0xbb:num=10;pressflag=1; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; return num;void input() while(num!=10) keyscan(); if(num=10) pressflag=0; yled=0; for(i=0;i8;i+) while(!pressflag) keyscan(); pressflag=0; temp=num; if(temp!=10) if(!editflag) passti=temp; else pass

26、wi=temp; P0=tablenum; else break; yled=1; cmpflag=editflag; delay(200); P0=0; num=0; main() i=0; j=0; lockflag=0; editflag=0; pressflag=0; P0=0; while(1) input(); if(cmpflag) cmpflag=0; for(j=0;j0;a-) delay(500); rled=1; alarm=1; wrong+; break; else if(j=7) rled=1; gled=0; editflag=1; input(); editflag=0; gled=1; wrong=0;

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

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