基于AT89C52单片机电子密码锁的设计.doc_第1页
基于AT89C52单片机电子密码锁的设计.doc_第2页
基于AT89C52单片机电子密码锁的设计.doc_第3页
基于AT89C52单片机电子密码锁的设计.doc_第4页
基于AT89C52单片机电子密码锁的设计.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

题目:基于AT89C52单片机的电子密码锁设计学院(系): 年级专业: 电子信息工程 学 号: 学生姓名: 指导教师: 教师职称: 成 绩: 完成日期 2012年11月29日目录摘要2第0章 引言3第1章 硬件设计41.1 要求及方案41.1.1 设计要求41.1.2 方案设计41.2 系统方框图41.3 工作原理51.4 键盘输入模块61.6 电路复位部分71.7 LED显示部分81.8 晶振部分81.9 开锁部分9第2章 主要元器件介绍102.1 主控芯片AT89C52102.1.2 AT89C52引脚功能说明112.1.3 AT89C52芯片内部结构122.2 LCD1602显示器142.2.1 接口信号说明152.2.2 主要技术参数152.2.3 基本操作程序15第3章 系统软件设计16第4章 调试19第5章 总结22第6章 致谢语.22参考文献23附录24基于单片机的电子密码锁设计摘要:随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出, 传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好, 安全系数高,受到了广大用户的青睐。 本设计以单片机AT89C52作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计) ,实现钥匙信息在主机上的初步认证注册,密码信 息的加密,钥匙丢失报废等功能。根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。而且采用键盘输入的电子密码锁具有较高的优势。采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快,传输效率高,工作稳定可靠等。软件设计采用自上而下的模块化设计思想,以使系统朝着分布式,小型化方向发展,增强系统的可扩展性和运行的稳定性.测试结果表明,本系统各项功能已达到本设计的所有要求。关键词:单片机;电子密码锁;AT89C52;显示;设计第0章 引言在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是“道高一尺、魔高一丈”。组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。可以看出组合使用电子信息是电子密码锁以后发展的趋势。本设计采用单片机为主控芯片AT89C52,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。第1章 硬件设计1.1 要求及方案1.1.1 设计要求设计一款能设定密码的电子智能密码锁。1、能输入6位数字密码,显示输入数据个数,但不显示密码,能删除并重新输入。2、具有2次输入确认功能。3、具有掉电以后密码不丢失,3次输入错误报警的功能,给出声光报警。1.1.2 方案设计本设计选用单片机AT89C52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键09输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。1.2 系统方框图本设计的系统方框图如图1,由以上的方案可以知道本系统主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。AT89C52键盘输入复位电路密码存储电路晶振电路电源输入显示电路报警电路开锁电路 图1 系统方框图1.3 工作原理本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由键盘输入部分、复位部分、LCD显示部分、LED显示部分、晶振部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。其原理图如图2所示:图2 电路原理图1.4 键盘输入模块本系统中的键盘输入部分是由16个小键盘拼接而成的,采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置。其大体功能(看键盘按键上的标记)及与单片机引脚接法如图3所示:图3 按键图1.5 显示部分为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。只有按下键盘上的开启按键后,显示器才处于开启状态。同理只有按下关闭按键后显示器才处于关闭状态。否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD子显示“RIGHT”,单片机其中P2.0引角会输出低电平,使三极管T2导通,电磁铁吸合,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“ERROR”,P2.0输出的是高电平,电子密码锁不能被打开。通过LCD显示屏,可以清楚的判断出锁所处的状态。其显示部分引脚接口如图4所示:图4 显示电路原理图1.6 电路复位部分 单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图5所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻RST上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C1通过R5放电。当电容C1放电结束后,RST端的电位由R5与R6分压比决定。由于R51000次)Flash ROM 32个双向I/O口 256x8bit内部RAM 3个16位可编程定时/计数器中断 时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部中断源 共6个中断源 2个读写中断口线 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 AT89C52提供以下标准功能:功能包括8K字节Flash闪速存储器,256字节内部RAM,对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。AT89C52主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。2.1.2 AT89C52引脚功能说明VCC:电源电压 GND:地P1 口P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)参见表1。Flash 编程和程序校验期间,P1 接收低8 位地址。表.P1.0和P1.1的第二功能见表1引脚号功能特性引脚号功能特性P1.0T2时钟输出P1.1T2EX(定时/计数器2)P2 口P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX RI 指令)时,P2 口输出P2 锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。P3 口P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。RST:复位输入。当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。WDT益出将使该引脚输出高电平,设置SFR AUXR 的 DISRTO 位(地址8EH)可打开或关闭该功能。DISRTO 位缺省为RESET输出高电平打开状态。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:第当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位禁位后,只有一条MOVX 和MOVC指令ALE才会被激活。此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,高有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU公访问外部程序存储器(地址0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上12V的编程电压Vpp。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。2.1.3 AT89C52芯片内部结构数据存储器AT89C52 有256 个字节的内部RAM,80H-FFH 高128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128个字节。定时器2定时器2 是一个16 位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON(如表3)的C/T2 位选择。定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON 的控制位来选择。在计数工作方式时,当T2 引脚上外部输入信号产生由1 至0 的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2 期间,对外部输入进行采样。若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1 期间寄存器加1。由于识别1 至0 的跳变需要2 个机器周期(24 个振荡周期),因此,最高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。自动重装载(向上或向下计数器)方式当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON来选择。复位时,DCEN 位置“0”,定时器2 默认设置为向上计数。当DCEN置位时,定时器2 既可向上计数也可向下计数,这取决于T2EX 引脚的值。当DCEN=0 时,定时器2 自动设置为向上计数,在这种方式下,T2CON 中的EXEN2 控制位有两种选择,若EXEN2=0,定时器2 为向上计数至0FFFFH 溢出,置位TF2 激活中断,同时把16 位计数寄存器RCAP2H 和RCAP2L重装载,RCAP2H 和RCAP2L 的值可由软件预置。若EXEN2=1,定时器2 的16 位重装载由溢出或外部输入端T2EX 从1 至0 的下降沿触发。这个脉冲使EXF2 置位,如果中断允许,同样产生中断定时器2 的中断入口地址是:002BH 0032H 。当DCEN=1 时,允许定时器2 向上或向下计数。这种方式下,T2EX 引脚控制计数器方向。T2EX 引脚为逻辑“1”时,定时器向上计数,当计数0FFFFH 向上溢出时,置位TF2,同时把16 位计数寄存器RCAP2H 和RCAP2L 重装载到TH2 和TL2 中。 T2EX 引脚为逻辑“0”时,定时器2 向下计数,当TH2 和TL2 中的数值等于RCAP2H 和RCAP2L中的值时,计数溢出,置位TF2,同时将0FFFFH 数值重新装入定时寄存器中。当定时/计数器2 向上溢出或向下溢出时,置位EXF2 位。时钟振荡器AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端。外接石英晶体(或陶瓷谐振器)及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。空闲节电模式在空闲工作模式状态, CPU 自身处于睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,同时将片内RAM 和所有特殊功能寄存器的内容冻结。空闲模式可由任何允许的中断请求或硬件复位终止。由硬件复位终止空闲状态只需两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部RAM,但可以访问端口引脚,当用复位终止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。掉电模式在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM 和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器,但不改变RAM中的内容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。程序存储器的加密AT89C52 有3 个程序加密位,可对芯片上的3 个加密位LB1、LB2、LB3 进行编程(P)或不编程(U)来得到。当加密位LB1 被编程时,在复位期间,EA 端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止。为使单片机能正常工作,被锁存的EA 电平值必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。Flash存储器的编程AT89C52单片机内部有8k字节的Flash PEROM,这个Flash 存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM 编程器兼容。2.2 LCD1602显示器现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线D0D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。2.2.1 接口信号说明1602型LCD的接口信号说明如表2所示:表2 编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3V0液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极2.2.2 主要技术参数1602型LCD的主要技术参数如下表所示:表3显示容量16X2个字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.95X4.35(WXH)mm2.2.3 基本操作程序读状态:输入:RS=L,RW=L, E=H 输出:D0D7=状态字读数据:输入:RS=H,RW=H, E=H 输出:无写指令:输入:RS=L,RW=L, D0D7=指令码,E=高脉冲 输出:D0D7=数据写数据:输入:RS=H,RW=L, D0D7=数据, E=高脉冲 输出:无第3章 系统软件设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。主要程序设计流程图如下所示:开始初始化键盘扫描启动程序键盘扫描键功能程序结束关闭程序 图9 主程序流程图 设置程序初始化按下设置键输旧密码确认程序所输入旧密码正确?输新密码确认程序设置成功输入次数加1次数3?报警程序NYNY返回确认程序再次输新密码两次新密码输入相同?NY 图10 密码设置流程图Y初始化按开锁键输入密码确认程序所输入密码正确?Y开锁成功开锁程序输入次数加1次数3?报警程序返回NN图11 开锁流程图第4章 调试调试过程如下:首先把密码锁接通电源,使之运行程序,从而置入初始密码,其模拟电路图如图12所示,当前状态为初始状态,这时的初始密码根据程序可作为:012345,此时从键盘上依次按下代表0,1,2,3,4,5的按键在按下代表确认的键,当输入密码正确时模拟图如图13所示,再次输入密码后确认开锁,绿灯(D1)亮起,其模拟图如图14所示。若输入密码错误时,其模拟图如图15所示,当三次都输入错误密码后,红灯(D2)亮起,其模拟图如图16所示。模拟电路图12 (键盘扫描,LCD开)模拟电路图13 (密码第一次输入正确)模拟电路图14 (绿灯(D1)亮起,开锁状态)模拟电路图15 (输入错误密码)模拟电路图16 (三次输入都错,红灯(D2)亮起,上锁状态)第5章 总结本设计从经济实用的角度出发,采用美国Atmel公司的单片机AT89C52作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路并用C编写主控芯片的控制程序,研制了一款可以多次更改密码具有报警功能的电子密码锁。设计完全可行可以达到设计目的。使用单片机制作的电子密码锁具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点。可应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有一定的实用性。该电路设计还具有按键有效提示,输入错误提示,控制开锁电路,控制报警电路,修改密码等多种功能。可在意外泄密的情况下随时修改密码。保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等诸多场所。第6章 致谢语在本次实训课程设计过程中,谢辉老师对此次实训课发了很多资料,比如:仿真软件(PROTEUS),编译软件(KEIL 3)等。还给我给了很多设计题目和题目的参考资料及范例。每次上实训课老师总是细心的给我们讲解在设计中的一些细节问题,给了我们很多的建议和构思方法,还给我们做了示范。在实训验收的时候老师不仅仅是想要我们的结果,还不忘给我们传授知识,给我们讲解程序所表达的意思及程序所执行的功能、完成的功能。最主要的是还继续给我们提宝贵的建议,设计要求,以达到更好的效果。 最后,衷心的感谢谢辉老师在此次实训课中给予我精心的指导以及在百忙之中抽时间对此实训报告进行审阅。真心的向您说一声:“老师,您辛苦了”! 参考文献1 祖龙起,刘仁杰.一种新型可编程密码锁J.大连轻工业学院学报,2002. 2 李瀚荪.电路分析基础M,北京:高等教育出版社1991.3 童诗白,华成英,模拟电子技术基础M,北京:高等教育出版社,2000.4 王千.实用电子电路大全M,电子工业出版社,2001,p101.5 何立民.单片机应用技术选编M,北京:北京航空大学出版社,1998.6 李华.MCS-51系列单片机使用接口技术M,北京航空航天大学出版社,1993.7 彭为.单片机典型系统设计实例精讲M,北京:电子工业出版社,2006.8 潘永雄.新编单片机原理与应用M,西安:西安电子科技大学出版社,2003.9 董继成.一种新型安全的单片机密码锁J.电子技术,2004. 10 祖龙起,刘仁杰,孙乃凌.一种新颖的电子密码锁J.电子世界,2001.11 李明喜.新型电子密码锁的设计J.机电产品开发与创新,2004. 12 杨茂涛.一种电子密码锁的实现J.福建电脑,2004. 13 楼然苗.51系列单片机设计实例. M.北京:北京航空航天大学出版社,200314 谢辉.单片机原理及应用.化学工业出版社.北京. 附录主程序:#include#define uchar unsigned char#define uint unsigned intuchar jian16=0xe7,0xee,0xde,0xbe,0xed,0xdd,0xbd,0xeb,0xdb,0xbb,0x7e,0x7d,0x7b,0x77,0xb7,0xd7;uchar Users6=0,1,2,3,4,5; /用户密码uchar Fu_hao=0; /符号输出控制位uchar U_Interrupt=0; /中断标志位 uchar Txet=0;uchar timer_1=0;uchar code table4=Is exiting !;uchar code table7=input new code;uchar code table12=Time is too long;sbit lcden=P34;sbit lcdrs=P35;sbit Warning=P31; /报警指示灯sbit Lock=P30; /开锁指示灯void Delay(uint z) uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com) /LCD16002控制指令lcdrs=0;P0=com; Delay(5);lcden=1;Delay(5);lcden=0;void write_data(uchar date) /LCD1602输出指令lcdrs=1;P0=date;Delay(5);lcden=1;Delay(5);lcden=0;void init() /LCD1602初始化lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);void Xian_shi(uchar b) uchar i;switch(b) case 0: write_com(0x80+0x4f-Fu_hao); write_data(*); Fu_hao+; ;break; case 1: for(i=0;i16;i+) write_com(0x80+0x40+i); write_data( ); /0x20 Delay(2); Fu_hao=0; ;break; uchar keyscan(void) /一次扫描,有键按下才跳出 uchar k,i,j,m,t; while(1) P1=0xff;i=0xfe;if(U_Interrupt=1) return 20; for(j=0;j4;j+) P1=i; k=P1&0xf0; if(k!=0xf0) Delay(5); if(k!=0xf0) t=k|(i&0x0f);for(m=0;m16;m+) /哪个键按下 if(jianm=t) break;while(k!=0xf0) k=P1; k=k&0xf0; Delay(5);while(k!=0xf0) k=P1; k=k&0xf0; return m; /编译键值 i=(i1)|0x01;void She_zhi(void) uchar New,Wei,Zhi,bb6,cc6,i,k,j;uchar code table8=input new again; uchar code table9=Successfully!; uchar code table10=Input is error!; uchar code table11=put enter again;New=0;Wei=0;Fu_hao=0;for(k=0;k6;k+)bbk=0;cck=0;write_com(1);for(j=0;j=0&Zhi=9) /09密码按键 Xian_shi(0); /显示*号if(New=0)bbWei+=Zhi; /存输入数值if(New=1)ccWei+=Zhi;continue;if(Zhi=15) /删除键按下Xian_shi(1); /清除*号Wei=0; /重新存输入数值Fu_hao=0;continue;if(Zhi=10|Zhi=11|Zhi=12) continue;if(Zhi=14) /直接按下退出键退出Txet=0;TR1=0;write_com(1);for(j=0;j12;j+)write_data(table4j);/显示Is exiting Delay(2000); /延迟2s后清屏write_

温馨提示

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

最新文档

评论

0/150

提交评论