《基于单片机的红外遥控密码锁 (2).doc》由会员分享,可在线阅读,更多相关《基于单片机的红外遥控密码锁 (2).doc(29页珍藏版)》请在金锄头文库上搜索。
1、遥控密码锁 -基于51单片机自己几年前做的一个课程设计程序简介目录1目的和意义22方案设计23 硬件原理分析及设计23.1 发射模块原理23.1.1 红外发送系统原理33.1.2 NEC编码格式介绍33.2 接收解码模块43.2.1 接收解码原理43.2.2 接收解码模块的硬件电路53.4 液晶显示模块64 软件设计74.1 编程语言74.2 主要程序说明及流程图74.2.1 主程序74.2.2 接收解码程序84.2.3 按键数字分配114.2.4 密码判断、报警及修改程序124.2.5 按键发声程序194.2.6 没操作响应195 功能分析及总结205.1 功能分析205.2 C语言编程的延
2、时技巧215.3 本设计优缺点235.4 设计总结23参 考 文 献1附录C 实物图3摘要单片机遥控系统是将红外遥控技术和单片机应用技术相结合的一种方案。本系统为红外遥控电子密码锁的控制管理部分,只要再连接上不同用途的电磁锁即可成为一个完整的红外遥控电子密码锁系统应用到各种领域中。而且本系统还设计有学习NEC红外编码遥控器的功能,通过红外接收解码电路,把遥控器的键码还原并储存起来,再利用查找对比的方法便能够识别不同的遥控器,大大提高了系统的灵活性和实用性。本系统以单片机作为核心元件将电子密码锁和无线遥控技术结合起来,使其具有修改密码、报警锁定等功能,不仅能进行远距离遥控解锁,还能实现近距离按键
3、密码初始化及复位解除报警。同时采用E2PROM作为存储单元,方便用户存储、修改密码和遥控器键码;采用LCD显示令使用更加方便直观。红外线遥控电子密码锁能实现多种控制功能,改善了传统机械锁的各种缺点,有较好的市场发展前景和技术应用价值。而且本系统的红外接收解码部分延时计数准确,并且有错误校验,所以整个接收解码的准确性非常高。设计电路主要由红外线解码学习电路、密码修改和存储电路、声光提示报警电路、LCD显示电路组成。系统能完成输入密码开锁、出错报警、超次锁定、修改用户密码等基本的密码锁的功能,并且还能实现远距离遥控、按键密码初始化、掉电存储、声光提示、遥控器学习识别等附加功能。本设计详细介绍了单片
4、机遥控系统的软硬件设计方法,并给出了具体的各单元电路设计、程序设计及主程序流程图。关键词:电子密码锁红外遥控单片机NEC编码1目的和意义随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤其重要。目前国内,大部分人使用的还是传统的机械锁。传统的机械锁由于其构造的简单,被撬的事件屡见不鲜。即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。而且,在日常的生活和工作中,若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。为此,本系统试着设计具有防盗报警功能的红外线遥控电子密码锁来代替传统的机械式密码锁,克服了机械式密码锁密码量少
5、、安全性能差的缺点。而且还添加了红外遥控、遥控器学习识别和LCD显示等功能,可以实现远距离开关锁、修改密码等,系统灵活性强,操作简单直观、使用非常方便。2方案设计用以下方案设计本次系统:发射模块使用型号为HZ-FT007的20键车载MP3红外遥控器和创维RC-585型DVD遥控器,因为它们都是采用NEC编码格式的红外遥控芯片作为主要芯片;使用一体化红外接收头SM0038和单片机STC89C51RC结合的方式完成接收解码模块,学习识别NEC编码格式的不同遥控器;使用AT24C02这一串行E2PROM作为存储模块;使用LCD1602A实现系统的显示模块。系统的总框图如图3所示。这样的选择使系统在较
6、低成本的情况下较好地实现系统的功能,而且系统有着较高的抗干扰性和稳定性。按键uPD6122GSM0038MCUAT24C02LCD1602电磁锁NEC编码遥控器图3 选用方案系统框图3 硬件原理分析及设计3.1 发射模块原理3.1.1 红外发送系统原理红外遥控信号是一连串的二进制脉冲码。为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的载波频率上,然后再经红外发光二极管发射出去,红外线接收装置则会滤除其它杂波只接收该特定频率的信号并将其还原成二进制脉冲码。在本红外遥控系统中,红外信号的载波频率为38KHz。通常,红外遥控系统中所采用的编码方式有两种:通过脉冲宽度来实现信
7、号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)。本系统是采用PPM方法,即用两个脉冲之间的时间间隔来表示二进制信息。为了确保发送端和接收端之间数据传输的准确无误,红外线信号还要按照特定的传输协议来进行信号传输。常用的红外线信号传输协议有NEC协议、RC-5协议、RC-6协议、Sharp协议等。3.1.2 NEC编码格式介绍本系统使用的型号为HZ-FT007的20键车载MP3红外遥控器和创维RC-585型DVD遥控器请参看附录C中的实物图,它们主要芯片都是NEC编码格式的红外遥控芯片。NEC编码广泛应用于电视机,DVD,PC电脑,音响等,是比较常用的一种红
8、外编码格式。下面以NEC编码标准的红外编码芯片uPD6122G作为例子介绍。NEC遥控编码是连续的32位二进制码组,其中的前十六位是用户码,后16位为8位的数据码及其反码。在每次编码之前还会发送9ms高电平和4.5ms低电平组成的引导码(或称起始码)。而且第二段的用户码也可以在遥控应用电路中被设置为第一段用户码的反码。它的帧结构如图4所示。图4 uPD6122G编码格式NEC编码标准是以用不同脉冲的时间间隔来区分0和1的,uPD6122G以脉宽为0.56ms、间隔0.565ms、周期为1.125ms的组合表示二进制的0;以脉宽为0.56ms、间隔1.69ms,周期为2.25ms的组合表示二进制
9、的1。其波形如图5所示。图5 uPD6122G0和1波形图使用455KHz晶振时各代码所占的时间如图6所示:图6 使用455KHz晶振时各代码所占的时间uPD6122G按键输出有两种方式:一种是每次按键都输出完整的一帧数据;另一种是按下按键不松开时,发送完整的一帧数据后再发送重复码,直到按键被松开。其波形如图7所示。图7 重复码的波形图3.2 接收解码模块3.2.1 接收解码原理接收解码的关键是如何识别0和1,本系统使用的是一体化红外接收头进行红外信号接收,在没有信号的时候其输出端是高电平,而有信号的时候是低电平,所以其输出信号电平正好和遥控发射端相反。从上面的讨论可以发现在遥控发射端0和1均
10、以0.56ms的高电平开始,不同的是低电平的宽度,0为0.565ms,1为1.69ms,所以必须根据低电平的宽度区别0和1。本系统用中断的方式实现从接收头到MCU的信号传输。如图9所示,红外接收头的输出端连接到单片机的INT0脚。接收头输出端有低电平信号输出时引起单片机的中断。单片机响应中断并进行信号的接收解码。解码后的信号就变成相应的遥控器按键代码,从而可以成为密码锁的密码。接收头SM0038MCUINT0图9 中断接收示意图3.2.2 接收解码模块的硬件电路接收解码电路由一体化红外接收头SM0038和单片机STC89C51RC组成。 STC系列单片机具有在系统中直接可编程特性,其好处是:省
11、去购买通用编程器,单片机在用户系统上即可下载/烧录用户程序,而无须将单片机从已生产好的产品上拆下,再用通用编程器将程序代码烧录进单片机内部。有些程序尚未定型的产品可以一边生产,一边完善,加快了产品进入市场的速度,减小了新产品由于软件缺陷带来的风险。由于可以在用户的目标系统上将程序直接下载进单片机看运行结果对错,故无须仿真器,因此选择使用这款单片机。一体化红外接收头SM0038是集信号放大、滤波、检波、整形于一体的红外接收器,电路内置PIN二极管和前置放大器,采用可以红外滤波的环氧树脂材料封装,可靠性高,不易受环境影响并可以防止非控制信号的输出脉冲出现。它的内部电路如图10所示。图10 SM00
12、38内部结构图SM0038内置带通滤波器、积分器、和自动增益控制电路以抑制各种干扰和噪音。数据信号和干扰信号的主要区别在于载波频率、脉冲波长和工作周期上。所以数据信号应该满足以下的要求。而本系统选用的SM0038在这三方面和NEC编码格式是相配的。 载波信号的频率尽量接近带通滤波器的中心频率(38KHz)。 脉冲长度在300us以上。 数据的编码类型相兼容。3.4 液晶显示模块系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD
13、1602可以显示2行16个字符,具有8位数据总线D0-D7,和RS、R/W、E三个控制端口,工作电压为5V,并且带有字符对比度调节和背光设置。LCD1602与单片机的连接电路图参考附录A。其管脚功能简介如下:VL:LCD对比度调节端,电压调节范围为05V。接正电源时对比度最弱,接地电源时对比度最高,可以用一个10K的电位器来调整对比度;RS:数据或者指令选择端。处理器写入指令时,RS为低电平,写入数据时,RS为高电平;R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据;E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块;D0D7:8位数据总线,三态双向;BLA:
14、 LED背光正极。需要背光时,BLA串接一个限流电阻接VCC;BLK: LED背光负极。4 软件设计4.1 编程语言目前,对单片机的编程主要采用汇编和C语言。汇编语言有执行效率高、速度快、与硬件结合紧密等特点。尤其在进行I/O端口管理时,使用汇编语言有快捷、直观的优点。但是使用汇编语言相对于使用高级语言编程难度要大一些,且程序可读性低,开放性差,从系统开发时间来看,效率不是很高。 C语言是一种结构化语言,可产生紧凑代码。C语言可以用许多机器级函数直接控制操作8051硬件。与汇编语言相比,C语言有如下的优点: 不要求了解单片机的指令系统,仅要求对8051的存储结构有初步了解; 寄存器分配,不同存
15、储器的寻址及数据类型等细节可由编译器管理; 程序有规范的结构,可分为不同的函数,这种方式可使程序结构化; 具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性; 关键字及运算符可用近似人的思维方式使用; 编程及程序调试时间显著缩短,从而提高效率; 提供的库包含许多标准子程序,具有较强的数据处理能力; 已编好的程序可容易地植入新程序,因为它具有方便的模块化编程技术。当然,采用混编模式,就能结合两者的优点。本着学习的目的,本系统均采用C51语言编写。4.2 主要程序说明及流程图4.2.1 主程序本系统的软件程序主要包括主程序、接收解码程序、密码判断和报警程序、密码修改程序、遥控器学习识别程序几个大的模块程序。完整程序见附录B。主程序首先是初始化程序,然后就等待红外接收头输出端的低电平,低电平出