版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理与接口技术课程设计题目:四位密码锁设计单片机原理与接口技术课程设计(报告)摘要本课程设计以《微机原理与接口技术》课程为基础,以利用单片机AT89C51设计一个4位密码锁,能够使用数码管显示器来显示密码输入的相关信息,通过10位数字按键(0~9)设置4位数字(0~9)密码,4位功能按键A(输入校验密码并验证密码)和B(设置新密码),利用继电器模拟电子门锁作出是否开门以及报警等反应。,采用C语言在PROTEUS平台下,完成了硬件及软件设计和仿真调试。关键词:单片机;LCD显示屏;矩阵键盘;数码管;蜂鸣器;
目录摘要 第1章概述1.1单片机简介单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。1.2设计意义单片机的应用是具有高度现实意义的。单片机极高的可靠性,微型性和智能性(我们只要编写不同的程序后就能够完成不同的控制工作),单片机已成为工业控制领域中普遍采用的智能化控制工具,已经深深地渗入到我们的日常生活当中。通过此次基于单片机设计的密码锁系统,我们可以更清楚详细的了解单片机程序设计的基本指令功能、编程步骤和技巧来讲述单片机编程,并对单片机的结构和原理进行讲述,以及基于单片机开发应用的相关芯片的工作原理,并且可以在将来的工作和学习中加以应用。1.3设计目的在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需要携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为了满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。 在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少,安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的只能密码锁,它除了具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。 本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误就有提示,为了提高安全性,当密码输入错误次将报警。密码可以由用户自己修改设定,锁开后才能修改密码。修改密码前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。1.4任务和要求1、可用LCD1602显示密码。2、密码锁的密码由矩阵键盘输入,输入完密码后进行对比。3、输入错误三次后锁死键盘。4、要求输入4位密码,初始化密码1234。5、根据设计任务的要求编写程序,并在Proteus下进行仿真,实现相应功能。
第2章设计要求和方案选择方案:用AT89C51设计的多功能密码锁。以单片机作为微控制器,可以实现基于以上优点,按键有效指示、输入错误、控制开锁、错误报警、密码修改等功能,工作稳定可靠,保密性高,实用性强。电子密码锁总体设计
第3章单片机的选择以及主要部分简介3.1单片机的选择本次课程设计采用的是51系列的AT89C51片机,51单片机是按照工业标准设计制造的。其内核是基于使用多个内部寄存器结构的累加器,用于数据储存和外部设备管理。作为微型机的一个分类,它包括运算器,控制器,存储器,输入输出接口电路这五个基本组成部分。AT89C51片机的内部结构框图如图所示振荡器时序OSC振荡器时序OSC程序存储器4KBROM数据存储器256BRAM/SFR2*16位定时、计数器89C51CPU可编程I/O可编程全双工串行口图2总线51单片机用的是40引脚双列直插式集成电路芯片,其引脚排列如图所示图33.2矩阵按键模块在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘较为合理。识别方法:行列扫描,我们可以通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。本设计采用的就是矩阵按键其硬件电路图如图所示图4下面将按键的功能加以说明;K0-Kb:数字密码输入区ENTER:确认按钮DELETE:删除一位数字密码CLEAR:删除所有数字密码LOCK:锁定
第4章软件设计4.14×4矩阵键盘的编程方法:(1)先读取键盘的状态,得到按键的特征编码。(2)从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到16个键的特征编码。4.2举例说明如何得到按键的特征编码(1)假设“1"键被按下,找其按键的特征编码。(2)从P1口的高四位输出低电平,即P1.4-P1.7为输出口。低四位输出高电平,即P1.0-P1.3为输入口。读P1口的低四位状态为“1101”,其值为“ODH”。(3)再从P1口的高四位输出高电平,即P1.4-P1.7为输入口。低四位输出低电平,即P10-P13为输出口,读P1口的高四位状态为“1110”。(4)用同样的方法可以得到其它15个按键的特征编码。4.2PROTEUS软件仿真接线图5
4.3矩阵键盘程序分析voidKey(){u8a=0; //矩形式键盘函数 if(mode){ if((key!=0x0f)) {delay(1000); if((key!=0x0f)){ key=0x0f; switch(key){ case0x07:keyz=0;biao=1;break; case0x0b:keyz=1;biao=1;break; case0x0d:keyz=2;biao=1;break; case0x0e:keyz=3;biao=1;break; } key=0xf0; switch(key){ case0x70:keyz=keyz;biao=1;break; case0xb0:keyz=keyz+4;biao=1;break; case0xd0:keyz=keyz+8;biao=1;break; case0xe0:keyz=keyz+12;biao=1;break; } } } while((a<50)&&(key!=0xf0)){a++;delay(10000);} }}
第5章PROTEUS软件仿真在计算机中打开PROTEUS软件,建立新的项目,在元件库中选择相应的元件,放在编辑窗口中,依次连线,组成仿真原理图。在用Protues进行仿真之前,先要用keil软件将我们编写好的C语言程序编译。具体方法是在keil中先新建一项目,之后输入编写的程序,输入完成后保存然后执行项目、编译,在目标文件夹内生成编译好的程序文件,其中*.hex文件就是我们所需要的,在之后电路设计好后用于放入AT89S51中执行其功能。检查连接好的电路,确保无误后,下载到电路连接好的PROTEUS中AT89S52中。点击仿真键进行仿真,在仿真过程中点击矩阵按键。矩阵按键说明:K0-Kb:数字密码输入区,ENTER:确认按钮DELETE:删除一位数字密码,CLEAR:删除所有数字密码,LOCK:锁定输入密码,密码正确后显示屏显示“OK”,LED灯会亮,LCD液晶屏显示OK,密码锁打开;密码输入错误后,LED灯不亮,蜂鸣器发出蜂鸣声2秒,液晶显示屏显示“ON”:当连续输错3次密码后密码锁键盘被锁死。观察LED灯,数码管,蜂鸣器以及液晶显示屏的工作情况,看是否符合设计的要求。图6
总结本次的基于密码锁的课程设计,在设计的过程中我们主要做了最小相位系统的搭建,显示电路,报警电路,矩阵键盘以及液晶显示屏的设计。还有驱动硬件电路工作的程序编写。通过这次课程设计使我们对52单片机的结构组成,引脚排列有了更加深刻的印象,同时也对单片机的工作原理有了不同的理解,我们了解到软硬件结合解决实际问题的一些方法。给予了我们对待解决现实问题的一些思路,特别是矩阵按键识别的原理,和适用场合,还有学会了巧妙的运用蜂鸣器,数码管,液晶显示屏等,能够使使用者的体验更加的流畅惬意。本设计最终的电子密码锁成品具有以下功能:(1)当通过4*3矩阵键盘输入正确密码时,密码锁正常开锁,同时显示屏出现相应的显示信息。(2)当输入密码不正确时,不能开锁,蜂鸣器报警,同时显示屏出现相应显示信息。(3)本设计系统中,密码锁的密码可以通过矩阵键盘更改,但只有在输入原始密码正确的前提下方可设置新密码,同时显示器的显示屏出现相应显示信息。在这次课程设计中,从定下课题、查阅资料,到着手制作、修改完善,每一步都令我受益匪浅,不仅巩固了大学期间学到的知识,又增加了许多工程实践经验。纸上得来终觉浅,很多时候,不亲手去做一件事,就无法真正了解其中的关键、困难,多多实践动手,才能理论联系实际,增强自身能力.,将书本上的知识有了更进一步的深化和认识。做到了软硬件的完美结合。在这次的课程设计中,我们三个人互相帮助,互相学习,通力合作,完美的完成了本次的课程设计。这不仅仅是我们知识的拓展,而且是锻炼我们合作能力的一次重要的机会。积累的宝贵经验为我们以后的学习打下了一个良好的基础。
致谢课程设计即将完成之际,我借此机会向我的老师、同学以及朋友们致以深切的感谢!首先,我要感谢我的导师,整篇设计写作过程中,给予了我最大的指导与帮助,对我在课程设计写作过程中提出的疑问进行解答,提供思路与方法,使我有了明确的写作方向,在此我要向他表示最衷心的感谢!其次,我要感谢我的其他老师和同学,在学习时光里,老师们为我授业解惑,使我的思想与知识得到成长与积累,为我的写作打下了坚实的基础。同学们也在我需要帮助的时候给予了我关心与鼓励,生活上给予了我极大的照顾,大家之间互帮互助,给我留下了深刻的印象,使我有了一个良好的生活环境与学习氛围,为了课程设计的完成提供了良好的条件。在此,我一并向他们表示感谢!最后,我还要借此机会感谢我的朋友和家人们,正是有他们在背后默默的支持,我才能得以顺利完成,在此我向他们表示深深的感谢!
参考文献:[1]余发山.单片机原理及应用技术.徐州:中国矿业大学出版社,2003.[2]佟云峰,等.单片机原理及其应用.重庆:重庆大学出版社,2004,1.[3]吴金戌,等.8051单片机实践与应用.北京:清华大学出版社,2001,8.[4]刘瑞新.单片机原理及应用教程.北京:机械工业出版社,2005.[5]聂毅.宏汇编语言程序设计教程.北京:电子工业出版社,1998.[6]周航慈.单片机应用程序设计技术.北京:北京航空航天大学出版社,2002.
附录#include<reg52.h>typedefunsignedcharu8;typedefunsignedintu16;//sbit特殊功能位声明:声明某特殊功能寄存器中的一位#definekeyP1 //按键io口sbitfen=P3^0; //蜂鸣器io口sbitrs=P3^1;//LCD控制口sbitrw=P3^2;sbite=P3^3;sbitled=P3^4;//LED灯io口//bit位变量声明:定义一个位变量的值u8keyz=17,j=0,biao1=0;a=10,b=10,c=10,d=10,s=0;bitbiao=0;bitmode=1;u16zh;u8shu[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};u8zi[]={"lnputpassword:"};u8num[]={"0123456789ABCDEF"};voiddelay(u16i){ while(i--); }/*蜂鸣器*/voidFen(u8a,b)//蜂鸣器发声函数{ u8i,j; for(i=0;i<a;i++) { for(j=0;j<100;j++) {fen=~fen;delay(b);} }}/*LCD*/voidwritecom(u8com){ //LCD写指令 rs=0; rw=0; e=0; P0=com; delay(5); e=1; e=0;}voidwritedat(u8dat){ //LCD写数据 rs=1; rw=0; e=0; P0=dat; delay(5); e=1; e=0;}voidinitlcd(){ //LCD初始化函数 writecom(0x38);//显示模式设置 writecom(0x0c); writecom(0x06); }voidxian(){ //LCD显示数字函数writedat(num[keyz]); if(a==10){a=keyz;} //对abcd,四位数的单独赋值 elseif(b==10){b=keyz;} elseif(c==10){c=keyz;} else{d=keyz;} if(j!=3){j++;}biao=0;}/*键盘*/voidKey(){u8a=0; //矩形式键盘函数 if(mode){ if((key!=0x0f)) {delay(1000); if((key!=0x0f)){ key=0x0f; switch(key){ case0x07:keyz=0;biao=1;break; case0x0b:keyz=1;biao=1;break; case0x0d:keyz=2;biao=1;break; case0x0e:keyz=3;biao=1;break; } key=0xf0; switch(key){ case0x70:keyz=keyz;biao=1;break; case0xb0:keyz=keyz+4;biao=1;break; case0xd0:keyz=keyz+8;biao=1;break; case0xe0:keyz=keyz+12;biao=1;break; } } } while((a<50)&&(key!=0xf0)){a++;delay(10000);} }} voidshi(){u8i; //按键值判断函数 if(biao&&keyz!=15){//判断标志位biao是否为1,为1则有按键操作并且按键的值不等于15 if(mode){ writecom(0x80+0x40+j); //数字显示位置进行累加操作 if(j<0){j=0;} //数字显示位置边界 switch(keyz){ //switch判断按键并执行对应操作 case0:xian();break; case1:xian();break; case2:xian();break; case3:xian();break; case4:xian();break; case5:xian();break; case6:xian();break; case7:xian();break; case8:xian();break; case9:xian();break; case10:writedat(num[keyz]); j++;biao=0;break; case11:writedat(num[keyz]); j++;biao=0;break; case12: biao1=0; //重置标志位biao1,上锁 biao=0;break; case13:writecom(0x01); delay(1000); //全屏清除 for(i=0;i<sizeof(zi);i++){ writecom(0x80+i); writedat(zi[i]); } j=0;biao=0;break; case14: //对当前数字位删除的操作 writedat(''); j--; writecom(0x80+0x40+j);writedat(''); biao=0;break; case15://确定按键 if(s<=3) { j++;biao=0;break; } } } } if(keyz==15){ //判断按键值如果等于15,便视为按下确定键 writecom(0x01);delay(1000); zh=a*1000+b*100+c*10+d; //将ABCD,四位数合并并进行判断是否为正确密码 if(zh==1234){//设密码为1234 j=0; s=0; biao1=1; //将biao1标志位置1便为密码正确 keyz=17; //使按键值跳出最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026贵州黔南州荔波县事业单位引进高层次人才和急需紧缺专业人才18人备考题库附答案详解(突破训练)
- 2026河南黄金叶投资管理有限公司所属企业大学生招聘18人备考题库带答案详解
- 新生儿呼吸窘迫综合征管理的欧洲共识指南要点2026
- 2026云南玉溪市红塔区凤凰街道葫田社区居民委员会社区专职网格员招聘1人备考题库附参考答案详解(满分必刷)
- 2026浙江宁波市镇海区急救中心编外人员招聘1人备考题库附答案详解(精练)
- 2026上半年安徽黄山市休宁城乡建设投资集团有限公司及权属子公司招聘18人备考题库及完整答案详解一套
- 2026江西赣州市托育综合服务中心招聘业务园长1人备考题库含答案详解(模拟题)
- 2026江苏南通如东县岔河镇村卫生室工作人员招聘2人备考题库及答案详解【必刷】
- 吉林银行2026届春季校园招聘备考题库及参考答案详解1套
- 2026广西贵港市桂平市垌心乡卫生院招聘编外人员1人备考题库附答案详解(预热题)
- 家校共育促学生成长课件
- 无机材料科学第四章非晶态结构与性质之玻璃体
- 儿科疾病作业治疗
- 计算机辅助设计教案
- YS/T 885-2013钛及钛合金锻造板坯
- GB/T 34755-2017家庭牧场生产经营技术规范
- GB/T 19274-2003土工合成材料塑料土工格室
- 压力性损伤与失禁性皮炎的鉴别
- GA/T 1202-2014交通技术监控成像补光装置通用技术条件
- “新网工程”专项资金财税管理与专项审计方法课件
- 安全爬梯受力计算正文
评论
0/150
提交评论