




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1前言 在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。针对这些锁具给人们带来的不便,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。1.1 电子密码锁的发展趋势由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁 。出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是“道高一尺、魔高一丈”。组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。可以看出组合使用电子信息是电子密码锁以后发展的趋势 。1.2 本设计所要实现的目标本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。在输入新密码时候需要二次确认,以防止误操作。2总体方案设计2.1方案比较 方案一:采用数字电路实现。其原理方框图如图2.1所示。键盘输入密码校验电路 N Y 报警开锁电路执行电路 图2.1 数字密码锁电路框图 方案二:采用AT89C51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加温度显示、时间显示甚至添加遥控控制功能。单片机电源输入电路开锁电路晶振电路显示电路报警电路键盘输入电路 图2.2单片机设计框图2.2方案论证 方案一用双JK触发器74LS112组成的数字逻辑电路来作为密码锁的核心控制器件,共设置了9个用户输入按键,其中有4个是有效的密码按键,其余的都是干扰按键,如果按下干扰键,键盘输入电路就自动清零,起先输入的密码无效,用户需要重新输入;若用户输入的密码时间超过40秒(一般用户输入不会超过40秒,如果用户觉得不便,可以修改)电路会报警80秒,如果电路连续报警三次,该电路将锁键盘6分钟,以防止他人非法操作。采用数字电路设计的方案好处在于其设计简单,但控制的准确性和灵活性差,故不采用。电路由两大部分构成:密码锁电路和备用电源(UPS),设置UPS电源是为了防止停电造成密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入电路、密码修改电路、执行电路、开锁电路、报警电路、键盘输入次数锁定电路。但是此方案的密码修改不容易,一旦被别人知道其所采用的电路,很容易被不法分子破解密码。对于方案二,由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素 。2.3方案选择采用数字电路设计的方案好处就是设计简单易懂;但控制的准确性和灵活性差,同时不容易修改密码,一旦被别人知道其所采用的电路,很容易被不法分子破解密码。故不采用方案一。通过比较以上两种方案,方案二控制灵活准确性好、保密性强,并且有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,根据现实生活需要本次设计采用方案二。基于以上因素本设计选用单片机AT89C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘确认键之后按键盘的数字键09输入密码。密码输完后按确认键确认,如果密码输入正确则开锁,不正确给出错误提示并要求重新输入密码,当三次密码错误则发出报警并自锁键盘25S;当用户需要修改密码,先在输入密码正确后,再通过设置密码按键输入新密码,新密码输入后按确认键使新密码得到存储,密码修改成功。3系统模块电路的设3.1单元模块电路设计(参数的选择)3.1.1 时钟电路模块 MCS-51单片各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作,常用时钟电路设计有两种方式,一种是内部时钟方式,另一种是外部时钟方式。本次设计采用内部时钟方式,其电路图见图3.2.1,晶振Y1采用11.0592MHz (因为可以准确地得到9600波特率和19200波特率,方便用于有串口通讯的场合)。正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。51单片机最小系统起振电容C2、C3一般采用1533pF,并且电容离晶振越近越好,晶振离单片机越近越好。XTAL2、XTAL1分别为单片机的18脚和19脚。图3.1时钟电路3.1.2 复位电路模块 复位电路的用途:单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。复位电路通常采用上电复位和按键复位两种方式,本次设计采用上电自动复位电路。其电路如图3.2.2。电容该上电自动复位是通过的充电来实现的。复位电路的原理是单片机RST引脚接收到2us以上的电平信号,只要保证电容的充放电时间大于2us,即可实现复位,所以电路中的电容值也是可以改变的。复位电路说明:由电容串联电阻构成,由图并结合“电容电压不能突变”的性质可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。上电瞬间,RST端的电位与VCC相同,随着电容的逐步充电,充电电流减小。RST电位逐渐下降。上电复位所需的最短时间是振荡器建立时间加上两个机器周期。在这段时间内,RST端口的电平应维持高于斯密特触发器的下阈值。般VCC的上升时间不超过1ms,振荡器建立时间不超过10ms。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。一般C 取10uf,R取10K。因此,显然时间常数 满足要求。当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。图3.2复位电路3.1.3 电源模块 密码锁主控制部分电源需要用5V直流电源供电,其电路如图3.2.2所示,把频率为50Hz、有效值过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压 。本电路使用集成稳压芯片7805解决了电源稳压问题。本次设计采用+5V直流电,首先选择变压器,若选用12V的变压器,整流滤波后输出一般大于12V,会使稳压器功耗增大,自身发热导致温度高,所以不选用输出电压为12V的变压器,而选用输出电压为79V的变压器。系统供电部分接通220V交流电源后,经过变压器将220V交流电变压到7.5V,再由二极管全波整流、电解电容C7滤波,然后再经稳压器LM7805输出5V,为了缓冲负载突变,改善瞬态响应,输出端还并入了电容C8、C9,最后得到+5V的稳定直流工作电源,用于给整个控制系统中单片机系统及其它外围电路的VCC端供电。其供电电路如图3.2.3所示。(1)确定稳压器型号,输入电压和输入电流要求UO=+5V,故选用7805型号;稳压器压差UI-UO 2V,取3V;整流桥上的压降为20.3=0.6V.故输入电压UI=5+3+0.6=8.6V;滤波电路的负载电流:IO=IO(max)+IQ=100+8=108mA.电源变压器的副边电压有效值:所以变压器的输出电压取7.5V整流滤波电路的等效负载:(2)桥式整流二极管参数要求正向平均电流:最大反向电压:根据半导体手册得,选取4个二极管IN4007。(3)滤波电容: ,取C=2200F电容器耐压:,取25V,故电容器参数C:2200 F/ 25V(4)电源变压器容量 副边电流有效值 :I2(1.52) IO = (1.52)108mA=162 216mA,取I2为200mA 副边容量: P2=U2I2=7.50.2VA=1.5VA 原边容量:因T=0.6,故故平均容量为: ,取P=5VA.其他电容根据经验选择0.33F/ 25V,0.1F/ 25V和1000F/ 25V(5)指示灯的参数已知发光二极管的压降为0.7V/10mA所以要串接一个电阻这里取电阻R10=470欧姆图3.3电源电路3.1.4 键盘输入模块 由于本次设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘如图3.2.3所示,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口,在本设计中只用一个P1口就可实现4*4键盘。该4*4键盘不但能完成密码的输入还能作特别功能键使用,如设置密码、确认、返回键等。该电路中行列式键盘工作原理:当无按键闭合时,P10P13 与P14P17之间开路。当有键闭合时,与闭合键相连的两条I/O口线之间短路。判断有无按键按下的方法是:第一步,置列线P14P17为输出状态,从行线P10P13 输入低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线P14P17读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键有可能会连续多次进行同样的键操作。图3.4键盘输入电路注意:按键还存在一个按键抖动问题,本次设计采用软件去抖处理,以P14与P10交叉的按键为例。首先按键按下时,该行线被置为低电平(最初该列被置低电平),执行一段延时10ms子程序后,确认该行电平是否仍旧为低电平,如果仍为低电平,则确认该行确实有按键按下。当松开按键时,同样执行一段延时10ms子程序后,检测该行线是否为高电平,如果为高电平,说明按键确实已松开。从而避免了按键抖动问题。3.1.5 密码存储24C02模块AT24C02是美国Atmel公司的低功耗CMOS型E2PROM器件,内含2568位存储空间,具有工作电压宽(2.55.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失、体积小等特点。具体介绍见3.2.2。图3.5 密码存储电路图中AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。用于多个器件级联是设置器件地址,最大可级联8个器件,本次试验只用到一个AT24C02,可以将这三个地址输入脚悬空或接地,第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,它和单片机的P3.6连接。第6脚SCL为串行时钟输入线,它和单片机的P3.5连接。SDA和SCL都需要和正电源间各接一个5.1K的电阻上拉。第7脚需要接地。3.1.6 1602显示模块为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602来完成。按下键盘上的开锁按键后利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD液晶显示“ you are right”,同时单片机P3.4引角会输出高电平,使三极管Q1导通,电磁铁吸合,电子密码锁被打开,如果密码不正确,LCD显示屏会显示错误信息,如果密码输入错误次数超过3次,P3.4引脚输出的是低电平,蜂鸣器发出报警声,电子密码锁不能被打开。图中1602的第三脚接滑动变阻器的作用是用来调整液晶的对比度,如果直接接+5V电源其对比度最弱,直接接地时其对比度最高。其显示部分引脚接口如图4-8所示:表3.1 1602型LCD的接口信号说明编号符号引脚说明编号符号引脚说明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背光源负极主要技术参数1602型LCD的主要技术参数如下表所示:表3.2 1602型LCD的主要技术参数显示容量16X2个字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.95X4.35(WXH)mm基本操作程序:读状态:输入: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.3状态值说明:STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0表3.4显示模式设置指令码功能00111000设置16*2显示,5*7点阵,8位数据接口表3.5显示开/关及光标设置指令码功能00001DCBD=1开显示; D=0开显示C=1显示光标; C=0不显示光标B=1光标闪烁; B=0光标不显示000001NSN=1当读或写一个字符后,地址指针加一且光标加一;N=0 当读或写一个字符后,地址指针减一且光标减一;S=1当写一个字符,整屏显示左移(N=1)或右移(N=0),以得到光标不移动而屏幕移动的效果。S=0当写一个字符,整屏不移动。表3.6数据指针设置指令码功能80H+地址码(0-27H,40H-60H)设置数据地址指针表3.7其它设置指令码功能01H显示清屏: 1.数据指针清零 2.所有显示清零02H显示回车: 1.数据指针清零图3.6 液晶显示电路3.1.7 开锁电路与报警电路设计开锁电路:本次试验采用一个继电器控制LED灯的亮灭来表示开锁状态和关闭状态。LED等亮时表示开锁;LED熄灭表示锁处于关闭状态。开锁过程:程序执行前,P3口被置0。当密码输入正确时,置P3.4口为高电平,三极管导通,从而使得Q1的集电极为低电平,根据继电器原理可知,此时继电器线圈中就会有一定的电流流过,产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,发光二极管亮,即开锁。继电器两端接的反向二极管是为了防止断电时电感线圈产生的高压损坏其它元件。报警电路:报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时需要100mA驱动电流。当89c51的P2.4口输出低电平时,蜂鸣器产生蜂音,单片机的P2.4脚输出高电平时,蜂鸣器不发声。图3.7报警电路3.2特殊器件的介绍3.2.1主控芯片AT89C51AT89C51是一个具有低功耗,高性能的CMOS 8位单片机,片内具有4k Bytes ISP(In-system programmable)的可重复擦写1000次的Flash只读程序存储器,器件采用了ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统和80C51引脚结构,同时芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 图3.8 AT89S51 芯片引脚图3.2.2存储芯片24C02AT24C02是美国Atmel公司的低功耗CMOS型E2PROM器件,内含2568位存储空间,具有工作电压宽(2.55.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。 AT24C02正是运用了I2C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。 图3.9 AT24C02的引脚图3.3各单元模块的联接基于以上因素本设计选用单片机AT89C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘确认键之后按键盘的数字键09输入密码。密码输完后按确认键确认,如果密码输入正确则开锁,不正确给出错误提示并要求重新输入密码,当三次密码错误则发出报警并自锁键盘25S;当用户需要修改密码,先在输入密码正确后,再通过设置密码按键输入新密码,新密码输入后按确认键使新密码得到存储,密码修改成功。4 软件设计4.1软件设计原理及设计所用工具原理:将密码存储在AT24C02芯片中,通过按键比较密码是否正确,按键部分我们用到了4x4矩阵键盘,其中这只09为输入数字键,10作为返回主界面,11作为输入错误时返回,12键未用,13键作为修改密码,14键用于检测是否有按键按下,作为按键按下标志,15键作为确认键。按键时通过行列扫描来确定具体按下的是哪一个键,讲按键接入单片机的P2口,故作为数据的接收,将单片机P0口作为1602数据的传送端口,P3口作为控制指示灯和蜂鸣器还有1602和AT24C02的控制。设计工具:keil uVision4、protues4.2程序流程设计4.2.1画出主要软件设计流程框图 开始 初始化 键盘扫描键功能程序 正确 图4.1主程序流程图4.2.2密码设置功能设计设置成功两次新密码输入相同?设置程序初始化按下设置键输新密码确认程序确认程序再次输新密码键盘扫描开锁YN图4.2密码设置流程图4.2.3开锁功能设计次数3?报警程序返回初始化输入密码确认程序所输入密码正确?开锁成功开锁程序输入次数加1YYNN图4.3开锁流程图 4.4按键功能设计YYY按键功能程序序序密码输入程序设置程序返回程序确认程序返回键值09?键值返回?键值设置?键值确认?NYNNN图4.4按键功能流程图5系统调试5.1软件调试本次设计的程序是用C语言按模块编写的,首先先用Keil uVision4分别对每个源程序进行编译调试,编译通过后,若没有错误,则将所有模块导入一个工程进行整体调试,生成.hex文件。图5.1调试过程在调试过程中遇到如图5.2的问题,在经过编译链接后,将我们生成的.HEX文件下载到仿真电路的单片机中,按键后液晶上没有任何显示,后来查看我们的.HEX文件只有1KB大小,里面内容很少,后经过和同学的讨论发现我们在编译之前并没有将我们的.c文件添加到我们新建的工程中,添加方法如图5.3所示图5.2 将上述问题修正过后,得到如图5.3所示正确调试结果 图5.35.2用仿真软件protues对设计进行仿真按流程图在protues中画出电路图,在电路正确画制的基础上将由正确源程序编译产生的.hex文件加载到AT89C51中进行功能调试,观察仿真结果是否达到预期要求,若不满足认真找出原因并找出解决方案。 图5.4 等待密码输入 图5.5密码正确 5.3硬件调试 我们在protues仿真软件上仿真成功后,我们依照仿真图将硬件电路焊接完整,在焊接电路过程中,学习了单片机开发板电源接口电路的组成和下载接口电路的组成。在将生成好的.HEX文件通过下载线下载到单片机后,基本实现了仿真软件上的功能,但是也发现了一些问题,首先发现我们在对单片机复位操作后,我们修改的密码并没有成功,复位后密码又变成了程序中的初始密码,这就是说我们用的AT24C02芯片并没有发挥他的作用,在经过反复讨论调试后,发现我们的初始密码是放在一个一维数组里面的,在单片机从新上电后,我们所修改的密码又会被这个初始密码所覆盖,所以并没有达到掉电存储的目的,后来我们将初始密码直接先写入芯片,在输入对比密码时也是直接将所输入的键值与芯片中的密码相比较,这样就达到了掉电存储的目的。调试过程中第二个问题是:一般在修改密码时都是需要输入两次相同的密码,密码才会修改成功,而我们所写的这个程序是在输入一次密码后就已经将密码修改,这样很容易将密码弄错,到时侯自己到底修改的密码是多少都不知道,通过对程序的反复理解,发现我们在修改密码时,第一次输入的密码就直接将其写入了芯片里面,所以这就导致了只需输入一次密码,就已经将密码修改了,经过讨论,我们在修改密码时,输入第一次时,将其存入一个一维数组number中,在第二次输入时,我们与数组number中的数值比较,比较完后,如果两次输入相同,我们在将其写入AT24C02芯片,如果不相等,则不写入芯片中,这样设置密码的漏洞也得到了解决。调试过程中遇到的第三个问题,这也是一个很难发现的问题,在我们解决了第二个问题后,在设置密码时,虽然两次输入的密码相同,但是我们设置密码并没有成功,并且我们以前的密码也不对了,这就是说密码设置时是写入芯片了,但写入的并不是我们所设置的密码,在我们没有解决第一个问题时,我们设置密码是能成功的,通过反复对比,我们初步猜想可能是后来设置密码写入芯片过程中,写的时间太短,AT24C02来不及写入,后来我们下载了一个读取AT24C02芯片数据的程序,将我们写入的密码读出来发现,我们所设置的密码奇数位是正确的,而偶数位还是原来的密码,这就证实了我们的猜想,后来在写入密码的一位后,我们加入了一个延时程序,再次修改密码成功了。在解决了以上几个问题后,我们所设计的电子密码锁达到了我们的预期效果。6系统功能、指标参数本次所设计的电子密码锁的主要功能是:在芯片中存入一个8位数的密码,通过按键输入密码,输入密码如果正确,则正确指示灯闪亮一次,并且开锁指示灯一直亮着,如果密码输入错误,则错误指示灯闪亮一次,并提示再次输入密码。当输入三次错误后,则键盘锁定一段时间并报警,报警解除后方可重新输入密码;其具体功能有密码掉电存储、修改设置密码、输入错误时能够返回从新输入、密码输入3次错误后报警,在报警过程中键盘自锁,报警一段时间后,报警解除,又有三次输入密码的机会7总结与体会回顾此课程设计,至今我仍感慨颇多,从选题到定稿,从理论到实践,在这一个月的日子里,可以说得是苦多于甜,但是学到很多很多的的东西,不仅可以巩固了以前所学过的知识,而且也学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,通过一段时间的查阅资料以及与老师的交流讨论,认真学习了单片机,并复习了C语言和汇编语言。完成了设计的基本要求和设计指标。通过王老师的指导和帮助,我们成功地完成了本次设计。通过本次设计我学会了很多东西,特别是C语言等,这对我以后的工作与深造都有很大的帮助。本课程设计主要围绕MCS-51单片机进行一种低成本,实用的电子密码锁的设计,能完成密码的输入,开锁,报警等简单功能。本系统还增加了温度及时间实时显示功能。总体上来说完成了本次设计指定要求。通过这次课程设计,我学到了不少东西。归纳起来,主要有以下几点:1.对单片机应用系统开发的过程有了一定的了解,掌握了系统硬件设计及软件设计的设计原则、思路、步骤。通过本设计的过程,真正体会了单片机设计的乐趣。并通过不断上网查资料、到图书馆借阅图书的方式,进一步熟悉并掌握利用这些工具来进行单片机设计的方法。2.学会了怎样查阅资料。从一开始确定课题之后,我就不断进入图书馆进行资料查找、理论学习。另外,在一些单片机、电子网站的论坛也可以找到大量的相关资料。3.提高了实践能力。以前也自学过一些单片机方面的知识,但是学得不够深入,实践方面的能力也显得不足。通过这次毕业设计,本人对一个完整的单片机应用系统的开发有了一定的了解,提高了自己在这一方面的实践能力,也积累了一定的经验。8谢辞在这里我首先要感谢杨帆老师的指导。在设计和论文写作过程中,得到了老师的指点和点拨,使得我的理论和实践操作能力都得到了提高。另外还要此外还要感谢我的组员们,通过和他们一起思考,讨论和分析问题,我受到很大的启发,使我理解到了团队协作的重要性。同时也要感谢给予我帮助其他同学以我的室友们。总的来说,这次设计的电子密码锁还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导和同学们的帮助下,都一个一个顺利解决了,这让我有了小小的成就感,终于能够把平时在书本上学到的理论知识运用到了实际的操作中,不仅学到了很多新的知识,而且锻炼了自己动手的能力,使自己对以后的学习有了更加清楚的认识,同时,对未来有了更多的信心。最后,再一次对给过我帮助的所有指导老师和各位同学再次表示衷心的感谢!9参考文献1 张毅刚,彭喜元,董继成.电子单片机原理及应用.高等教育出版社,2007.12 2 谢自美.电子线路设计、实验、测试M.华中科技大学出版社,2009.73 谭浩强.C语言程序设计(第三版).北京:清华大学出版社,2005.74 王文海.单片机应用与实践项目化教程. 北京:化学工业出版社,2010.75 翁嘉民.单片机应用开发技术.中国电力出版社,2010.16 王秋爽.曾昭龙.机械工业出版社,2008.37 彭为.单片机典型系统设计实例精讲M,北京:电子工业出版社,20068 潘永雄.新编单片机原理与应用M,西安:西安电子科技大学出版社,20039 童诗白,华成英,模拟电子技术基础M,北京:高等教育出版社,200010 阎石主.数字电子技术基础M,北京:高等教育出版社,199811 李瀚荪.电路分析基础M,北京:高等教育出版社1991附录1:电路图原理图附录2:实物图附录3:主程序#include typedef unsigned int uint16; typedef unsigned char uint8; #includekey.h#includelcd.h#include24c02.h#includebeller.hcode uint8 show_0=Please input the password!;code uint8 show_1=The ciper is!;code uint8 show_2=*;code uint8 show_3=The password is wrong!;code uint8 show_4=The last time!;code uint8 show_5=(_) Hello! wait password!;code uint8 show_6=You are right!;code uint8 show_7=The new cipher!;code uint8 show_8=Input it again!;code uint8 show_9=set successfull!;code uint8 show_10=Enter new cipher again!; code uint8 show_11=The two ciphers aret the same!;void play(uint8 *j,uint8 k)uint8 i;for(i=0;ik;i+)w_dat(*(j+i);delay(20);main() uint8 n,m; static uint8 n1=0x00; static uint8 a=0xef; Init_LCD1602(); /液晶初始化 do P3=0X00; key();while( !(ki=15) ); loop4:Init_LCD1602(); do ki=14; key(); gotoxy(1, 0); play(show_5,12); gotoxy(2, 0); play(show_5+17,14); if(ki=15) Init_LCD1602(); /加显示后清屏gotoxy(1, 0);play(show_0,16);gotoxy(2, 0);play(show_0+17,10);delay(1000);delay(1000);Init_LCD16021(); /加显示后清屏,有光标 while(!(ki=15); while(1) ki=14;loop2: do key();if(ki=11) n=0; Init_LCD16021();goto loop2; /返回按键;注意密码满8为时不能返回。if(ki=10) n=0; goto loop4; /返回主界面 if(ki=Read24c02(0x02+n) /比较输入的密码是否正确,一位一位地比较 if(n=0) a=1; if(n=1) a=a+4; if(n=2) a=a+1; if(n=3) a=a+2; if(n=4) a=a+1; if(n=5) a=a+2; if(n=6) a=a+1; if(n=7) a=a+2; if(!(ki=14) n+; gotoxy(1, 0); play(show_2,n); if(n=8) n=0;goto loop; ki=14; while(!(a=0x05); loop: if(a=0x05) /输入的密码正确 dokey();while(!(ki=15); /密码输入按确认键后比较。 led_yellow=1; /加入开锁语句。 gotoxy(1, 0); play(show_6,14); led_green=1;delay(1000);led_green=0;delay(1000) ki=14; do ki=14; key(); if(ki=11) Init_LCD16021();goto loop2; /返回按键 if(ki=10) a=0xef; goto loop4; /返回主界面 if(!(ki=13) /密码输入正确后,在不按设置密码键时显示Hello状态 Init_LCD1602(); got
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国海油北美公司岗位笔试答题技巧与模拟题解析
- 2025年乡镇畜牧站招聘考试畜禽粪污管理专项训练题
- 智能物流调度平台创新创业项目商业计划书
- 2025年光荣院招聘面试心理测试与模拟题解析指南
- 汽车外观未来趋势概念设计创新创业项目商业计划书
- 八年级篮球课时安排计划
- 2025年中国香道数字嗅觉体验师备考手册与模拟题集
- 小学六年级上册体育教学课程计划
- 2025年加油站财务管理知识要点解析及招聘模拟题答案集
- 2025年人防部门抢险抢修员招聘面试题详解
- 2025年国家统一司法考试真题及答案
- 绿色矿山培训课件
- 纪念抗美援朝队会课件
- 2025-2026学年人教版(2024)小学数学三年级上册(全册)教学设计(附目录P296)
- 2025广东茂名市信宜市供销合作联社招聘基层供销社负责人2人笔试模拟试题及答案解析
- 医院护理人文关怀实践规范专家共识
- 成人反流误吸高危人群全身麻醉管理专家共识(2025版)解读
- 初二体育课程教学计划及实施
- 2025年山东省临沂市、枣庄市、聊城市、菏泽市、济宁市中考语文试题解读
- 浙江省金华市婺城区2024-2025学年七年级上学期语文期中考试试卷(含答案)
- 2025年10月自考00227公司法真题及答案
评论
0/150
提交评论