湖南工程学院单片机课设-密码锁_第1页
湖南工程学院单片机课设-密码锁_第2页
湖南工程学院单片机课设-密码锁_第3页
湖南工程学院单片机课设-密码锁_第4页
湖南工程学院单片机课设-密码锁_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

主要设计条件MCS-51单片机实验操作台1台;PC机及单片机调试软件;单片机应用系统板1套;制作工具1套;系统设计所需的元器件。说明书格式封面课程设计任务书目录系统总体方案设计系统硬件设计软件设计(包括流程图)系统的安装调试说明8、总结9、参考文献10、附录(源程序清单及硬件原理图等);11、课程设计成绩评分表。进度安排设计时间为两周第一周星期一、上午:布置课题任务,讲课及课题介绍下午:借阅有关资料,总体方案讨论星期二、确定总体设计方案星期三、硬件模块方案设计星期四、软件模块方案设计星期五、设计及调试第二周星期一、设计及调试星期二、设计及调试星期三、总调星期四、写说明书星期五、上午:写说明书,整理资料下午:交设计资料,答辩目录第1章概述 7第2章系统总体方案设计 82.1系统总体设计框图 82.1.1系统总体设计方案框图2.1: 82.1.2电子密码锁结构流程图2.2: 92.2初步设计思路 10第3章硬件电路设计 113.1单片机主控电路 11 113.2液晶1602显示电路 123.3键盘电路设计 133.4开锁电路 163.5报警电路 163.6时钟电路 173.7存储模块 173.71主要元件介绍 18第4章软件设计 194.1软件设计思路 194.2各子程序设计 204.2.1键盘扫描子程序 20第5章系统调试 21第6章心得体会 24附录 26附录A:源程序清单 26附录B:硬件原理图 31电气信息学院课程设计评分表 32 第1章概述随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。为了更好地推广单片机在家电领域中的应用,本文介绍一种应用AT89C52单片机设计的智能电子密码锁。经实际制作表明该密码锁具有安全、实用、成本低等特点,符合现代用锁的要求,具有一定的现实意义。本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、C语言源程序及详细注释等内容。随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门锁既要备有大量的钥匙,又担心钥匙丢失后的麻烦。随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。从而使密码锁具有很高的安全性、可靠性。目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。第2章系统总体方案设计2.1系统总体设计框图本系统采用89C52作为主控制器,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。STC89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。当在4x4的按键上输入8位数字密码时,89C52通过分析输入的8位数值与所预存的数值比较,在LCD上显示输入密码,以及在LCD上提示用户输入信息。当输入密码正确时,电子密码锁开锁成功,当输入密码连续3次输入错误时,系统自动报警,LED指示关锁状态并由蜂鸣器发出持续10至20秒的报警信号根据设计要求与设计思路,确定系统的设计方案,图2.1为系统组成原理框图。硬件有以下几部分组成:单片机、键盘电路、串行EEPROM扩展电路、LCD液晶显示电路、LED指示灯电路、蜂鸣器电路等。2.1.1系统总体设计方案框图2.1:单片机单片机12864液晶显示12864液晶显示矩阵键盘EEPROM扩展电路矩阵键盘EEPROM扩展电路LED指示灯、蜂鸣LED指示灯、蜂鸣系统复位电路系统复位电路密码错误键盘锁定密码错误键盘锁定图2.1系统总体设计方案框图2.1.2电子密码锁结构流程图2.2:LED灯亮开锁成功LED灯亮开锁成功判定输入密码是否与原密码相同是否设置新密码再次输入密码报警锁定键盘输入是否超过三次否是是否是否开始设置初始密码键盘输入密码图2.2系统总体设计方案流程图2.2初步设计思路根据设计要求,初步思路如下:1、系统的原始密码放在RAM区,在运行过程中可以实时更改系统密码。.2、利用串行EEPROM存储芯片,可以随时读取新密码,且具有掉电保护功能。3、人机交互通过键盘输入,系统根据键值做出相应的处理,完成具体的功能。4、液晶12864通过驱动电路,显示相应的状态。5、系统运用LED指示灯来反映开关锁的情况,如果连续输入三次密码错误蜂鸣器就会报警。6、此系统共设计了4个基本功能键:密码设置键、确认键、复位键、撤销键。密码设置键:当用户需更改密码时,可通过此功能键方便地修改原先的旧密码。确认键:当完成密码输入后,可按此功能键即可实现密码的比较和处理。复位键:当密码三次输入错误时,系统进入死锁状态,可按此功能键跳出此状态。第3章硬件电路设计3.1单片机主控电路STC89C52具体介绍如下:①主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线②外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端③控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。④可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.73.2液晶1602显示电路图3.11602显示电路1602引脚功能:D0~D7双向的数据总线,LCD数据读写方式可以分为8位及4位两种,以8位数据进行读写则D0~D7皆有效,若以4位方式进行读写,则只用到D4~D7.RS寄存器选择控制线,当RS=0时,并且做写入的动作时,可以写入指令寄存器,若RS=0时,并且做读取的动作时,可以读取忙碌标志及地址计数器的内容。如果RS=1则用于读写数据寄存器。R/WLCD读写控制线,直接接地,由于R/W=0时,LCD执行写入的动作,R/W=1时则执行读取的动作。EN启用控制线,由P1.1控制,高电平动作。高电平时LCD动作有效。VCC电源正端VO亮度调整控制引脚,直接接地,使字符显示最亮。GND电源地端3.3键盘电路设计本项目运用4x4的矩阵键盘设定密码位数为八位,具有不容易套取的作用,运用不同功能的按键处理不同的程序。在此系统设计中,键盘行列与单片机P3口连接,通过单片机程序实现对按键码的识别。键盘上有好多键,每一个键对应一个键码,以便将键码转到相应的键处理子程序,进一步实现数据输入和命令处理的功能。键识别的流程图如图3.2所示。键盘识别键盘识别有键按下有键按下去抖动去抖动确定键码确定键码等待按键释放等待按键释放返回返回图3.2键识别的流程图使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图3.3图3.3矩阵键盘在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图3.3所示的4×4键盘,说明线反转个工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。具体的功能设计如表3.3:表3.3按键功能表按键键名功能说明0-9键数字键输入密码d键重设密码键设定新密码f键确定键比较密码e键清除键使显示器清零3.4开锁电路在本次智能电子密码锁设计中,基于节省材料的原则,没有用暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如3.4所示。当P1.3口输出低电平时,二极管发光,表示开锁。图3.4开锁电路3.5报警电路图3.5报警电路报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图3.5所示。当89C52的P1.7口输出为高电平时,蜂鸣器产生蜂鸣音,89C52输出为低电平时,蜂鸣器不发声。当用户连续3次密码输入错误则未能将锁打开,系统将自动锁定,LED指示关锁状态并由蜂鸣器发出持续10至20秒的报警信号3.6时钟电路单片机工作的时间基准是由时钟电路提供的,在单片机XTAL1和XTAL2的两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,如图3.6所示。图3.6时钟电路电路中器件选择可以通过计算和实验确定,也可以参考一些典型电路参数。电路中,电容器C1和C2对振荡频率有微调作用,同时帮助晶振起振,一般晶振为12MHZ,电容取22PF。石英晶体选择6MHZ或12MHZ,其结果只是机器周期不同,影响计数器计数初值。3.7存储模块AT24C02是一个I2C总线接口E2PROM存储器,用于存储电子密码锁的密码数据。3.71主要元件介绍AT24C02是美国ATEML公司生产的低功耗COMS型,I2C总线接口的E2PROM存储器,其内含256x8为存储空间,具有工作电压宽(2.5V~5.5V)、擦写次数多(大于1000次)、写入速度快(小于10mS)、抗干扰能力强、数据不易丢失、体积小等特点。采用了I2C总线进行数据读写的串行器件,占用很少的资源和I/O线,而且支持在线编程,实时存取数据十分方便,如图图2.324C02引脚排列图第4章软件设计4.1软件设计思路电子密码锁工作的主要过程是液晶提示开始输入密码,通过键盘输入密码,同时液晶显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,系统报警并锁定键盘。同时我们可以按下更改密码键,提示输入旧密码,旧密码经验证后,提示输入新密码,两次输入新密码无误,按下确认键,密码被存入24C02中,更改密码成功。软件工作流程包括6个部分:系统的初始化、调用显示、24C02的读写操作、校对开锁、出错报警处理、数据显示。初始化主要包括:中断和定时器的初始化,以及系统参数等的初始化;对24C02的读写操作主要完成对原先密码进行更改或相关设置的目的,然后将更新后的密码保存到其中。校对开锁是要对输入的密码和保存在存储器中的密码相比较,相同就通过,否则要进入出错报警阶段。3次都输入的是错误密码,系统将长时间报警并自锁,输入管理员密码解锁。根据模块划分原则,此系统可以将设计方案划分成以下几个模块:延时程序密码设置密码比较延时程序密码设置密码比较键盘扫描密码读取主程序4.2各子程序设计4.2.1键盘扫描子程序键盘扫描流程图如图4.2。判断返回键码返回逐行扫描按键有无键按下行线输入函数定义开始判断返回键码返回逐行扫描按键有无键按下行线输入函数定义开始图4.2键盘扫描流程图第5章系统调试单片机应用系统的调试,包括硬件调试和软件调试,是一个很重要的步骤。硬件调试和软件调试并不能完全分开,许多硬件错误事在软件调试过程中被发现和纠正的,一般方法是先排除明显的硬件故障,在进行软硬件综合调试。源程序经过汇编后,生成的目标文件必须经过仿真调试,才能固化到应用系统的程序存储器EPROM中。在下载程序前,应进行软件调试,以免错误的程序下载到实验板上,烧坏控制芯片,因此软件调试是必不可少的。程序编译无误后,设置好仿真参数,就可以进行软件调试了。程序执行可采用两种方法,即单步执行和全速执行。总体调试最好采用前者方法,这样做有助于找到错误所在。子程序内部或着延时程序可以采用后者方法,这样有助于节省调试时间。调试过程中,要适当打开一些关键变量的窗口,观察它的变化情况,仔细分析,实验结果要与预期结果相比较,如果出现错误,反复分析与调试。从实质上说,应用系统的联调是对软硬件的综合调试,一方面要排除软件的错误,同时进一步解决硬件部分遗留故障。联调的总体方案是:把整个应用系统按其功能分成若干个模块,如系统扩展模块、输入输出模块、键盘扫描模块等。针对不同的模块,用LED指示灯来跟踪调试。调试的方法是“最短程序”调试法。“最短程序”是指用最简洁的主程序及调用最少子程序的系统软件程序。在实践过程中,我发现“最短程序”调试法对系统调试有很大的帮助。特别是在程序模块多、错误多的情况下,就越有好处。如果最短程序调试不能通过的话,则说明硬件有问题。这时就应该首先将你的硬件简化成最小系统,排除硬件故障后,在运行“最短程序”。如果运行通过,可逐步增加软件模块和硬件模块,反复实验。设置新密码修改密码成功输入密码错误再次确认新密码第6章心得体会通过这次单片机课程设计,让我们进一步学习了单片机以及其它的器件,经过了这次项目学习我们不仅在软硬件设计上有了提高,而且在技术文件撰写上也有了正确的认识,做项目不是我们的目的,我们的目的是通过做项目不断的充实自己,不断提高的自己,细节决定成败,努力终有回报,平时的练兵很是重要。课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,

在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

我们的设计从经济实用的角度出发,采用单片机AT89C52与低功耗CMOS型E2PROMAT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、等电路并用c语言写主控芯片的控制程序,研制了一款可以多次更改密码具有报警功能的多功能电子密码锁。设计的成品达到了设计要求。在这次项目制作过程中我们碰到了一些小问题,其实这些小问题完全可以避免例如:PCB板的元器件布局不很合理。这就表明我们做项目不够细心,没有长远的打算。细节很是重要,通过这次项目的学习我时刻认识到了这一点,在以后的项目制作中我会努力做好这一点,将自己的不足加以改正。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,在老师、同学的帮助下,终于游逆而解。在此,对热心帮助我的同学和细心指导我的汪超老师,表示忠心的感谢!参考文献[1]、》微型计算机原理及应用》许立梓编机械工业出版社2002[2]、《微型计算机接口技术及应用》刘乐善编华中理工大学出版社2000[3]、《计算机硬件技术基础试验教程》邹逢兴编高等教育出版社2000[4]、《16位微型计算机原理接口及其应用》周佩玲编中国科学技术大学出版社2000[5]、《微型计算机原理与接口技术》吴秀清编中国科学技术出版社2001[6]、《微型计算机接口技术》邓亚平编清华大学出版社2001[7]、《单片机原理及及应用》王迎旭编机械工业出版社2001[8]、《单片机应用程序设计技术》周航慈著北京航空航天大学出版社2002[9]、《单片机实用技术问答》谢宜仁主编人民邮电出版社2002附录附录A:源程序清单#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitwp=P1^0;sbitsound=P1^7;sbitdeng=P1^3;externvoidwrtorom(ucharwd,ucharnum);externucharrdfromrom(ucharwd);externvoidkeyscan(void);externvoidLCD_init(void);externvoidLCD_write_str(ucharx,uchary,ucharn,uchar*s);externucharjian,cord_h,cord_l;externvoidinit();ucharcodeTable[]="0123456789abcdef";void_delay_ms(uintT){ uinti,j; for(i=0;i<T;i++) for(j=0;j<125;j++) ;}voidmain(){ uchari=0,j,xiugai=0; uchark=0,ci=0,sc=0; ucharmima[16],Temp[16],mima1[16]; sound=0; deng=1; LCD_init(); _delay_ms(20); LCD_write_str(0,0,16,"qingshumima"); _delay_ms(5); while(1) { P3=0x0f; cord_h=P3&0x0f; if(cord_h!=0x0f) { keyscan(); if(jian<10) { mima[i]=jian; Temp[i]=Table[jian]; LCD_write_str(0,1,i+1,Temp); i++; } if((jian==15)||(i==9)) { for(j=0;j<8;j++) { if(mima[j]!=rdfromrom(j)) break; _delay_ms(5); } if(xiugai==0) { if((j==8)&&(i==8)) { LCD_write_str(0,0,16,"mimazhengque"); _delay_ms(5); LCD_write_str(0,1,1,""); deng=0; //灯亮 k=1; } else { LCD_write_str(0,0,16,"mimacuowu"); sc++; } i=0; LCD_write_str(0,1,1,mima); } else { //修改密码 if(i==8) { if(ci==0) { for(j=0;j<8;j++) { mima1[j]=mima[j]; } LCD_write_str(0,0,16,"qingzaicishu"); _delay_ms(5); LCD_write_str(0,1,1,""); ci=1; } else { for(j=0;j<8;j++) { if(mima1[j]!=mima[j]) br

温馨提示

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

评论

0/150

提交评论