欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    课程设计(论文)基于单片机的电子密码锁的设计.doc

    • 资源ID:3993530       资源大小:397KB        全文页数:42页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    课程设计(论文)基于单片机的电子密码锁的设计.doc

    湖南理工学院课程设计报告书 题 目: 简易电子密码锁 系 部: 机电系 专 业: 自动化 班 级: 03级自动化三班 姓 名: 学 号: 2006年 6 月 30 日 湖南理工学院 单片微机原理课程设计任务书设计题目: 简易电子密码锁 系 部: 机电系 专 业: 自动化 学生姓名: 学 号: 1403134310 起迄日期: 2006年6月19日2006年6月30日 指导教师: 余晓峰 教研室主任: 单片微机原理课程设计任务书1课程设计的内容和要求(包括原始数据、技术要求、工作要求等): 该密码锁初次使用时的原始密码为12345678,用户输入正确的密码信息则能够发也开锁信号。一、 功能要求:1、 能够修改密码。只有输入原设定的正确密码后才能修改密码。2、 三次输入开锁密码错误,则启动报警,并死锁30分钟。3、 可设置管制时间区。在管制时间内,执行开锁操作和修改密码的操作均非法,并触发报警器。二、 技术要求:1、 系统停电后,密码信息不会丢失,上电后仍能正常执行开锁操作。2、 系统安全可靠,不会出现死机现象。3、 密级<108。4、 管制时间范围<9小时60分。目 录1 引言 .12 单片机概述 13 系统设计方案论证24 器件选择与简介34.1 AT89C51芯片简介3 4.1.1 AT89C51单片机内部结构3 4.1.2 MCS-51的引脚说明54.2 时钟芯片DS12887介绍.64.2.1 DS12887主要功能简介.64.2.2 DS12887原理及管脚说明74.2.3 DS12887内部功能. 84.2.3 系统工作原理. 8 4.3 8255芯片简介.114.3.1 8255引脚功能114.3.2 8255方式控制字格式说明11 4.4 CD4017简介.125 硬件电路的设计12 5.1 主控器件及扩展13 5.2 时钟及看门狗电路13 5.3 键盘部分.14 5.4 显示部分.15 5.5 报警部分.156 软件设计.15 6.1 主程序设计.16 6.2 密码输入及比较子程序设计16 6.3 中断子程序设计17 6.4 看门狗程序设计17 6.5 资源安排.187 系统原理说明.188 总结体会.19 附件 硬件电路图 软件流程图 汇编源程序基于单片机控制的简易电子密码锁1 引言目前,最常用的锁是20 世纪50 年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。但在使用中暴露了很多缺点:一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。据统计,每4000 把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。根据国外的统计资料 ,装有电子防盗装置的商业区或居民区盗窃犯罪率平均下降30%左右。二是钥匙一旦丢失,无论谁捡到都可以将锁打开。三是机械锁的材料大多为黄铜,质地较软,容易损坏。四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。出于安全、方便等方面的需要,许多智能锁(如指纹辨别、IC 卡识别)已相继问世,但这类产品的特点是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。另外,卡片式的IC卡易丢失,加上其成本一般较高,在一定程度上限制了这类产品的普及和推广。随着人们生活水平的提高,电子密码防盗锁作为防盗卫士的作用日趋重要。电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。如果采用8位密码,则密码组合可达到10的8次方,每增加1位,密码组合就增加10 倍;同时可设多组密码,其中有一组是管理员密码,可以增加用户密码又清除所有用户密码。笔者设计的电子密码防盗锁利用具有掉电保护功能和用户RAM的时钟芯片DS12887,将设置的密码存入具有掉电保护的用户RAM中,从而克服了旧式电子密码锁电路断电后所设置密码丢失的缺点。另外,该锁还具有报警、时钟、管制等辅助功能,是典型的机电一体化产品。机电一体化的电子密码锁,其功能大大超过机械锁,且性能更稳定、更安全。其特点:首先保密性好;其次编码可变;其三误码输入保护;其四掉电不掉码。由于自身的优势,电子密码锁会越来越受到欢迎,使用会越来越广泛,必将为社会所接受。本从介绍简易电子密码锁电路开始,从而延伸到使用各种功能键控制的电子密码锁电路,对其电路的工作过程,工作原理,以及硬件电路和软件进行详细的说明。2 单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、4代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压低功耗。3 系统设计方案论证该密码锁主要是设计以实现如下功能。(1)密级<108,每位的取值范围为09,初始密码为:12345678(2)用户可以自行设定和修改密码,只有输入原设定的正确密码后才能修改密码。(3)开锁密码错次要报警,并死锁30分钟。报警期间若输入密码正确,则停止报警。(4)系统上电显示当前时间,并可设置当前时间。(5)可设置管制时间区。在管制时间区内,执行开锁操作和修改密码的操作均非法,并出发报警。(6)掉电后密码和时钟信息不丢失。(7)成本要比较低,硬件和软件都尽可能简洁可靠,易于批量生产。基于以上功能要求,我提出两种设计方案:方案一:将密码锁要实现的功能用软件编程,用89C51的定时/计数器来实现时钟功能,并将密码信息和时间信息都写入EEPROM芯片,即24C02芯片以防掉电丢失。方案二:将密码锁要实现的功能用软件编程,用89C51的定时/计数器来实现时钟功能,并给整个系统加备用电源以防掉电丢失。方案三:将密码锁要实现的功能用软件编程,用具有内置锂电池的DS12887芯片代替24C02芯片来保存所有信息。比较三方案:方案一存在三个不缺陷,第一,虽然能保护密码信息掉电不丢失,但是一旦掉电,时间即停止运行,每次上电都必须重新设置时间;第二,时间部分需要用软件来实现,增加了编程的难度,同时加长了程序的长度;第三,EEPOOM芯片的擦除次数有限。方案二可以解决方案一的部分缺陷,但是给整个系统加备用电源,成本增加,体积增大,可靠性降低。方案三使用具有内置锂电池的DS12887时钟芯片,该芯片不但可以保护时间信息掉电不丢失,同时还可以保护用户RAM的信息不丢失,将密码信息存入DS12887的用户RAM中即安全又可靠;DS12887芯片能自动产生时间信息,免去了编写时钟程序的麻烦。因此,选择方案三进行设计。4 器件选择与简介本系统是基于AT89C51单片机的简易电子密码锁,由于本系统需要键盘和显示电路,考虑到AT89C51的I/O口不够,扩展一片可编程I/O芯片8255A,别外本系统需要时钟功能和掉电不丢失的功能,因此使用内置锂电池的时钟芯片DS12887,同时,DS12887配合一块廉价的4.1 AT89C51芯片简介4.1.1 AT89C51单片机内部结构图18051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器: 中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。下图是MCS-51系列单片机的内部结构示意图。图 24.1.2 MCS-51的引脚说明MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:如图3图 3Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。图4·Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。 如果单片机是EPROM,在编程其间,将用于输入编程脉冲。·Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。·Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。在编程时,EA/Vpp脚还需加上21V的编程电压。4.2 时钟芯片DS12887介绍 DS12887 是美国达拉斯半导体公司(Dallas) 最新推出的并行接口实时时钟芯片,采用CMOS 技术制成,具有内部晶振和时钟芯片备份锂电池,同时它与目前IBM AT 计算机常用的时钟芯片MC146818B 和DS1287 管脚兼容,可直接替换。它所提供的世纪字节在位置32h ,世纪寄存器32h 到2000 年1 月1 日从19 递增到20 。采用DS12887 芯片设计的时钟电路不需任何外围电路和器件,并具有良好的微机接口。DS12887芯片具有微功耗, 外围接口简单,精度高,工作稳定可靠等优点, 可广泛用于各种需要较高精度的实时时钟系统。4.2.1 DS12887主要功能简介(1) 内含一个锂电池,断电情况运行十年以上不丢失数据。(2) 计秒,分,时,天,星期,日,月,年,并有闰年补偿功能。(3) 二进制数码或BCD 码表示时间, 日历和定闹。(4) 12 小时或24 小时制,12 小时时钟模式带有PM和AM指示,有夏令时功能(5)MOTOROLA 和INTEL 总线时序选择。(6) 有128 个字节RAM 单元与软件接口,其中14 个字节作为时钟和控制寄存器,114 字节为通用RAM,所有RAM单元数据都具有掉电保护功能。(7) 可编程方波信号输出。(8) 中断信号输出( IRQ) 和总线兼容,定闹中断,周期性中断,时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。4.2.2 DS12887原理及管脚说明DS12887 内部由振荡电路,分频电路,周期中断、方波选择电路,14 字节时钟和控制单元,114 字节用户非易失RAM,十进制、二进制计加器,总线接口电路,电源开关写保护单元和内部锂电池等部分组成。DS12887 管脚分配如图5。图5·Vcc :直流电源+ 5V 电压。当5V 电压在正常范围内时,数据可读写;当Vcc 低于4. 25V ,读写被禁止,计时功能仍继续;当Vcc 下降到3V 以下时,RAM和计时器供电被切换到内部锂电池。·MOT(模式选择) :MOT 管脚接到Vcc 时,选择MOTOROLA 时序,当接到GND 时,选择INTEL 时序。·SQW(方波信号输出) :SQW 管脚能从实时时钟内部15 级分频器的13 个抽头中选择一个作为输出信号,其输出频率可通过对寄存器A 编程改变。·AD0 AD7 (双向地址/ 数据复用线) :总线接口,可与MOTOROLA 微机系列和INTEL 微机系列接口。·AS (地址选通输入) : 用于实现信号分离, 在AD/ ALE 的下降沿把地址锁入DS12887。·DS(数据选通或读输入) :DS/ RD 管脚有两种操作模式,取决于MOT 管脚的电平,当使用MOTORO2LA 时序时,DS 是一正脉冲,出现在总线周期的后段,称为数据选通;在读周期,DS 指示DS12887 驱动双向总线的时刻; 在写周期,DS 的后沿使DS12887锁存写数据。选择INTEL 时序时,DS 称作(RD) ,RD与典型存贮器的允许信号(OE) 的定义相同。·R/W(读/ 写输入) : R/ W 管脚也有两种操作模式。选MOTOROLA 时序时,R/ W 是一电平信号,指示当前周期是读或写周期,DS 为高电平时,R/ W高电平指示读周期,R/ W 信号是一低电平信号,称为WR。在此模式下,R/ W管脚与通用RAM 的写允许信号(WE) 的含义相同。·CS(片选输入) :在访问DS12887 的总线周期内,片选信号必须保持为低。·IRQ(中断申请输入) :低电平有效,可作微处理的中断输入。没有中断的条件满足时, IRQ处于高阻态。IRQ线是漏极开中输入,要求外接上接电阻。·RESET(复位输出) :当该脚保持低电平时间大于200ms ,保证DS12887 有效复位。4.2.3 DS12887内部功能 DS12887 内部框图如图6图 6·地址分配DS12887 的地址由114 字节的用户RAM。10 字节的存放实时时钟时间,日历和定闹RAM及用于控制和状态的4 字节特殊寄存器组成,几乎所有的128个字节直接读写。·时间、日历和定闹单元时间和日历信息通过读相应的内存字节来获取,时间、日历和定闹通过写相应的内存字节设置或初始化,其字节内容可以是二进制或BCD 形式。时间可选择12 小时制或24 小时制,当选择12 小时制时,小时字节的高位为逻辑“1”代表PM。时间、日历和定闹字节是双缓冲的,总是可访问的。每秒钟这10 个字节走时1 秒,检查一次定闹条件, 如在更新时,读时间和日历可能引起错误,三个字节的定闹字节有两种使用方法。第一种,当定闹时间写入相应时,分、秒、定闹单元,在定允许闹位置高的条件下,定闹中断每天准时起动一次。第二种,在三个定闹字节中插入一个或多个不关心码。不关心码是任意从C0 到FF 的16 进制数。当小时字节的不关心码位置位时,定闹为每小时发生一次; 同样,当小时和分钟定闹字节置不关心位时,每分钟定闹一次;当三个字节都置不关心位时,每秒中断一次。·非易失RAM在DS12887 中,114 字节通用非易失RAM 不专用于任何特殊功能, 它们可被处理器程序用作非易失内存,在更新周期也可访问。·中断RTC 实时时钟加RAM 向处理器提供三个独立的、自动的中断源。定闹中断的发生率可编程,从每秒一次到每天一次, 周期性中断的发生率可从500ms 到122s 选择。更新结束中断用于向程序指示一个更新周期完成。中断控制和状态位在寄存器B 和C 中,本文的其它部分将详细描述每个中断发生条件。·晶振控制位DS12887 出厂时,其内部晶振被关掉,以防止锂电池在芯片装入系统前被消耗。寄存器A 的BIT4- BIT6 的其它组合都是使晶振关闭。·方波输出选择15 级分频抽头中的13 个可用于15 选1 选择器,选择分频器抽头的目的是在SQW管脚产生一个方波信号,其频率由寄存器A 的RS0 - RS3 位设置。SQW频率选择器与周期中断发生器共享15 选1 选择器,一旦频率选择好,通过用程序控制方波输出允许位SQWE 来控制SQW管脚输出的开关。·周期中断选择周期中断可在IRQ脚产生500ms 一次到每122s一次的中断,中断步率同样由寄存A 确定,它的控制位为寄存器B 中的PIE 位。·更新周期DS12887 每一秒执行一次更新周期,保证时间、日历的准确。更新周期还比较每一定闹字节与相应的时间字节,如果匹配或三个字节都是不关心码,则产生一次定闹中断。2.2.4、状态控制寄存器·DS12887内部寄存器A:UIPDV2DV1DV0RS3RS2RS1RS0UIP=I:更新已到,不能读写DS12887;UIP-O:更新末到,能读写DS12887。DV2、DV1、DV0应设置为010,表示打开晶振,允许计时。RS3、RS2、RS1、RS0为方波频率选择位,产生方波周期中断。·DS12887内部寄存器B:SETPIEAIEUIESQWEDM24/12DSESET=O:时间更新正常进行,每秒计数1次;SET=1:禁止更新,程序可初始化时间和日历。PIE=I:允许周期中断;PIE=O:禁止周期中断。AIE=I:允许报警中断;AIE-0:禁止报警中断。UIE=I:允许更新结束中断;UIE-O:禁止更新结束中断。SQWE为方波允许位。SQWE=I:将RS3、RS2、RS1、RS0选定的方波输出。DM=I:BCD码;DM-O:二进制。该位不受复位信号影响。24/12:1表示24小时制;0表示12小时制。DSE为夏时制允许位。DSE=I:采用夏时制;DSE=0:不采用夏时制。·DS12887内部寄存器C:IRQFPF AFUF0000IRQF为中断申请标志。PF为方波周期中断标志。PF1:方波周期结束,申请中断。AF为闹铃中断标志。AF1:当前时间与闹铃时间匹配时即刻申请中断。UF为更新周期结束中断标志。UF=I:更新周期结束时申请中断。·DS12887内部寄存器D:VRT0000000VRT为内部锂电池状态。vRT_1:锂电池正常;VRT=0:锂电池耗尽。4.3 8255芯片简介4.3.1 8255引脚功能     RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写入8255。D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位数据输入锁存器。PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位输入输出缓冲器。PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。     PA3- 1 40 -PA4      PA2- 2 39 -PA5      PA1- 3 38 -PA6      PA0- 4 37 -PA7      RD- 5 36 -WR      CS- 6 35 -RESET      GND- 7 34 -D0      A1- 8 33 -D1      A0- 9 32 -D2      PC7- 10 31 -D3      PC6- 11 30 -D4      PC5- 12 29 -D5      PC4- 13 28 -D6      PC0- 14 27 -D7      PC1- 15 26 -VCC      PC2- 16 25 -PB7      PC- 17 24 -PB6      PB0- 18 23 -PB5      PB1- 19 22 -PB4      PB2- 20 21 -PB3      A1、A0:端口地址总线,8255中有端口A、B、C和一个内部控制字寄存器,共4个端口,由A0、A1输入地址信号来寻址。4.3.2 8255方式控制字格式说明方式控制字格式说明:D7D6D5D4D3D2D1D0 D7:设定工作方式标志,1有效。 D6、D5:A口方式选择 0 0 方式0 0 1 方式1 1 ×方式2 D4:A口功能 (1=输入,0=输出) D3:C口高4位功能 (1=输入,0=输出) D2:B口方式选择 (0=方式0,1=方式1) D1:B口功能 (1=输入,0=输出)D0:C口低4位功能 (1=输入,0=输出) 8255可编程并行接口芯片工作方式说明: 方式0:基本输入输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。 方式1:选通输入输出方式。这时A口或B口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号。 方式2 :双向总线方式。只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。4.4 CD4017简介CD4017为带有10个译码输出及一个进位输出的5级约翰逊计数器。该器件有清除功能,当清除(RST)为电平时强制Q1Q9为低电平,Q0和CO为高电平,当ENA为低电平时,CLK上升沿计数,Q0Q9通常为低电平,每个输出仅在10个CLK脉冲的个同期内依次变为高电平。5 硬件电路的设计电路系统框图如下:图七5.1 主控器件及扩展由AT89C51和8255A组成的核心部分如图所示8255A的数据口和AT89C51的P0口相连,A1、A0分别与P21、P20相连,CS与P27相连,这样就确定了5288的地址:PA口7C00H、PB口7D00H、PC口7E00H、控制口7F00H。5.2 时钟及看门狗电路由DS12887和CD4017组成的看门狗电路如图所示将DS12887数据地址复用口AD接到AT89C51的P0口,使能端CE接AT89C51的P26口这样便可确定DS12887的起始地址为:BF00H。中断引脚IRQ接AT89C51的INT0,将DS12887设置为时钟更新周期结束中断,这样,每过一秒钟,DS12887就向AT89C51申请一个中断,AT89C51响应中断后从DS12887中读取时间信息并送显示,这样就完成的时钟部分的设计。DS12887 的SQW 脚为方波输出脚, 它给计数器4017 提供定时时钟脉冲, 单片机的P11 口与4017 复位脚RST 相接(高电平有效) , 一旦P11口输出高电平脉冲, 则4017 被复位, Q0 端为高电平,Q1Q9 均输出低电平, 4017 重新开始计数。4017 的Q3 端输出的信号经二极管D1后到达单片机AT89C51的复位端RST 。由于是Q3 输出复位信号, 则4017 的CLK 只需3个脉冲, Q3 即输出高电平信号, 可预设DS12887 的输出方波周期为0.5s ,那么,该电路的看门狗周期为1.5 秒。如果在1.5秒内, P12 端不能输出高脉冲复位4017 , 则整个电路将被复位一次。SQW 端一旦开始允许方波输出,不管单片机是否死机都可输出定时方波,这样,通过DS12887 的SQW 端,外加一片廉价的4017 就可以构成单片机的看门狗电路。5.3 键盘部分 键盘部分如图所示 键盘部分采用标准4*4矩阵键盘,09为数字键,AF为功能键。5.4 显示部分 显示部分如图所示 由八个共阴数码管组成,为节约I/O资源,采用动态扫描方式,数码管的位和段都采用7407进行正向驱动。5.5 报警部分报警部分如所示该部分电路很简单,由一个三级管放大电路和一个报警器组成,当操作出现错误或者有提示的时候,AT89C51的P00口输出一个高电平,通过三极管放大驱动报警器发出声音。6 软件设计6.1 主程序设计主程序的作为整个系统软件的框架,主要任务是初始化各种器件、标志位和缓冲区。同时建立键盘的散转表,根据键盘返回的键值进行相应的操作,主程序的部分代码如下:AGAIN:MOV DPTR,#BUFFJMP A+DPTRBUFF:AJMP KEY_A;散转表AJMP KEY_BAJMP KEY_CAJMP KEY_DKEY_A:AJMP AGAINKEY_B:AJMP AGAIN;KEY_C:AJMP AGAINKEY_D:AJMP AGAIN6.2 密码输入及比较子程序设计密码输入子程序采用顺序结构进行设计,每返回一个键值,先判断是不是数字,如果是数字则存入相应的密码缓冲区,在输入密码的子程序中设置了取消和退格功能。当输入密码完成之后便和本身的密码进行比较,比较完成之后通过标志位带出密码的正误信息,以便进行下一步的操作。密码比较完成之后,应该将密码缓冲区中存入非数字的信息,这是因为,如果输入的密码正确并存入了密码缓冲区,只要不掉电,缓冲区的信息会一直保存,下次不用输入密码直接比较会出现密码正确的情况,因此,将密码缓冲区存入非数字的信息以提高安全性。6.3 中断子程序设计中断子程序的一个功能是系统时钟,由于DS12887设置为时钟更新周期结束中断,因此只需要每次中断都读取时间信息送显示即可完成系统的时钟功能。中断子程序的另外一个功能是完成倒计时,当密码输错三次后死锁30分钟或者用户设置了管制时间的时候,每中断一次,死锁时间或者管制时间要减一。中断子程序流程图如下:6.4 看门狗程序设计利用DS12887 时钟更新周期结束中断来完成对4017 的定时复位。DS12887的更新周期结束中断为每秒钟发生一次,当出现更新中断时,IRQ端输出低电平,单片机AT89C51中断响应, P11口输出一次高脉冲信号复位4017 计数器,计数器重新开始计数。一旦发生单片机死机或跳到非程序区时,单片机不能响应中断,4017不能被复位,则SQW 输出三个脉冲信号(即1.5S)后, Q3输出高电平复位AT89C51,SQW输出第4 个脉冲后, Q3又转为低电平,单片机开始工作,同时给4017 复位。看门狗程序代码如下:将下列程序段放到主程序中 MOV DPRT,#0BF0AH ;寄存器A地址MOV A,#2FH ;方波频率2HzMOVX DPTR,AINC DPTR;寄存器B地址MOV A,#1AH;每秒更新一次,允许方波输入,24 小时制MOVX DPRT ,ACLR P1.1;清P1.1口将下列程序段放到中断子程序中SETP P1.1ACALL DL1M ;调1ms 延时程序CLR P1.1; 输出1ms 高脉冲6.5 系统资源安排20H.020H.7:各标志位27H2FH:显示管制时间缓冲区30H37H:输入密码显示提示缓冲区39H40H:输入密码缓冲区/修改密码缓冲区142H49H:死锁时间缓冲区/修改密码缓冲区250H52H:读入时间信息缓冲区(BCD码)53H5AH:显示时间缓冲区BF40HBF47H:片外密码存储区7 系统原理说明上电显示当前时间,原始密码为:12345678。按A键开始输入密码,同时显示“|-”输入密码时光标跟随移动,在输入密码的过程中再按A键重新输入密码,按B键退格,密码输入完后按F键确认,如果密码正确,则报警器短鸣一声表示密码正确,同时显示“ON-”延时一段时间后回到显示时间的状态,如果密码错误,但错误不足三次,则报警器长鸣,按任意键停止,如果密码错误,并且已经达到三次,则死锁30分钟,报警器长鸣,并以倒计时的形式显示死锁时间,显示格式为“OF-*-*”,在死锁期间,如果输入正确密码,则报警器停止报警,但不解除死锁。按C键修改密码,在修改密码之前必须先输入正确密码,输入正确密码后显示“|-P1”提示输入要修改的密码,输入修改的密码后显示“|-P2”提示再次输入要修改的密码,如果修改密码时两次输入的密码相同,则报警器短鸣一声表示修改成功,如果两次输入的密码不相同,则报警器长鸣,按任意键停止报警,此时修改密码不成功。按D键切换当前时间和管制时间,如果没有设置管制时间则显示”00-00-00”;按D键将显示切换到管制时间状态时再按E键

    注意事项

    本文(课程设计(论文)基于单片机的电子密码锁的设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开