毕业设计-基于8051单片机的电子密码锁设计_第1页
毕业设计-基于8051单片机的电子密码锁设计_第2页
毕业设计-基于8051单片机的电子密码锁设计_第3页
毕业设计-基于8051单片机的电子密码锁设计_第4页
毕业设计-基于8051单片机的电子密码锁设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

题目基于单片机的电子密码锁设计班级智能电子111班1姓名李海论学号201101460145目录摘要1关键词1第一章课题简介2第二章系统总体方案设计4第三章硬件电路设计531键盘电路设计632LED显示电路733开锁电路834报警电路935密码存储电路设计936复位电路10第四章软件设计1341软件设计思路1342键盘扫描子程序1343LED显示子程序1444密码修改比较和报警程序16第五章调试系统18第六章总结19第七章附录2171系统电路图25基于单片机的电子密码锁设计摘要单片机也被称微控器,是因为它最早被用在工业控制领域。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能。这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码最低级的语言了,既然这么低级为什么还要用呢很多高级的语言已经达到了可视化编程的水平为什么不用呢原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。单片机在硬件资源方面的利用率必须很高才行。本文涉及的是市场占有率很高的MCS51系列,很多IC生产厂家都生产51兼容的芯片。到目前为止,WCS51单片机已有数百个品种。还不断推出功能更强的产品。本设计是基于单片机的密码锁设计方案,根据要求,给出单片机密码锁的硬件电路和软件程序,同时给出单片机型号的选择,硬件设计,软件流程图等内容。关键词单片机8051LED数码管第一章系统总体方案设计系统总体设计方案如下图超次报警电路密码正确开门电路键盘控制电路8051单片机LED显示电路图21该设计可利用单片机中一个用于构成内部振荡器的高增益反相放大器,这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,最好电容使用30PF10PF,而如使用陶瓷谐振器建议选择40PF10F。用户也可以采用外部时钟,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。本方案采用一种是以8051为核心的单片机控制方案。利用石英晶体谐振器和单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现其基本密码锁功能。初步设计如下,1输入密码用矩形键盘,包括数字键和功能键。2用发光二极管代替发光电路,发光表示开锁。3输入密码错误次数超过三次系统报警。4打开电源后显示器显示“0000”,设原始密码“1234”输入密码便可开锁,5重设密码,先输入“”。第3章硬件电路设计存储器复位电路31键盘电路设计键盘是单片机系统中最常见的一种人机联系的一种输入设备,由若干个按键组成,用户通过键盘向CPU输入数据或命令以实现简单的人机通信。对键盘的识别可分为两类一类由专用的硬件电路来识别,它使用起来方便,但需要价格昂贵的专用芯片,在单片机系统中一般不采用,另一类靠软件来识别,称为非编码键盘,它的结构简单,价格便宜,应用灵活。但需要编制相应的键盘管理程序。单片机普遍采用这种方式。按键工作处于两种状态按下与释放。一般按下为接通,释放为断开,这两种状态要被CPU识别,通常将两种状态转换为与之对应的低电平或高电平。CPU通过按键信号电平的高低来判断按键的状态。使用矩阵键盘,所以本设计采用行列式键盘,可减少键盘与单片机接口是所占用的I/O线的数目,按键比较多时,通常采用这种方法。其原理图如下图31每一条行线和列线交叉处通过一个按键来连接,利用这种行列式矩阵结构只需要N条行线和M条列线就可组成NM个按键。在这种行列式矩阵键盘非键盘编码的单片机中,键盘处理程序先执行等待按键并确认有无键盘按下的程序段。确认有键盘按下后,下一步执行识别哪一个键按下。对照44键盘,首先识别键盘中有无键盘按下,由单片机I/O口向键盘送全扫描字00H,把全部的列线置为低电平,然后把列线的电平状态读入累加器A中,如有键按下,总会有一根线电平为低使行线不全为1。判断键盘中哪一个键被按下,使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是依次给列线送低电平,然后检查行输入状态来实现。如果全为1,则所按下键不在此列,如果不全为1则按下的键必在此列。而且是与零电平线相交的交点上的键。按键列表如下表31按键键名功能说明19键数字键输入密码键重设密码设定新密码键清除键显示器清零理想的按键信号是一个标准脉冲,但键的按下和释放都需要一个过程来实现,在这一过程中是处于高低电平之间一种不稳定状态,称为抖动。抖动时间的长短,频率的高低与按键机械特征有关,一般在5到10MS之间。这就有可能造成CPU对一次按键过程进行多次处理。为了避免这种情况应采取措施消除抖动。消抖常见有两种方法,硬件消抖如用滤波器,双稳态电路等。另一种用软件来实现,即当发现有键按下时,间隔10MS以上时间,才能进行下一次查询,这样就让过了抖动过程,键的释放进行同样处理。本设计为减少电路复杂程度,减少成本。采用软件消抖的方法。32LED显示电路数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极COM的数码管。共阳数码管在应用时应将公共极COM接到5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极COM的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划的同名端“A,B,C,D,E,F,G,“连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12MS,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。本设计的显示电路是为了给使用者以提示而设计的。本系统采用串行显示的方式,只使用单片机的一个串行口,74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路原理图如下所示。图3233开锁电路本设计中,基于节省材料的原则,用发光二极管代替电磁锁,二极管发光表示开锁,电路图如图所示。当P20输出低电平时,二极管发光,表示开锁34报警电路报警电路由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时需要约100MA的驱动电流。蜂鸣器电路如图所示。当89C51的P21口输出为低电平时,蜂鸣器产生蜂鸣音。89C51输出为高电平时,蜂鸣器不发音。35密码存储电路设计本设计中,智能密码锁工作时分为两种工作状态,分别是正常状态和锁定状态。锁定状态时,输出锁定信号,实现上锁功能;正常状态时,锁定信号消失实现开锁功能。本设计采用AT24C01存储密码。AT24C01是美国ATMEL公司的低功耗CMOS串行EEPROM,它内含1288位存储空间,具有工作电压宽(2555V)、擦写次数多(大于10000次)、写入速度快(小于10MS)等特点。具有PDIP、MSOP/TSSOP及SOIC等三种封装形式,以适应不同产品的需求。将密码存入AT24C01中,开锁时,将从面板上的微键盘输入的数字序与AT24C01中存储的密码相比较,如果位数及每一位上的数都相吻合,则进行开锁程序复位后,先将AT24C01中保存的密码取出,放入RAM缓冲区1中暂存,将定时器、堆栈等进行初始化,为报警系统作好准备,将RAM缓冲区2中的密码初值设置为和RAM缓冲区1中的密码不同,保证程序复位后比较密码不会相同,这时,进入RAM缓冲区1和RAM缓冲区2的密码比较程序,只有当两者位数相同而且每一位数字都相同时,执行开锁动作、输出开锁信号、进入正常状态,否则执行上锁动作、输出上锁信号、进入锁定状态。在正常状态时,可以进行重新设置密码、上锁等操作,重新设置密码时,首先验证原始密码,如相同则可进行密码更改,然后将新密码保存至AT24C01中,同时更新RAM缓冲区1。在锁定状态时,系统启动报警功能,同时等待用户开锁,如发现用户按下“开锁”键,则读入从微键盘输入的数字序列,用其更新RAM缓冲区2,转入密码比较程序,如密码相同则开锁,否则继续等待用户开锁,为防止非法用户恶意多次试探密码,可在程序中设置当连续三次输入错误密码后自动报警,直至开锁后解除。图3536复位电路单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,电路图如图所示图36图中由按键以及电解电容、电阻构成按键及上电复位电路。由于单片机是高电平复位,所以当按键按下的时候,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。当上电后,由于电容的缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。第四章软件设计41软件设计思路电子密码锁工作的主要过程是通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,做出开锁或报警处理。当输入密码连续三次错误时,系统报警。密码的的设定在此程序中密码是固定40H45H中,假设预定密码为“123456”六位。在正常状态时,可以进行重新设置密码、上锁等操作。重新设置密码时,首先验证原始密码,如相同则可进行密码更改,然后将新密码保存至AT24C01中。按键按其功能分为两种,其中一种为功能键另一种为数字键。输入密码后,直到所有密码输入完毕按下确认功能键之后,才完成密码输入过程。进入密码的判断比较处理状态并给出相应的处理过程。42键盘扫描子程序设计键盘扫描流程如图键盘扫描子程序如下INTKEYUINT8TEMPP30X7FTEMPP3IFTEMP0X0FDELAY5IFTEMP0X0FTEMPP3SWITCHTEMPCASES10NUM10BREAKCASES0NUM0BREAKCASES11NUM11BREAKDOTEMPP3TEMPTEMPWHILETEMP0X0F/等待按键抬起FLAG1YINP30XBFDOTEMPP3TEMPTEMPWHILETEMP0X0FFLAG1YINRETURNNUM43LED显示子程序LED显示子程序流程图如下开始载入按键值按键值扫描送入P0口图43显示函数程序如下VOIDDISPLAYUINT8GSTATICUINT8N0P20XFFSWITCHNCASE0P0TABGBREAKCASE1P0TABGBREAKCASE2P0TABGBREAKCASE3P0TABGBREAKP2SELECTNNN4VOIDWRITEDATAUINT8NUM/传送一个字节44密码修改比较和报警程序密码比较流程图如下图44开始比较第一位比较下一位4位比较完正确开锁清零清除显示记录错误次数3次报警YNNNYY密码修改与比较程序IFFLAG1YHSH0SHW1NUM0FORI0I16I/从24C02里读出16个密码PSWD1_1II2CREAD24LC16BIDELAY_10MSFORI0I16IIFPSWD1_1IPSWD0_0IBJCB1BREAKELSEBJCB0IFBJCB0BJCIFBJC3BJCB0/第一次和第二次报警DELAY500MG0/密码个数清零FORI0I3I/声光报警电路L30DISPLAY_3BJYIN1000L31DELAY1000GOTOLOOP第5章系统调试(1)静态调试第一步为目测,单片机应用系统中大部分电路安装在印制电路板上,因此对每一块加工好的印制电路板要进行仔细的检查。第二步为示波器测试,目测检查后,可进行示波器测试。第三步为加电检查,第四步实际联机检查。但注意示波器必须接在入口而不能接在电压大的端口上。(2)动态调试一般方法是由近及远、由分到合。首先按逻辑功能将用户系统硬件电路分为若干份,先分块调试,当调试某块电路时,与该电路无关的器件全部从用户系统中去掉,这样,可将故障范围限定在某个局部电路上。当各块电路调试无故障后,将各块电路加入系统中,再对个块电路功能及电路间可能存在的相互联系进行试验。经历这样一个调试过程后,大部分硬件故障基本可以排除。软件调试一般步骤先独立后联机一个子程序一个子程序的进行调试,最后单片机连起来总调。先分块后组合逐个芯片逐步调试再和整体芯片一起进

温馨提示

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

评论

0/150

提交评论