红外遥控电子密码锁的设计研究 精品.doc_第1页
红外遥控电子密码锁的设计研究 精品.doc_第2页
红外遥控电子密码锁的设计研究 精品.doc_第3页
红外遥控电子密码锁的设计研究 精品.doc_第4页
红外遥控电子密码锁的设计研究 精品.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

红外遥控电子密码锁的设计研究一设计目的1、学习串行通信的原理和应用。2、了解异步串行通信的特点。3、提高动手能力和理论联系实际能力。二、设计任务和要求设计并制作一个采用红外遥控的电子密码锁,要求如下:1、能实现遥控开锁,遥控距离810m。2、具有修改密码、加密和较强的抗干扰能力。扩展功能:1、密码输入出错能立即报警。2、能实现本机键盘开锁。三系统构成框图系统以单片机AT89C51RC为核心。系统结构框图如图1所示。本系统的功能设计目标应该包括以下几个方面:红外发射功能模块,红外线接收转换模块、单片机模块、蜂鸣器报警功能模块、LED数码管显示模块、按键功能模块,开锁功能模块等。其中红外遥控和密码功能实现部分系统结构图如图1.1所示 :图1 红外遥控密码锁硬件结构图8051CPU红外接收头头键盘红外发射器显示报警器复位晶振电磁锁图1.1 红外遥控和密码功能实现部分系统结构图 :四系统设计思想系统以单片机AT89C51RC为核心。功能设计目标应该包括以下几个方面:红外发射功能模块,红外线接收转换模块、单片机模块、蜂鸣器报警功能模块、LED数码管显示模块、按键功能模块,开锁功能模块等。本系统采用单片机8051作为本设计的核心元件,利用红外线遥控原理和单片机串行发射、接处等功能而设计的一款有本机开锁和遥控开锁的电子密码锁。五基本功能设计遥控密码锁的基本设计主要分为如下五个部分。1.选择密码:我们将编好的密码程序存储在EPROM中,用户通过密码选择键-8051中的P1.5口上的按键进行选择,具体操作过程如下:首先按一下P1.5口上按键,然后再逐渐输入号码,最后按”#”号确信即可.比如现在用户要是选择了57618这组数字作为密码,则用户只有首先按一下P1.5上的按键,接着在本机键盘上一一输入5、7、6、1、8、之后再按“#”号键即表示密码被设置好了,那么下次用户只要键入这组数据即可开锁。本设计中我们编入了两密码即:57618和81675。当然我们还可根据需要在EPROM中存入更多的密码,供用户选择。2.密码输入有效显示:为了帮助用户确信是否有键按下,我们特在电路中设置了模拟显示电路;而为了防止密码外泄;显示时,并不是显示用户按下的数字符号-而是以发光二极管的亮灭来提醒用户是否有键按下。有键按下,发光二极管亮0.5秒,没有键按下,发光二极管灭。这样既巧妙地提醒了用户又保护了用户密码,此本设计可靠性优点之一。3.当用户键入正确密码后,再按确认键-“#”号,便会自动开锁。但用户键入密码时应注意:数字与数字之间的间隔时间为3秒,例如密码为57618,当键入第一个数字5后应在3秒内键入第二个数字7,否则,就会视为无效。如果键入完密码后不按“#”号,系统会当做放弃开锁处理。4.密码错误报警:当用户键入错误密码时,系统就会报警,由扬声器发出5秒报警声。当连续三次出现密码错误时,则系统会长期报警不止。这时必须按复位方可停止。乃安全可靠性能之一。5.遥控开锁:当此锁用于私家车库或仓库时,用户可以不上车,只要手执遥控器,键入正确密码,便会自动开锁;如果密码错误,同样也会报警。这是本设计优越性能之三。六核心部分工作原理说明1.利用红外线遥控原理 红处线发射/接收控制电路均采用8051单片机来实现,电路简单,输出控制方式可选择,实用性强。具体工作过程如下: 发射时:如图(A), 首先,将从串行发射口P3.1送出的数据反馈到P1.1口时行内部调制,再从P1.2口送出,再经过红外发射二极管发射出去,发射距离为10m 接收时:如图(B),采用与发射击队配套的红外接收头,将发射出的数据接收后送到串行口P3.0中,再由系统进行确认接收数据是否与发送数据是否相符,相符则开锁,以发光二极管D2亮来表示,不相符则放弃,以发光二极管灭来表示。2.遥控发射电路设计 遥控发射电路利用了通用的红外发射管,如图(A)所示图(A)3.本机键开锁的工作原理 本机键开锁电路如图(B)所示,8051作为本电路的核心,P0口与P1.0 P1.1 P1.2外接本机键盘,P3.0口外接控接收头,P1.3口外接报警信号放大器,用来放大报警信号,驱动扬声器,P1.7口外接开锁电磁驱动电路,P1.5外接密码选择键,EPROM内存有两密码,P2.0口用发光二极管显示按键是否按下,本电路由遥控发射击队器、接收器、键盘、显示器组成,本机采用了10个按键,作为密码输入键,同时也采用了遥控器开锁。有以下功能:1.当没有接收到遥控信号时,这时由键盘输入密码,当5位有效密码输入正确时按“#”号确认,P1.7口输出高电平使电磁锁动作,完成开锁,同时,电路进入延时状态,延时5秒钟后,电路将自动恢复到初始闭锁状态.图(B) 2.当5位有效密码输入正确,但没有按”#”号键确认时,这时电路将自动放弃,恢复到初始和闭锁状态. 3.在输入5位有效密码时,必须按照先后序输入,如顺序错误或密码不对时,这时若不按”#”号确认,将无法开锁,并同时发出5秒钟的报警信号,用以提醒用户. 4.若连续3次输入错误,系统会长时间报警,这时必须按复位键恢复到初始化状态. 5.输入密码时,首位密码正确输入后,电路将开始自动计时,每位密码数之间的输入间隔应在3秒内.否则将输入超时处理,系统自动放弃,恢复到初始状态.4.遥控开锁的工作原理 当选择遥控开锁时,本机键便会被封锁.这时,用户手执遥控器8051上的P1.0口上的按键时,便有数字从8051 的P1.2口发出,发送的过程如下:先将从P3.0送出5FH,然后将5FH反馈到P1.1口进行内部调制,调制的规则是”0”电平调制,”1”电平不调制,最后将调好的数据从P1.2口通过红外发光二极管以波长为940mm的红外光发出红外遥控信号.然后,在本机控制电路中的8051的P3.0口接有与红外发光二极管配套的接收头,将接收的光信号转换成电信号数据.最后,通过系统与内部原先设置的数据进行比较确认,如果一致便可开锁,如果不一致放弃开锁.七系统硬件设计与实现(单元电路设计)1电源部分设计本系统的电源部分使用LM7805芯片进行稳压后提供单片机5V的电压。其电源部分电路的设计如图2所示。图2 红外遥控密码电源部分的电路原理图该电源部分电路,使用四个1N4004二极管构成整流桥,可以输入直流或是交流9V电源,然后再通过7805稳定到5V供单片机工作。固定式三端稳压电源7805是由输出脚Vo,输入脚Vi和接地脚GND组成,它的稳压值为+5V,它属于LM78XX系列的稳压器,输入端接电容可以进一步的滤波,输出端也要接电容可以改善负载的瞬间影响,电路的稳定性也比较好。2红外接收头部分红外信号接收部分是使用KS38BL红外接收头实现的,其电路如图3所示。 图3是红外线遥控器信号接收头的简易电路,它可接收载波频率从3357KHz的遥控器信号。100电阻起到限流的作用,470uF电容滤波减少干扰。以逻辑笔接触红外线接收模块的信号输出端(OUT),便可以侦测当按下红外线遥控器某一按键时,红外线数字信号的发射。若有发射红外线数字信号则经过红外线接收模块取出数字信号数据,逻辑笔脉冲LED便会闪动。这样可以检测到当前有没有红外信号发射最简单的方法。图3 红外线接受部分3. 显示部分如图4所示,系统的显示是使用MAX7219实现的8位稳定静态显示,MAX7219是串行共阴极数码管动态扫描显示驱动芯片,仅使用3线串行接口传送数据,可直接与单片机接口,用户还可以方便地修改其内部参数以实现多位LED显示,因此可以方便地使用单片机的串口送出显示数据,并且其占用的时间少,方便编程及对信号的检测。图4 利用MAX7219设计显示部分4. 密码存储部分的电路设计为了保存用户设置的密码,该系统使用AT24C04用来保存用户设置的密码,单片机AT89C51RC的P3.6接AT24C04的SCLK口作为它的串行移位时钟,AT89C51RC的P3.7接AT24C04的SDA口作为它的串行数据或地址输入输出。该电路要注意的是SCLK、SDA必须加上一上接电阻,阻值为10K。用户设置的密码存放在AT24C04中,当需要更改或读取用户密码时,只需对AT24C04里的数据更改或读取。由于主芯片AT89C51RC没有I2C总线,故本系统采用软件程序模拟I2C总线时序来完成AT89S51来与AT24C04的连接。5. 报警电路设计本系统设计时考虑到防盗而设计了报警电路,由蜂鸣器发声进行报警,蜂鸣器接在CPU的引脚P0.4上,通过PNP型三极管做电流放大,因此可以通过单片机控制蜂鸣器的频率及蜂鸣时间。当输入错误的密码进行开锁时,系统会报警,由P0.4口输出低电平使得PNP型三极管导通,蜂鸣器两端加电,由蜂鸣器发出1秒的报警声,当连续三次出现密码错误时,则系统会长时间报警,此举为了防止别人非法试探开锁。6. 本机处理与遥控处理功能选择电路设计本系统设计了一个自锁按键用来选择本机处理或者遥控处理,在设置密码时一定要处于本机处理状态下,而开锁则可以选择遥控开锁也可以选择本机开锁,当此按键按下时,红灯亮表示选择了本机处理,此时可以设置密码,修改密码,也可以本机开锁,而不能遥控开锁;当此开关开没按下时,红灯灭选择遥控开锁,此时可以通过遥控器输入密码进行开锁,在遥控开锁时不能进行本机开锁以及设置密码。八. 系统软件设计图5 主流程图本系统有遥控处理和本机处理两种工作状态,两种工作状态相互独立。通过自锁开关K可以选择当前工作状态,当K闭合时选择本机处理,断开时选择遥控处理。遥控处理部分只有开锁功能,所以设计相对简单,而本机处理部分可以实现开锁、设置和修改密码等所有的功能。要完成本系统功能,首先要需要解决对红外信号的译码问题,并在存储式示波仪上观察其具体波形,这就要要求了解其编码规则。一般的编码发射的一帧码含有一个引导码,用户码和键数据码。引导码由一个较长的载波波形和一段关断时间构成,它作为随后发射的码的引导。用户码和键数据码是由逻辑“0”和逻辑“1”组成的具有规定长度的字符串。逻辑“0”和逻辑“1”是用高低电平的不同组合来表示的,那么可以用单片机的两个定时计数器,对其高低电平进行计数,具体是这样的:当单片机检测到第一个低电平,则定时计数器T0立即开始计数,等到检测到高电平出现,T0停止计数,T1又立即开始计数,在T1计数的同时,对T0的计数保存,再次出现低电平,T1停止计数,T0又开始计数,在T0计数的同时保存T1的计数,这样就有了一组低和高的组合,通过判断这个组合属于哪个范围即可译码“0”或者“1”,如此循环,直到译出所有的位。这样我们就可以根据译码所得的值命令单片机系统去完成相应的操作。要注意的是:只有键数据码参与解码,客户码是事先(由某公司或个人)规定好了的。软件部分的设计基于汇编语言,采用模块化设计思想。以主程序为核心设置了很多功能模块子程序,是大量的功能在子程序中实现的主流程,如图5所示。软件工作流程包括6个部分:系统的初始化、AT24C04的读写操作、校对开锁、出错报警处理、对接收的信号进行译码。初始化主要包括: MAX7219芯片、中断和定时器的初始化,以及系统参数等的初始化;对AT24C04的读写操作主要完成对原先密码进行更改或相关设置的目的,然后将更新后的密码保存到其中。校对开锁是要对输入的密码和保存在存储器中的密码相比较,相同着通过,否则要进入出错报警阶段。出错报警主要处理输入的密码和保存在AT24C04中密码不同时要进行报警1秒钟,如果报警后再次输入密码后再次报警达到3次,即3次都输入的是错误密码,那么系统将长时间报警并自锁一个小时。译码部分主要完成在遥控处理状态下对遥控器所发出的信号进行解码,以得到相应到完成相应功能的码值。1、程序框图串行口初始化开始发射键按送数据到CPU串行口数据送完返回开始串行口初始化接收数据数据是否接完接收数据正确进入开锁程序不处理返回主程序 遥控发射程序框图 遥控接收程序框图2、红外遥控电子密码锁程序ORG 0000H ;主程序CLR P1.7 ;清零MOV RO, #OOHCLR P1.3 ;关报警CLR P1.7 ;P1.7清零CLR P1.4 ;关报警MOV RO, #OOH ;串行口初始化MOV 52H, #02H ;将立即数02H送52HMOV TMOD , #20H ;设置T1工作方式2MOV TL1 ,#OF4H ;定时初始值送TL1MOV TH1 ,#OF4H ;定时初始值送TH1SETB TR1 ;启动定时器T1MOV SCON, #ODOH ;定义串行行工作方式3 MOV PCON , #OOHKEY: JNB P1.5 , KEP1 ;选择密码57618 LJMP KEP2*密码57618程序KEP1: MOV P2 .#0FFH ;关显示 MOV A , P0 判断是否有键按下 CPL A ;对P0口的数据取反 ANL A , #OFFH ;立即数OFF 与PO的数据相与 JNZ JP ;有键按下转至JP MOV A , P1 ;判断是否有键盘按下 CPL A ;将P1口的数据取反 ANL A ,#O7H ;累加器数据为零转遥控接收程序 JZ WAIT ACALL K10MS ;调用10秒延时 MOV A , P1 CPL A ANL A ,#O7H JZ WAITPP1: CJNE A , #01H ,JP1 MOV P2 , #89H ;显示字符”H” LJMP K0P1PP2: CJZE A , #02H ,JP2 MOV P2 , #89H ;显示字符”H” LJMP KOP1JP2: CJNE A . #04H ,KY MOV P2 ,#89H ;显示字符”H”JP3: MOV A , #O7H CJNE A , #07H ,JP3 LJMP LP1KOP1: MOV A ,P1 ANL A, #07H CJNE A , #07H ,KOP1 LJMP KEP1JP: LCALL D10MS MOV A , PO CPL A, ANL A, #OFFH JZ C6 CJZE A ,#01H ,KEY02 MOV P2, #89H LJMP KEY1KEY02: CJNE A ,#02H ,KEY03 MOV P2 ,#89H LJMP KJP1KEYO3: CJNE A , #04H, KEY04 MOV P2 ,#89 LJMP KJP1 KEY04: CJZE A , #08H, KEY05 MOV P2 ,#89H LJMP KJP1KEY05: CJZE A , #10H, KEY06 MOV P2 ,#89H LJMP KJP1KEY06: CJZE A , #08H, KEY07 MOV P2 ,#89H LJMP KJP1KEY07 CJZE A , #10H KEY08 MOV P2 ,#89H LJMP KJP1KEY08 CJZE A , #10H, C6 MOV P2 ,#89H LJMP KJP1KJP1: MOV A, P0 CJNE A , #OFFH ,KJP1 C6: LJMP WAIT*KEY1: LCALL MP CJNE A , #02H , KEY03 MOV P2 , #89HKEY2 LCALL MP CJNE A , #04 , KEY02 MOV P2 , #89HKEY3 LCALL MP CJNE A , #08 , KEY02 MOV P2 , #89HKEY4 LCALL MP CJNE A , #10H, KEY02 MOV P2 , #89HKEY5 MOV A ,P0 CJNE A , #0FFH, KEY5 MOV P2 , #OFFH MOV R5 ,#30HKEY6: MOV A , PO CPL A ANL A , #OFFH JNZ BB2 MOV A ,P1 CPL A ANL A , #O7H JZ BB1 LCALL D10MS MOV A , P1 CPL A ANL A ,#07H JZ CJNE A ,#04H ,B1 MOV P2 , #89H LJMP LP2B1: CJNE A, #01H ,BL1 MOV P2 ,#89H LJMP KOP1BL1: CJNE A , #02H ,BB1 MOV P2 , #89H LJMP KOP1BB2: LCALL D10MS MOV A , P0 CPL A ANL A , #OFFH JZ BB1 LJMP KEY02BB1: MOV R7 ,#OC8HBB4: MOV R6 ,#OF9H NOP NOP BB5: JNZ R6 ,BB5 DJNZ R7, BB4 DJNZ R5 , KEY6 LJMP WAIT*密码81675程序KEP2: MOV P2 ,#OFFH ;关显示 MOV A ,PO CPL A ANL A , #OFFH JNZ HP MOV A ,P1 CPL A ANL A , #07H JZ C9 LCALL D1OMS MOV A ,P1 CPL A ANL A ,#07H JZ C9 BB: CJNE A , #O1H ,HP1 MOV P2 ,#89H LJMP K1P1HP1: CJNE A ,#02H ,HP2 MOV P2 ,#89H LJMP K1P1HP2: CJNE A ,#04H ,C9 MOV P2, #89HHP3: MOV A ,P1 ANL A ,#07H CJNE A ,#07H ,HP3 MOV P2 ,#OFFH LJMP LP1K1P1 : MOV A ,P1 ANL A ,#O7H CJNE A ,#07H ,K1P1C9: LJMP WAITHP: LCALL D1OMS MOV A , PO CPL A ANL A ,#OFFH JZ C9 CJNE A , #1OH,K0Y02 MOV P2 ,#89H LJMP K0Y1K0Y02: CJNE A ,#01H ,K0Y03 MOV P2 ,#89H LJMP KUP1K0Y03 CJNE A ,#02H ,K0Y04 MOV P2 ,#89H LJMP KUP1K0Y04 CJNE A ,#04H ,K0Y05 MOV P2 ,#89H LJMP KUP1K0Y05 CJNE A ,#08H ,K0Y06 MOV P2 ,#89H LJMP KUP1K0Y06 CJNE A ,#20,K0Y07 MOV P2 ,#89H LJMP KUP1K0Y07 CJNE A ,#40,K0Y08 MOV P2 ,#89H LJMP KUP1K0Y08 CJNE A ,#80,U2 MOV P2 ,#89H LJMP KUP1KUP1: MOV A ,PO CJNE A ,#OFFH ,KUP1U2: LJMP WAITK0Y1: LCALL MP CJNE A #08H ,K0Y02 MOV P2 ,#89HK0Y2 LCALL MP CJNE A #04 ,K0Y02 MOV P2 ,#89HK0Y3 LCALL MP CJNE A #02 ,K0Y02 MOV P2 ,#89HK0Y4 LCALL MP CJNE A #01H ,K0Y02 MOV P2 ,#89HK0Y6: MOV A ,PO CPL A ANL A ,#OFFH JNZ PP2 MOV A , P1 CPL A ANL A ,#07H JZ PPL LCALL D10MS MOV A , P1 CPL A ANL A ,#07H JZ PP1 CJNE A ,#04H ,Y1 MOV P2 , 389H LJMP LP2Y1: CJNE A ,#01H ,Y11 MOV P2 ,#89H LJMP K1P1Y11: CJNE A , #02H ,PP1 MOV P2 ,#89H LJMP K1P1PP2: LCALL D10MS MOV A, PO CPL A ANL A ,#OFFH JZ PP1 LJMP K0Y02PP1: MOV R7 ,#OC8HPP4: MOV R6 , #OF9H NOP NOPPP5: DJNZ R6 ,PP5 DJNZ R7 ,PP4 DJNZ R5 ,K0Y6 LJMP WAIT*报警程序LP1: SETB P1.4 INC ROP019: MOV R3 ,#05HP020: MOV R7 ,#0A0HP018: SETB P1.3 LCALL P01A CLR P1.3 LCALL P01A DJNZ R7 ,P018 DJNZ R3 ,P020 CLR P1.3 CJNE R0 , #03H ,P017 LJMP P019P017: CLR P1.4 LJMP WAIT*开锁程序LP2: SETB P1.7 LCALL T5S CLR P1.7 MOV R0 ,#00H LJMP WAIT*判断键是否释放MP: MOV A ,PO CJNE A ,#OFFH ,MP MOV P2 ,#OFFHPM: MOV R5 ,#30H LCALL TP RET*判断是否有键按下TP: MOV A ,PO CPL A ANL A , #OFFH JNZ AP MOV A ,P1 CPL A ANL A, #O7H JZ TP3 LCALL D10MS MOV A , P1 CPL A ANL A , #07H JZ TP3 LCALL D10MS MOV A ,P1 CPL A ANL A ,#07H JZ TP3K CJNE A, #04H ,C1 MOV P2 ,#89HC3: MOV A P1 ANL A , #07H CJNE A #07H ,C3 MOV P2 ,#0FFH LJMP LP1C1: CJNE A ,#01H ,C2 MOV P2 ,#OCOH LJMP KCP1C2: CJNE A ,#02 ,U11 MOV P2 ,#90HP LJMP KCP1KCP1: MOV A , P1 ANL A ,#07H CJNE A ,#07H ,KCP1U11: LJMP WAIT AP: LCALL D10MS MOV A ,P0 CPL A ANL A , #0FFH JZ TP3 RET *400M延时程序 TP3: MOV R7 ,#OC8H TP1: MOV R6 , #OF9H NOP NOPTP2: DJNZ R6 , TP2 DJNZ R7 ,TP1 DJNZ R5 ,TP ;10S LJMP WAIT*10延时程序D10MS : MOV R7 ,#05H LOOP1: MOV R6 ,#OF9H NOP NOPLOOP2: DJNZ R6 , LOOP2 DJNZ R7 ,LOOP1 RET*延时程序P01A: MOV R2 ,#06H LCALL DELY RETDELY: PUSH 02HDEL2 : PUSH 02HD

温馨提示

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

评论

0/150

提交评论