基于单片机的红外线通信系统
红外无线数据传输系统的设计与实现-毕业论文

摘要红外无线数据传输系统是一种利用红外线作为传输媒介的无线数据传输方式,它相对于无线电数据通信具有功耗低、价格便宜、低电磁干扰、高保密性等优点,目前发展迅猛,尤其是在近距离无线数据通信中得到广泛的运用.本文主要介绍基于51单片机的红外无线数据传输系统的原理.在硬件设计原理的介绍中,主要分析了系统中NE555数据调制电路、红外发射电路、红外接收电路、DS18B20温度传感器电路、单片机外围电路以及声光报警电路。
在系统软件设计的介绍中,我们主要分析单片机串口通信协议、控制温度传感器采集数据、对数据的编解码;而液晶显示部分软件则是为了具有更好的人机交互界面。
通过调试后,本系统基本达到预期要求,1、正确实现双机通信功能,在2400波特率下通信距离达到7米左右;2、具有在超时通信不畅的情况下进行报警提示功能;3、具有自动搜寻一帧数据起始位的功能,这样可以有效防止外界的干扰;4、通过串口可以与PC机实现正确通信,可以作为计算机的红外无线终端,完成数据的上传和下放.因此本系统具有广阔的实用价值。
关键词:AT89S52单片机;数据采集;红外通信;调制解调;串口通信AbstractInfrared wireless data transmission system is a wireless data transfer method that uses infrared as a transmission medium, Compared with the radio data communication,it has many advantages in power consumption, Production costs,electromagnetic interference,and the confidentiality. At present,this technology is developing rapidly,In particular, It is widely used in short—range wireless data communications,In this paper,we are introduced infrared wireless data transmission system’s theory that based on the single—chip microcomputer 51. In the hardware design principle introduction,We mainly analysis the system's data modulation circuit of NE555, infrared transmitter,IR receiver circuit, DS18B20 temperature sensor circuit,microcontroller peripheral circuits, as well as sound and light alarm circuit。
单片机的红外通信系统设计

科研训练题目:单片机的红外通信系统设计指导教师:学生姓名:班级学号:评语和成绩:摘要:本文索要介绍的内容就是如何利用单片机,结合红外线器件设计构建出一套简易的红外通信系统,以实现在中短距离内的红外无线通信的功能。
与一般红外遥控器不同的是本文通过单片机的编、解码程序来实现红外信号的发收,从而实现红外遥控通信功能。
此通信系统经过一定的拓展,完全可以实现通信和各种红外遥控器的功能。
关键字:单片机;红外通信;发射;接收;遥控;接口Abstract:This paper introduced the content of that how to use for SCM, combined with the infrared device design to construct a simple infrared communication system, in order to realize the infrared wireless communication in short distance within the function. Unlike the general infrared remote control is based on single chip encoding, decoding process to achieve the infrared signal sending and receiving, so as to realize the infrared remote control function. This communication system after a certain development, can achieve communication and various kinds of infrared remote control function.Keywords: single chip; infrared communication; emission; reception; remote control; interface1红外线通信原理红外数据通信指的是两台设备之间通过红外线进行无线数据传输的一种数据传输方式,一般采用红外波段内的近红外线,波长在0.75μm至25μm之间。
基于STC89C51单片机的红外遥控智能家居系统设计

基于STC89C51单片机的红外遥控智能家居系统设计1. 本文概述阐述问题:我会指出当前智能家居系统中存在的问题,以及为什么需要基于STC89C51单片机的解决方案。
提出解决方案:接着,我会概述STC89C51单片机在智能家居系统中的作用以及红外遥控技术的优势。
文章结构:我会简要介绍文章的结构,说明接下来的章节将如何展开。
随着科技的不断进步,智能家居系统逐渐成为现代家庭生活的一部分,它们通过提高居住环境的舒适性、安全性和便利性,极大地提升了人们的生活质量。
现有的智能家居系统在集成性、成本效益和用户交互体验方面仍存在不足。
为了解决这些问题,本文提出了一种基于STC89C51单片机的红外遥控智能家居系统设计方案。
STC89C51单片机以其较低的成本、丰富的功能和良好的稳定性,成为实现智能家居控制的理想选择。
结合红外遥控技术,该系统不仅能够实现远程控制家电设备,还能通过简单的编程实现个性化的家居自动化场景,从而为用户提供更加灵活和智能的居住体验。
本文将首先介绍智能家居系统的基本概念和发展趋势,然后详细阐述STC89C51单片机的工作原理及其在智能家居系统中的应用。
接着,本文将描述红外遥控技术的原理,并展示如何将其与STC89C51单片机结合,实现对家居设备的智能控制。
本文将通过一个实际的系统设计案例,展示该设计方案的可行性和实用性。
2. 相关技术综述单片机技术:介绍STC89C51单片机的基本特性,包括其处理能力、内存、IO端口等,并说明其在智能家居系统中的应用优势。
红外通信技术:概述红外通信的基本原理,包括信号的调制、传输和解码过程,以及红外技术在遥控设备中的优势。
智能家居系统架构:描述智能家居系统的一般架构,包括控制中心、通信协议、传感器和执行器等组成部分。
现有智能家居解决方案:简要回顾市场上已有的智能家居解决方案,分析它们的特点和局限性。
设计挑战与创新点:讨论在设计基于STC89C51单片机的红外遥控智能家居系统时面临的技术挑战,以及本设计相对于现有技术的创新之处。
单片机红外发射原理及设计程序

单片机红外发射原理及设计程序一、红外发射原理红外发射器是利用电子技术发射红外光信号的设备,其原理是通过电流和电压的作用,使红外发射二极管中的半导体材料产生拉格朗日反射(Lumogen) 效应而发射出红外光。
红外发射器主要由红外发射二极管和控制器组成。
控制器通过控制发射二极管的工作状态,即调节发射二极管的电压和电流,从而控制红外发射的功率和波长。
二、红外发射器的设计1.红外发射二极管选型选择适合的红外发射二极管至关重要。
常见的红外发射二极管有850nm和940nm两种波长,前者适用于大多数应用场景,后者适用于有特殊需求的场景。
2.红外发射驱动电路设计红外发射二极管一般工作在连续电流模式下,通过调节电流的大小来控制红外发射的功率。
可以采用可调电流源或者恒流源来驱动红外发射二极管。
可调电流源的原理是通过使用可调电阻和反馈电路,调节输出电流的大小。
恒流源的原理是通过使用运算放大器和负反馈电路,使输出电流保持不变。
3.单片机控制程序设计通过单片机来控制红外发射器的工作状态,可以实现各种功能。
以下是一个简单的红外发射程序设计示例:#include <reg52.h>sbit IR_LED = P1^0; // 红外发射器连接的IO口void delay_us(unsigned int n) // 微秒级延时函数unsigned char i;while (n--)for(i=0;i<10;i++);}void send_IR_data(unsigned char data) // 发送红外数据unsigned char i;for(i=0;i<8;i++)if(data & 0x01)IR_LED=1;//发射高电平表示逻辑1delay_us(560);IR_LED=0;delay_us(560);}elseIR_LED=1;//发射高电平表示逻辑0delay_us(560);IR_LED=0;delay_us(1700);}data >>= 1;}void mainsend_IR_data(0xAA); // 发送数据0xAAwhile(1);这个程序通过控制红外发射器连接的IO口的输出电平和延时函数,模拟了红外码的发送过程。
单片机STM32F103C8T6的红外遥控器解码系统设计

单片机STM32F103C8T6的红外遥控器解码系统设计一、本文概述本文旨在详细阐述基于STM32F103C8T6单片机的红外遥控器解码系统的设计和实现过程。
随着科技的不断进步和智能化设备的普及,红外遥控器作为一种常见的遥控设备,已经广泛应用于家电、安防、玩具等多个领域。
然而,红外遥控器发出的红外信号往往需要通过解码器才能被设备正确识别和执行,因此,设计一款高效、稳定、可靠的红外遥控器解码系统具有重要意义。
本文将首先介绍红外遥控器的基本原理和信号特点,然后详细阐述STM32F103C8T6单片机的性能特点和在红外遥控器解码系统中的应用优势。
接着,将详细介绍红外遥控器解码系统的硬件设计,包括红外接收头的选择、电路设计和PCB制作等。
在软件设计部分,将详细阐述如何通过STM32F103C8T6单片机的编程实现红外信号的接收、解码和处理,以及如何将解码后的数据通过串口或其他通信方式发送给主控制器。
本文还将对红外遥控器解码系统的性能进行测试和分析,包括信号接收距离、解码速度和稳定性等方面的测试。
将总结本文的主要工作和创新点,并对未来的研究方向进行展望。
通过本文的研究和实现,旨在为红外遥控器解码系统的设计提供一种新的思路和方法,同时也为相关领域的研究人员提供有益的参考和借鉴。
二、红外遥控器基础知识红外遥控器是一种常见的无线遥控设备,它利用红外光作为信息载体,通过发射和接收红外光信号实现对设备的远程控制。
这种遥控方式因其简单、低成本和无需视线连接等优点,在各类消费电子产品中得到了广泛应用,如电视机、空调、音响等。
红外遥控器的工作原理主要基于红外辐射和光电器件的检测。
遥控器内部通常包含一个或多个红外发射管,当按下按键时,发射管会发射出特定频率和编码的红外光信号。
接收端则配备有红外接收头,该接收头内部有一个光敏元件(如硅光敏三极管或光敏二极管),用于检测红外光信号并将其转换为电信号。
为了区分不同的按键操作,红外遥控器通常采用特定的编码方式对按键信号进行编码。
单片机红外接受发送实验报告

单片机红外发射与接收实验报告指导老师:报告人:一·实验选题:基于单片机的红外发射与接收设计任务要求:设计一个以单片机为核心控制器件的红外收发系统。
发射载频:38KHz工作温度:-40℃--+85℃接收范围:2m二·系统概述方案设计与论证红外遥控收发系统(以下简称红外遥控系统)是指利用红外光波作为信息传输的媒介以实现远距离控制的装置。
从实际系统的硬件结构看,红外遥控系统包括发射装置和接收装置,其中发射装置包括电源模块、输入模块、红外发射模块和单片机最小系统,接收装置包括电源模块、红外接收模块、输出模块和单片机最小系统。
本设计选题设计任务要求设计一个以单片机为核心控制器件的红外收发系统。
其中,发射载波 38KHz,电源 5V/0.2A 5V/0.1A,工作温度-40℃--+85℃,接收范围 2m,传输速率 27bit/s,反应时间 2ms。
利用单片机的定时功能或使用载波发生器(用于产生载波的芯片)均可产生 38KHz 的发射载波。
单片机系统可以直接由 5V/0.1A 的电源供电,也可以通过三端稳压芯片由 9V/0.2A 电源供电。
采用工业级单片机可以工作在-40℃--+85℃。
为保证接收范围达到 2m,在发射载频恒为 38KHz 的前提下,应采用电流放大电路使红外发射管发射功率足够大。
传输速率和反应时间取决于所使用的编码芯片或程序的执行效率。
通过上述分析可知,为实现设计任务并满足设计指标,应采用工业级单片机,由电流放大电路驱动红外发射管。
将针对设计任务提出两种设计方案。
三·程序功能将程序编译通过并下载成功后,两个板上的红外光电器件都要套上黑色遮光罩,就可以进行实验了。
测距实验:手持1号板和2号板,两管相对,慢慢拉远或移近两管的距离,观察LED的读数变化。
阻断实验:可请另一人协助,将一张纸或其他障碍物放在两管之间再拿开,会看到读数有大幅度的变化。
反射实验:将1号和2号实验板并排拿在手中,并形成一个小夹角,向一张白纸移动观察读数变化。
基于单片机的红外遥控系统设计毕业设计

本科生毕业设计(论文)论文题目:基于单片机的红外遥控系统设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:本设计是基于单片机的红外遥控系统设计,设计内容包括了红外接收,红外解码和步进电机控制三大块。
如今红外遥控技术已经得到了广泛的应用;其利用红外线来传输数据,这种情况下不需要实体连线,体积小,成本低,功能强。
我们日常生活中的电视机,洗衣机,空调,航天飞机,工业现场设备等都运用了红外遥控的技术。
本设计中发射端采用专用的发射芯片来实现红外遥控码的发射,且遥控码格式是NEC标准。
接收端采用市面上流行的1838一体化红外接收头,接收到的红外信号经由1838接收头完成光/电转化和解调的工作,然后把33位的完整码发送到解码芯片中去完成解码工作。
本设计中的主芯片是STC89C52单片机,主芯片和解码芯片之间进行串行通讯。
系统启动后,解码芯片将解码后得到的8位数据码串行发送到主芯片中,然后通过主芯片来控制步进电机的正转,反转,加速,减速。
本设计中的被控对象是步进电机,步进电机最适合做数字控制。
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
51单片机-毕业设计基于单片机设计的红外线遥控器

ping primary school fire safety systems to e nha nce fire safety, prote ction of public property and t he life and property safety of teacher s and students, school fire safety into day-to-day ma nagement, is devel opi ng the following fire safety system. 1, strengt hen fire safety educati on of the whole school. Accordi ng to the re quireme nts of the Fire S ervices A ct, so t hat everyone has of keeping fire control safety, pr otecting fire control facilities, fire preve ntion, reports of fire学生毕业设计(论文)报告系别:专业:班号:学生姓名:学生学号:设计(论文)题目:基于单片机设计的红外线遥控器指导教师:设计地点:起迄日期:ping primary school fire safety systems to e nha nce fire safety, prote ction of public property and t he life and property safety of teacher s and students, school fire safety into day-to-day ma nagement, is devel opi ng the following fire safety system. 1, strengt hen fire safety educati on of the whole school. Accordi ng to the re quireme nts of the Fire S ervices A ct, so t hat everyone has of keeping fire control safety, pr otecting fire control facilities, fire preve ntion, reports of fire常州信息职业技术学院电子与电气工程学院毕业设计论文毕业设计(论文)任务书专业电子信息工程班级电子085 姓名傅浩一、课题名称:基于单片机设计的红外线遥控器二、主要技术指标:1.遥控距离:0~10m2.额定工作电压:直流3V(普通5号干电池2节);红外光平均辐照度≥40μW/cm2;指向性(辐照度为20μW/cm2)≥30度3.欠压条件下(直流2.4v):红外光平均辐照度≥20μW/cm2,指向性(辐照度为10μW/cm2)≥30度三、工作内容和要求:1.以AT89C2051单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外光的优点2.遥控发射器通过对红外光发射频率的控制来区别不同的操作3.遥控接收器通过对红外光接收频率的识别,判断出控制操作,来完成整个红外遥控发射、接收过程四、主要参考文献:[1] 梅丽凤,王艳秋,张军等. 单片机原理及接口技术,北京:清华大学出版社,2004年.[2] 戴峻峰,付丽辉. 多功能红外线遥控器的设计,传感器世界.2002,8(12):16~18.[3] 李光飞,楼然苗,胡佳文等. 单片机课程设计实例指导,北京:北京航空航天出版社,2004年.[4] 苏长赞. 红外线与超声波遥控,北京:人民邮电出版社.1995年.学生(签名)2010 年 5 月7 日指导教师(签名)2010 年5 月10 日教研室主任(签名)2010 年5 月10 日系主任(签名)2010 年5 月12 日ping primary school fire safety systems to e nha nce fire safety, prote ction of public property and t he life and property safety of teacher s and students, school fire safety into day-to-day ma nagement, is devel opi ng the following fire safety system. 1, strengt hen fire safety educati on of the whole school. Accordi ng to the re quireme nts of the Fire S ervices A ct, so t hat everyone has of keeping fire control safety, pr otecting fire control facilities, fire preve ntion, reports of fire毕业设计(论文)开题报告设计(论文)题目基于单片机设计的红外线遥控器一、选题的背景和意义:随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的遥控系统开始进入了人们的生活。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要利用红外线传输信息的方式可用于近距离遥控、飞机内广播和航天飞机内宇航员间的通信等。
同时红外通信技术适合于低成本、跨平台、点对点高速数据连接,尤其是嵌入式系统。
其主要应用:设备互联、信息网关。
设备互联后可完成不同设备内文件与信息的交换。
信息网关负责连接信息终端和互联网。
红外通信技术是在世界范围内被广泛使用的一种无线连接技术,被众多的硬件和软件平台所支持。
红外线通信是目前使用较广泛的一种通信手段。
由于红外线通信具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其它小型电器装置上也纷纷采用红外线通信技术。
工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线通信技术不仅完全可靠而且能有效地隔离电气干扰。
而单片机是目前设计应用中用得比较广泛的器件,它可以通过软件编程来达到不同的效果,实现各种各样不同的功能,具有灵活性强、可靠性高,可扩展性好等优点。
本文所要介绍的内容就是如何利用单片机,结合红外线器件设计构造出一套简易的红外线通信系统,以实现在中短距离内的红外无线通信的功能。
与一般通用的红外遥控器不同的是它不是利用专用的编解码芯片来实现发收端的编解码,而是应用C51 单片机,通过单片机的编、解码程序来实现红外信号的发收,从而实现红外遥控通信功能。
此通信系统经过一些必要的扩展,完全可以实现通用和各种专用红外遥控器的功能。
关键字:单片机;红外通信;发射;接收;遥控;串行接口目录1 绪论.......................................................... - 3 -2 红外通信各硬件电路............................................ -3 -2.1 红外发射模块电路的实现.................................. - 3 -2.1.1 载波信号电路的设计................................. - 4 -2.1.2按键输入电路....................................... - 5 -2.1.3串口通信的硬件电路................................. - 5 -2.1.4时钟电路和复位电路................................. - 6 -2.1.5 红外发射电路模块的系统综合电路图................... - 6 -2.2 红外接收模块电路的实现.................................. - 7 -2.2.1 解码后控制电路..................................... - 7 -2.2.2 接收模块的系统综合电路图........................... - 8 -3 红外通信系统的软件设计........................................ - 9 -3.1 红外遥控发射的软件程序实现.............................. - 9 -3.2 红外遥控接收的软件程序................................. - 16 -4 结论........................................................ - 20 -5 参考文献..................................................... - 20 -1 绪论随着社会生产力的发展和技术的进步,单片机的应用越来越广泛。
在遥控应用领域,单片机尤其得到了很好的应用。
很多单片机应用系统中,常常利用非电信号传送控制信息和数据信息,以实现遥控或遥测的功能。
在各种非电信号中,红外线光信号是最经常用的。
它在各领域都得到广泛的应用,红外线为不可见光,具有很强的隐蔽性和保密性,因此其在防盗、警戒等安全保卫装置也得到了广泛的应用。
因为红外线通信具有成本低廉、控制简单、实施方便、简单易用、结构紧凑和抗干扰能力强、传输可靠性高的特点,因此在小型的通信移动设备中获得了广泛的应用。
试想一下,如果没有红外通信,连接这其中的两个设备就必须要有一条特制的连线,如果要使它们能够任意地两两互联传输数据,该需要多少条连线呢?而有了红外线通信口,这些问题就都迎刃而解了。
本课题要设计完成的就是一个简单的基于单片机的红外通信系统,通过单片机的编、解码程序来实现红外信号的发收,从而实现红外遥控通信功能.此通信系统经过一些必要的扩展,完全可以实现通用和各种专用红外遥控器的功能。
实现单片机系统红外通信的关键在于红外接口电路的设计以及接口驱动程序设计。
2 红外通信各硬件电路我们这里把整个遥控器系统分为发射模块及接收模块两部分,和一般通用的遥控器结构相同,本课题设计的通信系统发射部分也包括键盘矩阵电路、编码调制电路、LED 红外发射电路;接收部分包括光、电转换放大器、解调解码电路和解码显示电路。
各部分电路的设计思路和具体实现如下。
2.1 红外发射模块电路的实现当按下某一按键后,遥控器上的遥控芯片便进行编码产生一组句柄,结合载波电路的载波(38KHz)而成为合成信号,经过放大器提升功率而推动红外发射二极管,将红外线信号发射出去,所要发射的句柄必须加上载波才能使信号传送的距离加长,一般遥控器的有效距离为7m。
图2.1. 基于I/O口的红外发射电路2.1.1 载波信号电路的设计图2.1.1 载波电路图为使红外信号能够正确的传送出去和传送更远,我们也需要在编码信号输出端加上一个高频载波信号。
通过载波信号的调制,把编码信号的有用信息“携带”出去,这样信号的传送距离就能更长,而且能有效的避免干扰。
通过555 时基电路和选择合适的外围元件组成频率为38KHz 的载波脉冲振荡器,如图2.1.1 所示。
图中,通过调节200 欧精密可调变阻器RP2 的阻值,可以调整使555 的输出端输出为38KHz 的载波信号。
2.1.2按键输入电路。
图2.1.2 按键输入电路2.1.3串口通信的硬件电路如下图2.1.3所示。
图2.1.3 串口通信电路2.1.4时钟电路和复位电路图2.1.4(1)时钟电路图2.1.4(2)复位电路2.1.5 红外发射电路模块的系统综合电路图通过上面对发射模块各部分电路的具体设计,我们可以得出发射模块的系统综合电路设计图如下图3.11 所示。
图2.1.5 发射模块系统综合电路图2.2 红外接收模块电路的实现图2.2 为红外接收的工作方块图,其主要控制组件为红外线接收模块,其内部含有高频的载波电路,专门用来滤除红外线合成信号的载波信号(38KHz)而送出发射器的控制信号。
当红外线合成信号进入红外线接收模块,在其输出端便可以得到原先的数字控制编码,只要经过单片机译码程序进行译码,便可以得知按下了哪一按键,而作出相对应的控制处理,完成红外遥控的动作图2.2 红外接收工作方块图2.2.1 解码后控制电路无线通信的最终目的就是为了实现无线接收后的控制功能。
本课题的无线接收后控制电路设计为一个数码显示电路和一个响铃报警电路,这样既可以实现了红外无线接收后的控制功能,也可以通过这个电路很直观的识别解码的成功与否。
具体电路设计见下图2.2.1图2.2.1 解码后数码显示电路电路中根据发射端发射按键的数目,设计一位的数码管来显示,数码管采用的是一个共阴极接法的一位数码显示管,其中0—9 数码显示数字表示的是发射按键的0—9 的编号数,关闭按键的数码显示符号则用“E”来表示。
报警电路部分则只采用了一个5伏电磁型蜂鸣器来报响,通过蜂鸣器的报响从而表示译码的成功。
2.2.2 接收模块的系统综合电路图通过上面对接收模块各部分电路的具体设计,我们不难得出接收模块的系统综合电路设计图见图2.2.2图2.2.2 接收模块的系统综合电路图3 红外通信系统的软件设计软件的设计,要求准确无误的实现红外遥控器的控制功能,并要求系统具有高的可靠性、快的反应速度、以及低的系统功耗。
本系统的控制功能主要包括发射端的键盘按键输入,按键信息的编码输出,接收端的译码显示以及报响控制等功能。
下面是对红外发射与红外接收软件程序设计的具体阐述。
3.1 红外遥控发射的软件程序实现#include <reg52.h>#include <intrins.h> //_nop_ ();void scan_k0(void); //0void scan_k1(void); //1void scan_k2(void); //2void scan_k3(void); //3void scan_k4(void); //4void scan_k5(void); //5void scan_k6(void); //6void scan_k7(void); //7void scan_k8(void); //8void scan_k9(void); //9void scan_k10(void);//10void send_9000(void);void send_4500(void);void send_560(void);void send_565(void);void send_1685(void);void send_2000(void);void send(unsigned char Data);void timer0_int(void);// interrupt 1 ; //T0 中断子程序 //2ms 计数器******************************************************************* sbit OUT=P1^0;//发射脚sbit K0 =P2^0;sbit K1 =P2^1;sbit K2 =P2^2;sbit K3 =P2^3;sbit K4 =P2^4;sbit K5 =P2^5;sbit K6 =P2^6;sbit K7 =P2^7;sbit K8 =P1^5;sbit K9 =P1^6;sbit K10=P1^7;sbit TEST1=P3^0;//TEST1sbit TEST2=P3^1;//TEST2sbit TEST3=P3^2;//TEST3sbit TEST4=P3^3;//TEST4******************************************************************* unsigned char ss ; //system statusunsigned char n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10; //键龄unsigned char wait; //等待释放################################################################### void main(){OUT=0; //关闭发射TMOD=0x11; //定时器0 和1 都设置为方式1 即16 位计数器TL0=0x30;TH0=0x0F8; //T0 定时2msEA=1; //开放总中断ET0=1; //允许T0 中断ET1=0; //禁止T1 中断TR0=1; //启动T0while(1);}******************************************************************* void scan_k0(void) //{if (K0==0) //按键按下时I/O 口为0.{if (++n0>=9) //键盘防抖延时2ms*9=18ms{wait=250,n0=0;send(0);}}}******************************************************************* void scan_k1(void) //{if (K1==0) //按键按下时I/O 口为0.{if (++n1>=9) //键盘防抖延时2ms*9=18ms{wait=250,n1=0;send(1);}}}******************************************************************* void scan_k2(void) //{if (K2==0) //按键按下时I/O 口为0.{if (++n2>=9){wait=250,n2=0;send(2);}}}******************************************************************* void scan_k3(void) //{if (K3==0) //按键按下时I/O 口为0.{if (++n3>=9){wait=250,n3=0;send(3);}}}******************************************************************* void scan_k4(void) //{if (K4==0) //按键按下时I/O 口为0.{if (++n4>=9){wait=250,n4=0;send(4);}}}******************************************************************* void scan_k5(void) //{if (K5==0) //按键按下时I/O 口为0.{if (++n5>=9){wait=250,n5=0;send(5);}}}******************************************************************* void scan_k6(void) //{if (K6==0) //按键按下时I/O 口为0.{if (++n6>=9){wait=250,n6=0;send(6);}}}******************************************************************* void scan_k7(void) //{if (K7==0) //按键按下时I/O 口为0.{if (++n7>=9){wait=250,n7=0;send(7);}}}******************************************************************* void scan_k8(void) //{if (K8==0) //按键按下时I/O 口为0.{if (++n8>=9){wait=250,n8=0;send(8);}}}******************************************************************* void scan_k9(void) //{if (K9==0) //按键按下时I/O 口为0.{if (++n9>=9){wait=250,n9=0;send(9);}}}******************************************************************* void scan_k10(void) //{if (K10==0) //按键按下时I/O 口为0.{if (++n10>=9){wait=250,n10=0;send(10);}}}******************************************************************* void send(unsigned char Data){EA=0; //关中断//--下面开始发码头--send_9000();send_4500();//..下面开始发识别码..send_565();//0send_560();send_565();//1send_1685();send_565();//0send_560();send_565();//0send_560();send_565();//1send_1685();send_565();//0send_560();send_565();//1send_1685();send_565();//1send_1685();//...下面开始发数据码和数据反码.send_565();//D0if((Data & 0x01)==1)send_1685();else send_560();send_565();//D1if((Data & 0x02)==2)send_1685();else send_560();send_565();//D2if((Data & 0x04)==4)send_1685();else send_560();send_565();//D3if((Data & 0x08)==8)send_1685();else send_560();//send_565();//D0 反if((Data & 0x01)==1)send_560();else send_1685();send_565();//D1 反if((Data & 0x02)==2)send_560();else send_1685();send_565();//D2 反if((Data & 0x04)==4)send_560();else send_1685();send_565();//D3 反if((Data & 0x08)==8)send_560();else send_1685();send_2000();//结束信号!//++++++++++++++++++++++OUT=0; //停止发送!------------------------------------------------------------------- EA=1; //开中断}******************************************************************* void send_9000(void){TH1=0x0DC;TL1=0x0D8; //9000us,开始发码头TF1=0; //清除溢出标志////++++++++++++++TR1=1; //启动T1OUT=1;while(!TF1);}------------------------------------------------------------------- void send_4500(void){TH1=0x0EE;TL1=0x06C; //4500usTF1=0; //清除溢出标志OUT=0;while(!TF1);}------------------------------------------------------------------- void send_560(void){TH1=0x0FD;TL1=0x0D0; //560usTF1=0; //清除溢出标志OUT=0;while(!TF1);}------------------------------------------------------------------ void send_565(void){TH1=0x0FD;TL1=0x0CB; //565usTF1=0; //清除溢出标志OUT=1;while(!TF1);}------------------------------------------------------------------- void send_1685(void){TH1=0x0F9;TL1=0x06B; //1685usTF1=0; //清除溢出标志OUT=0;while(!TF1);}------------------------------------------------------------------- void send_2000(void){TH1=0x0F8;TL1=0x030; //2000usTF1=0; //清除溢出标志OUT=1;while(!TF1);}################################################################### void timer0_int(void) interrupt 1 //T0 中断子程序 //2ms 计数器;{TL0=0x30;TH0=0x0F8; //重装定时器0 常数;//定时2msif (wait==0) //如果之前没有键按下或者有键按下延时结束.{scan_k0();scan_k1(); //scan_k2(); //scan_k3(); //scan_k4(); //scan_k5(); //scan_k6(); //scan_k7(); //scan_k8(); //scan_k9(); //scan_k10(); //}elsewait--;}END3.2 红外遥控接收的软件程序ORG 0000HAJMP MAIN; 转入主程序ORG 0003H; 外部中断P3.2 脚INT0 入口地址AJMP INT ; 转入外部中断服务子程序(解码程序)MAIN: LCALL YS100ms ;延时100msMOV DPTR,#TABSETB EA ; 打开CPU 总中断请求SETB IT0 ; 设定INT0 的触发方式为脉冲负边沿触发SETB EX0 ; 打开INT0 中断请求MOV TMOD,#01H; T0 方式1,16 位计数器SETB TR0; 启动T0CLR ET0; 禁止T0 中断MOV P0,#0; LED 不显示CLR P2.7;LCALL SPEAK;AJMP $;==================================================================== ;以下为进入P3.2 脚外部中断子程序,也就是解码程序INT: CLR EA ; 暂时关闭CPU 的所有中断请求CLR A;MOV R6,#10; #10H9: ACALL YS861 ; 调用861 微秒延时子程序JB P3.2,EXIT1;延时861 微秒后判断P3.2 脚是否出现高电平如果有就退出解码程序DJNZ R6,H9 ;重复10 次,完成对遥控信号的9000 微秒的初始低电平信号识别。