《基于单片机的密码锁设计与制作-毕设论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的密码锁设计与制作-毕设论文.docx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目 录第 1 章 综 述41.1系统简介4第2章 芯片介绍52.1 AT89C51简介62.1.1主要特性:62.1.2外部特性:72.1.3内部结构:82.1.4中断处理:10第3章 系统扩展113.1 LM386N-1113.1.1 LM386N-1介绍113.1.2 LM386N-1引脚113.1.3内部电路123.1.4芯片特性12第4章 硬件设计144.1 原理图制作144.1.1基本结构144.1.2 LED数码管显示电路144.1.3键盘电路设计154.1.4报警电路设计15第5章 软件设计165.1软件开发流程165.1.2新建一个源文件并把它加入到项目中,同时增加并配置选择的
2、器件的启动代码165.1.5编译项目并生成可以编程PROM的HEX文件175.2系统程序流程图175.3 按键功能185.4密码输入错误报警功能20第6章 系统调试226.1 硬件调试226.2 软件调试23第7章 设计特点与不足237.1 设计思路237.2 设计不足23第8章 结论23谢辞25参考文献26附 录27附录A:外文资料翻译原文部分27附录B:外文资料翻译译文部分33附录C:主要源程序代码:39附录D:原理图44附录F:光盘资料说明45基于单片机的密码锁设计与制作摘 要 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解
3、决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运生。密码锁具有安全性高、成本低、功耗低、易操作等优点。本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。介绍了密码锁的单片机为核心,密码锁和LM386N-1单元的详细介绍和说明。本文设计的密码锁电路主要由单片机、键盘输入电路和显示电路等单元电路构成,其功能是由键盘输入5位密码,通过单片机进行密码比较,实现系统开锁的功能。本文详细的介绍了系统各个硬件的性能
4、和作用,以及软件设计思路和主要软件模块的流程图。 本设计电路结构简单,软件功能完善,充分发挥了单片机的优点。而且保密性较高,使用灵活性好。关键词:单片机;密码锁;LM386N-1SCM -based electronic password locks Design and ProductionABSTRACTIn day-to-day living and working in the residential sector and the safety precautions, units of paper files, financial statements, and some perso
5、nal information to the preservation of more than locking the solution to the problem. If the use of traditional mechanical key to unlock, people often need to carry more keys, a very inconvenient to use, and after the loss of key security that is greatly reduced. With the continuous development of s
6、cience and technology, in the daily lives of people on insurance safety devices increasingly demanding. To meet the requirements of the use of locks to increase their security, with a password instead of the password key lock came into being. Password lock is safe, low cost, low power consumption, e
7、asy to operate, and other advantages.The design of the remote control password lock on the MCU at the core, password lock control unit and PTR8000 for the detailed briefing and annotations.This article designs the password locks the electric circuit mainly by the monolithic integrated circuit, unit
8、electric circuit constitutions and so on keyboard entry electric circuit and display circuit, its function is by the keyboard entry 5 passwords, carries on the password comparison through the monolithic integrated circuit, the realization system unblanking function. This article detailed introductio
9、n system each hardware performance and function, as well as software design mentality and main software module flow chart.This design electric circuit structure is simple, the software function is perfect, has displayed the monolithic integrated circuit merit fully.Moreover the secrecy is high, the
10、use flexibility is good.第 1 章 综 述本次毕业设计所要完成的主要内容是利用AT89C51单片机及相应的接口芯片设计一个基于单片机的密码锁系统。先由程序设定密码,按键扫描输入,进行密码比较,正确发出信号,错误则发出警报。1.1系统简介单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 等等等等。第2章 芯片介绍MCS-51单片机 等等等等。2.1 AT89C51简介AT89
11、C51单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。 2.1.1主要特性:2.1.2 管脚说明:AT89C51芯片有40条引脚,双列直插式封装引脚图所示:2.1.3 内部结构:2.1.4 中断处理第3章 系统扩展由于要
12、求对报警进行控制,因此该系统中,我将使用LM386N-1音频放大芯片。LM386N-1 是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接组件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。3.1 LM386N-13.1.1 LM386N-1介绍LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围组件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池
13、供电的场合。LM386的封装形式有塑封8引线双列直插式和贴片式。3.1.2 LM386N-1引脚LM386 的外形和引脚的排列如下图所示。引脚2为反相输入端,为同相输入端;3引脚5为输出端;引脚6和4分别为电源和地;引脚1和8为电压增益设定端;使用时在引脚7和地之间接旁路电容,通常取10F。3.1.3 内部电路LM386内部电路原理图如图所示。与通用型集成运放相类似,它是一个三级放大电路。第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差
14、分电路。使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电,故为OTL电路。输出端(引脚5)应外接输出电容后再接负载。电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。3.1.4 芯片特性1静态功耗低,约为
15、4mA,可用于电池供电。2工作电压范围宽,4-12V or 5-18V。3外围组件少。4电压增益可调,20-200。5低失真度。电源电压4-12V或5-18V(LM386N-4);静态消耗电流为4mA;电压增益为20-200dB;在1、8脚开路时,带宽为300KHz;输入阻抗为50K;音频功率0.5W。 尽管LM386的应用非常简单,但稍不注意,特别是器件上电、断电瞬间,甚至工作稳定后,一些操作(如插拔音频插头、旋音量调节钮)都会带来的瞬态冲击,在输出喇叭上会产生非常讨厌的噪声。1、通过接在1脚、8脚间的电容(1脚接电容+极)来改变增益,断开时增益为20dB。因此用不到大的增益,电容就不要接了
16、,不光省了成本,还会带来好处-噪音减少。2、PCB设计时,所有外围元件尽可能靠近LM386;地线尽可能粗一些;输入音频信号通路尽可能平行走线,输出亦如此。这是死理,不用多说了吧。3、选好调节音量的电位器。质量太差的不要,否则受害的是耳朵;阻值不要太大,10K最合适,太大也会影响音质,转那么多圈圈,不烦那!4、尽可能采用双音频输入/输出。好处是:“”、“”输出端可以很好地抵消共模信号,故能有效抑制共模噪声。5、第7脚(BYPASS)的旁路电容不可少!实际应用时,BYPASS端必须外接一个电解电容到地,起滤除噪声的作用。工作稳定后,该管脚电压值约等于电源电压的一半。增大这个电容的容值,减缓直流基准
17、电压的上升、下降速度,有效抑制噪声。在器件上电、掉电时的噪声就是由该偏置电压的瞬间跳变所致。6、减少输出耦合电容。此电容的作用有二:隔直 + 耦合。隔断直流电压,直流电压过大有可能会损坏喇叭线圈;耦合音频的交流信号。它与扬声器负载构成了一阶高通滤波器。减小该电容值,可使噪声能量冲击的幅度变小、宽度变窄;太低还会使截止频率(fc1/(2*RL*Cout))提高。分别测试,发现10uF/4.7uF最为合适,这是我的经验值。7、电源的处理,也很关键。由于电压不同、负载不同以及并联的去耦电容不同,每组电源的上升、下降时间必有差异。可行的方法:将上电、掉电时间短的电源放到+12V处,选择上升相对较慢的电
18、源作为LM386的Vs,但不要低于4V!第4章 硬件设计4.1 原理图制作4.1.1基本结构电子密码锁主要有密码输入、密码比较、结果输出组成。硬件结构简图下图3.1所示。输入密码正确开锁AT89C51单片机错误发出警报4.1.2 LED数码管显示电路密码显示使用四路静态数码显示管进行显示。1位共阴极数码管用单片机P2.0-P2.7 八个I/O口控制。LED数码管与单片机连接电路如下图所示。4.1.3键盘电路设计键盘是标准的输入设备,实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描,如8279, CH451,LMC9768等,还有就是用软件实现键盘扫描。使用现成的芯片可以节省CPU的开销,
19、但增加了成本,而用软件实现具有较强的灵活性,也只需要很少的CPU开销,可以节省开发成本。本文便使用软件实现键盘的扫描。常见的键盘可分为独立按键式键盘和行列扫描式键盘。独立按键式键盘应用在需要少量按键的情况,按键和单片机的I/O口线直接连接。而行列扫描式键盘用在按键需求较多的情形下。考虑到血压计面向大多数人群,需操作简单,所以采用独立按键式键盘。独立式键盘电路如下图所示。4.1.4报警电路设计声音报警电路通过驱动蜂鸣器发声实现,当其接通5V的电压会发出蜂鸣叫声。第5章 软件设计5.1软件开发流程5.1.1启动Keil uVision3新建一个项目文件并从器件库中选择一个器件Keil uVisio
20、n3是一个标准的windows应用程序,直接点击图标就可以启动他。要新建一个项目可以从Keil uVision3的project菜单中选择New project。会打开一个标准的windows对话框,并对此输入项目文件名。然后选择符合设计要求的芯片型号。图5-1 新建工程5.1.2新建一个源文件并把它加入到项目中,同时增加并配置选择的器件的启动代码由菜单选项File-New来新建一个源文件,在空的编辑窗口中输入源代码并把该文件另存为new.ASM的文件后Keil uVision3将显示汇编语言语法字符,创建了源文件后就可以把将其加入到项目中。之后将程序敲入,并编译调试程序直到无错通过编译。图5
21、-2选择器件的启动代码5.1.5编译项目并生成可以编程PROM的HEX文件HEX文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示, 常用来保存单片机或其他处理器的目标程序代码。它保存物理程序存储区中的目标代码映像。一般的编程器都支持这种格式。打开它的所在目录,找到。Uv2的文件即可以打开先前的项目了。选Options for TargetTarget1,弹出项目选项设置窗口,同样先选中项目文件夹图标,这时在Project菜单中也有一样的菜单可选。打开项目选项窗口,转到Output选项页创建HEX文件,编译后就在信息窗口中就显示HEX文件了。图5-
22、3生成HEX文件5.2系统程序流程图系统程序流程图如图5.12所示。初始化输入密码密码正确密码错误显示通过开 始报警密码比较3次错误图5.12 系统程序流程图5.3 按键功能其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。void main(void)unsigned c
23、har i,j;P2=dispcodedigitcount;TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;TR0=1;ET0=1;EA=1;while(1)if(cmpflag=0)if(P3_6=0) /function keyfor(i=10;i0;i-)for(j=248;j0;j-);if(P3_6=0)if(hibitflag=0)funcount+;if(funcount=pslen+2)funcount=0;cmpflag=1;P1=dispcodefuncount;elsesecond3=0;while(P3_6=0);if
24、(P3_7=0) /digit keyfor(i=10;i0;i-)for(j=248;j0;j-);if(P3_7=0)if(hibitflag=0)digitcount+;if(digitcount=10)digitcount=0;P2=dispcodedigitcount;if(funcount=1)pslen=digitcount;templen=pslen;else if(funcount1)psbuffuncount-2=digitcount;elsesecond3=0;while(P3_7=0);elsecmpflag=0;for(i=0;ipslen;i+)if(psi!=ps
25、bufi)hibitflag=1;i=pslen;errorflag=1;rightflag=0;cmpflag=0;second3=0;goto a;cc=0;errorflag=0;rightflag=1;hibitflag=0; cmpflag=0; 5.4密码输入错误报警功能当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。void t0(void) interrupt 1 using 0TH0=(65536-500)/256;TL0=(655
26、36-500)%256;if(errorflag=1) & (rightflag=0)bb+;if(bb=800)bb=0;alarmflag=alarmflag;if(alarmflag=1)P0_0=P0_0;aa+;if(aa=800)aa=0;P0_1=P0_1;second3+;if(second3=6400)second3=0;hibitflag=0;errorflag=0;rightflag=0;cmpflag=0;P0_1=1;alarmflag=0;bb=0;aa=0;if(errorflag=0) & (rightflag=1)P0_1=0;cc+;if(cc1000)ok
27、flag=1;else if(cc2000)okflag=0;elseerrorflag=0;rightflag=0;hibitflag=0;cmpflag=0;P0_1=1;cc=0;oka=0;okb=0;okflag=0;P0_0=1;if(okflag=1)oka+;if(oka=2)oka=0;P0_0=P0_0;elseokb+;if(okb=3)okb=0;P0_0=P0_0;第6章 系统调试6.1 硬件调试我首先用protel画好原理图,正确无误后去购买电子元器件。我使用的是面包板,所以就是手工的对电子元件进行布局,这是一个十分讲究的事,第一次我没有考虑到这个细节,结果各引脚靠
28、的太近使我无法继续下去,只能又重新做了一块板,在吸取了教训之后,我进行了合理的布局,在焊接的时候轻松了许多。由于对元件的不熟悉以及焊接时候的粗心,弄坏了好几个元件,不得不去了好几次电子广场。6.2 软件调试在软件调试过程中,出现了一系列错误,首先对一些打错,漏打之类的问题进行检查和排除。遇到了一些不能解决的问题,我通过网络和书籍努力寻找问题的所在,继而寻求老师的帮助,终于顺利的通过了编译。第7章 设计特点与不足7.1 设计思路首先需要对各个芯片引脚地址进行初始化。在初始化完成后,重置系统。通过输入密码进行验证,将信号传输给AT89C51芯片,进行密码比较,密码正确则通过,3次不正确通过LM38
29、6N-1芯片发出报警声。7.2 设计不足由于设计时的偷懒,想借用其他有串口的电路板对我的芯片进行烧录程和修改,没有考虑到芯片的脆弱性,在插拔芯片的过程中弄坏了好几块芯片,浪费了不少时间。另外,由于使用面包板,所以导线之间的干扰是避免不了的。第8章 结论在完成这次毕业实际的过程中,我遇到了不少困难,因为是第一次做一个完整的51单片机,在经验和知识运用上都缺乏有效的结合。在这样的情况下,我不得不去借了很多关于51单片机方面的书,还到网上找了很多的有关资料,结合自己上课所学的课程,在不断的失败错误中摸索着,终于完成了自己的毕业设计,也为我在原有的基础上得到了巩固。我做到尽我所能,找了很多有关的资料书
30、籍,对51单片机的功能特点进行了详细的了解。先用protel dpx 2004绘制电路原理图,并焊接了电路板,再通过keil3编译所需要的程序,运用flip下载烧录程序到芯片上,并不断调试寻找错误,让我的毕业设计尽可能完善。二个月的时间,让我体会到了编程者的辛酸,从各类书籍到各类资料,让我收获了很多有用的东西,收益匪浅。在解决不了之处,我寻求了导师的帮助,导师也很积极耐心的指导我,帮我纠正了一系列的错误,也让我搞懂了一些概念模糊的地方。谢辞在这次毕业设计中,我要衷心感谢黄丽佳老师,每周她都能对我进行有效的辅导,当遇到难题的时候,她甚至会一整天和我一起想办法解决问题,令我避免了很多设计中的错误,
31、使我十分感动,也使我更一步巩固了我学的知识。参考文献1 曾一江.单片微机原理与接口技术.出版社:科学出版社.2006年2月 2 周兴华.手把手教你学单片机.出版社:北京航空航天大学出版社.2005年4月3 王玉良,戴志涛,杨紫珊.微机原理与接口技术. 出版社:北京邮电大学出版社.2001年6月4 张迎新.单片微型计算机原理应用及接口技术(第2版).出版社:国防工业出版社.2005.9 5 朱定华,张小惠,刘福珍.微机原理与接口技术.出版社:武汉大学出版社6 徐爱钧,彭秀华.单片机高级语言C51应用程序设计.出版社:电子工业出版社.1999 7 陈龙三.8051单片机C语言控制与应用.出版社:清
32、华大学出版社.1999 8 陈明荧.8051单片机课程设计实训教材.出版社:清华大学出版社.9 求是科技.单片机典型模块设计实例导航(第2版).出版社:人民邮电出版社.2008-710 米昶.Protel 2004电路设计与仿真.出版社:机械工业出版社.2006.1附 录附录A:外文资料翻译原文部分SemiconductorA semiconductor is a solid material that has electrical conductivity between those of a conductor and an insulator; it can vary over that
33、 wide range either permanently or dynamically.1Semiconductors are important in electronic technology. Semiconductor devices, electronic components made of semiconductor materials, are essential in modern consumer electronics, including computers, mobile phones, and digital audio players. Silicon is
34、used to create most semiconductors commercially, but dozens of other materials are used.Bragg reflection in a diffuse latticeA second way starts with free electrons waves. When fading in an electrostatic potential due to the cores, due to Bragg reflection some waves are reflected and cannot penetrat
35、e the bulk, that is a band gap opens. In this description it is not clear, while the number of electrons fills up exactly all states below the gap.Energy level splitting due to spin state Pauli exclusionA third description starts with two atoms. The split states form a covalent bond where two electr
36、ons with spin up and spin down are mostly in between the two atoms. Adding more atoms now is supposed not to lead to splitting, but to more bonds. This is the way silicon is typically drawn. The band gap is now formed by lifting one electron from the lower electron level into the upper level. This l
37、evel is known to be anti-bonding, but bulk silicon has not been seen to lose atoms as easy as electrons are wandering through it. Also this model is most unsuitable to explain how in graded hetero-junction the band gap can vary smoothly.Energy bands and electrical conductionLike in other solids, the
38、 electrons in semiconductors can have energies only within certain bands (ie. ranges of levels of energy) between the energy of the ground state, corresponding to electrons tightly bound to the atomic nuclei of the material, and the free electron energy, which is the energy required for an electron
39、to escape entirely from the material. The energy bands each correspond to a large number of discrete quantum states of the electrons, and most of the states with low energy (closer to the nucleus) are full, up to a particular band called the valence band. Semiconductors and insulators are distinguis
40、hed from metals because the valence band in the semiconductor materials is very nearly full under usual operating conditions, thus causing more electrons to be available in the conduction band.The ease with which electrons in a semiconductor can be excited from the valence band to the conduction ban
41、d depends on the band gap between the bands, and it is the size of this energy bandgap that serves as an arbitrary dividing line (roughly 4 eV) between semiconductors and insulators.In the picture of covalent bonds, an electron moves by hopping to a neighboring bond. Because of the Pauli exclusion p
42、rinciple it has to be lifted into the higher anti-bonding state of that bond. In the picture of delocalized states, for example in one dimension that is in a wire, for every energy there is a state with electrons flowing in one direction and one state for the electrons flowing in the other. For a ne
43、t current to flow some more states for one direction than for the other direction have to be occupied and for this energy is needed. For a metal this can be a very small energy in the semiconductor the next higher states lie above the band gap. Often this is stated as: full bands do not contribute to the electrical conductivity. However, as the temperature of a semiconductor rises above absolute zero, there is more energy in the semiconductor to spend on lattice vibration and more importantly for us on lifting some electrons into an energy states of the conduction band, which is the b
限制150内