基于红外遥控的密码锁设计 毕业论文.doc

上传人:椰子壳 文档编号:3923267 上传时间:2019-10-10 格式:DOC 页数:39 大小:1.26MB
返回 下载 相关 举报
基于红外遥控的密码锁设计 毕业论文.doc_第1页
第1页 / 共39页
基于红外遥控的密码锁设计 毕业论文.doc_第2页
第2页 / 共39页
基于红外遥控的密码锁设计 毕业论文.doc_第3页
第3页 / 共39页
基于红外遥控的密码锁设计 毕业论文.doc_第4页
第4页 / 共39页
基于红外遥控的密码锁设计 毕业论文.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《基于红外遥控的密码锁设计 毕业论文.doc》由会员分享,可在线阅读,更多相关《基于红外遥控的密码锁设计 毕业论文.doc(39页珍藏版)》请在三一文库上搜索。

1、基于红外遥控的密码锁设计摘 要随着社会科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。红外电子密码锁是一种以高强度密码序列为基础,在单片机上实现的密码开关。它以红外光作为信息媒体,从而实现了遥控。该锁具有使用方便、操作简单、价格低廉等特点,给人们的生活带来了极大方便。 本设计以单片机AT89S52作为密码锁监控装置的检测和控制核心,LCD1602具有按键提示,输入错误提示,密码有效提示,根据51单片机之间的串行通信原理,利用红外来传输,这便于对密码信息的

2、随机加密和保护。而且采用红外遥控相对于机械锁和键盘输入的电子密码锁具有较高的优势。如红外线发射装置采用红外发光二极管,遥控发射器易于小型化且价格低廉;采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加遥控功能,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等。所以红外线遥控是目前使用最广泛的一种通信和遥控手段。软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。关键词: 红外 单片机 LCD 密码锁 遥控 目录目 录第一章 引言11.1 课题

3、选题意义11.2 国内外研究现状21.3 设计主要工作3第二章 硬件设计42.1 系统框图42.2 最小系统42.3 红外遥控介绍62.4遥控发射器及其编码72.5 遥控接收器及其解码82.6 LCD1602显示的应用92.7 密码锁驱动电路设计112.8 红外遥控密码锁总接线设计11第三章 软件设计123.1 LCD1602显示程序设计123.2 红外遥控程序设计163.3 红外遥控密码锁主程序设计17第四章 总结184.1 本文工作总结184.2 存在不足19参考文献20致 谢21附 录2229第一章 引言第一章 引言1.1 课题选题意义在许多电子杂志、报刊经常刊登有密码开关,密码锁这样的

4、电路,大多数是使用常用的数字电路,然后通过键盘来实现密码控制功能。这种电路的特点是密码修改只能通过改变电路的连接来实现,密码很容易破解,电路复杂,故障率高。本制作是针对这些电路而设计,而且还增加了红外遥控功能,移动方便。如果使用该红外遥控密码开关安装在电子锁上,就成了一个功能强大,操作方便的电子密码锁了。因为不用安装控制键盘,所以安装方便、快捷,还消除了控制键盘被人为破坏的可能。红外遥控技术在工农业生产,通信技术,家用电器等多种领域中得到了广泛的应用,特别是在门禁系统中的应用,更加受到了人们的瞩目。本设计的红外线遥控智能密码锁就是将红外遥控技术和单片机应用相结合的一种方案。它的特点是:抗干扰能

5、力强,工作可靠,使用方便,具有较强的隐蔽性、保密性。它与传统锁具的不同之处在于:它与微电脑相结合,能够实现适时、智能控制管理功能。红外遥控智能密码锁作为一种高科技产品,在酒店门锁领域已成为主导产品,现在它正以飞快的速度进入寻常百姓家。密码锁具无需钥匙,开启方便,用途广泛。传统的机械密码锁组码位数低(3位数左右)、重码率高、安全性差、开启操作不便。电子式密码锁具以其高位数组码、按钮式操作、安全可靠等优点,逐步取代机械密码锁。该设计使用密码控制技术,克服了传统机械式密码锁具有的缺陷,具有电子式密码锁具的特点,组码位数最高可达到10位。按钮式开锁,无需光照和电源,机件牢固,安全可靠,造价低廉,集机械

6、式、电子式密码锁具优点为一体,具有较好的市场发展前景和技术应用价值。1.2 国内外研究现状随着我国对外开放的不断深入,高档建筑发展很快,高档锁具市场的前景乐观。我国锁具行业对锁具高新技术的投入正逐年增大,高档锁的市场需求也逐年增加。在安防工程中,门禁系统的锁具产品是关系到整个系统安全性的重要设备,所以锁具产品的优劣也关系了整个安防工程的质量和验收。智能门锁作为一种高科技产品,在酒店门锁领域已成为主导产品。一般情况下,酒店希望智能门锁的使用寿命至少在5年以上,所以选择智能门锁时必须考虑多种因素,如产品的品牌、质量、价格、服务等,以免带来经济损失。综观硝烟弥漫的智能门锁市场,浙江的智能门锁技术无论

7、在品牌、质量、价格,还是在服务上,都走在国内该行业的前列的。在电子控制方面,TCL智能门锁的控制电路主板采用自动贴片技术(SMT)、高温老化、在线测试、振动老化、侵漆防潮等生产工艺,从而彻底杜绝了因室内外的温差引起门锁内部水气凝结而对电路主板元器件的损坏,提高了电路的性能。而且,TCL智能门锁还采用智能编码技术,抗强光干扰,使门锁的功耗很低,降低更换门锁电池的频率。在智能钥匙的加密方面,智能门锁的各种智能卡钥匙均应采用具备物理密码验证功能、安全性好、可靠性高的电子钥匙,可保存数据在10年以上,而所有的电子钥匙为了提高保密性能在编码上都采用加密算法,除了采用具有独立知识产权开发的软件系统制作电子

8、钥匙外,电子钥匙是根本不可能复制的,克服了机械钥匙很强的可复制性,使门锁整体的安全性能降低的缺点,提高了门锁的安全性能。在国外,美国、日本、德国的智能密码锁保密性较好,并结合感应卡技术,生物识别技术,使智能密码锁系统得到了飞跃式的发展。这几个国家的密码锁识别的密码更复杂,并且综合性比较好,已经进入了成熟期,出现了感应卡式门禁系统,指纹门禁系统,虹膜门禁系统,面部识别门禁系统,乱序键盘门禁系统等各种技术的系统,它们在安全性,方便性,易管理性等方面都各有特长,新型的密码锁系统的应用也越来越广。1.3 设计主要工作课题主要解决系统在硬件和软件两方面的问题。硬件方面解决单片机与外围电路的接口问题,还要

9、解决红外遥控系统的编码解码。本设计的红外遥控发射器直接采用市售的成品遥控器,内部芯片型号为LC7461。采用这个芯片的遥控器非常普遍,很容易买到,且价格也很便宜,所以只需要了解红外遥控器的编码。在软件方面,主要工作是怎样防止人为的多次试探密码和增加破解密码的难度。除此之外,程序还要完成基本的密码修改和开锁功能,并通过蜂鸣器长时间鸣叫报警通知屋主或保安。第二章 硬件设计第二章 硬件设计2.1 系统框图本文所设计的红外遥控密码锁系统由AT89S52单片机及其最小系统、红外接收头、红外发射器、蜂鸣器、电磁锁、LCD1602液晶显示等部分组成。其硬件原理图如图2.1所示。图2.1 红外遥控密码锁系统框

10、图2.2 最小系统本设计的单片机采用AT89S52系列单片机。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内

11、晶振及时钟电路。其中最小系统包括ISP下载电路、复位电路、晶振电路。复位电路:此设计采用手动按键复位方式实现系统的复位操作.手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位.其结构如图2.3中R1,C4和K1.手动按键复位是通过按键将RST与VCC接通来实现.晶振电路:单片机内部具有一个高增益反相放大器,用于构成振荡器.通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,结构如图2.22 中Y1,C5,C6.本设计选择12MHz频率的石英晶体,补偿电容采用30pF左右的瓷片电容. 图2.2 ISP电路接线图 图2.3复位电路接线图 图 2.4

12、晶振电路接线图 图2.5 最小系统结构电路图2.3 红外遥控介绍通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。遥控器里面是一个键盘编码器,每个按键对应一个编码,在把编码调制到一个高频信号上,其目的是为了降低发射的功率损耗;再把调制好的信号送给红外发光管把信号发送出去。接收过程恰好与此相反,首先由红外接收管收到微弱的信号,经放大后解解调(把高频载波去掉),再进行解码,就可得到遥控器发过来的数据。如图2.6所示。图2.6 红外遥控系统框图2.4遥控发射器及其编码红

13、外遥控发射器专业芯片很多,根据编码格式可以分成脉冲宽度调制和脉冲相位调制两大类,这里我们以运用比较广泛,解码比较容易的脉冲宽度调制来加以说明,现以LC7461组成发射电路为例说明编码原理。当发射器按键按下后,既有遥控码发出,所按的键不同遥控码也不同。这些遥控码具有以下特征:采用脉宽调制的串行码,以脉宽0.56ms,周期为1.125ms的组合表示二进制的“0”;以脉宽为0.56ms、周期为2. 25ms.其波形图如图2.7所示。图2.7 红外遥控码波形图LC7461产生的遥控编码是连续的42位二进制码组,其中前26位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。后16位为8位操

14、作码(功能码)及其反码用于核对数据是否接受正确。当发射端一个键按下超过36ms,LC7461芯片的振荡器使芯片激活,将发射一个特定的同步码头,对于接收端而言就是一个9ms的低电平,和一个4.5ma的高电平。这个同步码头可以是使程序知道从这个码头以后开始接收数据。解码在于如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延

15、时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右即可。根据红外编码的格式,程序应该等待9ms的起始码和4.5ms的结果码完成后才能读码。2.5 遥控接收器及其解码LT0038是塑封一体化红外接收器,它是一种集红外线接收、放大、整形于一体的集成电路,不需要任何外接元件,就能完成从红外线收到输出与TTL电平信号兼容的所有工作,没有红外遥控信号是为高电平,收到红外信号是为低电平,而体积和普通的塑料三极管大小一样,它适合于各种红外线遥控和红外线数据传输。接收器对外只

16、有3个引脚:Out、GND、Vcc与单片机接口非常方便,如图2.8所示图2.8 红外遥控接收器图注:1、脉冲信号输出接单片机的P33口;2 、GND接系统的地线(0V);3 、Vcc接系统的电源正极(+5V)2.6 LCD1602显示的应用LCD1602显示器具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,因此,在袖珍式仪表和低功能应用系统中得到越来越广泛的应用。LCD1602液晶显示是2行*16个字符的字符型显示器,它由32个字符点阵块组成,每个字符点阵块由5*7或5*10个点阵组成,可以显示ASCII码表中的所有可视的字符,采用+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比

17、。如图2.9所示LCD1602及其接口设计图。 图2.9 LCD1602及引脚连接图(1)LCD1602显示器模块引脚名称和功能表表2.1 LCD1602显示器模块引脚名称和功能引脚序号名 称功 能1Vss电源地2VDD电路电源 5V10%3Vo液晶驱动电压4RS寄存器选择 1:数据寄存器 0:指令寄存器5R/W读/写信号 1:读 0:写6EN/E显示器模块使能信号输入端,高电平有效714DB0-DB78位双向数据总线15BL1LED背光板电源正端(+5V)16BL2LED背光板电源负端(2)DDRAM地址与LCD显示屏上的显示位置的对应关系DDRAM存储器显示字符的字符码,其容量的大小决定模

18、块最多的字符数目。表2.2 DDRAM地址与LCD显示屏上的显示位置的对应关系即第一行的地址为00H0FH,第二行的地址为40H4FH。2.7 密码锁驱动电路设计电磁锁是用继电器来驱动的,当单片机通过RELAY发信号给了继电器,继电器吸合(接常开触点),使解锁机构通电,打开门锁。如图2.10密码锁驱动电路图。图2.10 密码锁驱动电路图2.8 红外遥控密码锁总接线设计根据单片机最小系统结构电路图、LCD1602、继电器、红外接收头与单片机接线图,最后进行总接线设计,总接线图如下: 图2.11 红外遥控密码锁总接线图第三章 软件设计第三章 软件设计3.1 LCD1602显示程序设计LCD1602

19、是利用液晶的物理特性,通过电压对其显示区域进行控制,有电压就有显示这样就可以显示。LCD1602模块是专门用于显示字母、数字、符号等的点阵型液晶显示模块,提供内部上电自动复位电路,外加电源后,自动对模块进行初始化操作,将模块设置为默认的显示工作状态。字符型LCD1602显示器模块是一种智能器件,它的内部有两种寄存器:指令寄存器和数据寄存器。单片机主控制系统对LCD的指令寄存器写操作,可以将“清屏”等控制指令发给LCD;对指令寄存器读操作,得到的数据最高位是LCD的状态标志位,低7位是地址计数器信息。对LCD的数据存储器写操作,可以修改当前地址中的显示字符;读操作可以得到当前显示地址中的显示数据

20、。(1)LCD1602控制指令说明表3.1 LCD1602控制指令说明 指令功能RSRWD7D6D5D4D3D2D1D0清屏0000000001归位000000001x输入方式设置00000001IDS显示开关控制0000001DCB光标或字符位移000001SCRL*功能设置00001DLNF*CGRAM地址设置00016位CGRAM地址码设置显示地址0017位DDRAM地址码读忙标志和地址计数器01BF7位当前显示地址码写数据108位数据读数据118位数据这里介绍几个编程是经常用到的几个指令:1) 清屏RSR/WDB7DB6DB5DB4DB3DB2DB1DB000000000012) 显示

21、开关控制RSR/WDB7DB6DB5DB4DB3DB2DB1DB00000001DCB功能:设置显示、光标及闪烁开、关其中:D表示显示开关:D=1为开,D=0为关C表示光标开关:C=1为开,C=0为关B表示闪烁开关:B=1为开,B=0为关3)光标或字符位移RSR/WDB7DB6DB5DB4DB3DB2DB1DB0000000S/CR/L*功能:光标或字符位移动,不影响DDRAM其中:S/C=1:画面平移一个字符位; S/C=0:光标平移一个字符位;R/L=1:右移;R/L=0;左移;4) 功能设置RSR/WDB7DB6DB5DB4DB3DB2DB1DB000001DLNF*功能:工作方式设置(

22、初始化指令)。其中:DL=1,8位数据接口;DL=0,四位数据接口;N=1,两行显示;N=0,一行显示;F=1, 5*10点阵字符;F=0, 5*7点阵字符;(2)LCD1602接口时序:1)写操作时序图3.1 写操作时序图2)读操作时序图3.2 读操作时序图表3.2 时序参数时序参数符号极限值单位测试条件最大值典型值最小值E信号周期tc400ns引脚EE脉冲宽度tpw150nsE上升沿下降沿时间tR,tFns地址建立时间tSP13025ns引脚E、RS、SW地址保持时间tHD110ns数据建立时间(读操作)tDns 引脚DB0DB7数据保持时间(读操作)tHD220100ns数据建立时间(写

23、操作)tSP240ns数据保持时间(写操作)tHD210ns(3)LCD1602显示程序流程说明根据LCD1602的指令表和接口作时序程图,对显示字符进行编程,主要是显示开/关指令、 显示起始行设置指令、读状态指令、写数据指令的应用,此设计显示字符对应的点阵为:5*7或5*10组成,最后整合得显示程序流程图,如图3.3显示流程图所示。图3.3 显示流程图3.2 红外遥控程序设计红外遥控的工作原理,红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波,红外接收电路将红外发射器发射的红外光转换为相应的电信号,再送后置放大器。发射端一般由指令键、指令编码系统、调制电路、驱动电路、发射电路等

24、几部分组成。当按下指令键时,指令编码电路产生所需的指令编码信号,指令编码信号对载体进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定指令编码信号,如图3.4红外遥控的发射程序流程图。接收端一般由接收电路、放大电路、调制电路、指令译码电路、驱动电路、执行电路(机构)等几部分组成。接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号。指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令的操作控制(机构),如图3.5红外遥控的发射程序流程图。图3.4红外遥控的发射程序流程图 图3.5红外

25、遥控的接收程序流程图图3.6 中断解码程序流程图3.3 红外遥控密码锁主程序设计根据控制要求以及各项程序流程,进行总体设计如下图3.7主程序流程图所示。图3.7主程序流程图第四章 总结4.1 本文工作总结这次毕业设计历时1个多月,从一开始资料查找、理论学习,到后来的调试和测试过程,这一切都使我的理论知识和动手能力进一步提高。通过本次红外系统的设计,我大有收获。从得到题目到查找资料,从电路板的调试到失败后再一次全部重新开始在这一个充满挑战伴随挫折,充满热情伴随打击的过程中,我感触颇深,它已不仅是一个对我三年学习知识情况和我的应用动手能力的检验,而且还是对我的钻研精神,面对困难的心态,做事的毅力和

26、耐心的考验。我在这个过程中深刻的感受到了做毕业设计的意义所在。本文的创新点在于用遥控远端控制的功能,因此给 人们带来很多便利,这一点也正是本人开发和设计此系统的根本原因这个课题的根本技术就是单片机控制技术,加部分外围电路来实现一些复杂的功能。可以根据要求改变软件来实现功能的更新和扩展。本课题的重点、难点是:(1)初步接触电子密码锁的原理、结构、应用等各方面从头开始琢磨;(2) 考虑电路实现原理以及与单片机的接口;(3) 红外发送与接收技术;通过完成本课题,我了解并掌握了红外遥控的基本理论知识,更深入的掌握单片机在实际电路中的开发和应用。为以后从事单片机软硬件产品的设计开发打下了一定的基础,培养

27、了从事产品研发的信心。4.2 存在不足没有考虑过多外部因素对系统的影响,比如密码丢失,误操作对系统的影响。报警与提示功能做得不够完善,遥控的有效距离没有进行系统的论证。这些因素有待进一步完善。关于红外遥控系统的智能控制,在工业、学校、生活中用得很广,各种成品是层出不穷,如果把它结合当今的感应卡技术,生物识别技术进行扩展,能使智能密码锁系统得到了飞跃式的发展,同时也使本设计更有研究意义。参考文献1 林伸茂.8051单片机彻底研究基础篇M.北京:人民邮电出版社,2003:24-153.2华成英,童诗白.模拟电子技术基础M 北京:高等教育出版社,20063 张红, 于平, 程文播. 基于单片机控制的

28、LCD显示屏系统J. 微计算机信息, 2009:92-934 康华光等.电子技术基础第2版M.北京:高等教育出版社,2004:10-156.5 胡汉才.单片机原理及其接口技术M. 北京:清华大学出版社,2006.6 马鸿文.基于AT89C52单片机的自动存取柜的设计与实现M.微计算机信息,2006:101-103.7 曹巧媛.单片机原理及应用M.北京:电子工业出版社,2002.8 牛翌光.单片机原理及接口技术M.北京:电子工业出版社,2008:32-79.9 杨路明.C语言程序设计M.北京:北京邮电大学出版社,2005:52-268.10 张文峥,李先亮,张其善.IrDA 红外通信在导航仪中的

29、应用J. 2000.11 邱玉春,李文俊.单片机系统中的红外通信接口J.2000:56-163.12 黄耀军,周云,严国萍.计算机红外无线互连的设计几实现J.2000.13 麦山,皮佑国.基于单片机的协议红外遥控系统J.1998.14 陆东旭,甄钊博. 自制简单的51开发板J. 电子制作, 2008,(01) 15 吴金戌.8051单片机实践与应用研究M .北京:清华大学出版社,2002.附 录附录一:LCD1602显示程序设计 附录/*- 名称:LCD1602-*/#include 1602.h#include delay.hsbit RS = P27; /定义端口 sbit RW = P2

30、6;sbit EN = P25;#define CHECK_BUSY#define RS_CLR RS=0 #define RS_SET RS=1#define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0#define EN_SET EN=1#define DataPort P0/*- 判忙函数-*/ bit LCD_Check_Busy(void) #ifdef CHECK_BUSY DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET; return (bit)(DataP

31、ort & 0x80);#else return 0;#endif /*- 写入命令函数-*/ void LCD_Write_Com(unsigned char com) while(LCD_Check_Busy(); /忙则等待 RS_CLR; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR; /*- 写入数据函数-*/ void LCD_Write_Data(unsigned char Data) while(LCD_Check_Busy(); /忙则等待 RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop

32、_(); EN_CLR; /*- 清屏函数-*/ void LCD_Clear(void) LCD_Write_Com(0x01); DelayMs(5); /*- 写入字符串函数-*/ void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) while (*s) LCD_Write_Char(x,y,*s); s +; x+; /*- 写入字符函数-*/void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) if (y

33、 = 0) LCD_Write_Com(0x80 + x); else LCD_Write_Com(0xC0 + x); LCD_Write_Data( Data); /*- 初始化函数-*/ void LCD_Init(void) LCD_Write_Com(0x38); /*显示模式设置*/ DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); LCD_Write_Com(0x08); /*显示关闭*/ LCD_Write_Com(0x01); /

34、*显示清屏*/ LCD_Write_Com(0x06); /*显示光标移动设置*/ DelayMs(5); LCD_Write_Com(0x0C); /*显示开及光标设置*/ 附录二:延时子程序设计 #include delay.h/*- uS延时函数, -*/void DelayUs2x(unsigned char t) while(-t);/*-mS延时函数-*/void DelayMs(unsigned char t) while(t-) /大致延时1mS DelayUs2x(245); DelayUs2x(245); 附录三:红外遥控程序设计附录#include /头文件,#inclu

35、dekeyboard.h#includedelay.h#include#define TURE 1#define FALSE 0sbit IR=P33; /红外接口标志unsigned char irtime;/红外用全局变量bit irpro_ok,irok;unsigned char IRcord4; /处理后的红外码,分别是 客户码,客户码,数据码,数据码反码unsigned char irdata33; /33个高低电平的时间数据/*函数声明 */ void ShowString (unsigned char line,char *ptr);/*定时器0中断服务函数 */ void t

36、im0_isr (void) interrupt 1 using 1/定时器0中断服务函数 irtime+; /用于计数2个下降沿之间的时间/* 外部中断0函数 */ void ex0_isr (void) interrupt 2 using 1/外部中断1服务函数 static unsigned char i; /接收红外信号处理 static bit startflag; /是否开始处理标志位 if(startflag) if(irtime=33)/引导码 TC9012的头码,9ms+4.5ms i=0; irdatai=irtime;/存储每个电平的持续时间,用于以后判断是0还是1 ir

37、time=0; i+; if(i=33) irok=1; i=0; elseirtime=0;startflag=1;/* 定时器0初始化 */ void TIM0init(void)/定时器0初始化 TMOD=0x02;/定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x00; /重载值 TL0=0x00; /初始化值 ET0=1; /开中断 TR0=1; /*外部中断初始化 */ void EX0init(void) IT1 = 1; /指定外部中断1下降沿触发,INT0 (P3.2) EX1 = 1; /使能外部中断 EA = 1; /开总中断/*红外键值处理 */ unsi

38、gned char KeyPro(void) /红外键值散转程序 switch(IRcord3) case 0x43:return 0;break;case 0x47:return 1;break;case 0x4B:return 2;break;case 0x4F:return 3;break;case 0x53:return 4;break;case 0x57:return 5;break;case 0x5B:return 6;break;case 0x5F:return 7;break;case 0x63:return 8;break; case 0x67:return 9;break; case 0x2B:return 10;break; / 按了F1键default:break; irpro_ok=0; /处理完成后清楚标志位 /* 红外解码函数处理*/ /unsigned char KeyScan(void)/红外码值处理函数 unsigned char i, j, k; unsigned char cord,value; k=1; for(i=0;i4;i+) /处理4个字节 for(j=1;j7)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1