1基于STC89C51单片机的电子密码锁学生姓名:赵丽丽宋帅高秋利学生学号:110410100511041010211104101001院(系):机电工程学院年级专业:11级电子信息工程1班指导教师:王秀山二〇一五一月2目录1绪论1.1电子密码锁简介…………………………………………………………………………32设计方案……………………………………………………………………………………43主要元器件…………………………………………………………………………………53.1主控芯片STC89C51………………………………………………………………………53.2晶体振荡器………………………………………………………………………………53.3LCD显示密码模块的设计………………………………………………………………73.3.1LCD1602简介………………………………………………………………………73.3.2LCD1602液晶显示模块与单片机连接电路………………………………………84硬件系统设计……………………………………………………………………………94.1设计原理…………………………………………………………………………………94.2电源输入电路……………………………………………………………………………94.3矩阵键盘…………………………………………………………………………………104.4复位电路…………………………………………………………………………………104.5晶振电路…………………………………………………………………………………114.6报警电路…………………………………………………………………………………124.7显示电路…………………………………………………………………………………124.8开锁电路…………………………………………………………………………………124.9电路总体构成……………………………………………………………………………135软件程序设计……………………………………………………………………………145.1主程序流程介绍…………………………………………………………………………145.2键盘模块流程图…………………………………………………………………………155.3显示模块流程图…………………………………………………………………………175.4修改密码流程图…………………………………………………………………………185.5开锁和报警模块流程图………………………………………………………………196电子密码锁的系统调试及仿真………………………………………………………216.1硬件电路调试及结果分析………………………………………………………………216.2软件调试及功能分析……………………………………………………………………216.2.1调试过程……………………………………………………………………………216.2.2仿真结果分………………………………………………………………………226.3仿真全图…………………………………………………………………………………247结论…………………………………………………………………………………………25参考文献………………………………………………………………………………………26附录:……………………………………………………………………………………………2731绪论1.1电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:1)保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3)误码输入保护,当输入密码多次错误时,报警系统自动启动。4)无活动零件,不会磨损,寿命长。5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。6)电子密码锁操作简单易行,一学即会。42设计方案采用以单片机为核心的控制方案。由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机STC89C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602液晶显示屏用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确则重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确开锁后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。53主要元器件3.1主控芯片STC89C511)STC89C51单片机的主要特性如下:STC89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC的STC89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,STC89C51芯片引脚图如图3-1所示。图3-1STC89C51芯片引脚图3.2晶体振荡器晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz6或48kHz的时钟频率。如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。现在应用最广泛的是石英晶体振荡器。石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。为数据处理设备产生时钟信号和为特定系统提供基准信号。在单片机中为其提供时钟频率。石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应。当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。时钟信号用来提供单片机片内的各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。外接晶体以及电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0592MHz73.3LCD显示密码模块的设计显示模块主要由LCD1602显示屏组成,他显示的是键盘输入的密码,以及密码正确与错误的提示。当输入密码时,出于安全性的考虑,显示的密码是有*号代替,为暗密。当输入六位密码后按下确认键,系统会与存于ROM的密码对比,若密码错误,显示屏会显示Error,若密码正确,显示屏会显示Right。3.3.1LCD1602简介1)1602功能介绍1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。2)1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表3-2所示:表3-2引脚功能说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极其引脚图如下图3-2所示:8图3-2LCD1602引脚图3)LCD寄存器的选择表3-3LCD寄存器的选择ER/WRS功能说明110写入命令寄存器111写入数据寄存器110读取忙碌标志及RAM地址111读取RAM数据0X1不动作3.3.2LCD1602液晶显示模块与单片机连接电路图3-3LCD1602液晶显示模块与单片机连接电路94硬件系统设计4.1设计原理本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。图4-1组成原理4.2电源输入电路三端集成稳压器LM7805和LM7905是作为固定输出电压的典型应用。正常工作时,输入、输出电压差为2--3V。电容C为输入稳定电容,其作用是减小纹波,消振、抑制高频和脉冲干扰,它一般为0.1--1uF。电容C为输出稳定电容,其作用是改善负载的瞬态响应,它一般为1uF。使用三端稳压器时要根据输出电复位电路振荡电路键盘电路开锁电路STC89C51单片机显示电路报警电路10流的大小选择加散热器,否则会由于过热而无法工作到额定电流。图4-2电源输入电路4.3矩阵键盘由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成