1、基于单片机的电子密码锁电路的研究 基于单片机的电子密码锁电路的研究论文类型Paper Type: 研究总结 Summary of Focused Research论及主题 Subject Covered:基于单片机的电子密码锁电路的研究课程名称 Course:嵌入式系统 Embedded System课程性质 Course No:研究生专业课 Graduate Course 学 分 数 Credits:2开设学院 College:计算机及信息学院 Computers & Information开设时间 Semester:20122013学年第一学期 基于单片机的电子密码锁电路的研究摘 要: 单
2、片机就是将微处理器、存储器、总线、定时器/计数器、输入/输出接口和其他多种功能器件集成在一块芯片上的微型计算机,它的重要应用领域为智能化电子产品,一般需要嵌入仪器设备中。 本系统以MCS-51单片机为核心,设计电子密码锁的硬件和软件,实现以下功能:包括密码的输入、删除、修改,声光报警提示,开锁电路,密码显示。下文简要介绍了MCS-51单片机内部结构及应用特点,详细阐述了电子密码锁的原理,硬件设计和软件设计,给出了硬件电路图和软件流程图。鉴于其安全可靠、价格低廉、硬件电路简单、便于实现、易于改进等优点,它有很好的实用价值。关键词: 单片机;电子密码锁;MCS-51Abstract: Single
3、-chip microcomputer is a single chip integrated with microprocessors, memory, bus, timer/counters, input/output interface and other multi-functional devices. Its important applications are intelligent electronic products, which generally need embed into instrumentation devices. Based on MCS-51 singl
4、e-chip microcomputer , the system designs hardware and software of electronic locks to achieve the following functions: inputting, deletting, modifying the password, alarmmation of sound and light, the circuit of unlocking, displaying the password. Passage below described the internal structure and
5、characteristics of application of MCS-51 single-chip microcomputer briefly, the principles of electronic locks, design of hardware and software in detail, and gives hardware circuitry and flow chart of software. In view of its various advantages, including safe, reliable, cheap, simple hardware circ
6、uit, easy to realize and easy to improve, it has good practical value.Key words: mcu, electronic locks, mcs-511 引言随着科技的发展,在安全技术防范领域,防盗报警功能的电子密码逐渐兴起,技术上正日趋成熟,功能也越来越大。出现了以数字逻辑为原理的电子密码锁和以单片机为原理的电子密码锁。近年来许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但成本较高,一定程度上限制这类产品的普及和推广。鉴于目前的技术水平与市场的接受程度,以单片机实现的电子密码锁是这类防盗产品的主流。一个简单的密
7、码锁应该具有输入设备,用户可以输入密码并确认或取消,应该有输出设备,用户可以看到自己输入的密码,还应包括报警提示,若是能保证密码掉电不丢失,待系统复位的时候重新加载修改的密码就更好了。电子密码锁内部的单片机是核心处理设备,负责获取密码,将其和正确密码相比较产生输出,还要让单片机记录下用户输入错误密码的次数,若超出限制则要采取相应保护措施,以防他人反复试探密码。本文介绍的是一种基于MCS-51单片机密码锁的硬件和软件设计和实现方法。这种密码锁具有输入、删除密码,控制开锁,声光提示,修改密码等多种功能。密码最少可设置8位,最多可设置16位,若修改了密码,掉电后系统再次复位时密码为上次修改的密码的前
8、8位,增加了保密性,灵活性。 2 电子密码锁原理本密码锁主要可以完成以下三项功能:1、当输入正确的密码时,开锁并且声光提示20s,当输入错误的密码时,声光提示1s,错三次长音提示30s;2修改密码时,必须先输入原始密码,输入正确没反应,可接着输入新密码,输入错误声光提示1s,错三次长音提示30s,修改的密码位数不固定,最少8位,最多为16位,修改密码时数码管显示“L”;3修改的密码的前8位掉电不丢失。本密码锁硬件包括以下几个部分:MCS-51单片机,键盘输入部分,声光报警部分,驱动开锁电路部分,CAT24WC02的串行EEROM,密码显示部分。键盘输入部分由4*3键盘和一个单独键“改密键”组成
9、;声光报警部分主要由三极管放大电路、喇叭和发光二极管组成;驱动开锁电路主要由三极管放大电路和继电器组成;密码显示部分由数码管和上拉电阻组成。整个硬件电路器件较少,方便焊接。在软件方面,采用汇编语言编写。在51单片机的RAM里,地址为35H44H内存用来存放待设定的密码,而用R0存放下一个要设定的密码的地址,地址为45H54H内存用来存放待输入的密码,而用R1存放下一个要输入的密码的地址。20H.0为设置密码标志位,20H.1为可改密码标志位,按下“改密键”,20H.0为1,20H.1为1,当输入正确的密码后,20H.1为0,当修改完密码后,20H.0为0。修改密码后向EEROM的20H单元送数
10、1,复位时察看该单元的第0位是否为1就可以判断密码有没有修改过,若为1加载修改的密码的前8位,若为0加载初始值88888888。2.1 MCS-51单片机MCS-51单片机系列中的各个引脚是相互兼容的,其中8051单片机是高性能的单片机,它包含8位CPU,128B片内RAM,4KB片内ROM,2个定时器/计数器,并行I/O接口P0P4,串行I/O接口和中断系统等几大系统。在不接任何外围电路的情况下可以实现大部分较为复杂的逻辑控制功能,进行片外扩展后可实现更多功能。51单片机的存储器有片内和片外之分,无论片内还是片外都分为程序存储器和数据存储器。数据存储器可读写,部分单元可以位寻址。在计算机中,
11、中断是指计算机暂停程序执行转而为外设服务,并在中断服务完成后自动返回原程序执行的过程。51单片机中断源包括外部中断请求源,内部中断请求源T0、T1,串行口。 8051单片机的每个端口都是8位准双向口,每一条I/O口都能独立地用做输入和输出,用做输出时,数据可以锁存,用做输入时,数据可以缓冲。在无片外扩展存储器的系统中,这4个端口都可以作为准双向通用的I/O口使用。P0口作为通用I/O口时需要在外部引脚处外接上拉电阻,它还可作为地址/数据总线口,P2口还可以作为地址口,P3口为多功能端口。P3.0为串行输入口,P3.1为串行输出口,P3.2为外中断0,P3.3为外中断1,P3.4为定时器/计数器
12、0外部输入口,P3.5为定时器/计数器1外部输入口,P3.6为外部数据存储器写选通,P3.7为外部数据存储器读选通。8051的时钟有两种方式,本文采用片内时钟振荡方式,在X1和X2脚外接12MHZ的石英晶体和30pF的振荡电容。RESET为复位信号引脚,高电平有效,复位后CPU回到初始状态,程序从0000H开始执行。RESET通过电容与电源相连,通过电阻与地线相连构成上电自动复位电路。EA/Vpp是允许访问片外程序存储器/编程电源线,EA为高电平并且程序地址小于4KB时,读取内部程序存储器指令数据,而超过4KB地址则读取外部程序存储器指令。2.2 键盘输入部分由12个微动开关组成的3*4键盘如
13、右,EN代表确认,用来结束输入的密码,DEL0123456789DELEN代表删除,用来删除之前输入的密码,另有一个改密键“SET”用来修改密码。键盘的硬件电路图如下, P1.0 P1.3为扫描线,P1.4 P1.6为回送线,程序执行时,先判断是否有键按下,若有,消除按键抖动,计算出按键值,再转入相应程序。中断0接到“SET”键,当这个键按下时,转入中断程序,准备重新设置密码。2.3 声光提示部分声光提示电路如右图所示,PNP三极管的发射极接+5V电源,基极连接到4.7K的电阻,电阻的另一端接到P2.0。扬声器为外磁式扬声器。BJT的放大作用,主要是依靠它的发射极电流能够通过基区传输,然后到达
14、集电极而实现的。为了保证这一个传输过程,一方面要满足内部条件,即要求发射区杂质浓度要远大于基区杂质浓度,同时基区厚度要很小;另一方面要满足外部条件,即发射结要正向偏置、集电结要反向偏置。当P2.0为0时,三极管导通 ,喇叭响,二极管点亮。通过设定P2.0为0的时间控制喇叭响和二极管发光的时间。2.4 驱动开锁电路部分 驱动开关电路部分如右图所示,4.7K的电阻接到P2.1。电磁继电器实质是一种用较小电流来控制较大电流的开关器件,即只要有很小的电流通过继电器的线圈,就能产生机械动作,并利用相关簧片带动触点,连接或断开所控制的电路。二极管的作用是防止继电器电感线圈断开后产生的电压烧坏外部电路。当P
15、2.1为0时,三极管导通,放大电流,驱动继电器吸合,使得电机工作,电子锁打开。2.5 掉电保密电路部分掉电保密电路如下图,24WC02集成块为电可擦除可编程只读存储器EEROM,可以读写,数据不丢失。SCL为串行时钟,是一个输入引脚,用于产生器件所有数据发送或接收的时钟;SDA为串行数据/地址,是一个双向传输端,用于传送地址和所有数据的发送或接收。对于一般的数据传输,仅在SCL为低期间SDA才允许变化;A0、A1、A2为器件地址输入端;WP 为写保护,连接到Vss或悬空时允许器件进行正常的读/写操作,连接到Vcc时只能读。 把P2.4定义为SDA,P2.5定义为SCL,就能使单片机I/O口模拟
16、成C总线。C总线由串行数据线SDA和串行时钟线SCL构成,可发送和接收数据。C总线中的器件既可作为主控器,也可作为被控器,既可作为发送器,也可作为接受器。总线忙时,SDA、SCL都要为高电平。在SCL为高电平的状态下,SDA出现下降沿,为开始信号。SCL为高电平的状态下,SDA出现上升沿,为停止信号。数据传送开始后,SCL为高电平的时候,SDA的数据必须保持稳定,只有SCL为低电平的时候,才允许SDA上的数据改变。C总线在传送数据过程中共有三种类型信号:开始信号、停止信号、应答信号。接受数据的器件在接受到8位数据后,向发送数据的器件发出特定的低电平脉冲,表示已收到数据,即应答信号。 本系统中修
17、改密码后向EEROM里00H开始的单元里写入密码,向20H写入数1,复位时读EEROM里20H单元,判断最低位是否为1,若20H.0=1,读EEROM里的密码。2.6 密码显示部分表2 七段LED字型码电路显示部分由一个共阴极数码管和上拉电阻组成,如下图所示。P0.0P0.7有一位为“1”,数码管相应的段点亮。由于单片机P0口高电平输出电流较小,需要接上拉电阻才能驱动数码管点亮。显示字符0123456789L“灭”共阴极字符3FH06H5BH4FH66H6DH7DH07H7FH6FH38H00H3 单片机密码锁软件设计开始上电时,密码锁初始化密码为8个“8”,提示1秒,接着开始扫描是否有键按下
18、,若有键按下,消除抖动后算出按键值,转到相应的程序。若是密码已经改过,复位后密码为上次已经修改的密码的前8位。当外部中断0输入由“1”变成“0”时,转入中断程序,设置密码标志位20H.0=1,可改密码标志位20H.1=1。定时器0定时时间为50ms,利用软件计数器可以定时1s,用来控制声光提示时间。定时器1定时时间为6ms,用来延时消除抖动。根据单片机密码锁原理设计软件流程图1如上。判断是否有键按下及获得按键值的流程图2如下。键输入程序的功能包括五个部分:判断是否有键按下;去除机械抖动;确定闭合键物理位置;得到闭合键编号;确保CPU对键的一次闭合只做一次一次处理,防止操作人员的一次按键被高速运
19、行的程序误判断为多次按下该键。 按下确认键时,若20H.0=1,20H.1=1,表示修改密码之前输完旧密码,查看密码输入是否正确,错误有声光提示,正确没有声光提示,可以输入新密码,20H.1=0;若20H.0=1,20H.1=0,表示新密码输入完毕,声光提示1秒,20H.0=0;若20H.0=0,表示输入完密码,查看密码输入是否正确,错误有声光提示,正确开锁并且声光提示20秒。确认单元流程图3如下。删除单元的程序流程图4如下。当20H.0=1,20H.1=1或者20H.0=0时,密码存储在45 H开始的数据存储器单元里,数码管显示当前输入的密码,若删除密码,数码管显示之前的密码;当20H.0=
20、1,20H.1=0时,密码存储在35H开始的数据存储器单元里,数码管显示“L”,删除密码时,数码管仍显示“L”,直到删除完密码。4 结论 单片机的出现是近代计算机技术发展史上的一个重要的里程碑,单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机应嵌入式应运而生,广泛应用于仪器仪表、工业控制、家用电器、计算机网络和通信等领域。它可靠性高,抗干扰能力优于PC,便于扩展,控制功能强,可以对逻辑功能比较复杂的系统进行控制,低电压、低功耗,片内存储容量较小,但可以外部扩展。本文简单介绍了利用单片机制作的电子密码锁的硬件及软件。硬件电路简单,只有单片机和一些外围电路,没有扩
21、展芯片, 还有一些并行接口、串口、外部中断没有用到,但已完成密码锁的基本功能,包括输入、显示、声音提示、改密,这是机械锁无法超越的。单片机控制功能强,便于扩展,在原有的基础上,我们还可以改进完善电子密码锁,例如可以增加数码管,利用静态显示或者动态扫描方法,还可以加入一些其他的电路(例如时钟、闹铃),使得功能更加强大。在利用单片机设计制作电子产品时,需要合理分配系统内部的硬件、软件资源。软件能实现的功能应尽可能由软件实现。致谢(Acknowledgements)首先非常感谢老师一个学期以来的认真授课,让我在嵌入式系统的课程中收益颇多,不仅让带领我进入了嵌入式系统的大门,更让学到到了更多思想和方法
22、。同样感谢很多关心和支持我的人,我在此表示深深的谢意。参考文献(References) 1 张鑫.单片机原理及应用M.北京:电子工业出版社,2005.8:141262 宋占波.单片机技术实用教程M.北京:国防工业出版社,2008.10:1541573 谢振辉.改进式MCS-51单片机实验M.北京:科学出版社,2006.2:76814 侯振鹏.嵌入式C语言程序设计使用MCS-51M.北京:人民邮电出版社,2006.7:75225 康华光.电子技术基础模拟部分M.北京:高等教育出版社,2004.4:56856 杜虎林.电工电子通用元器件检测技巧M.北京:中国电力出版社,2007.6:2830附录(
23、Appendix)硬件电路图单片机密码锁汇编程序SDA EQU P2.4SCL EQU P2.5ORG 0000H JMP START ORG 0003HSETB 20H.0 SETB 20H.1 MOV R1,#45H ORG 000BH AJMP TIME0 ORG 001BH MOV TH1,#0E8H MOV TL1,#90H CLR TR1 ORG 0030HBEGIN: MOV SP, #60H MOV R1,#45H LCALL IRDBYTE RRC A JC L0 ;若修改过密码,转去加载修改的密码 MOV R0,#35H MOV R6,#8 MOV A,#08HLOOP:
24、MOV R0, A INC R0 DJNZ R6,LOOP ;初始化密码 SJMP NEXT0L0: LCALL IRDNBYTENEXT0: MOV R2, #20 ;R2为软件计数器,初始值为20 MOV TMOD, #11H ;定时器/计数器工作方式都为方式1 MOV TH0, #3CH MOV TL0, #0B0H ;定时器定时50ms MOV TH1, #0E8H ;定时器定时6ms MOV TL1, #090H MOV IE, #8BH ;开外部中断0及定时器/计数器 MOV TCON, #01H ;外部中断0为负边沿触发方式 SETB TR0 SJMP $ SETB P2.0 M
25、OV R3, #03H ; R3存放最多错误次数3 MOV DPTR, #TABLE1AGAIN: ACALL KEY CJNE A,#0BH,NEXT1 AJMP MAKESURENEXT1: CJNE A,#0AH,NEXT2 AJMP DELNEXT2: AJMP NUMBERRMAKESURE: JNB 20H.0,SURE1 ;设置密码标志位为0转到SURE1 JB 20H.1,SURE1 LCALL IWRBYTE ;设置一个标志位,存放到EEROM SETB TR0 SJMP $ SETB P2.0 LCALL IWRNBYTE AJMP AGAINSURE1: MOV 29H,
26、 R0 ;把储存最后一个密码的下一个地址送给29HMOV A, R0 ADD A, #10H MOV 55H, R1 CJNE A, 55H, ERROR ;若是输入的密码长度错误转到ERRORL1: DEC R1 DEC R0 MOV A, R0 MOV 55H, R1 CJNE A, 55H, ERROR ;比较密码,错误转到ERROR CJNE R0, #35H, L1 ;密码没比较完,继续比较 JB 20H.0,SURE2 CLR P2.1 ;密码正确,开锁 MOV R2, #400 SETB TR0 SJMP $ SETB P2.0 MOV R3, #03H ;R3存放错误次数,为3
27、次 MOV R0, 29H ;R0指向下一个要输入密码的地址 MOV R1,#45H AJMP AGAINSURE2: CLR 20H.1 MOV R3, #03H MOV R0, #35H MOV R1,#45H AJMP AGAINERROR: DJNZ R3, ERROR3 ;错误次数不到3次转到ERROR3 MOV R2, #600 SETB TR0 SJMP $ SETB P2.0ERROR3: SETB TR0 SJMP $ SETB P2.0 MOV R0,29H ;R0指向下一个要输入密码的地址 MOV R1,#45H AJMP AGAINDEL: JNB 20H.0, DEL
28、L1 ;设置密码标志位为1转到DELL1 JB 20H.1,DELL1 CJNE R0, #35H, DELL3 SJMP DISPLAY1 ;没有密码可删转到DISPLAY1DELL3: DEC R0 ;删除密码 SJMP DISPLAY1DELL1: CJNE R1, #45H, DELL2 SJMP DISPLAY2 ;没有密码可删转到DISPLAY2DELL2: DEC R1 ;删除密码 SJMP DISPLAY2NUMBERR: JNB 20H.0, STORE ;设置密码标志位为1转到SETN JB 20H.1,STORE MOV R0, A ;储存设置的密码 INC R0 INC
29、 R6SJMP DISPLAY1STORE: MOV R1,A INC R1SJMP DISPLAY2DISPLAY1: CJNE R0, #35H, DISPLAY3 MOV A, #0BH ;没有密码可显示,数码管清零 SJMP DISPLAY4DISPLAY3: MOV A, #0AH SJMP DISPLAY4DISPLAY2: DEC R1CJNE R1, #44H, DISPLAY5 MOV A, #0BH ;没有密码可显示,数码管清零 INC R1 SJMP DISPLAY4DISPLAY5: MOV A, R1 INC R1DISPLAY4: MOVC A, A+DPTR MO
30、V P0, A AJMP AGAINKEY: ACALL KEY1 JNZ LKEY1 SETB TR1 SJMP $ AJMP KEYLKEY1: SETB TR1 SJMP $ SETB TR1 SJMP $ ACALL KEY1 JNZ LKEY2 SETB TR1 SJMP $ AJMP KEYLKEY2: MOV R4, #0FEHMOV R5,#00HLKEY4: MOV P1, R4 NOP MOV A,P1 JB ACC.4,LONE MOV A,#00H AJMP LKEYPLONE: JB ACC.5,LTWO MOV A,#04H AJMP LKEYPLTWO: JB ACC.6,NEXT MOV A,#08HLKEYP: ADD A,R5 PUSH ACCLKEY3: SETB TR1 SJMP $ ACALL KEY1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1