基于单片机红外遥控电子密码锁设计

  • 格式:doc
  • 大小:28.50 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机红外遥控电子密码锁设计

摘要:本文阐述了基于STC89C52单片机的红外遥控密码锁的设计,给出了红外接收器的设计电路。通过对红外线信号的发射和接收的详细研究,设计出了一种对遥控信号进行准确译码方法和电路。本设计集红外开锁、本机开锁、修改密码、报警和显示于一体,可以用于家庭,宾馆,仓库,私家车库等场所,本设计具有电路结构简单、集成度高、抗干扰能力强、动作稳定可靠、易于制作、安装方便等优点,在室内有效遥控距离可达13m,在室外也可达10m。

关键词:单片机红外线密码锁遥控

目前大部分的锁采用的都是机械式的,其最大的缺点是利用简单工具就能很容易地把锁打开。根据用户的要求和需要,主要为了解决当前市场上无遥控密码锁的问题,以提高门禁系统的可靠性和安全性,适应市场需要而设计的该红外遥控密码锁系统。但一般设备都采用专用的遥控编码及解码集成电路,其制作简单、容易,但由于特定功能的限制,只适用于专用的电器产品,其应用范围受到限制。

1 密码锁总体设计

基于单片机系统的红外遥控密码锁由发射模块和接收模块两部分构成,遥控器发射模块可以随身携带,只要在接收器附近,即可遥控开锁;接收器则集开锁、修改密码、报警和显示于一体[2-4]。

本系统采用单片机STC89C52为本设计的核心元件,利用红外遥控原理和单片机串行接收,键盘扫描等功能而设计的一款具有本机开锁,遥控开锁和可修改密码的电子密码锁。

STC89C52作为本电路的核心,P1口外接本机电源。P3.2口外接红外接收头,P0.2口接电源指示灯,P0.4口外接报警信号放大器,用来放大报警信号,驱动蜂鸣器,P0.6外接电磁锁驱动电路,用绿色LED指示灯指示所得开关,P2口接LCD提示当前输入,P3.4,P3.5外接EEPROM 用于存储密码。

2 红外解码设计

本设计采用万能遥控器作为放射器,而万能遥控器在使用前一般要进行设置,针对RM-2008这款万能遥控,设置方法如下: 先按住“设置”键不放,再按下“电源”(“开/关”)键,工作指示灯亮起,然后释放两键,在此时进入代码输入状态,依次键入000指示灯熄灭,设置成功!其中,000编码是日本NEC公司的红外编码方式,也就是应用最广泛的通用的红外编码方式,另外本设计只能对此编码进行解码。

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

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

通用遥控器产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间[7]。

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

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

注:代码宽度算法:

16位地址码的最短宽度:

1.12×16=18ms

16位地址码的最长宽度:

2.24×16=36ms

易知8位数据代码及其8位反代码的宽度和不变:(1.12ms+2.24ms)×8=27ms

所以32位代码的宽度为(18ms+27ms)~(36ms+27ms)

3 系统软件设计

主程序部分主要是对各个子功能模块连接,使其共同完成一个整体的功能。主流程在完成各种变量和I/O初始化后,首先开始查询是否接收到红外信号,若收到红外信号,则转到红外开锁子程序;若没有收到红外信号,则继续查询键盘是否按下,如果没有按键按下,则转到继续查询是否接收到红外信号,如果键盘按下则判断开锁键还是修改密码键,转到相应的子程序。

红外信号通过P3.2口采用外部中断方式传送给单片机,单片机查询是否输入已满六位,未满继续等待输入,若已满则比较密码正确则开锁,错误则转到接收密码状态,若错误三次,则锁机。

4 结语

芯片采用STC89C52由于52芯片与51芯片价格相同,且52功能更加强大,使产品功能更加强大,有利于日后产品改进功能。改进了以往的利用74LS164芯片驱动数码管的显示不同,在本系统中采用了更加强大的LCD1602来实现6位稳定的静态显示,占用系统的时间少,增加集成度,方便编程及对信号的检测。编程使用C语言,增加了程序的可读性和易移植性,通过程序的调试和代码的精简,提高了实际动手编程和设计软件的能力。由于时间有限该电子密码锁的还有许多待改进的地方,这都还需要进一步去完善。

参考文献

[1] 童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2001.

[2] 马忠梅,刘滨,戚军,马岩.单片机C语言Windows环境编程宝典[M].北京:北京航空航天大学出版社,2003.

[3] 彭为,黄科,雷道仲.单片机典型系统设计实例精讲[M].北京:电子工业出版社,2006.

[4] 王守中.51单片机开发入门与典型实例[M].北京:人民邮电出版社,2007.