单片机课程设计--电子密码锁.docx_第1页
单片机课程设计--电子密码锁.docx_第2页
单片机课程设计--电子密码锁.docx_第3页
单片机课程设计--电子密码锁.docx_第4页
单片机课程设计--电子密码锁.docx_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1 绪论随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性和方便性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点随着人们对安全的重视和科技的发展,对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。具有报警功能的电子密码锁保密性高,使用灵活性好,安全系数高,密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有推广价值。电子密码锁采取电子电路控制,通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务。本次设计使用AT89S52单片机构成最小系统,接以键盘,报警系统,液晶显示构成人性化的方便易用的电子密码锁。2 设计任务、功能要求说明及总体方案介绍2.1 设计目的与任务本设计采用AT89S52单片机为主控芯片,结合外围电路矩阵键盘、液晶显示器LCD 1602A等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,组成的电子密码锁系统。2.2 设计内容及要求(1)课程设计中,锁体用LED代替(如“绿灯亮”表示开锁,“红灯亮”表示闭锁)。(2)其密码为方8位十进制代码(代码自设定)。(3)开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开。当开锁密码与存储密码不一致时,电路则报警并实现自锁。(报警动作为响1分钟,停10秒)(4)选择电路方案,完成对确定方案电路的设计。计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。安装调试设计电路,查阅至少5篇参考文献。按湖南工学院课程设计工作规范要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。2.3 设计总体方案及工作原理说明采用以单片机AT89S52为核心的控制方案,总体框图见图1。单片机作为本装置的核心器件,在系统中起到控制声光报警、以及数码动态显示的作用。一般来说在选择单片机时下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机AT89S52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,以及控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接加以34矩阵键盘、LED、蜂鸣器等。矩阵键盘分别为0、1、2、3、4、5、6、7、8、9、重新输入、确认输入。系统开始显示“INPUT PASSWORD:”,提示输入密码;当密码输入完毕按下Enter键时,若输入密码与设定的密码相同,即密码正确,液晶屏显示为“Mission Success!”提示锁打开,同时LED绿灯亮;若密码不正确,LED显示电路显示提示“Forgot Password?”,LED红灯亮,发出警报声同时锁定键盘,不能进行任何操作。 投在输入过程中发现输入错误的数字,可通过重新输入AC键清除所有数字。 AT89S52数码管蜂鸣器LED34键盘复位电路 电源图1 系统设计框图 如图1所示,系统主要由电源(由三角电源口、六角开关、红色LED灯、电阻组成),34键盘(键盘分别为0、1、2、3、4、5、6、7、8、9、重新输入、确认输入),复位电路,LED灯(密码输入错误时亮红灯,密码输入正确时亮绿灯),蜂鸣器(输入密码时,输入一位响一次,密码输入错误时有报警功能),以及液晶显示电路(显示功能)组成。3 系统硬件设计3.1 硬件系统各模块功能简要介绍3.1.1 复位以及振荡电路如图2所示,即为AT89S52复位和振荡电路结构。图2 系统的复位电路时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位。本设计晶振选择频率为12MHZ,电容选择33pF。经计算得单片机工作胡机器周期为:12(112M)=1us。3.1.2 34矩阵键盘如图3所示,本系统采用34矩阵键盘,12个按键分为输入数字键:0、1、2、3、4、5、6、7、8、9;功能键:确认输入Enter、重新输入AC。键盘与单片机相连接,其连接方式为前三行分别P1.01.3连接;后四行分别与PP1.51.8连接分别控制;图3 系统的键盘电路3.1.3 报警蜂鸣器报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P35引脚为低电平,三极管T3导通轰鸣器发出噪鸣声报警其电路如图4所示:图4 系统的报警电路3.1.4 液晶显示电路为了使该电子锁能人性化的显示输入密码的状态以及密码输入正确与否,添加了液晶显示放弃了数码管显示。本次设计使用的是LCD 1602A液晶显示器,采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个1K的电阻调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光电源正极第16脚:背光电源负极LCD 1602A自带英文字库,各引脚分别接入P2.0口,其接入电路如图5所示:图5 系统的液晶显示电路3.2 电路原理图、PCB图、元器件布局图设计电路原理图、PCB图、元器件布局图分别见附录A、附录B、附录C。3.3 硬件实物图实物图见附录D。3.4 元器件清单元器件清单见附录E。4 软件系统的设计4.1 软件设计所用到的单片机资源情况P0口作为显示输出,P2口作为键盘输入,用到外部中断0即P3.2脚,P1.2脚和P1.3脚分别与开锁电路与报警电路相连,P1.5、P1.6、P1.7分别于液晶显示器的E、RW、RS脚相连。4.2 软件系统的模块功能如图6所示为系统的主程序流程图,图7所示为开锁流程图。 开始初始化结束结束启动程序键盘扫描键功能程序关闭程序 结束图6 主程序流程图主程序清单:void main() /*主程序 */ uint i; /*预置初始化 */ P30=1; /*开启数据/命令*/ P31=0; /*禁止读写 */ P35=0; /*关闭报警 */ P36=0; /*关闭开锁 */ write_com(0X38); /*设置数据总线为8位,分2行显示 */ del(5); write_com(0X01); /*显示器清零 ,光标归位*/ del(5); write_com(0X0f); /*打开显示功能 */ del(5); write_com(0X06); /*每写入一个数据光标右移 */ del(5); write_com(0X80+0X00); /*写入字符码,使显示器显示相应字符*/ del(5); for(i=0;i15;i+) write_dat(tablei); /*显示器输出内容 */ del(10); write_com(0Xc0); del(5);while(1) if(ky_press() /*如果有键按下*/ ky_scan(); /*键盘扫描 */ uchar ky_press() /*检查是否有按键按下*/ P1=0Xf0; /*按键口初始化 */ if(P1&0xf0)!=0xf0) /* 若有键按下 */ del(1); /* 延时去抖动 */ if(P1&0xf0)!=0Xf0) return 1; /* 有键按下 ,返回值为1*/ else return 0; /* 无键按下 ,返回值为0*/ void ky_scan() /*确认所按按键的具体位置*/ uchar ky,i=0X7F,j; del(10); if(ky_press(); /* 如果有键按下 */ do i=(i7); /* 行列扫描 */ P1=i; /* 输出扫描码 */ ky=P1; j=ky&0XF0; while(j=0XF0); /*有键按下 */开锁程序初始化按下用户键输入密码确认密码报警程序输入密码正确N N锁定键盘 Y结束开锁成功图7 开锁流程图开锁程序清单:void jiaodui() uchar i=0,j=0; while(passwordi=newi) /*密码比较*/ i+; /*i自加1*/ if(i=8) break; if(i=8) /*如果密码全部正确 */ P36=1; /*开锁 */ write_com(0X80+0X40); /*写入字符码,显示器显示相应字符*/ del(5); /*调用延时程序*/ for(i=0;i17;i+) write_dat(table2i); /*显示器显示Mission Success! */ del(20); else if(i8) /*密码错误 */ P35=1; /*报警 */ write_com(0X80+0X40); /*写入字符码,显示器显示相应字符*/ del(5); for(i=0;i17;i+) write_dat(table3i); /*显示密码错误 */ del(20); while(1); else if(j!=3) k=0; write_com(0X80+0X40); /*锁定键盘 */ 4.3 软件系统程序清单软件系统程序清单见附录F。5 设计结论、仿真结果、误差分析、教学建议5.1 设计结论及使用说明本程序从经济实用的角度出发,采用美国Atmel公司的单片机AT89S52作为主控芯片,结合外围的键盘输入、显示、报警、开锁等电路并用C语言编写主控芯片的控制程序,研制了一款可以多用户使用可多次更改密码具有报警功能的电子密码锁。设计完全可行可以达到设计目的。使用单片机制作的电子密码锁具有软硬件设计简单,易于开发,成本低,安全可靠,操作方便等特点,可用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有一定的实用性。该电路设计还具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码,多用户使用等功能。可在意外泄密的情况下随时修改密码。保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等场所。使用说明:本密码锁初始密码为88888888,当要开锁时,需输入正确的密码,按下确定键后就能实现开锁,如果输入不正确,密码锁就会报警。5.2 程序仿真程序仿真图见附录G。5.3 误差分析当硬件电路焊接完成后,发现蜂鸣器一直处于报警状态,而仿真时并未出现这种现象。用万用表检查电压发现三极管一直处于导通状态,基极电压有将近4V,可T1口电压却是不足0.1V,基极电压大于导通电压。主要原因是T1口引出的电阻不足以分压使得基极电压小于三极管的开启电压,导致三极管一直处于导通状态。 解决办法:将原来电阻取下,换成大电阻,这样就能在电阻上分得很大的电压使得基极电压小于三极管的开启电压。5.4 设计体会通过本次课程设计实践,我对C语言有了更深的理解,可以加强软件系统各模块之间的联系,达到意想不到的效果。同时也加深了对设计方法的理解,进一步理解了软件设计中整体与局部的关系,本次实践我就运用了从整体到局部的设计思想,达到了满意的效果,它使我少走了很多弯路,既节约了时间,又很好的组织了软件系统各部的联系。5.5 教学建议对于单片机与C语言的学习,我觉得应该加强创造性思维的培养,同时结合实验加以实践。我觉得思维是知识的灵魂,只有加强了思维的训练与培养,才能使知识的能量达到最大化。就像好的文章要有好的作家,要有他们那种创造精妙语言的思维,软件系统设计也是一种对语言的运用实践,精妙的思维也就必不可少。创造性思维是丰富的,因此应加强老师与同学们、同学们之间的思维互动,加强探讨,加强课程设计实践。结束语课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一个月的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,在同学的帮助下,终于游逆而解。非常感谢!致 谢在课程设计论文完成之际,我要忠心的感谢身边给予过我莫大帮助的老师、同学和朋友,致以他们最诚挚的谢意。 本次课程设计是在我的老师凌云的亲切关怀和悉心指导下完成的。她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,凌老师都始终给予我细心的指导和不懈的支持。凌老师多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励,这让我在整个论文的撰写过程中学习到了很多关于课题研究方面的知识。本文参考了大量的文献资料,在此,向各学术界的前辈们致敬。最后要感谢的是我的父母和家人,感谢他们多年来对我默默的支持和帮助。由衷的希望在未来的日子里,周围的老师、同学和朋友们一如既往的在各方面继续给予我更多的指教和帮助,以期取得新的进步和成绩来回报大家。参考文献1 李广弟 ,朱月秀 ,冷祖祁.单片机基础M.第三版.北京:北京航空航天大学出版社,2007.0-260Li guangdi ,Zhu yuexiu ,Leng zuqi.Microcontroller basedM.The Third Edition.Beijing:Beijing University of Aeronautics and Astronautics Press,2007.0-2602 李朝青.单片机原理及接口技术M.北京:北京航空航天大学出版社,1998.26-40Li Chaoqing.SCM Principle and Interface TechnologyM.Beijing:Beijing University of Aeronautics and Astronautics Press,1998.26-403 何立明.单片机高级教程M.北京:北京航空航天大学出版社,2000.37-51He Liming.Advanced MicrocontrollerTutorialM.Beijing:Beijing University of Aeronautics and Astronautics Press,2000.37-51附录B PCB图附录C 元器件布局图附录D 硬件实物图图D1 输入密码界面图D2 密码正确界面图D3 输入密码错误界面附录E 元器件清单表名称型号数量单片机及底座AT89S521发光二极管LED-red1LED-green1电解电容10uF/50V1瓷片电容33pF2电阻及变阻器1K210K2导线焊锡白色导线及焊锡若干晶振12MHz1液晶显示LCD-1602A1三极管90121蜂鸣器HXD1轻触开关点触开关12六脚开关六脚开关1附录F 程序清单表/*/项目名:密码锁设计者:罗万里时间:2012年12月13日/*/功能要求:系统开始显示“INPUT PASSWORD:”,提示输入密码,然后在单片机 外围电路的34矩阵键盘输入密码,然后按确认输入Enter,若输入密码与设定的密码相同,即密码正确,液晶屏显示为“Mission Success!”提示开锁成功,同时LED绿灯亮;若在输入过程中发现输入错误的数字,可通过重新输入AC键清除所有数字;若密码不正确,LED显示电路显示提示“Forgot Password?”,LED红灯亮,蜂鸣器发出警报声同时锁定键盘,不能进行任何操作,/*/LCD 1602A显示器的设定:LCD 1602A显示器的D0-D7接单片机的P2.0-P2.7;RS接单片机的P3.0;E接单片机的P3.1; RW,VSS和VEE接地;VDD接电源/*/独立式键盘设定:43矩阵键盘分别依次接在P1.0-P1.3和P1.5P1.7口线/*/键功能程序:k0 (k0键键功能程序) 十进制数0k1 (k1键键功能程序) 十进制数1k2 (k2键键功能程序)十进制数2k3 (k3键键功能程序) 十进制数3k4 (k4键键功能程序) 十进制数4k5 (k5键键功能程序) 十进制数5k6 (k6键键功能程序)十进制数6k7 (k7键键功能程序) 十进制数7k8 (k8键键功能程序) 十进制数8k9 (k9键键功能程序) 十进制数9k10 (k10键键功能程序) 确认键k11 (k11键键功能程序) 复位键/*/(1)开锁程序:单片机P3.6接绿灯,当置1时,绿灯亮,开锁成功。P3.5接红灯,当置1时,红灯亮,开锁失败,报警。/*/#include #include #define uchar unsigned char /*自定义字符型 */#define uint unsigned int /*自定义整型 */ uchar table=INPUT PASSWORD:; /*提示输入密码 */ uchar table1=*; /*输入密码用*显示*/ uchar table2=Mission Success!; /*显示密码输入正确*/ uchar table3=Forgot Password?; /*显示密码输入错误*/ sbit P30=P30; /*定义P30为P3.0 */sbit P31=P31; /*定义P31为P31 */sbit P35=P35; /*定义P35为P35 */sbit P36=P36; /*定义P36为P36 */ uchar new8; /*设密码的位数 */uchar password=8,8,8,8,8,8,8,8; /*设初始密码 */ uchar j=0; /*定义变量并赋初值*/ uchar k=0; /*键盘简介 (4*3) 0 1 2 3 4 5 6 7 8 9 重输 确认*/*(2)写指令程序*/void write_com(uchar com) /*写指令*/ P30=0; /*P30置低电平*/ P2=com; /*D0-D7=指令码*/ del(1); /*调用延时1ms */ P31=1; /*P31置高电平*/ del(1); /*调用延时1ms */ P31=0; /*P31变为低电平*/*(3)写数据程序*/void write_dat(uchar dat) /*写数据*/ P30=1; /*P30置高电平*/ P2=dat; /*D0-D7=数据*/ P31=1; /*P31置高电平*/ del(1); /*调用延时1ms */ P31=0; /*P31变为置高电平*/*(4)键功能程序*/while(ky_press() ; /*定义键码 值*/switch(ky)case 0X7E: ky=0; break; /*定义第1行第1列键码值为0*/case 0XBE: ky=1; break; /*定义第1行第2列键码值为1*/case 0XDE: ky=2; break; /*定义第1行第3列键码值为2*/case 0X7D: ky=3; break; /*定义第2行第1列键码值为3*/case 0XBD: ky=4; break; /*定义第2行第2列键码值为4*/case 0XDD: ky=5; break; /*定义第2行第3列键码值为5*/ case 0X7B: ky=6; break; /*定义第3行第1列键码值为6*/ case 0XBB: ky=7; break; /*定义第3行第2列键码值为7*/ case 0XDB: ky=8; break; /*定义第3行第3列键码值为8*/ case 0X77: ky=9; break; /*定义第4行第1列键码值为9*/ case 0XB7: ky=10; break; /*定义第4行第2列键码值为10*/ case 0XD7: ky=11; break; /*定义第4行第3列键码值为11*/ if(ky10) newk=ky;k+; /*key10为密码输入*/ write_dat(table10); /*定义按键显示符号*/ else if(ky=11) jiaodui(); /*定义11为确定键*/else if(ky=10) k=0; write_com(0X80+0X40); /*定义10为复位键 */ /*(5)密码校对程序*/void jiaodui() uchar i=0,j=0; while(passwordi=newi) /*密码比较*/ i+; /*i自加1*/ if(i=8) break; if(i=8) /*如果密码全部正确 */ P36=1; /*开锁 */ write_com(0X80+0X40); /*写入字符码,显示器显示相应字符*/ del(5); /*调用延时程序*/ for(i=0;i17;i+) write_dat(table2i); /*显示器显示Mission Success! */ del(20); else if(i8) /*密码错误 */ P35=1; /*报警 */ write_com(0X80+0X40); /*写入字符码,显示器显示相应字符*/ del(5); for(

温馨提示

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

评论

0/150

提交评论