红外遥控解码实验报告
红外遥控解码实验报告(3篇)

第1篇一、实验目的本次实验旨在通过搭建红外遥控系统,了解红外遥控的基本原理,掌握红外遥控信号的编码和解码方法,并利用单片机实现对红外遥控信号的解码,实现对红外遥控器的控制。
二、实验原理红外遥控技术是一种无线通信技术,通过发射端发送特定编码的红外信号,接收端接收该信号并进行解码,从而实现对电器的控制。
红外遥控系统主要由发射端和接收端两部分组成。
1. 发射端:由按键矩阵、编码调制电路和红外发射器组成。
按键矩阵根据按键的不同产生不同的编码信号,编码调制电路将这些信号调制在38kHz的载波上,红外发射器将调制后的信号发射出去。
2. 接收端:由红外接收器、前置放大电路、解调电路和指令信号检出电路组成。
红外接收器接收发射端发射的红外信号,前置放大电路对信号进行放大,解调电路将38kHz的载波信号去除,指令信号检出电路从解调后的信号中提取出指令信号。
三、实验设备1. 红外遥控发射器2. 红外接收模块3. 单片机开发板4. 连接线5. 电源6. 红外遥控解码程序四、实验步骤1. 搭建红外遥控系统:将红外接收模块连接到单片机开发板的相应引脚上,确保连接正确无误。
2. 编写红外遥控解码程序:根据红外遥控协议,编写解码程序,实现对红外信号的解码。
3. 程序烧录与调试:将解码程序烧录到单片机中,连接电源,进行程序调试。
4. 测试与验证:使用红外遥控器对单片机进行控制,观察单片机是否能够正确解码红外信号,并实现相应的控制功能。
五、实验结果与分析1. 红外遥控系统搭建成功:通过连接红外接收模块和单片机开发板,成功搭建了红外遥控系统。
2. 解码程序编写与调试:根据红外遥控协议,编写解码程序,实现对红外信号的解码。
在调试过程中,通过观察单片机的输出,验证了程序的正确性。
3. 测试与验证:使用红外遥控器对单片机进行控制,观察单片机是否能够正确解码红外信号,并实现相应的控制功能。
实验结果表明,单片机能够成功解码红外信号,并实现红外遥控器的控制功能。
红外遥控实训报告

安徽科技学院数理与信息工程学院《电子信息系统实训红外遥控开关设计》设计说明书题目: 电子信息系统实训红外遥控开关设计姓名(学号) 姜磊(1665120208)同组者(姓名)王山豹同组者(学号) 1665120230 专业: 电子信息工程班级: 122班指导教师:刘纯利2015 年 6 月 5 日电子信息系统实训红外遥控开关设计报告一、概述时至今日,无线遥控器已经在生活中得到了越来越多的应用,给人们带来了极大的便利。
随着科技的进步无线遥控器也扩展到了许多种类,简单来说常见的有2种,一种是家电常用的红外遥控模式(IR Remote Control),另一种是防盗报警设备、门窗遥控、汽车遥控等等常用的无线电遥控模式(RF Remote Control)。
两者各有不同的优势,应用的领域也有所区别。
本次开放性实验我们以PT2262/PT2272为发射接收模块,并辅以辅助电路。
实现简单的无线遥控的智能解码。
《电子信息系统实训》是以学生自己动手,掌握通信相关理论、一定操作技能和制作实际硬件产品为特色的实训项目。
本实训通过学生独立完成一个完整的具有较强实用性的硬件电路实物为任务,可以通过实训锻炼学生硬件电路的设计能力,电路辅助设计软件的应用以及熟悉印刷电路板的完整制作过程,在后期工作中,还需要学生对制作的好的印刷电路进行调试,排除故障。
通过本实训可以让学生掌握技能、积累经验和提高能力共同发展。
二、实习的目的与要求主要目标和任务:1、掌握电子技术应用过程中的一些基本技能。
2、熟练识别各种电子元器件;了解各种元器件的作用、分类、性能及其参数。
3、巩固、扩大已获得的理论知识。
4、掌握电路板的设计原则,熟悉简单印刷电路板制作的过程,掌握查找及排除电子电路故障的常用方法。
5、培养学生综合运用所学的理论知识和基本技能的能力,尤其是培养学生独立分析和解决问题的能力。
6、熟悉电子产品的安装及手工焊接技术,能独立完成电子元器件的拆、装、焊。
红外遥控测试实验报告(3篇)

第1篇一、实验目的1. 了解红外遥控的基本原理和组成。
2. 掌握红外遥控信号的发射和接收技术。
3. 评估红外遥控系统的性能,包括遥控距离、角度和抗干扰能力。
4. 分析实验过程中遇到的问题,并提出相应的解决方案。
二、实验原理红外遥控技术是一种无线通信技术,通过发射端发送红外信号,接收端接收并解析红外信号,从而实现对设备的控制。
红外遥控系统主要由发射端、传输介质和接收端组成。
三、实验器材1. 红外遥控器2. 红外接收模块3. 逻辑分析仪4. 万用表5. 电源6. 调试工具四、实验步骤1. 搭建实验平台:将红外遥控器和红外接收模块连接到逻辑分析仪,并将逻辑分析仪与电脑连接,以便实时观察和分析信号。
2. 测试遥控距离:在实验室内,保持红外遥控器和红外接收模块之间距离不变,逐步增加距离,记录不同距离下的遥控效果。
3. 测试遥控角度:在实验室内,保持红外遥控器和红外接收模块之间距离不变,改变红外遥控器与红外接收模块之间的角度,记录不同角度下的遥控效果。
4. 测试抗干扰能力:在实验室内,向红外遥控器和红外接收模块之间添加干扰信号,观察红外遥控系统的抗干扰能力。
五、实验结果与分析1. 遥控距离测试:在实验过程中,当红外遥控器和红外接收模块之间距离为5米时,遥控效果良好;当距离增加到10米时,遥控效果有所下降;当距离增加到15米时,遥控效果基本失效。
这表明红外遥控系统的遥控距离与发射端和接收端之间的距离有关,距离越远,遥控效果越差。
2. 遥控角度测试:在实验过程中,当红外遥控器和红外接收模块之间距离为5米时,在正前方角度范围内,遥控效果良好;当角度增加到45度时,遥控效果有所下降;当角度增加到90度时,遥控效果基本失效。
这表明红外遥控系统的遥控角度与发射端和接收端之间的角度有关,角度越大,遥控效果越差。
3. 抗干扰能力测试:在实验过程中,向红外遥控器和红外接收模块之间添加干扰信号,发现当干扰信号强度较高时,红外遥控系统的抗干扰能力较差,容易导致遥控失效。
红外实验报告

红外实验报告篇一:红外遥控实验报告红外遥控开关小组成员:指导教师:掌握电子电路设计的基本方法;了解各种红外收发器件;掌握红外遥控的收发方式;掌握红外遥控的编码、解码方式;掌握开关量信号对强电设备的控制方式设计要求及技术指标:基本部分:[1] 红外遥控器采用现成的家用电器的红外遥控器,遥控距离不小于5米; [2] 遥控开关接收端的工作电源为220V 交流电;[3] 遥控开关使用发光二极管指示有无220V交流电源及遥控开关的开关状态;[4] 遥控开关能够控制台灯、电扇等家用电器,输出功率不超过200W。
发挥部分:[1] 自制红外遥控器,包括至少4路遥控按键; [2] 遥控开关能够控制至少4路家用电器设计任务[1] 设计、安装、调试所设计的电路;[2] 画出完整电路图,详细说明电路原理,写出设计总结报告设计思路红外遥控→红外接收→信号处理→开关驱动及显示红外遥控器的发射端具有键盘矩阵,每按下一个键,即产生具有不同的编码的数字脉冲,这种代码指令信号调制在38kHZ的载波上,激励红外光二极管产生具有脉冲波串的红外波,通过空间的传送送到受控机内的遥控接收器。
在接收过程中红外波信号通过滤波器和光电二极管转换为38kHZ的电信号,此信号经过放大、检波、整形、解调,送到解码器与接口电路,从而完成相应的遥控功能。
“红外线遥控器”设计方案直流稳压电源部分直流稳压电源的基本结构设计电路整流电路虽然已经把交流电转换成直流电, 但是整流出来的电压还不是平稳的直流电电压, 所以在整流电路的后边还要有滤波电路, 来改善整流输出电压的平滑程度, 这个工作由电容器来完成。
电路的核心是集成稳压电路LM317, 它有三个端点, 一个输入端, 一个输出端, 还有一个调节端。
调节端接地在实际的焊接过程中,我们采用芯片7805代替了芯片LM317,由7805的OUT端输出直流的稳定的电压。
三端稳压集成电路7805功能框图:红外遥控开关组成框图:多路红外遥控发射部分:发射端的结构发射端电路图篇二:红外光谱实验报告实验学专班姓指导日仪器分析实验报告名称:红外吸收光谱实验院:化学工程学院业:化学工程与工艺级:名:学号 124020 教师:期:XX年4月8日一、实验目的1、掌握溴化钾压片法制备固体样品的方法;2、学习并掌握美国尼高立IR-6700型红外光谱仪的使用方法;3、初步学会对红外吸收光谱图的解析。
红外遥控解码实验报告

嵌入式系统试验报告1.红外遥控解码实验1.1 实验目的了解红外遥控编码并用单片机捕捉信号及解码熟悉LCD1602的驱动1.2 实验设备T1838一体化红外接收头DT9122D芯片制作89S511.3 实验内容红外一体化接收头接收到红外遥控发射器所发射的信号,并将此信号进行整形和反相送入单片机端口。
经过软件译码,将译码结果(按键代码)昂数码管显示。
1.4 实验预习要求遥控编码知识ME850单片机开发实验仪集成有一路一体化红外接收头,并配有红外发射器,能够做红外接收与解码实验了解简单的单片机的开发的环境要有一定的C语言基础1.5 实验原理所谓解码就是能用单片机把以不同宽度的脉冲区别开来,一种比较好思路就是计算两次下降沿间隔时间,当单片机外部中断1口有下降沿时中断一次,并启动定时器,定时器定50us,当下次下降沿到来时我们计算定时器中断的次数,这样我们就能很好的区分不同宽度的脉冲了。
1.6 实验步骤将JP21的8个短接子全部用短接帽短接,使DG0-DG7与P2端口接通将JP22的9个短接子全部用短睫毛短接,使A-DP与P0端口接通,VCC向数码管模块供电将JP10的短接子用短接帽短接,使红外接头U16的数据线与P3.2端口接通。
将JP24的短接子用短接帽短接,禁止LCD1602显示功能,否则数码管将不能正常显示。
第一次使用遥控器要去下电池盖下的隔离胶片。
1.7 实验电路原理分析ME850选用T1838一体化红外接收头,接受来自红外遥控器的红外遥控信号。
T1838集成红外接收二极管、放大、解调、整形等电路在同一封装上。
T1838负责红外遥控信号的解调,将调制在38KHZ上的红外脉冲信号解调并倒相输入到单片机的P3.2引脚,由单片机进行高电平与低电平宽度的测量T1838的输出端通过JP10与AT89S52的P3.2连接,既可以受用中断的方式也可以使用查询方式来编程1.8 实验参考程序分析#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit ir=P3^3;//红外端口sbit dm=P1^4;//数码管段码控制位sbit wm=P1^5;//数码管位码控制位sbit led_cs=P1^6;//LED控制位sbit rs=P3^5;//1602数据命令选择端sbit en=P3^4;//1602使能信号uchar num;uchar key_code=0;//遥控键值uchar new_code=0;//有无新按键uint buf_key_code=0;//键值暂存uchar key_bit_count=0;//键编码脉冲计数uint count=0;//定时中断次数计数uint buf_count=0;//定时中断计数暂存uchar common_code_count=0;//前导码脉冲计数uchar ir_status=0;//脉冲接收器所处的状态,0:无信号,1:系统码接收区,2:数据编码接收区uchar code table[]="EE01 DEMO:IR";uchar code table1[]="code:";uchar code table2[]={'0','1','2','3','4','5','6','7','8','9',};void delay_10us(unsigned char y)///延时子程序10us{unsigned char x;for(x=y;x>0;x--);}void delay_ms(uint z)//延时子程序1ms{uint x,y;for(x=z;x>0;x--)for(y=113;y>0;y--);}void init(void)/////初始化{ir=1; //红外端口写1led_cs=0; //关闭LEDEA=1; //开总中断TMOD=0x02; //定时器0,模式2,8位自动装载模式TH0=0Xd1; //定时50usTL0=0Xd1;IT1=1; //INT1下降沿触发ET0=1; //允许定时器中断EX1=1; //允许外部中断}/***********************************************定时器中断***********************************************/void time0() interrupt 1///定时器中断{count++;//定时器中断次数累加}/**********************************************外部中断,红外解码程序**********************************************/void int1() interrupt 2///外部中断{TR0=1;//开定时器中断if(count>12&&count<270)//如果信号合法,则放入buf_count,count清0,对下一个脉冲{buf_count=count;count=0;}delay_10us(10);//延时100us以消除下降沿跳变抖动if(ir==0)//INT1引脚稳定为低电平,则表法确实是信号,count重新计时,因上面延时了50us,故要补偿1次TO中断{count=2;}if(buf_count>12&&buf_count<270)//若收到的信号合法,则再进行信号分析{if(ir_status==0)//如果之前未收到引导码{if(buf_count>210&&buf_count<270)//判断是否引导码13.5ms{ir_status=1;//系统标记buf_count=0;//}}else if(ir_status==1)///收到引导码if(common_code_count>=25)//若收完26个脉冲{ir_status=2;//数据解码标记common_code_count=0;//系统码计算清零buf_count=0;//中断计数暂存清0}else if((buf_count>40&&buf_count<70)||(buf_count>12&&buf_count<32)){buf_count=0;common_code_count++;//每收到一个信号自加1}}else if(ir_status==2)//进入数据编码接收{if(key_bit_count<8)//收到数据少于8位,则将收到的数据写入buf_key_code {if(buf_count>40&&buf_count<70){buf_count=0;buf_key_code>>=1;buf_key_code|=0x80;//收到1key_bit_count++;//数据脉冲累加}else if(buf_count>12&&buf_count<32)//收到0 {buf_count=0;buf_key_code>>=1;//收到0key_bit_count++;}}else //若收完8位数据则做以下处理{ir_status=0;//接收状态返回到空闲key_code=buf_key_code;key_bit_count=0;buf_key_code=0;buf_count=0;TR0=0;new_code=1;}}}}1.9 实验结论和分析将上面的程序写入89S51单片机中,通电后,按压遥控器上0-9按键,则实验板上的数码管就显示出对应的按键值,同时解码成功后发出声音指示Welcome To Download !!!欢迎您的下载,资料仅供参考!。
红外遥控的解码

红外遥控解码——HS9012——郑文2007.3.23序最近因为买了仿真器,所以想做些以前没能做的东西。
首先就是红外解码,其实我在学校里的时候想学的,但是由于种种原因拖延了,现在自己买了一个伟福的仿真器,于是开始学红外遥控的解码了。
我用的最熟的就是51单片机,虽然现在也学了义隆单片机,但是我没仿真器,所以用最拿手的来学红外解码。
为了学红外解码,我先从网上找了个范例程序,但是由于我家的遥控器是50462芯片的,不支持通用的程序,于是我就把家里步步高VCD里的遥控器拿出来调试,结果可以了,但是我不清楚具体是解码了什么芯片,于是我有从朋友那里要了两个破旧的电视遥控器,索性自己也买了两个新的遥控器,其中一个是HS9012芯片的,一个是3010芯片的,于是开始针对性的进行解码,看了很多红外的资料和遥控芯片的资料,分析了遥控码的波形,终于把红外解码搞清楚了,现在就以对9012芯片的解码为例子进行具体的分析。
一、对红外解码以前先要熟悉器件:红外一体化接收头我实际用过两种类型的红外一体化接收头,如下图就是引脚不一样,具体功能是一样的,都可以实现解码。
我用的是载波频率是38KHZ的红外一体化接收头。
就是能够接收38KHZ的载波信号,一般遥控器发射的红外遥控信号是38KHZ左右的。
二、了解需要解码的芯片的编码特点这里对红外遥控专用芯片HS9012来具体介绍,其他芯片的解码应用方法也是大同小异。
HS9012一帧完整的发射码由引导码、用户编码和键数据码三部分组成。
引导码是由一个4.5ms的高电平和4.5ms的低电平组成,八位用户编码被连续的发两次;八位连续的键数据码也被连续的发两次,第一次是发送的是键数据码的原码,第二次是发送的是键数据码的反码。
HS9012的发射码采用脉冲位置调制方式(PPM)来进行编码的,这样的码方式效率高,抗干扰性好。
我们需要根据此波形来进行解码,这里需要注意的一点,红外一体化接收头接收的信号的波形刚好和遥控器发送的波形相反。
红外线解码心得和解码程序

试用期小结尊敬的江苏三恒科技集团领导:您好!我叫程克辉,毕业于西北师范大学知行学院,电子信息工程专业。
在试用期的两个多月里,我在工程中心软件项目部实习工作,我很荣幸,能跟着***副总经理学习与专业相关的电子知识,收获不少!这两个多月在任总的指导下,我成功的了解、计算了:BT151可控硅、LM2940(1安恒流调节器)、LM317三端可调正稳压器集成电路、LM2674电源高效降压稳压转换器、13F-11网络隔离变压器、光耦开关、继电器、SC50462红外遥控发射模块、SM3XX0/3XX1红外接收头等电子元器件。
在任总的指导下和上面的学习我跟着任总学习“煤矿防爆显示系统”的电路设计、模块学习,也成功的用c语言成功的编写控制该系统的c程序,由于公司没有人用c对红外解码程序的编写,故在任总的悉心指导下,几经努力终于编写成功并且能稳定的通过硬件的测试。
硬件部分:1、外部12V电源转换成5V模块。
由LM2674器件实现2、外部1A恒流源模块。
由LM317和LM2940实现3、五个独立按键控制继电器模块。
由光耦开关实现4、继电器动作模块。
5、红外接收模块。
由SM3XX0/3XX1红外接收头实现6、外部的四路光端机、视频转换器、光缆传输、摄像头、画面分割器、网络视频等模块试用期的期间,由于刚来啥器件都没有,每每遇到困难的时候我就及时向***主任汇报,在张主任积极帮助下我的问题往往能很快的得到解决。
特别感谢张主任的无私支持和关怀!在红外线解码的c程序设计上,我面临着很大的困难,在学校根本就没有接触过红外线的解码,因为红外线是一种看不到摸不着的东西,且我们公司的红外线发射器用的是杭州士兰电子的器件很特殊。
它没有引导码只有16位的用户码和按键的数据码,这样写出来的c 解码程序就很容易受到外部红外线的干扰。
在程序初始化和有红外脉冲时能接收16位的0脉冲,即使解码出错也能有00H的码进入。
还好最后在我用数码管把红外线解出来的码显示出来,这样一切问题就迎刃而解了!程序能成功调试并通过硬件测试。
红外遥控实验

红外遥控通信系统现在家电产品大部分配有红外线遥控器,在PC上也有红外传输的接口,有些鼠标加了红外控制接口,变成了无线鼠标。
所以说使用红外已经是一种非常广泛的通信方式。
红外通信知识的概述。
实验内容简介实验目的1、掌握红外通信系统的知识。
2、学会对接收到的红外信号进行解码操作。
3、学会如何使用单片机来控制红外发射器发射红外信号。
4、了解NEC码的编码方式等相关知识。
实验要求1、使用开发板上的红外发射器TSAL6200模拟一个采用NEC码的红外遥控器进行红外信号的发射。
2、红外的编码使用开发板上的矩阵键盘实现(按键扫描实验)。
3、开发板通过红外接收模块(HS0038)完成红外数据的接受,同时进行解码等操作。
4、MCU对解码后的数据进行处理,将其显示在数码管上。
简单硬件需求分析1、一般的红外通信系统都由发射与接收两个部分组成,所以我们需要一个发送红外信号的发射器和一个红外接收器,由于我们需要对接收到的红外信号进行解码,然后送给单片机进行处理,所以选择的接收器应该可以解码出单片机可以直接处理的数据。
2、选择一个MCU对红外发射器进行控制,得到想要的红外数据。
3、由于我们实验需要显示接收到的红外数据,所以需要一个显示器件,数码管就能够满足显示的需求。
开发板设计HS0038模块:HS0038是一个直接输出MCU可以处理的数字信号,所以在电路连接中,可以直接将它的OUT引脚接在单片机的I/O口上,进行红外数据的处理,但是在我们的开发板上,不仅接在了I/O口上,同时也将其接在了8259A中断控制器上,这样做,可以让我们在编写程序时有多种做法。
这里的OUT引脚默认情况下为高电平的,这是上拉电阻所起到的作用。
TSAL6200模块:该器件是一个红外发射器,发射器的一端接在5V电源上,另一段接在PNP型三极管的发射极上,三极管主要起到一个电流放大的作用。
这里的IR_OUT信号通过电阻接在电源上,除了让IR_OUT信号线在默认情况下输出高电平的作用外(IR_OUT=1红外发射管不工作),还起到了分压的作用,因为TSAL6200的正向压降只有1.35V(详细内容见TSAL6200)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(buf_count>40&&buf_count<70)
{
buf_count=0;
buf_key_code>>=1;
buf_key_code|=0x80;//收到1
key_bit_count++;//数据脉冲累加
}
else if(buf_count>12&&buf_count<32)//收到0
uchar ir_status=0;//脉冲接收器所处的状态,0:无信号,1:系统码接收区,2:数据编码接收区
uchar code table[]="EE01 DEMO:IR";
uchar code table1[]="code:";
uchar code table2[]={'0','1','2','3','4','5','6','7','8','9',};
1.6实验步骤
将JP21的8个短接子全部用短接帽短接,使DG0-DG7与P2端口接通
将JP22的9个短接子全部用短睫毛短接,使A-DP与P0端口接通,VCC向数码管模块供电
将JP10的短接子用短接帽短接,使红外接头U16的数据线与P3.2端口接通。
将JP24的短接子用短接帽短接,禁止LCD1602显示功能,否则数码管将不能正常显示。
第一次使用遥控器要去下电池盖下的隔离胶片。
1.7实验电路原理分析
ME850选用T1838一体化红外接收头,接受来自红外遥控器的红外遥控信号。T1838集成红外接收二极管、放大、解调、整形等电路在同一封装上。T1838负责红外遥控信号的解调,将调制在38KHZ上的红外脉冲信号解调并倒相输入到单片机的P3.2引脚,由单片机进行高电平与低电平宽度的测量
}
else if((buf_count>40&&buf_count<70)||(buf_count>12&&buf_count<32))
{
buf_count=0;
common_code_count++;//每收到一个信号自加1
}
}
else if(ir_status==2)//进入数据编码接收
{
if(key_bit_count<8)//收到数据少于8位,则将收到的数据写入buf_key_code
T1838的输出端通过JP10与AT89S52的P3.2连接,既可以受用中断的方式也可以使用查询方式来编程
1.8实验参考程序分析
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit ir=P3^3;//红外端口
}
void init(void)/////初始化
{
ir=1; //红外端口写1
led_cs=0; //关闭LED
EA=1; //开总中断
TMOD=0x02; //定时器0,模式2,8位自动装载模式
TH0=0Xd1; //定时50us
TL0=0Xd1;
IT1=1; //INT1下降沿触发
ET0=1; //允许定时器中断
sbit dm=P1^4;//数码管段码控制位
sbit wm=P1^5;//数码管位码控制位
sbit led_cs=P1^6;//LED控制位
sbit rs=P3^5;//1602数据命令选择端
sbit en=P3^4;//1602使能信号
uchar num;
uchar key_code=0;//遥控键值
buf_count=0;//
}
}
else if(ir_status==1)///收到引导码
{
if(common_code_count>=25)//若收完26个脉冲
{
ir_status=2;//数据解码标记
common_code_count=0;//系统码计算清零
buf_count=0;//中断计数暂存清0
uchar new_code=0;//有无新按键
uint buf_key_code=0;//键值暂存
uchar key_bit_count=0;//键编码脉冲计数
uint count=0;//定时中断次数计数
uint buf_count=0;//定时中断计数暂存
uchar common_code_count=0;//前导码脉冲计数
嵌入式系统试验报告
1.红外遥控解码实验
1.1实验目的
了解红外遥控编码并用单片机捕捉信号及解码
熟悉LCD1602的驱动
1.2实验设备
T1838一体化红外接收头
DT9122D芯片制作
89S51
1.3实验内容
红外一体化接收头接收到红外遥控发射器所发射的信号,并将此信号进行整形和反相送入单片机端口。经过软件译码,将译码结果(按键代码)昂数码管显示。
buf_count=0;
TR0=0;
new_code=1;
}
}
}
}
1.9实验结论和分析
将上面的程序写入89S51单片机中,通电后,按压遥控器上0-9按键,则实验板上的数码管就显示出对应的按键值,同时解码成功后发出声音指示
{
buf_count=0;
buf_key_code>>=1;//收到0
key_bit_count++;
}
}ห้องสมุดไป่ตู้
else //若收完8位数据则做以下处理
{
ir_status=0;//接收状态返回到空闲
key_code=buf_key_code;
key_bit_count=0;
buf_key_code=0;
void delay_10us(unsigned char y)///延时子程序10us
{
unsigned char x;
for(x=y;x>0;x--);
}
void delay_ms(uint z)//延时子程序1ms
{
uint x,y;
for(x=z;x>0;x--)
for(y=113;y>0;y--);
EX1=1; //允许外部中断
}
/***********************************************
定时器中断
***********************************************/
void time0() interrupt 1///定时器中断
{
{
TR0=1;//开定时器中断
if(count>12&&count<270)//如果信号合法,则放入buf_count,count清0,对下一个脉冲信号计时
{
buf_count=count;
count=0;
}
delay_10us(10);//延时100us以消除下降沿跳变抖动
if(ir==0)//INT1引脚稳定为低电平,则表法确实是信号,count重新计时,因上面延时了50us,故要补偿1次TO中断
count++;//定时器中断次数累加
}
/**********************************************
外部中断,红外解码程序
**********************************************/
void int1() interrupt 2///外部中断
1.4实验预习要求
遥控编码知识
ME850单片机开发实验仪集成有一路一体化红外接收头,并配有红外发射器,能够做红外接收与解码实验
了解简单的单片机的开发的环境
要有一定的C语言基础
1.5实验原理
所谓解码就是能用单片机把以不同宽度的脉冲区别开来,一种比较好思路就是计算两次下降沿间隔时间,当单片机外部中断1口有下降沿时中断一次,并启动定时器,定时器定50us,当下次下降沿到来时我们计算定时器中断的次数,这样我们就能很好的区分不同宽度的脉冲了。
{
count=2;
}
if(buf_count>12&&buf_count<270)//若收到的信号合法,则再进行信号分析
{
if(ir_status==0)//如果之前未收到引导码
{
if(buf_count>210&&buf_count<270)//判断是否引导码13.5ms
{
ir_status=1;//系统标记