基于AT89C51RC的红外遥控密码锁的设计与实现
根据用户的要求和需要,主要为了解决当前市场上无遥控密码锁的问题,以提高门禁系统的可靠性和安全性,适应市场需要而设计的该红外红外遥控密码锁系统。该系统具有普通电子密码锁功能的同时,还增加了遥控功能。该锁采用6位数作为密码,总密码组有106组,完全满足用户对密码安全性高的要求。该系统具有较强的实际应用价值,所涉及的技术包括:红外载波数据传输技术、单片机控制技术、红外遥控系统编码及译码技术、电路设计与演示板制作技术等。
2 系统硬件设计与实现(单元电路设计)
2.1 硬件结构图:
系统以单片机AT89C51RC为核心。系统结构框图如图1所示。本系统的功能设计目标应该包括以下几个方面:红外发射功能模块,红外线接收转换模块、单片机模块、蜂鸣器报警功能模块、LED数码管显示模块、按键功能模块,开锁功能模块等。下面详细介绍一下各单元的硬件电路和实现的功能。
图1 红外遥控密码锁硬件结构图
2.1.1电源部分设计
本系统的电源部分使用LM7805芯片进行稳压后提供单片机5V的电压。其电源部分电路的设计如图2所示。
图2 红外遥控密码电源部分的电路原理图
该电源部分电路,使用四个1N4004二极管构成整流桥,可以输入直流或是交流9V电源,然后再通过7805稳定到5V供单片机工作。固定式三端稳压电源7805是由输出脚Vo,输入脚Vi和接地脚GND组成,它的稳压值为+5V,它属于LM78XX系列的稳压器,输入端接电容可以进一步的滤波,输出端也要接电容可以改善负载的瞬间影响,电路的稳定性也比较好。 2.1.2 红外接收头部分和LED显示部分设计
红外信号接收部分是使用KS38BL红外接收头实现的,其电路如图3所示。 图3是红外线遥控器信号接收头的简易电路,它可接收载波频率从33~57KHz的遥控器信号。100Ω电阻起到限流的作用,470uF电容滤波减少干扰。以逻辑笔接触红外线接收模块的信号输出端(OUT),便可以侦测当按下红外线遥控器某一按键时,红外线数字信号的发射。若有发射红外线数字信号则经过红外线接收模块取出数字信号数据,逻辑笔脉冲LED便会闪动。这样可以检测到当前有没有红外信号发射最简单的方法。
图3 红外线接受部分
如图4所示,系统的显示是使用MAX7219实现的8位稳定静态显示,MAX7219是串行共阴极数码管动态扫描显示驱动芯片,仅使用3线串行接口传送数据,可直接与单片机接口,用户还可以方便地修改其内部参数以实现多位LED显示,因此可以方便地使用单片机的串口送出显示数据,并且其占用的时间少,方便编程及对信号的检测。
图4 利用MAX7219设计显示部分
2.1.5密码存储部分的电路设计
为了保存用户设置的密码,该系统使用AT24C04用来保存用户设置的密码,单片机AT89C51RC的P3.6接AT24C04的SCLK口作为它的串行移位时钟,AT89C51RC的P3.7接AT24C04的SDA口作为它的串行数据或地址输入输出。该电路要注意的是SCLK、SDA必须加上一上接电阻,阻值为10K。用户设置的密码存放在AT24C04中,当需要更改或读取用户密码时,只需对AT24C04里的数据更改或读取。由于主芯片AT89C51RC没有I2C总线,故本系统采用软件程序模拟I2C总线时序来完成AT89S51来与AT24C04的连接。
2.1.6 报警电路设计
本系统设计时考虑到防盗而设计了报警电路,由蜂鸣器发声进行报警,蜂鸣器接在CPU的引脚P0.4上,通过PNP型三极管做电流放大,因此可以通过单片机控制蜂鸣器的频率及蜂鸣时间。当输入错误的密码进行开锁时,系统会报警,由P0.4口输出低电平使得PNP型三极管导通,蜂鸣器两端加电,由蜂鸣器发出1秒的报警声,当连续三次出现密码错误时,则系统会长时间报警,此举为了防止别人非法试探开锁。
2.1.7 本机处理与遥控处理功能选择电路设计
本系统设计了一个自锁按键用来选择本机处理或者遥控处理,在设置密码时一定要处于本机处理状态下,而开锁则可以选择遥控开锁也可以选择本机开锁,当此按键按下时,红灯亮表示选择了本机处理,此时可以设置密码,修改密码,也可以本机开锁,而不能遥控开锁;当此开关开没按下时,红灯灭选择遥控开锁,此时可以通过遥控器输入密码进行开锁,在遥控开锁时不能进行本机开锁以及设置密码。
3 系统软件设计
本系统有遥控处理和本机处理两种工作状态,两种工作状态相互独立。通过自锁开关K可以选择当前工作状态,当K闭合时选择本机处理,断开时选择遥控处理。遥控处理部分只有开锁功能,所以设计相对简单,而本机处理部分可以实现开锁、设置和修改密码等所有的功能。
要完成本系统功能,首先要需要解决对红外信号的译码问题,并在存储式示波仪上观察其具体波形,这
- 基于单片机AT89C51RC的红外遥控密码锁的设计与实现(12-09)
- 基于51单片机的红外遥控密码锁的设计与实现(11-16)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)