红外电子密码锁

更新时间:2024-04-15 07:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘 要

现代生活中,很多行业的许多地方都需要密码锁,密码锁的应用就显得尤为重要。科学技术的发展,特别是单片机技术和集成电路技术的日臻成熟,为防盗遥控技术提供了功能齐全、操作方便、工作可靠、成本低廉的系统电路。该设计的红外遥控密码锁是将红外遥控技术和单片机技术应用相结合的一种方案,它主要应用在家庭防盗门系统中。

它的任务是:用户先给密码锁设定一个密码,当外面的人要进门时,就在红外遥控器键入代码,该密码与用户设定的密码比较,如果密码正确,则驱动电磁执行器开锁,人可以进门;如果密码不正确,则允许操作人员重新输入密码,最多可输入三次,若三次都不正确,则单片机通过蜂鸣器给予警告,并自动锁门半小时,才允许再次输入代码再试。

通过如此严密的检查程序,可以极大地排除陌生人进门的可能性,从而保证了住户安全。

关键词:密码锁,红外遥控,单片机,智能控制

I

Abstact

In the modern life, a lot of places of trade need password lock, the application of password locks seems particularly important. The development of science and technology, especially the situation that the technology of the micro-control unit and integrated circuit technology are ripe day by day, has offered the theft-proof remote control technology with a systematic circuit with such virtues as cheap cost, multiple function, easy operation, etc. It is a kind of scheme of combining technical application of the micro-control unit with infrared remote control technology that the infrared remote control password originally designed is locked, it is mainly applied to the system of burglary-resisting door of the family.

Its task is: the homer locks and establishes a password for the password lock first. When the person outside wants to enter the door, he or she must type the code in the micro-control unit, and this password will be compared with the password that the homer has established in the EEPROM. If the password is correct, the system will urge the electromagnetic carrying out device to be turned on and locked, it is all right for people to enter the door; If the password is incorrect, the result is that the person is refused.

Through such procedures, the possibility of strangers’ coming into the house doesn’t establish, and so does the safety of the house.

Keywords:Coded-lock, Infrared remote control, Micro-control unit, the intelligent control

II

目 录

摘 要............................................................. I Abstact............................................................ II 1 绪 言.......................................................... 1 1.1 课题背景........................................................ 1 1.2 课题研究的目的和意义............................................ 2 1.3国内外概况 ...................................................... 2 1.4课题的主要研究工作 .............................................. 3 2 系统设计方案的研究............................................... 4 2.1系统的控制特点与性能要求 ........................................ 4 2.2系统实现的原理 .................................................. 5 2.3系统实现方案分析 ................................................ 6 2.3.1红外遥控发射电路 .............................................. 6 2.3.2 遥控发射器及其编码:.......................................... 6 2.3.3、接收器及解码................................................. 7 3 红外遥控密码锁的设计............................................. 8 3.1 元件的选用...................................................... 8 3.1.1 中央控制器——AT89C51........................................ 8 3.1.2红外遥控发射器 ............................................... 11 3.1.3 红外遥控接收组件............................................. 13 3.1.4 EEPROM存贮器AT24C02电路 ................................... 14 3.2 系统的设计..................................................... 15 4 系统的实现..................................................... 17 4.1软件子系统 ..................................................... 17 4.2实验仿真系统的介绍 ............................................. 19 4.2.1系统概述 ..................................................... 19 4.2.2系统组成 ..................................................... 19 4.3实验仿真 ....................................................... 20 4.3.1仿真实验接线 ................................................. 20 4.3.2 仿真实验演示................................................. 21 5 总结与展望...................................................... 23 致谢............................................................... 24 参考文献........................................................... 25 附 录............................................................ 27

III

1 绪 言

本章阐述了红外遥控智能密码锁的研究背景、现状以及发展方向,明确指出了在家庭防盗门系统中所面临的问题。

1.1 课题背景

智能密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,光学,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。 而红外技术在遥控技术领域的应用越来越广泛,遥控技术的发展经历大致了从有线到无线的超声波扬声器,从振动子到红外线,再到使用总线接口的微机红外线遥控这样几个发展阶段[1]。遥控电路通常由遥控发射、遥控接收、微处理器等几块集成电路及其外围元件组成。所以把这两种技术融合起来所得的密码锁的性能将会更好。

在数字技术网络技术飞速发展的今天,智能密码锁技术得到了迅猛的发展。智能密码锁系统早已超越了单纯的门道及钥匙管理,它已经逐渐发展成为一套完整的出入管理系统。它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用[2]。

在该系统的基础上增加相应的辅助设备可以进行电梯控制、车辆进出控制,物业消防监控、保安巡检管理、餐饮收费管理等,真正实现区域内一卡智能管理。

智能密码锁是在传统的门锁基础上发展而来的。传统的机械门锁仅仅是单纯的机械装置,无论结构设计多么合理,材料多么坚固,人们总能用通过各种手段把它打开。在出入人很多的通道(象办公室,酒店客房)钥匙的管理很麻烦,钥匙丢失或人员更换都要把锁和钥匙一起更换。为了解决这些问题,就出现了电子磁卡锁,电子密码锁,这两种锁的出现从一定程度上提高了人们对出入口通道的管理程度,使通道管理进入了电子时代,但随着这两种电子锁的不断应用,它们本身的缺陷就逐渐暴露,磁卡锁的问题是信息容易复制,卡片与读卡机具之间磨损大,故障率高,安全系数低。密码锁的问题是密码容易泄露,又无从查起,安全系数很低[3]。同时这个时期的产品由于大多采用读卡部分(密码输入)与控制部分合在一起安装在门外,很容易被人在室外打开锁。这个时期的门禁系统还停留在早期不成熟阶段,因此当时的门禁系统通常被人称为电子锁,应用也不广泛。 红外遥控智能密码锁出现克服了这几个缺点,因而得到了更加广泛的应用。

1

1.2 课题研究的目的和意义

电子杂志、报刊经常刊登有密码开关,密码锁这样电路,大多数是使用常用的数字电路,如CD4017,然后通过不同的连接方式实现密码控制功能。这种电路的特点就是密码修改只能通过改变电路的连接来实现,密码很容易被破解,电路复杂,故障率高[4]。本制作是针对这些电路而设计的,而且还增加了红外遥控功能,移动方便。如果使用该红外密码开关安装在电子锁上,就成了一个功能强大,操作方便的电子密码锁了。因为不用安装控制键盘,所以安装方便、快捷,还消除了控制键盘被人为破坏的可能。

红外遥控技术在工农业生产,通信技术,家用电器等多种领域中得到了广泛的应用,特别是在门禁系统中的应用,更加受到了人们的瞩目[5]。本设计的红外线遥控智能密码锁就是将红外遥控技术和单片机应用相结合的一种方案。它的特点是:抗干扰能力强,工作可靠,使用方便,具有较强的隐蔽性、保密性,而且可以智能修改密码。 它与传统锁具的不同之处在于:它与微电脑相结合,能够实现适时、智能控制管理功能。红外遥控智能密码锁作为一种高科技产品,在酒店门锁领域已成为主导产品,现在它正以飞快的速度进入寻常百姓家。

密码锁具无需钥匙,开启方便,用途广泛。传统的机械密码锁组码位数低(3位数左右)、重码率高、安全性差、开启操作不便。电子式密码锁具以其高位

数组码、按钮式操作、安全可靠等优点,逐步取代机械密码锁。该设计使用密码控制技术,克服了传统机械式密码锁具的缺陷,具有电子式密码锁具的特点,组码位数最高可达到10位。按钮式开锁,无需光照和电源,机件牢固,安全可靠,造价低廉,集机械式、电子式密码锁具优点为一体,具有较好的市场发展前景和技术应用价值[6]。

1.3国内外概况

随着我国对外开放的不断深入,高档建筑发展很快,高档锁具市场的前景乐观。我国锁具行业对锁具高新技术的投入正逐年增大,高档锁的市场需求也逐年增加。在安防工程中,门禁系统的锁具产品是关系到整个系统安全性的重要设备,所以锁具产品的优劣也关系了整个安防工程的质量和验收。其重要性由如下事例可看出。

温州客商拟投资20亿元打造枝江中国锁都 3月17日,温州市五金商会会长、天宇锁业有限公司董事长奚德平透露,该会拟投资20亿元,在枝江市建设“中国锁都”。这是奚德平应枝江市政府之邀,率30多位企业董事长、总经理到枝江考察后作出的决定。据悉,温州有“中国锁都”之称,全市锁具产品占全国市场份

2

额65%以上[7]。

智能门锁作为一种高科技产品,在酒店门锁领域已成为主导产品。一般情况下,酒店希望智能门锁的使用寿命至少在5年以上,所以选择智能门锁时必须考虑多种因素,如产品的品牌、质量、价格、服务等,以免带来经济损失。综观硝烟弥漫的智能门锁市场,浙江的智能门锁技术无论在品牌、质量、价格,还是服务上,都走在国内该行业的前列的。

在电子控制方面,TCL智能门锁的控制电路主板采用自动贴片技术(SMT)、高温老化、在线测试、振动老化、侵漆防潮等生产工艺,从而彻底杜绝了因室内外的温差引起门锁内部水气凝结而对电路主板元器件的损坏,提高了电路的性能。而且,TCL智能门锁还采用智能编码技术,抗强光干扰,使门锁的功耗很低,降低更换门锁电池的频率。

在智能卡钥匙的加密方面,智能门锁的各种智能卡钥匙均应采用具备物理密码验证功能、安全性好、可靠性高的电子钥匙,可保存数据在10年以上,而所有的电子钥匙为了提高保密性能在编码上都采用加密算法,除了采用具有独立知识产权开发的软件系统制作电子钥匙外,电子钥匙是根本不可能复制的,克服了机械钥匙很强的可复制性,使门锁整体的安全性能降低的缺点,提高了门锁的安全性能。

在国外,美国、日本、德国的智能密码锁保密性较好,并结合感应卡技术,生物识别技术,使智能密码锁系统得到了飞跃式的发展。这几个国家的密码锁识别的密码更复杂,并且综合性比较好,已经进入了成熟期,出现了感应卡式门禁系统,指纹门禁系统,虹膜门禁系统,面部识别门禁系统,乱序键盘门禁系统等各种技术的系统,它们在安全性,方便性,易管理性等方面都各有特长,新型的密码锁系统的应用也越来越广[8]。

1.4课题的主要研究工作

课题主要解决系统在硬件和软件两方面的问题。

硬件方面要解决单片机与外围电路的接口问题,还要解决红外遥控系统的编码解码。本设计的红外遥控发射器直接采用市售的成品彩色电视机遥控器,型号为RM-F,内部芯片型号为LC7461。采用这个芯片的彩电非常普遍,很容易买到,且价格也便宜,所以只需要了解红外遥控发射器的编码。当然,电子产品的兼容性也是不容忽视的。

在软件方面,主要工作是怎样防止人为的多次试探密码和增加破解密码的难度。除此之外,程序还要完成基本的密码修改和开锁功能,并通过蜂鸣器长时间鸣叫报警通知屋主或保安。

3

2 系统设计方案的研究

2.1系统的控制特点与性能要求

为了提高智能密码锁的安全性和可靠性,成熟的红外遥控智能密码锁除在器件选择上采取措施(如采用低工耗、宽温度范围的器件)外,在设计中还要求采用以下关键技术: (1)线路复用技术

智能监控器和电子锁具异地放置,智能监控器供给电子锁具所需的电源并接收其发送的报警信息。如果采用通信线路和供电线路分开的方式,势必要增加电缆芯数,安全隐患增加,本文采用了线路复用技术,仅用一根二芯电缆,实现了供电和信息的传输[9]。

在发送端,电子锁具通过脉冲变压器T将调制好的数据信号升压后发送出去:在接收端,脉冲器T到的数据信号降压后送解调器,以减少载波信号在传输过程中的损耗。为了减少通信和供电之间的相互干扰,对扼流圈L、电容C的选择也综合考虑。

设载波频率f0=400千赫兹,为了保证绝大部分能量传输到接收端,取L=33.7微亨,c1=0.047微法拉。

(2)电流监视技术

为了防止通信线路的人为破坏和电磁执行器因某种原因造成流过电磁线圈的电流过大而烧毁线圈,本文在智能密码锁设计中采用电流监视技术。电流监视器采用MAXIM公司生产的电流/电压转换芯片AX471,该芯片能将被测电流I转化成对地输出电压U,且有测量范围大、精度高、输出电压U和被测电流I成正比等特点。电流监视器输出电压送A/D转换器,单片机通过读取A/D转换结果,获知线路中电流的变化情况,通过分析及时发现异常,发出报警信号。

(3)数据通讯与预处理技术

智能监控器接收锁具发来的状态信息(其中包括锁具的开启、关闭、第一次密码错、第二次密码错、第三次密码错等)、流过电磁执行器线圈的电流值,并读取该时刻通讯线路的供电电流值,三者结合起来构成一个数据块,其中操作状态占1个字节,供电电流占2个字节,线圈电流占2个字节。智能监控器在与电子锁具通信过程中,始终处于接收状态。为了提高通信可靠性,本文在通信协议中采用重复发送的方式,电子锁具对每一组数据重复发送5次,智能监控器接收到这组数据后,采用大数译码定律纠错,保证了数据接收的准确性。

4

2.2系统实现的原理

智能密码锁在今天能得以广泛的应用。而智能密码锁是与红外线遥控和单片机密不可分的。

当按下遥控发射器上的按键时,发射器内的编码器输出一组对应的二进制代码(这便是编码过程),再将此二进制代码按一定格式调制到高频载波上、加至红外发光二极管上变成光信号发射出去。该信号被红外接收二极管所接收变成电信号,再经放大,限幅检波及波形等处理后送入微处理器。

微处理器是遥控电路的核心,同时又是各种合成电压信号及开关控制信号的产生源,人们习惯称其为CPU[10]。它包括只读存储器(ROM)、随机存取(读/写)存储器(RAM)及专用数/模(D/A)转换器等单元电路。微处理器对遥控送来的功能信号进行译码、识别出控制种类和内容,据此控制门的开或关[11]。

接口电路介于CPU与被控制电路之间。它的主要任务是CPU输出的各种脉冲信号变为模拟电压去控制相应的电路,因此它的功能是完成数模转换和电平转换。

存储器用来记忆或存储各种控制参数,一般采用EAROM(电可改写只读存储器),它所存储的信息可长时间地保存下来,即使关闭电源,存储的信息也不会丢失。

电子锁具的组成框图如图2.1所示,它也是以51系列单片机(8051)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值、接收传感器送来的报警信号、发送数据等功能。

图2.1 电子锁具的组成框图

EEPROM 电 源 红外接收部件 51系列单片机 LED显示 继电器部件 扬声器部件 单片机接收键入的代码,并与存贮在EEPROM中的密码进行比较。若密码正确,则门打开;否则,门不开。

5

2.3系统实现方案分析

大部分红外遥控智能密码锁在硬件结构的设计上差别不大,整个红外部分电路主要由红外遥控发射电路和红外接收解码电路组成。

电子锁具的组成框图是以51系列单片机(AT89C8051)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值、接收传感器送来的报警信号等功能。

单片机接收键入的代码,并与存贮在EEPROM中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,最多可输入三次;如果三次都不正确,则单片机通过通信线路向智能监控器报警。单片机将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给智能监控器,同时将接收来自传感器接口的报警信息也发送给智能监控器,作为智能化分析的依据。 2.3.1红外遥控发射电路

本电路使用的红外线遥控编码芯片为LC7461,该芯片常常用在彩电遥控器中,我们可以直接采用市售成品彩电遥控器。

通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作[12],如图2.2所示。

键盘 编码调制 光/电放大 解调 LED 解码

图2.2 编码、解码过程

发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器,解调、解码电路。 2.3.2 遥控发射器及其编码:

红外遥控发射器专用芯片很多,根据编码格式可以分成脉冲宽度调制和脉冲相位调制两大类,这里我们以运用比较广泛,解码比较容易的脉冲宽度调制来加以说明,现以LC7461组成发射电路为例说明编码原理[13]。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:

6

采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。

上述“0”和“1”组成的42位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,

LC7461产生的遥控编码是连续的42位二进制码组,其中前26位为用户识

16位为8位的操作码和8位的操作反码用于核对数据是否接收准确。

当遥控器上任意一个按键按下超过36ms时,LC7461芯片的振荡器使芯片激活,将发射一个特定的同步码头,对于接收端而言就是一个9ms的低电平,和一个4.5ms的高电平,这个同步码头可以使程序知道从这个同步码头以后可以开始接收数据。

解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右即可。

根据红外编码的格式,程序应该等待9ms的起始码和4.5ms的结果码完成后才能读码。

2.3.3、接收器及解码

LT0038是塑封一体化红外线接收器,它是一种集红外线接收、放大、整形于一体的集成电路,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,没有红外遥控信号时为高电平,收到红外信号时为低电平,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线 数据传输[14]。

7

3 红外遥控密码锁的设计

3.1 元件的选用

为使基于单片机控制的红外线遥控密码锁在实际使用过程中方便快捷,并且具有较高的性能/价格比,所以对该系统的元器件作了精心挑选。按在实际工作中的作用,可分为以下几个部分。其中,AT89C51单片机是整个电路的核心,它控制其他模块来完成各种复杂的操作;红外线一体化接收头负责接受命令;继电器是开锁执行部件;发光二极管和蜂鸣器用来提示和报警。 3.1.1 中央控制器——AT89C51

89C51是由ATMEL公司推出的一种小型单片机,95年出现在中国市场。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,且采用ATMEL高密度非易失存储器制造技术制造,将多功能8位CPU和闪烁存储器组合在单个芯片中,可以很快被中国广大用户接受。其程序的电可泦写特性,使得开发与试验比较容易,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[15]。

89C51有很宽的工作电源电压,可为2.7~6V,当工作在3V时,电流相当于6V工作时的1/4。89C51工作于12Hz时,动态电流为5.5mA,空闲态为1mA,掉电态仅为20nA。这样小的功耗很适合于电池供电的小型控制系统。

(1)AT89C51的特点

AT89C51具有以下几个特点[16]:

①AT89C51与MCS-51系列的单片机在指令系统和引脚上完全兼容; ②片内有4k字节在线可重复编程快擦写程序存储器; ③全静态工作,工作范围:0Hz~24MHz; ④128×8位内部RAM; ⑤32位双向输入输出线; ⑥两个十六位定时器/计数器; ⑦五个中断源,两级中断优先级; ⑧一个全双工的异步串行口;

8

⑨间歇和掉电两种工作方式。 (2) AT89C51的功能描述

AT89C51是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。它与MCA-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。

AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于4K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。工作电压范围宽(2.7V~6V),全静态工作,工作频率宽在0Hz~24MHz之间,比8751/87C51等51系列的6MHz~12MHz更具有灵活性,系统能快能慢。AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作[17]。

(3) AT89C51引脚功能

9

AT89C51单片机为40引脚芯片,如上图3.1。

地址总线和数据总线:P0、P1、P2、P3共四个八位口:

① P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。P0口也用以输出外部存储器的低8位地图1址。由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存信号用ALE。

② P1口是专门供用户使用的I/O口,是准双向口。

③ P2口是从系统扩展时作高8位地址线用。不扩展外部存储器时,P2口也可以作为用户I/O口线使用,P2口也是准双向口。

④ P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能。作为第一功能使用时操作同P1口。P3口的第二功能如下表3.1所示[18]。

表3.1 P3口的第二功能

控制口线RESET(复位控制)、:PSEN(片外选取控制)、ALE/PROG(地址锁存控制)、PSEN(选通信号)、EA/VPP(片外存储器选择)、XTAL1 /XTAL2(晶震);

RST:当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲;在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此

10

时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

③ 电源及时钟:VCC、VSS、XTAL1、XTAL2 见操作方法。

(4) 操作方法

① 程序存储器加密。AT89C51芯片程序存储器有三级硬件加密,能够有效地保证系统不被仿制和软件不被复制,实现加密等级设置[19]。

② 工作模式。AT89C51有间歇和掉电两种工作模式。间歇模式是由软件来设置的,当外围器件仍然处于工作状态时,CPU可根据工作情况适时地进入睡眠状态,内部RAM和所有特殊的寄存器值将保持不变。这种状态可被任何一个中断所终止或通过硬件复位。

掉电模式是VCC电压低于电源下限,振荡器停止振动,CPU停止执行指令。该芯片内RAM和特殊功能寄存器值保持不变,直到掉电模式被终止。只有VCC电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位掉电模式可被终止。

3.1.2红外遥控发射器

本设计的红外遥控发射器直接采用市售的成品彩色电视机遥控器,型号为RM-F,内部芯片型号为LC7461[20]。采用这个芯片的彩电非常普遍,很容易买到,且价格也便宜。

该遥控器的基本组成如下图3.2所示。它主要由形成遥控信号的微处理器芯片、晶体振荡器、放大晶体管、红外发光二极管以及键盘矩阵组成。其工作原理如下:

11

图3.2 遥控器的基本组成电路图

微处理器芯片IC1内部的振荡器通过2、3脚与外部的振荡晶体X组成一个高频振荡器,产生高频振荡信号(480kHz)。此信号送入定时信号发生器后产生40KHz的正弦信号和定时脉冲信号。正弦信号送入编码调制器作为载波信号;定时脉冲信号送制扫信号发生器、键控输入编码器和指令编码器作为这些电路的时间标准信号。

IC1内部的扫描信号发生器产生五种不同时间的扫描脉冲信号,由5~9脚输出送至键盘矩阵电路。当按下某一键时,相应于该功能按键的控制信号分别由10~14脚输入到键控编码器,输出相应功能的数码信号。然后由指编码器输出指令码信号,经过调制器调制在载波信号上,形成包含有功能信息的高频脉冲串,由17脚输出经过晶体管BG放大,推动红外线发光二极管D发射出脉冲调制信号。

该红外遥控编码芯片采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如下图3.3所示[21]。

图3.3 脉宽调制的串行码示意图

12

3.1.3 红外遥控接收组件

(1)红外线传感器

系统选用性价比高的红外线传感器集成芯片BISS0001,该芯片主要特点是: 用CMOS工艺,功耗低[22];

独立的高输入阻抗的运算放大器,可与多种传感器匹配;

双向鉴幅器可有效抑制干扰信号内设延时和封锁定时器,性能稳定,调节范围宽;

内置参考电源工作电压范围宽(3V——6V)。 BISS0001采用双列直插(DIP)封装,共16个引脚。

1脚(A):可重复触发或不可重复触发控制端。当A=1时,允许重复触发;否则不可重复触发。

2 脚(V0):控制信号输出端。由Vs的上跳沿触发,使V0从低电平跳变到高电平为有效触发。在输出延迟时间Tx之外和无Vs的上跳变时,V0为低电平状态。

3、4脚(RR1,RC1):输出延迟时间Tx的调节端,Tx=49225R1C1。 5、6脚(RC2,RR2):触发封锁时间的调整端Ti,Ti=24R2C2。 7脚(Vss):电源负端,接地。

8脚(Vrf/Reset):参考电压及复位输入端。一般接Vdd,为低时可使定时器复位。

9脚(Vc):触发禁止端。当Vc〈Vr时,禁止触发;否则,允许触发,Vr=0.2Vdd。10脚(IB):运算放大器偏置电流设置端。经由1毫欧姆左右的Rb接Vss端。

11脚(Vdd):电源端。Vdd=3——5V。 12脚(2OUT):第二级运算放大器输出端。 13脚(2IN-):第二级运算放大器反向输入端。 14脚(1IN+):第一级运算放大器同向输入端。 15脚(1IN-):第一级运算放大器反向输入端。 16脚(1OUT):第一级运算放大器输出端。

BISS0001工作原理:利用运算放大器OP1组成信号预处理电路,将传感器信号放大,然后耦合算放大器OP2,再进行第二级放大,同时,将直流电平抬高为Vm(=1/2Vdd):送到比较器COP2和COP2组成的双向鉴幅器,捡出有效触发信号Vs,由于双向鉴幅器的门槛电压为Vh=0.7Vdd,Vl=0.3Vdd时。当Vdd=5V时,可有效地抑制+或-1V的噪声干扰,提高各级系统的可靠性。COP3是一个条件比较器,当输入控制电平Vc〈Vr(=0.2Vdd),输出为高电平。

13

(2)红外接收解码电路

解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可[23]。

遥控接收放大器由遥控接收放大器集成电路TDA3047/48及周围元件组成。 遥控信号接收电路的作用是将接收到的红外遥控信号转换成电信号,并加以解调输出,送给微处理器进行译码处理,译出指令并执行相应的操作程序,再通过执行部件实现对键盘的控制。

红外遥控接收器由红外检波二极管D1、放大集成电路IC1和外围元件组成,。IC1(CX20106A)是红外线遥控预放集成电路,它是8脚双极性器件集成电路,主要由放大器、限幅放大级、带通滤波器、信号检波器和整形器等组成。CX20106A集成电路具有以下特点:

低功率损耗;

低电源电压(Vcc=5v);

带通滤波器制造在块内芯片上,它不使用电感,故能防止电磁干扰,同时内装的滤波器可用外加电阻改变中心频率;

可以直接连接到发光二极管;

集电极开路输出可以直接接到TTL和CMOS。

遥控信号是调制在红外线上的脉冲信号,当遥控器工作时,红外检波二极管D1检出载有相应频率的脉冲信号,然后经滤波器滤波,再经过检波器检波后得到指令码脉冲,该指令码脉冲在经积分电路和磁滞曲线比较器对脉冲整形,最后输出指令码脉冲。该指令码脉冲在送至单片机,经处理后,发出命令执行相应的动作。

3.1.4 EEPROM存贮器AT24C02电路

ATW4C02是美国ATMEL公司的低功耗CMOS串行EEPROM,它是内含256×8位,具有工作电压宽(2.5—5.5V)、擦写次数多(大于1000次)、写入速

[24]

度快(小于10ms)等特点。下图3.4为AT24C02的引脚图。

14

图3.4 AT24C02的引脚图

图中A0、A1、A2是三条地址线,用于确定芯片的硬件地址。Vcc和Vss分别为正、负电源。SDA为串行数据输入/输出端,数据通过这条双向PC总线传送。SCL为串行时钟输入线。SDA和SCL需要和正电源间各接一个10k的电阻上拉。第7脚需要接地。

对DPROM来说:从部件AT24C02从地址的前四位是固定的1010,它的低3位为A0、A1、A2,且是可编程的。在电路中3位地址输入引脚必须接Vcc或Vss,不能悬空。PC总线最多可挂8片 AT24C02,不需要附加任何硬件电路。它们很适合应用于一些非高速系统中。AT24C02即可用于带PC总线的单片机吸引,也可用于不带PC总线的单片机系统。

3.2 系统的设计

电路原理图如下图3.5:

图 3.5 系统电路原理图

把“单片机系统”区域中的P0.0/AD0用导线连接到“音频放大模块”区域中的SPK IN端子上;

15

把“音频放大模块”区域中的SPK OUT端子接喇叭或蜂鸣器; 把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“四路静态数码显示”区域中的任一ABCDEFGH端子上;

把“单片机系统”区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L1端子上;

把“单片机系统”区域中的P3.6/WR、P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2端子上。

程序设计内容:

(1)密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“1111”共4位密码;

(2)密码的输入问题

由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程;

(3)按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。

要修改密码时,先按ENTER一下,修改密码灯就闪一下,表示将要修改密码了,请先输入原密码。当输入原密码正确后,修改密码灯就一直亮着,直到密码修改完毕并按一次ENTER键为止。

第二个二极管为开锁灯。当直接输入密码(输入密码前没按ENTER键)后,在按ENTER键结束,若密码正确,则此灯闪亮多次同时打开锁。

第三个二极管为与蜂鸣器配套用灯,与蜂鸣器一起动作。当灯亮时,蜂鸣器同时叫;灯熄灭时,蜂鸣器也同时停。它的闪烁方式有如下几种: (1)每按键一下,此灯闪烁一次;

(2)输入密码错误时,此灯较长时间地闪烁;

(3)输入密码错误达三次时,此灯持续闪烁30分钟时间;

在密码输入正确时,开锁的整个过程汇总,此灯一直闪烁直至锁已打开。

16

4 系统的实现

4.1软件子系统

系统总体程序流程图如下:

中断返回 图4.1 系统程序总体流程图

长时报警 短时报警 是第三次错误吗? 密码修改程序 打开开关

核对密码,密码对否? 按1还是按2 ? 接收码正确否? 红外接收解码 INT0中断服务程序 有红外中断吗? 开始 17

实验:

根据设定好的密码,采用两个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3秒种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。

下图是实验仿真程序流程图: 开始 取参数 修改密码吗? 标志位清零 开锁 输入密码 短报警 按enter了吗? 开锁灯亮 密码正确吗? 标志位清零了吗? 有三次吗? 修改密码灯亮 位数变零 长报警 标志位置1 输入新密码 位数加1 按enter了吗? 图4.2 实验仿真程序流程图

该系统程序的编写可以看成以下三部分:

18

第一部分:红外接收程序。这一部分的任务是完成密码的接收并校验此密码的传输是否正确;

第二部分:密码核对程序。这一部分比较简单,只要在一一核对密码的过程中发现一个数字不对,就把标志位00H清零。系统一旦发现00H为0就判断此时输入的密码错误;

第三部分:密码修改程序。这一部分主要注意的是密码位数用一个数据存储器单元存放,这个数据只在修改密码时可改。这样用户设定的密码位数就成了随意的,而每位数字均可为8位数字中的任意一个,这样组成的密码被破解的可能性就非常小(若扩展为10位数则更佳),特别是当别人不知密码位数时更不可能破解。

由于仿真实验箱的条件限制,省略了红外遥控部分,用扳键与单片机直接相连,实验仿真程序就没有红外接收程序,其他部分程序也相应有所变化。另外一点要说明的是为了防止别人多次试探密码,报警时间设置得长一些以引起周围人的注意。

4.2实验仿真系统的介绍

4.2.1系统概述

该设计是以8051单片机芯片为核心,以蜂鸣器,扳键开关等为辅助器件的红外遥控密码锁系统。通过红外遥控发射、编码,红外遥控接收、解码,单片机的软件核对密码,开门或关门几个步骤实现对门的开或关的控制。在仿真系统中,开或关门的动作以蜂鸣器的报警时间以及不同的指示灯来区别。 4.2.2系统组成

Dais系列单片机微机仿真实验系统的MCS-51单片机实验与仿真由管理CPU89C52系统单元、弥补CPU8032或438单元、接口实验单元和内置稳压电源组成,通过RS232C串行接口与PC微机相连,系统硬件主要内容如下表4.1[25]:

表4.1

CPU 系统存储器 管理CPU89C52、目标CPU8032/78E438 监控在89C52内EEPROM(8K)、RAM6264、RAM61256一片(32K)、BPRAM61256(32K) 接口芯片及单元实验 8253、8255、8259、ADC0809、DAC0832、6264、164、273、244、393分频、电子发声单元、电机控制单元、开关及发光二极管、单脉冲触发器、继电器控制16×16点阵、8155扩19

展3×3键盘、4位LED显示、2×16LCD显示、40芯锁紧式接口扩展及8250、8251接口通信等 外设接口 打印接口,RS232C串口、D/A驱动接口、步进电机驱动接口、51仿真接口、支持P0口、P2口及P3.6、P3.7的第二功能(PIO)的仿真、2×16LCD液晶显示接口 显示器 键盘 EPROM编程器 系统电源 6位LED,二路双踪示波器 32键自定义键盘 对EPROM2764/27128快速读出 +5V/2A,±12V/0.5A

4.3实验仿真

4.3.1仿真实验接线

整个系统的接线可分为按键部分和执行部分。

(1)按键部分。在此部分用9个扳键开关K1~K9代表9个按键,扳键从高电平打至低电平再打回高电平状态,即是按键一次。

K1~K8表示数字键1~8,接在单片机P1.0~P1.7上,K9表示Enter键和修改密码起始键的复合键,接在P3.0上。K9模仿按键来回动作一次,若该动作在输入数字键之前,则表示修改密码,此后系统进入修改密码状态;若该动作在输入数字键之后,则表示“Enter”键,其意义是该动作之前输入的密码结束(即确认该动作之前输入的数字为输入的密码)。 (2)执行部分

P3.1接在发光二极管L1上(L1是修改密码指示灯)。L1迅速闪烁一下表示按下了修改密码键,系统已经进入了修改密码模式,接下来操作人员需输入原始密码。

L1始终亮着则表示在修改密码时输入的原密码正确了,现在请输入新密码。 P3.2接发光二极管L2,它表示开锁信号,L2亮表示开锁成功。 P3.3接发光二极管L5,它有多种工作方式。在按键时,每按一个键,L5 都闪烁一下,表示成功地按下了这个键;在报警时,L5在整个报警过程中都在闪烁;

P3.4接蜂鸣器,它与P3.3保持完全一致。L5亮时,蜂鸣器就响;L5灭时,蜂鸣器就不响。蜂鸣器及驱动电路如图下4.3:

20

图4.3 蜂鸣器及驱动电路如图

4.3.2 仿真实验演示

为了更好地达到仿真效果,仿真过程分为以下几种情况: (1)开锁过程

先用K1~K8输入开锁密码(密码初始值是1111),按Enter键结束。其结果是:

① 若密码正确,则L2亮,可开锁;

② 若密码错误且错误次数小于3次,则L5较长时间地闪烁(设为5s), 蜂鸣器同时鸣叫相同时间以报警;

③ 若密码错误且错误次数大于3次,则L5很长时间闪烁(设为12s),蜂鸣器同时鸣叫相同时间以报警。

在以上所有过程中,每按键一次,L5

都会闪烁一下,同时,蜂鸣器相应地鸣叫一声。

(2)设密过程

先按“Enter/Reset”键,L1就会闪烁一下,此时就可输入原密码,原密码输入完毕后按Enter键结束。其结果是:

① 若原密码正确,则L1灯亮,表示要求输入新密码,新密码输入完毕就按Enter键,表示新密码得以确认,随后L1熄灭,密码修改成功;

② 若密码错误且错误次数小于3次,则L5较长时间地闪烁(设为5s); ③ 若密码错误且错误次数大于3次,则L5很长时间闪烁(设为12s),蜂鸣器同时鸣叫相同时间以报警。

(3)仿真中遇到的问题及解决办法 ① 用扳键还是用键盘仿真?

用扳盘一方面能清晰地表示按键的每一个过程,并且扳键与单片机的连线一目了然;另一方面,基于本设计较为基础,8个数字键已完全能满足系统的要求。

21

② 怎样增加密码的保密性?

为了增加密码的保密性,主要需要对程序的软件进行设计。设定密码的位数可为任意的,在别人不知到密码位数的情况下要试出开锁密码是几乎不可能的。具体做法是在修改密码时设定一个密码位数存储单元,用来存储密码的位数。密码位数和密码一样,只在修改密码时才可以改动。

另外,在实际设计中,用遥控器上的一个特殊键作为Enter键,若这个键的位置别人不可知,则输入的数据无效。

③ 怎样区别修改密码与开锁?

为了不增加一个键作为修改密码键(即Reset键),本设计将它与Enter键复合使用,在输入密码以前按Enter/Reset就表示要修改密码;在输入密码以后按Enter/Reset就表示要确认了刚才输入的密码。通过这种方法就把修改密码与开锁用一个键区分开了。

22

5 总结与展望

完成了这次设计后,感触很多,大学四年的理论终于大多都付诸了实践,在实践中探索,在实践中成长。

关于红外遥控系统的智能控制,在工业、学校、生活中都用得很广,各种成品更是层出不穷,如果把它结合当今的感应卡技术,生物识别技术进行扩展,能使智能密码锁系统得到了飞跃式的发展,这项研究将很有意义。希望更多的科研工作者投身于这项事业,同时也急切地盼望各位老师对这篇论文给予批评和指导!

23

致谢

我首先要感谢我的导师谭忠祥老师。诚挚感谢谭老师在我写论文期间对我的引导和启发。在整个论文的选题、理论研究、需求分析、总体设计、详细设计的过程中,自始至终得到了导师谭忠祥老师的悉心指导和深切关怀。感谢导师谭忠祥老师对我论文不厌其烦的精心修改,谭忠祥老师多次耐心地审阅了论文全稿,提出了许多宝贵的意见。谭忠祥老师虚怀若谷的高尚品德、严谨的治学态度、诲人不倦的精神、高深的学术造诣和对学科前沿问题的敏锐洞察力,给我留下了深刻的印象,这一切将使我受益终身。没有导师谭老师的及时指导,我是无法完成我的学士论文的。在我将要完成学业之际,我要对恩师致以诚挚的谢意和良好的祝愿!

在整个大学的学习阶段,我要感谢信息工程学院的全体老师给我们讲述知识,使我们受益匪浅,是您们才给了我们这样的机会,在此,向您们致以崇高的敬意!

在论文的完成过程中,得到了其他许多让我分享他们宝贵经验和知识的老师以及同学的热心帮助,向他们表示由衷的感谢。同时,我还要感谢这一领域的学者们,是他们给我经验和研究方向,文中引用了一些他们研究成果,在此一并表示衷心的感谢。

由于本人的水平和时间有限,文中错误之处在所难免,希望各位老师和同学们批评指正,本人不胜感激。

最后,忠心感谢所有亲人给予我的关心、爱护、支持和帮助!

24

参考文献

[1] 阎石. 数字电子技术基础. 清华大学出版社. 北京:高等教育出版社,1998:198

[2] 高移南. 遥控变号电子锁. 电子世界,1994,07:15

[3] Susan A. R. Garrod, Rober J. Borns . Digital logic; Analysis, Application$Design,

Purdue University. Saunders College Publishing. Philadelphia,1991:45

[4] A.T. Alouani,etal. On sensor Track Fusion. Proceedings of America control

Conference,Maryland, June 1994:1042~1044

[5] 曹巧媛. 单片机原理及应用.北京:电子工业出版社,1997:141~147 [6] 潘永雄. 新编单片机原理与应用.西安:西安电子科技大学出版社,2003.2:

253~256

[7] 王汝文,宋政湘,杨伟等.电器智能化原理及应用.北京:电子工业出版

社,2003.4:45

[8] 曾泽昭. 红外遥控电子密码锁应用研究. 国外电子元器件,2004,04:25 [9] Atmel corporation. AVR RISC Microcontroller. Data Book,1999:54

[10] Franz JH.Jain VK. Optical Communication Components and systems. London:

Narosa Publishing House,2000:98

[11] 何立民. 单片机高级教程. 北京:北京航空航天大学出版社,2000:278 [12] 李士雄,丁康源. 数字集成电子技术教程. 北京:高等教育出版社,1993:

23

[13] 赵绣珍,单永磊. 单片微型计算机原理及应用.北京:中国水利水电出版

社,2001:143~162

[14] 沙占友,王彦朋等.单片机外围电路设计.北京:电子工业出版社,2003: 168 [15] 周航慈. 单片机应用程序设计技术. 北京:北京航空航

大学出版

社,2002:11

[16] 金月,陈安民,胡志杰. 国产彩电遥控系统电路、元器件、维修. 北京:

科学普及出版社,1992:2~3

[17] 刘光斌,刘冬,姚志成. 单片机系统实用抗干扰技术北京:人民邮电出版

社,2003:56

[18] 杨光友,朱宏辉. 单片机原理及接口技术. 北京:中国水利出版社,2002:

456

[19] 胡汉才. 单片机原理及其接口技术. 北京:清华大学出版社,2002:127 [20] 金月,陈安明,胡永杰. 国产彩电遥控系统电路和元器件. 北京:科学普

及出版社,2001. 12:56

25

[21] 高锋. 单片微机应用系统设计及实用技术. 北京:机械工业出版社,2004:

300

[22] Amonon Yariv. Optical Electronics in Modern Communications(Fifth

Edition). London: Oxford University Press, 2003:76

[23] 付丽辉,戴峻峰. 红外遥控智能密码锁设计. 世界电子元器件,2002,08:37 [24] 陈燕春. 单片机红外遥控密码锁. 电子制作, 2004,12(27~30)

[25] 启东达爱思计算机有限公司.Dais系列仿真实验系统简介.单片机微机仿真

实验系统(使用手册),1996:1~8

26

附 录

附录1:密码锁实验仿真程序: org 0030h set00:

mov 30h,#0feh mov 31h,#0feh mov 32h,#0feh mov 33h,#0feh mov r2,40h mov 40h,#04h mov r3,#03h

main:setb p3.1 mov r0,#30h

jb p3.0, ks ;是否按了“确认”键 acall delay0 jb p3.0,main l1:jnb p3.0,l1 sjmp setm

setm:clr p3.1 acall delay11 setb p3.1 acall inright jnb 00h,bk1

clr p3.1 ;可以改密码指示灯 mov 40h,#01h set1:acall keyin jb 01h,set2 setb 01h dec 40h dec r0 mov r3,#03h sjmp main

27

set2: mov @r0,a inc 40h inc r0 sjmp set1

bk1:djnz r3,bukai mov r7,#018h

lop1:acall bp ;最长鸣叫 acall delay11 djnz r7,lop1 mov r0,#30h setb 00h setb 01h mov r3,#03h sjmp main bukai: mov r7,#08h

lop2:acall bp ;较长鸣叫 acall delay11 djnz r7,lop2 mov r0,#30h setb 00h setb 01h sjmp main

ks:mov a,p1

cjne a,#0ffh,ksuo sjmp main ksuo:acall inright jnb 00h,bk2 sjmp kkk

kkk:clr p3.2 ;开锁长鸣 acall bp mov r7,#0ffh lop00: acall delay0

28

djnz r7,lop00 setb p3.2 mov r0,#30h setb 01h mov r3,#03h sjmp main

bk2:djnz r3,buk mov r7,#018h

lop3:acall bp ;最长鸣叫 acall delay11 djnz r7,lop3 mov r0,#30h setb 00h setb 01h mov r3,#03h ljmp main buk:mov r7,#08h

lop4:acall bp ;较长鸣叫 acall delay11 djnz r7,lop4 mov r0,#30h setb 00h setb 01h sjmp ks

keyin:jb p3.0, lk0 ;是否按了“确认”键 acall delay0 jb p3.0,lk0 lk1:jnb p3.0,lk1

clr 01h sjmp zfg lk0: mov a,p1 cjne a,#0ffh,mm sjmp keyin

29

mm: mov 41h,a acall delay0 mov a,p1 clr c subb a,41h jnz keyin next0:mov a,p1 subb a,41h jz next0 mov a,41h setb 01h

zfg:acall bp ;按键声ret

inright:mov r2,40h lll: acall keyin jnb 01h,tyg jnb 02h,wrong subb a,@r0 inc r0 jz continue wrong:clr 00h continue:djnz r2,lll clr 02h sjmp lll

tyg:cjne r2,#00h,wrong2 mov r0,#30h setb 02h ret

wrong2:clr 00h mov r0,#30h setb 02h ret

30

delay0:mov r4,#05h lp1: mov r5,#0ffh lp2: djnz r5,lp2 djnz r4,lp1 ret

delay11:

mov r4,#01h lp3:mov r5,#0ffh lp4:mov r6,#0ffh lp5:djnz r6,lp5 djnz r5,lp4 djnz r4,lp3 ret

bp:clr p3.3 setb p3.4 mov r4,#0ffh

lp6: mov r5,#0ffh lp7: djnz r5,lp7 cpl p3.3 cpl p3.4 djnz r4,lp6 ret end

31

附录2:做实物的红外遥控密码锁程序源程序: KEY_NUMBER EQU 4BH KEY EQU 4CH

KEY_CHECK_WORD EQU 4DH

ORG 0000H

AJMP MAIN;转入主程序

ORG 0003H ;外部中断P3.2脚INT0入口地址

AJMP INT ;转入外部中断服务子程序(红外遥控解码程序);以下为主程序进行CPU中断方式设置 ORG 030H MAIN: MOV 48H,#00H MOV 49H,#00H MOV 4AH,#00H

MOV KEY_NUMBER,#03H ;密码初始化 MOV 30H,#10H;0 MOV 31H,#12H;2 MOV 32H,#11H;1 MOV 33H,#11H;1 MOV 34H,#15H;5 MOV 35H,#12H;2

SETB EA ;打开CPU总中断请求

SETB IT0 ;设定INT0的触发方式为脉冲负边沿触发 SETB EX0 ;打开INT0中断请求 START:

AJMP START;反复循环

;以下为进入P3.2脚外部中断子程序,也就是解码程序 INT: CLR EA ;暂时关闭CPU的所有中断请求 MOV R6,#10

SB: ACALL YS1;调用882微秒延时子程序

32

JB P3.2,EXIT;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序

DJNZ R6, SB;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序

;以上完成对遥控信号的9000微秒的初始低电平信号的识别。 JNB P3.2, $ ;等待高电平避开9毫秒低电平引导脉冲 ACALL YS2 ;延时4.74毫秒避开4.5毫秒的结果码

MOV R7,#26;忽略前26位系统识别码

JJJJA:JNB P3.2,$;等待地址码第一位的高电平信号

LCALL YS1;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态 MOV C,P3.2;将P3.2引脚此时的电平状态0或1存入C中 JNC UUUA;如果为0就跳转到UUUA

LCALL YS3;检测到高电平1的话延时1毫秒等待脉冲高电平结束 UUUA: DJNZ R7,JJJJA

MOV R1,#50H ; 设定1AH为起始RAM区

MOV R2,#2; 接收从50H到51H的2个内存,用于存放操作码和操作反码 PP: MOV R3,#8; 每组数据为8位

JJJJ: JNB P3.2,$; 等待地址码第一位的高电平信号

LCALL YS1;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态 MOV C,P3.2;将P3.2引脚此时的电平状态0或1存入C中 JNC UUU;如果为0就跳转到UUU

LCALL YS3;检测到高电平1的话延时1毫秒等待脉冲高电平结束 UUU: MOV A, @R1 ;将R1中地址的给A RRC A;将C中的值0或1移入A中的最低位

MOV @R1 ,A;将A中的数暂时存放在R1数值的内存中 DJNZ R3,JJJJ;接收满8位换一个内存 INC R1;对R1中的值加1,换下一个RAM

DJNZ R2,PP ;接收完8位数据码和8位数据反码,存放在50H/51H中

MOV A,50H

CPL A;对50H取反后和51H比较

33

CJNE A,51H,EXIT;如果不等表示接收数据发生错误,放弃

MOV R1,48H MOV R2,49H MOV R3,4AH ACALL CHECK MOV 4AH,R3 MOV 49H,R2 MOV 48H,R1

EXIT: SETB EA ;允许中断 RETI ;退出解码子程序

YS1: MOV R4,#20 ;延时子程序1,精确延时882

微秒 D1: MOV R5,#20 DJNZ R5,$ DJNZ R4,D1 RET

YS2: MOV R4,#10 ;延时子程序2,精确延时4740微秒 D2: MOV R5,#235 DJNZ R5,$ DJNZ R4,D2 RET

YS3: MOV R4,#2;延时程序3,精确延时1000微秒 D3:MOV R5,#248 DJNZ R5,$ DJNZ R4,D3 RET

;密码检测程序 CHECK: MOV A,50H

CJNE A,#0AH,CHECK_KEY_0 CLR P3.5;蜂鸣器鸣响嘀嘀嘀的声音 LCALL YS2

34

LCALL YS2 LCALL YS2

SETB P3.5;蜂鸣器停止 SETB P3.7 MOV KEY,#0H RET

CHECK_KEY_0:

CJNE A,#01H,CHECK_KEY_1 ACALL SOUND_KEY_PUT MOV KEY,#01H MOV R1,#38H MOV R2,#06H RET

CHECK_KEY_1: MOV A,KEY

CJNE A,#01H,CHECK_KEY_2 CLR P3.5;蜂鸣器鸣响嘀嘀嘀的声音LCALL YS2 LCALL YS2 LCALL YS2

SETB P3.5;蜂鸣器停止 ACALL KEY_PASS RET

CHECK_KEY_2: MOV A,KEY

CJNE A,#02H,CHECK_KEY_3 MOV A,50H

CJNE A,#11H,CHECK_KEY_2B CLR P3.5;蜂鸣器鸣响嘀嘀嘀的声音LCALL YS2 LCALL YS2 LCALL YS2

SETB P3.5;蜂鸣器停止 ACALL KEY_OPEN RET

35

CHECK_KEY_2B: MOV A,50H

CJNE A,#12H,CHECK_KEY_2C MOV KEY,#03H MOV R1,#38H MOV R2,#06H MOV R3,#02H

ACALL SOUND_KEY_PUT CHECK_KEY_2C: RET

CHECK_KEY_3: MOV A,KEY

CJNE A,#03H,CHECK_KEY_3B CLR P3.5;蜂鸣器鸣响嘀嘀嘀的声音LCALL YS2 LCALL YS2 LCALL YS2

SETB P3.5;蜂鸣器停止 ACALL KEY_MODIFY CHECK_KEY_3B: RET

KEY_PASS: MOV @R1 ,50H INC R1

DJNZ R2,KEY_PASS_EXIT MOV R1,#38H MOV R2,#30H MOV R3,#06H ACALL KEY_CHECK MOV A,KEY_CHECK_WORD JZ KEY_WRONG MOV KEY,#2H

MOV KEY_NUMBER,#03H ACALL SOUND_KEY_OK

36

KEY_PASS_EXIT:RET

KEY_CHECK: MOV A,R2 MOV R0,A MOV A, @R0 XRL A, @R1 JNZ KEY_CHECK_1 INC R1 INC R2

DJNZ R3,KEY_CHECK

MOV KEY_CHECK_WORD,#01H RET

KEY_CHECK_1:

MOV KEY_CHECK_WORD,#00H RET

KEY_WRONG:

ACALL SOUND_KEY_WRONG DJNZ KEY_NUMBER,KEY_WRONG_1 MOV KEY,#0 MOV R0,#15 SOUND_WRONG_3:

ACALL SOUND_KEY_WRONG ACALL DELAY

DJNZ R0,SOUND_WRONG_3 MOV KEY_NUMBER,#03H RET

KEY_WRONG_1: MOV R1,#38H MOV R2,#06H

ACALL SOUND_KEY_PUT RET

37

KEY_MODIFY: MOV @R1 ,50H INC R1

DJNZ R2,KEY_MODIFY_EXIT DJNZ R3,KEY_MODIFY_2 MOV R1,#38H MOV R2,#40H MOV R3,#06H ACALL KEY_CHECK MOV A,KEY_CHECK_WORD JZ KEY_MODIFY_WRONG MOV R1,#30H MOV R2,#38H MOV R3,#06H KEY_MODIFY_PASS: MOV A,R2 MOV R0,A MOV A, @R0 XCH A, @R1 ;字节交换 INC R1 INC R2

DJNZ R3,KEY_MODIFY_PASS MOV KEY,#02H

ACALL SOUND_KEY_OK RET

KEY_MODIFY_2: MOV R1,#40H MOV R2,#06H

ACALL SOUND_KEY_PUT RET

KEY_MODIFY_WRONG: MOV KEY,#02H

ACALL SOUND_KEY_WRONG

38

RET

KEY_MODIFY_EXIT: RET

KEY_OPEN: CLR P3.7 MOV KEY,#0 RET

DELAY:MOV R4,#04H;延时子程序,12M晶振延时约500毫秒L3: MOV R2 ,#0FAH L1: MOV R3 ,#0FAH L2: DJNZ R3 ,L2 DJNZ R2 ,L1 DJNZ R4 ,L3 RET

;1声,请输入密码,0.5秒/声 SOUND_KEY_PUT ;2声,密码错误,2秒 SOUND_KEY_WRONG ;2声,密码成功,0.2秒/声 SOUND_KEY_OK

SOUND_KEY_WRONG: CLR P3.5 MOV R7,#010

KEY_WRONG_D1:MOV R6,#250 KEY_WRONG_D2:MOV R5,#250 DJNZ R5,$

DJNZ R6,KEY_WRONG_D2 DJNZ R7,KEY_WRONG_D1

SETB P3.5

RET

SOUND_KEY_OK: CLR P3.5

39

MOV R4,#03

KEY_OK_D1:MOV R6,#250 KEY_OK_D2:MOV R5,#250 DJNZ R5,$

DJNZ R6,KEY_OK_D2 CPL P3.5

DJNZ R4,KEY_OK_D1 SETB P3.5 RET

SOUND_KEY_PUT: CLR P3.5 MOV R7,#03

KEY_PUT_D1:MOV R6,#250 KEY_PUT_D2:MOV R5,#250 DJNZ R5,$

DJNZ R6,KEY_PUT_D2 DJNZ R7,KEY_PUT_D1 SETB P3.5 RET END

40

本文来源:https://www.bwwdw.com/article/7xqp.html

Top