欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    红外遥控电子密码锁的设计与实现.docx

    • 资源ID:258401       资源大小:412.23KB        全文页数:43页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    红外遥控电子密码锁的设计与实现.docx

    1、红外遥控电子密码锁的设计与实现成都信息工程学院“天府软件园”杯嵌入式创新技术大赛报告书项目名称: 红外遥控电子密码锁的设计与实现完成日期: 2011年5月成 员: 李刚 张洋洋 唐明友摘要:本设计是以STC89C52为主要芯片,以中断、计数等基本工作方式来控制、判断外部器件的工作、工作状态,结合采用数字信号编码的基本算法,用红外遥控器遥控发送密码、再用红外接收管接收密码,单片机根据红外接收管导通与否和持续时间结合二次调制方式的基本算法还原遥控器发送的密码,再与外部储存器AT24C02储存的密码对比,判断密码是否正确,辅助以LCD12864显示用户的操作结果,以蜂鸣器提醒,再通过矩阵键盘实现输入

    2、或修改密码等基本功能实现红外电子密码锁的设计。该设计运用了c语言编写程序,简单、明了,很好的实现了红外通信的要求。在以往设计的基础上,该设计添加了在线烧写程序,极大的方便了用户使用,特别是为工业生产带来了极大的便利。红外电子密码锁具有成本较低、操作方便、体积小、无污染、反应速度快等优势,具有很好的市场价值。关键词:编码、解码、密码、红外1总体设计思路1.1 题目要求红外遥控电子密码锁由红外遥控发射板、红外接收终端、带控制的电子锁构成。当红外接收终端收到遥控板送来的开锁密码信号,并与保存在终端中的密码对比。当对比成功后终端向电子锁发出开锁命令,完成开锁功能。此题目的重点、难点是实现红外信号的接收

    3、、密码储存和正确识别按键并显示操作结果。由于红外遥控不影响周边环境、不干扰其他电器设备,其无法穿透墙壁,因此,不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,可进行多路遥控。而且红外电子密码所体积较小、操作方便等优势,具有很好的市场前景。1.2本设计主要硬件功能部分本系统主要由六大部分组成:1)单片机最小系统模块;2)LCD显示电路模块;3)阵列键盘模块;4)红外接收模块;5)AT24C02模块;6)蜂鸣器模块;1.3本设计软件的总体构思本设计是以STC89C52为核心控制器件。本设计是通过STC89C52

    4、与AT24C02之间交换密码后,再与用户通过键盘或红外遥控器发送过来的密码作对比,再用LCD12864显示操作结果,用蜂鸣器提示电子锁是否打开,从而实现红外遥控电子密码锁的设计,如下图。 2系统的硬件设计与实现2.1AT24C02模块2.1.1器件及原理介绍AT24C02串行E2PROM具有I2C总线接口功能,功耗低,宽电源电压(根据不同型号2.56.0V),工作电流约为3mA,静态电流随电源电压不同为30A110A。图表 2I2C通信原理:I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化,如图

    5、A。SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号,如图4。图表 3图表 42.1.2电路实现A0 、A1 、A2作为地址线,因在此只有一个器件,故全都接GND。SDA作串行数据读写端接P1.2口,SCL作为时钟信号接P1.1口。图表 5 AT24C02硬件结构2.2 红外通信模块2.2.1遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G 组成发射电路为例说明编码原理, 我们使用的超薄型红外线遥控器使用

    6、的就是6121 编码。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”, 其波形如图7 所示。 图表 7 上述“0”和“1”组成的32 位二进制码经38kHz 的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射。UPD6121G 产生的遥控编码是连续的32 位二进制码组,其中前16 位为用户识别码,能区别

    7、不同的电器设备,防止不同机种遥控码互相干扰,如我们可以同时使用电视机、机顶盒、功放等遥控器,但它们不会产生误触发。该芯片的用户识别码固定为十六进制01H;后16位为8 位操作码(功能码)及其反码。UPD6121G 最多额128 种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32 位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在4563ms 之间, 图表 8 发射波形图当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms 的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8 位地址

    8、码(9ms18ms),高8 位地址码(9ms18ms),8 位数据码(9ms18ms)和这8 位数据的反码(9ms18ms)组成。如果键按下超过108ms 仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。 代码格式(以接收代码为准,接收代码与发射代码反向) 1)位定义 图表 92)单发代码格式 图表 103)连发代码格式 图表 112.2.2电路实现一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。在本系统中我们采用红外一体化接收头HS003

    9、8,外观图如图所示。图表 12HS0038 黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35m。它能与TTL、COMS 电路兼容。HS0038 为直立侧面收光型。它接收红外信号频率为38 kHz,周期约26 s,同时能对信号进行放大、检波、整形,得到TTL 电平的编码信号。三个管脚分别是地、5 V 电源、解调信号输出端。利用外部中0断进行数据的接收。图表 13 HS0038硬件结构2.3矩阵键盘模块将12个按键分为4排3列排列好,如图:矩阵键盘硬件结构。当有一个键按下时,通过某一边引脚赋低电平,扫描全部引脚看是否与最

    10、初的赋值一样,不一样则根据相应的算法(通过改变后的值与初始值相或,根据结果赋值)确定是哪个键按下。图表 14 矩阵键盘硬件结构2.4显示模块2.4.1LCD12864介绍LCD12864分为带字库和不带字库两种,带字库的在显示文本时更方便,不带字库的在显示图像时更有优势。本系统采用带字库的LCD12864,采用标准的20脚接口,各引脚接口说明如表所示:编号 符号 引脚说明 编号 符号 引脚说明1 VSS 电源地 11 D4 数据2 VDD 电源正极 12 D5 数据3 V0 对比度亮度调整13 D6 数据4 RS 数据/命令选择 14 D7 数据5 R/W 读/写选择 15 PSB 串行通信选

    11、择端6 E 使能信号 16 NC 空脚7 D0 数据 17 RET 复位8 D1 数据 18 VOUT LCD驱动负电压9 D2 数据 19 LED+ 背光电源正极10 D3 数据 20 LED- 背光电源地2.4.2LCD12864电路图:图表 15 LCD12864硬件结构2.5蜂鸣器模块蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。有源蜂鸣器直接

    12、接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。本系统采用无源蜂鸣器,控制更简单。蜂鸣器硬件如下图:图表 162.6单片机最小系统模块2.6.1单片机最小系统电路图:图表 17 最小系统3软件设计3.1程序流程图3.1.1主程序流程图图表 18 主程序流程图3.1.2键值判断流程图图表 19 键值判断流程图3.1.3开锁流程图图表 20 开锁程序流程图3.1.4密码修改流程图图表 21 密码修改流程图3.1.5红外接收流程图图表 22 红外接收流程图3.1.6按键扫瞄流程图图表 23 按键扫描流程图3.2 程序设计(见附录

    13、二)4 总结:本设计不但很好的满足了题目的要求,即终端能够接收红外遥控发射板发射的红外信号(密码)并能与已存密码作对比,而且能够在液晶上显示操作结果,还增加了取消这一功能,从而完成了红外遥控电子密码锁的要求。但一开始并不是这么顺利,最先将程序下载到机子里面,键盘不能工作,后经查发现键盘程序没有运行。改过来后又发现多了一个键,没有用处,经讨论将多的键设为取消键。原来设计的电源是直接用USB从电脑上引出来,后来在此解读题目时发现不能满足题目要求,所以添加了一个用7805稳压的小模块。美中不足的是此设计红外遥控的距离并不太理想(一米多一点),而且取消功能并不是想象的能够取消前面自己不想要的内容,而是

    14、返回主菜单。但这些不足并不能抵消此设计带来的好处。5 参考文献:侯 璐 黑龙江大学学生学术科技创新项目申请书甄盈盈 红外遥控密码锁的设计与实现 撰写电子设计竞赛报告参考格式 第7章 电子设计竞赛设计总结报告写作在此感谢以上作者、作品。但由于部分原因没有完全列举出作者姓名或作品完整,望谅解。6附录一6.1整体电路结构:图表 24 总电路图6.2PCB图:图表 25 pcb电路图7附录二7.1AT24C02模块#include common.hsbit WP = P10;sbit SCL = P11;sbit SDA = P12;void Delay_US(void) ;void Delay_10

    15、MS(void) uchar i = 0; uchar j = 0; for(i = 50;i0;i-) for(j=200;j0;j-); void AT24C08_unprotect() WP = 0;void AT24C02_Start(void) /开始总线 SDA = 1; SCL = 1; Delay_US(); SDA = 0; Delay_US(); void AT24C02_Stop(void) /停止总线 SDA = 0; SCL = 1; Delay_US(); SDA = 1; Delay_US(); void AT24C02_Ack(void) /ACK信号 ucha

    16、r i = 0; /等待从机回应 SCL = 1; Delay_US(); while(SDA =1) & (i200)/等 侍ACK信号 i +; SCL = 0; Delay_US();void AT24C02_NOAck(void) /NO ACK SCL = 1; /主机发送给从机 Delay_US(); SDA = 1; SCL = 0; Delay_US();void AT24C02_Write_Byte(uchar Value)/ 写8位数据到总线 uchar i = 0; for(i =0; i8; i+) SCL = 0; SDA = Value & 0x80;/ 1000

    17、0000 Delay_US(); SCL = 1; Delay_US(); Value = 1; SCL = 0; Delay_US(); SDA = 1;uchar AT24C02_Read_Byte(void)/读8位数据 uchar Value = 0; uchar i = 0; SCL = 0; /低电平数据可以变化 Delay_US(); for(i = 0; i i;/先读高位数据 SCL = 0; Delay_US(); return Value;void AT24C02_Write(uchar Address,uchar Value) AT24C02_Start(); /起始条

    18、件 AT24C02_Write_Byte(0xA0); /器件地址1010 0000/写 AT24C02_Ack(); /等从机应答 AT24C02_Write_Byte(Address); / 1024 字节,其中一个字节操作25 AT24C02_Ack(); AT24C02_Write_Byte(Value); / 0x15 AT24C02_Ack(); / AT24C02_Stop(); Delay_10MS();uchar AT24C02_Read(uchar Address) uchar Value = 0; AT24C02_Start(); /开始总线 AT24C02_Write_

    19、Byte(0xA0); / 1010 0000 AT24C02_Ack(); AT24C02_Write_Byte(Address); /读数据的地址; /25 AT24C02_Ack(); AT24C02_Start(); /再次开始 AT24C02_Write_Byte(0xA1); / 1010 0001 AT24C02_Ack(); Value = AT24C02_Read_Byte(); AT24C02_NOAck(); /主机发送给从机无应答 AT24C02_Stop(); return Value;7.2红外通信模块sbit beer=P04;sbit RED_DATA=P32;

    20、 /红外接口/uchar RED_ADD=0; /红外遥控的地址uchar RED_add=255; /红外遥控的地址缓存区uchar RED_key=255; /红外摇控的键值,无键按下时为255/红外初始化void Init_Red(void) RED_DATA=1; /P32输出高电平 EX0=1; /开启红外中断 P32/检测脉冲宽度uchar Red_check(void) uchar t=0;uchar a=0; while(RED_DATA) t+; for(a=0;a=200&res=70&res=10&res=0)&(aa8) RED_add=17)&(aa25) RED_k

    21、ey=1; RED_key=RED_key+(uchar)RODATA; if(aa=32&RED_add=0) KEY_main=Red_change(RED_key);break; /把红外数据进行转换uchar Red_change(uchar rednum) switch(rednum) case 16 :return 0; case 48:return 1; case 176:return 2; case 112:return 3; case 8:return 4; case 136:return 5; case 72:return 6; case 40:return 7; case

    22、 168:return 8; case 104:return 9; case 0:return 10;/电源开关 case 32:return 11;/EQ case 144 :return 12;/快退 case 80:return 13;/快进 case 160:return 14;/声音减 case 96:return 15;/声音加 case 128:return 16;/CH - case 64:return 17;/CH + default: return 255; 7.3矩阵键盘模块#include common.h#define KEY P2void Key(void) uch

    23、ar i = 0; uchar j = 0; uchar k = 0; KEY= 0x0F; i = KEY; if(i != 0x0F) uint l=0; Delay(1000); KEY= 0x0F; i = KEY; if(i != 0x0F) KEY = 0x0F; i = KEY; KEY = 0xF0; j = KEY; k = i | j; KEY_change(k); while(KEY !=0xf0 & l2000) KEY = 0xf0; l+; void KEY_change(uchar i) switch(i) case 0xED:KEY_main= 1;break;

    24、 case 0xDD:KEY_main= 2;break; case 0xBD:KEY_main= 3;break; case 0xEB:KEY_main= 4;break; case 0xDB:KEY_main= 5;break; case 0xBB:KEY_main= 6;break; case 0xE7:KEY_main= 7;break; case 0xD7:KEY_main= 8;break; case 0xB7:KEY_main= 9;break; case 0xEE:KEY_main= 10;break; case 0xDE:KEY_main= 0;break; case 0xB

    25、E:KEY_main= 11;break; default: break; void Delay(unsigned int i) while(- i);void INIT_TIME_0() TMOD = 0X00; TH0 = 0X0E; TL0 = 0; ET0 =1; TR0 = 1;void KEY_TIME_0() interrupt 1 using 0 TH0 = 0X0E; TL0 = 0; Key();7.4LCD12864显示#include common.h sbit CS = P03;sbit SID = P02;sbit CLK = P01;sbit RESET = P0

    26、0;#define lcdcom_w 0xf8#define lcdcom_r 0xfc#define lcddata_w 0xfa#define lcddata_r 0xfd/汉字地址表uchar code addr_tab= /便于根据汉字坐标求出地址0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,/第一行汉字位置0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,/第二行汉字位置0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,/第三行汉字位置0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,/第四行汉字位置;/* / 函 数 名:void Delay_LCD(void)/ 功 能:5ms延时/*/void Delayms(uint t) /约延时msuint i;while(t-)f


    注意事项

    本文(红外遥控电子密码锁的设计与实现.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开