简易电子密码锁_第1页
简易电子密码锁_第2页
简易电子密码锁_第3页
简易电子密码锁_第4页
简易电子密码锁_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

科信学院课程设计说明书(2010/2011学年第 二学期)课程名称 : 单片机应用 题 目 : 简易电子密码锁 专业班级 : 学生姓名 : 学 号: 指导教师 : 设计周数 : 两周 设计成绩 : 2011年6月24日目录1、课程设计目的22、设计方案简述22.1设计思路22.2 设计原理框图22.3设计原理分析32.4 硬件设计32.4.1单片机最小系统32.4.2 密码显示电路62.4.3 键盘电路62.4.4 报警电路72.5 程序设计82.5.1程序分析82.5.2 程序编写82.6 设计结果及分析172.6.1性能指标172.6.2不足之处172.6.3性能改进方案173、课程设计总结或结论184、参考文献191、课程设计目的随着人们生活水平的提高,对家庭防盗技术的要求也是越来越高,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。现在市场上主要是基于单片机技术的电子密码锁,但可靠性较差。通常简单的数字电路就可实现密码不限次数重写,也就是说现在的硬件设计和软件设计一样灵活、方便。相对于基于单片机技术的电子密码锁,用简单门电路来来构成系统,可靠性提高,并且价格便宜。通过本次设计掌握数字电路系统设计的方法,熟悉电子密码锁设计相关硬件的使用,了解电子密码锁的系统构成,利用数字门电路实现电子密码锁的设计与实现,可以加深自己对所学专业的认识,关联知识,增强自己的动手能力,积累实践经验,为以后的工作打好基础。2、设计方案简述2.1设计思路打开一把电子密码锁的关键在于正确的输入密码 ,本设计提供了一个 3位拨码式按键输入开关 ,一个3位拨码式按键密码预设开关。用户必须按下确认按钮后方可知用户输入的密码是否与预置密码一致,一致时密码锁可打开 ,本设计有高低电平检测装置。如锁控制端为高电平发光二极管亮则锁可以打开。密码不正确时,则再次提示输入密码,如三次密码不正确蜂鸣器响,为了方便测试按取消键可取消报警。2.2 设计原理框图设计原理方框图如图2-1所示 。输入密码鸣声器电路工作密码识别按下确认键密码正确开锁蜂鸣器响显示出错密码错误图 2-1设计原理方框图2.3设计原理分析密码锁电路包含 :拨码设密、拨码输入 、密码检测 、脉冲电路 、开锁示意电路 、报警电路以及显示电路 。2.4 硬件设计2.4.1单片机最小系统51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用1030uF,51单片机最小系统容值越大需要的复位时间越短。单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。起振电容C2、C3一般采用1533pF,并且电容离晶振越近越好,晶振离单片机越近越好4.P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。单片机接线电路如下图:图2-2 单片机接线图MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。在这里为电脑和单片机通讯进行电平转换。MAX232转换电路如下:图2-3 MAX232电路串口接口电路如下:图2-4 串口接口电路2.4.2 密码显示电路显示电路采用共阳极数码管显示,用三个pnp型三极管进行驱动,p1.0、p1.1、p1.2口控制。显示电路如下图:图2-5 密码显示电路2.4.3 键盘电路采用4*4键盘,用线翻转法和逐行扫描法进行判定是否有按键按下并且读取相应键值。键盘电路如下:图2-6 键盘电路2.4.4 报警电路采用鸣声器报警。有一pnp型三极管驱动,p1.4进行控制。报警电路如下图:图2-7 鸣声器报警电路2.5 程序设计 2.5.1程序分析通对电子密码锁要求分析绘制程序流程图如下图所示:各端口初始化数码管全显示点对键盘进行扫描判断是否有输入 没有输入对其进行相应的处理处理完成图 2-8 主程序流程图2.5.2 程序编写/* 文件名 : 简易电子密码锁*/#include#include#define uint unsigned int#define uchar unsigned charuchar mima3 =0,0,0;uchar cuowu,mima23=10,10,10,jishu,baojing2;sbit Show_MEN = P13;sbit LED1 = P10;sbit LED2 = P11;sbit LED3 = P12;sbit BAOJING = P14;uchar code table16 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f,0x31,0xbf,0xbf,0xbf,0xbf;/ 共阴极/* 名称 : Delay_1ms()* 功能 : 延时子程序,延时时间为 1ms * x* 输入 : x (延时一毫秒的个数)* 输出 : 无*/void Delay_1ms(uint i)/1ms延时uchar x,j;for(j=0;ji;j+)for(x=0;x=148;x+);/* 名称 : delay()* 功能 : 延时,延时时间大概为140US。* 输入 : 无* 输出 : 无*/void delay()int i,j;for(i=0; i=10; i+)for(j=0; j=2; j+);/* 名称 : xianshi()* 功能 : 显示数字* 输入 : 无* 输出 : 无*/void xianshi(void)int i;for(i=0;i3;i+)delay();P0=tablemima2i;if(i=0)LED1=0;LED2=1;LED3=1;if(i=1)LED1=1;LED2=0;LED3=1;if(i=2)LED1=1;LED2=1;LED3=0;/* 名称 : cuowu(void)* 功能 : 实现按键的读取。下面这个子程序是按处理 矩阵键盘 的基本方法处理的。* 输入 : 无* 输出 : 按键值*/void chucuo(void)mima20=13;mima21=13;mima22=13;/* 名称 : Keyscan()* 功能 : 实现按键的读取。下面这个子程序是按处理 矩阵键盘 的基本方法处理的。* 输入 : 无* 输出 : 按键值*/uchar Keyscan(void)uchar i,j, temp, Buffer4 = 0xef, 0xdf, 0xbf, 0x7f;for(j=0; j4; j+)P2 = Bufferj;/*以下三个_nop_();作用为让 P1 口的状态稳定*/delay();temp = 0x01; for(i=0; i4; i+)if(!(P2 & temp) return (i+j*4);temp = 1;/* 名称 : baojing()* 功能 : 鸣声器报警* 输入 : 无* 输出 : 无*/void baojing(void)baojing2=0;/* 名称 : gaimima()* 功能 : 修改密码* 输入 : 无* 输出 : 无*/void gaimima(void)int i;i=0;if(Show_MEN)while(1)xianshi();P2 = 0xf0;if(P2 != 0xf0)Delay_1ms(100);/按键消抖if(P2 != 0xf0)mima2i = Keyscan(); if(mima2i10)i+;else chucuo();break;if(i=3)break; xianshi();if(i=3)mima0=mima20;mima1=mima21;mima2=mima22;mima20=15;mima21=15;mima22=15;elsemima20=15;mima21=15;mima22=15;/* 名称 : kaimen()* 功能 : 开门函数p1.3置1* 输入 : 无* 输出 : 无*/void kaimen(void)Show_MEN=1;/* 名称 : chuli(uchar t)* 功能 : 显示函数* 输入 : 按键数值* 输出 : 无*/void chuli(uchar t)if(t10 & jishu=3)jishu=0;if(t=10)if(mima0=mima20 & mima1=mima21 & mima2=mima22)/ok键 密码正确命令kaimen();jishu=0;mima20=11;mima21=11;mima22=11;cuowu=0;elsecuowu+;/密码错误if(cuowu=3) baojing();cuowu=0;jishu=0;mima20=14;mima21=14;mima22=14;elsejishu=0;mima20=11;mima21=11;mima22=11;if(t=11)/取消键 命令jishu=0;mima20=10;mima21=10;mima22=10;Show_MEN=0;baojing2=1;if(t=12)mima20=mima0; mima21=mima1; mima22=mima2;gaimima();/* 名称 : Main()* 功能 : 主函数* 输入 : 无* 输出 : 无*/void Main(void)uchar Key_Value; /读出的键值jishu=0;cuowu=0;Show_MEN = 0;BAOJING=1;baojing2=1;while(1)if(baojing2=0)BAOJING=BAOJING;P2 = 0xf0;if(P2 != 0xf0)Delay_1ms(100);/按键消抖if(P2 != 0xf0)Key_Value = Keyscan(); /按键查询部分结束chuli(Key_Value);xianshi(); 2.6 设计结果及分析2.6.1性能指标实现了所有基本功能和一些自由发挥功能,密码为3位二进制数。2.6.2不足之处1密码位数较少2没有设置灭零2.6.3性能改进方案1可以将拨码开关增加到8位2设置灭零信号,较少耗能3、课程设计总结或结论电子密码锁的设计是在单片机课程后,自己设计的课外科技活动。是教学计划中实践方面的重要组成部分,也是落实本科学生科研训练计划的要求。在着重基础、注重前沿的前提下,促进电子信息类专业和课程的建设,促进教学改革,在教学中注重培养大学生的创新能力、动手能力;加强科学研究和工程实践素质的训练,提高自己对实际问题进行设计、制作的综合能力;为后续的毕业设计和在今后工作岗位上独立开展科学研究打下良好基础。同时提升了同学间的团结协作能力。对我而言,在这次课程设计中,通过我们大家团结努力共同设计研究下终于做成了我们的电子密码锁。在制作的过程中,我们相互鼓励相互学习将课上讲的原理付诸于实践,更加深刻的体会里单片机的原理。同时,也提高了我们的动手能力。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论