小巧的uPD6121G红外遥控解码程序

发布者:忙中取乐最新更新时间:2015-11-11 来源: eefocus关键字:uPD6121G  红外遥控  解码程序 手机看文章 扫描二维码
随时随地手机看文章
网上有很多关于uPD6121G红外遥控解码程序,这些都写的很长,看起来发晕.下载下来也多数不能用.以下程序是通过检验的程序,只要编译后就可以正常使用.注意这里只是个解码程序!如果你想增加其它功能请自己添加.此程序没有解码UPD6121的重复码.

以下程序使用:12MHZ晶振,AT89C52

设计者:李国强
晶振:12MHz AT89S51
11年2月13号--2月24号编好

#include
#define uchar unsigned char
#define uint unsigned int
sbit in=P3^2;//红外信号输入
sbit d0=P1^0;//测试用
sbit d1=P1^1;//测试用
uchar sj[4];//放置解码数据
uint jce;//计时
bit biaoz;

void main(void)
{uchar iii=0;
 IT0=1;//负跳变触发
 EX0=1;//开外部中断0
 EA=1;//开总中断
 biaoz=0;
 //EX0=0;
 //while(i<1250)++i;//调试用
 while(1)
  {
   while(biaoz)
     {iii=sj[2];
    //iii++;
    P1=iii;
      IE0=0;
      EX0=1;
    biaoz=0;
     }
   
  }
 
}


void zd() interrupt 0
{
 uint su=0;
 uchar i=0,ii=0;
 EX0=0;
 while(!in)if(++su>850) break;//计算9ms红外信号,进行干扰排除
 
 while(in)if(++su>2000) break;//计算4.5ms+9ms时间
 
 if((su>1120)&&(su<1130))//如没错误进入信号收入
   {
   
    while(i<4)
    {
     while(ii<8)
     {su=0;//归0后计时
      while(!in) if(++su>55) break;//(0.612ms)计算0和1的开始时间
      while(in) if(++su>160) break;//(1.767ms)计算时长为判断0和1作准备
      if(su<120)sj[i]>>=1;//su小于120判断为0
      if(su>155){sj[i]>>=1;sj[i]+=0x80;}//su大于155判断为1
      ii++;
  
      while(in)if(++su>250) break;//(2.757ms)判断为1后如没有变低电平在此等待,防死循环
      if(su==250)ii=8;//防止死循环和错误数据  
      
     }
     ii=0;//为下次循环作好准备
     i++;
     if(su==250)i=8;//防止死循环和错误数据
    }
    //P1=sj[2];//显示解码数据sj[2]//如果P1口有发光管就能看到解码后的数据
   
  }
 if(i==4)biaoz=1;
 else
 {IE0=0;
 }EX0=1;
}

关键字:uPD6121G  红外遥控  解码程序 引用地址:小巧的uPD6121G红外遥控解码程序

上一篇:C51按键程序编写的基础
下一篇:检查8051单片机板子问题的一般方法

推荐阅读最新更新时间:2024-03-16 14:38

PIC12F629解码PT2262IR(asm程序
这段程序是用在一款七彩灯红外遥控解码程序里,单片机使用PIC12F629,软件模拟三路PWM输出驱动红绿蓝LED分八组共24个LED,实现单LED渐明渐暗,两LED一明一暗,七彩等九种花样.有断电记忆功能.如下是解码程序. ;-------------------------------------------------------- ;filename: 24LED_Remote.asm ; mcu: PIC12f629 ; clock: 4 MHz for INTRC ; date: 2006/02/25 ; writer: aLin ; IC type: PT2262IR ; Rosc: 470K ;-----
[单片机]
红外遥控的基本原理及通用多址遥控系统设计
红外遥控在家用电器、安全保卫、工业控制以及人们日常生活中广泛应用,特别是家用电器、安全保卫。 当家里的电视或者VCD、DVD较多时,有时候用遥控器遥控它们,会产生冲突,发生误操作。本来只想遥控当中的一台机器,但是两台电视机或者一台VCD(DVD)和一台电视机同时受到遥控。仔细分析,这两个设备产生冲突是由红外编码的问题引起的,由于它们有相同的地址编码,所以会同时发生动作,这就造成了上述麻烦。解决问题的关键在于,给每个电器设置不同的地址编码,当遥控时,先发送地址编码,地址相同的才能接受动作,接受后续发来的数据,先选择要遥控的对象,而后再按键执行相应的动作。 在本文介绍的设计中,用单片机模拟红外遥控器编码,从矩阵键盘输入要遥
[单片机]
<font color='red'>红外遥控</font>的基本原理及通用多址遥控系统设计
51单片机红外遥控解码,很详细(汇编语言,C语言等)
单片机源程序如下: #include reg51.h #define hw_hs0038_ENTITY #include hw_hs0038.h sbit in=P3^2; //uchar i=0; //uchar k ; bit bdata b=0; /* void timer0(void) interrupt 1 using 1 { b=1; TH0=0; TL0=0; } */ void hw_start() { while(in==1); //等待低电平到来 } void
[单片机]
89S51单片机PT2221红外解码汇编程序
;******************************************************* ;name: PT2221红外解码V1.0 ;device: pt2221红外编码+89S51单片机解码+红外一体化接收头 ;Copyright (c) 2007-2008 张兴电子设计工作室技术开发部 ;author: 张兴 ;web: http://mcu.5d6d.com ;date: 2007.7.4---14:44 ;description: PT2221发送的红外编码最前面为13.5ms的引导码,而后为32位的数据,32位数据的前16位为用户码, ;用于区别各个厂家的遥控器的不同,而后16位为数据码,分前8
[单片机]
红外遥控技术
红外遥控系统的组成 红外遥控系统主要由遥控发射器、一体化接收头、单片机、接口电路组成,如图一所示。遥控器用来产生遥控编码脉冲,驱动红外发射管输出红外遥控信号,遥控接收头完成对遥控信号的放大、检波、整形、解调出遥控编码脉冲。遥控编码脉冲是一组串行二进制码,对于一般的红外遥控系统,此串行码输入到微控制器,由其内部CPU完成对遥控指令解码,并执行相应的遥控功能。使用遥控器作为控制系统的输入,需要解决如下几个关键问题:如何接收红外遥控信号;如何识别红外遥控信号以及解码软件的设计、控制程序的设计。 红外遥控信号的接收 接收电路使用集成一体化红外接收头SM0038(1 )。 图一红外遥控系统组成方框图 SM0038对外只有3
[模拟电子]
<font color='red'>红外遥控</font>技术
单片机红外遥控风扇源程序
进行本实验前需要先完成《16_红外解码数码管显示》与《19_直流电机小风扇》实验。 然后对应的接上电机线和电机。 红外无线遥控风扇 + 加速 按- 减速,默认最低速度,烧录后可以按遥控器上的“+”加速。4~9档区间可以电机不会转动,着可能是因为用户供电电流不足。1-4档在接线正确的情况下几乎都可以转动。 注意:测试时间最好不要超过1分钟,观察一下实验现象即可。 单片机源程序如下: /* 红外无线遥控风扇 + 加速 按- 减速 */ #include reg52.h sbit DU = P2^6; //数码管段选 sbit WE = P2^7; //数码管位选 sbit S2 = P3^0; sbit S3 =
[单片机]
用STc15f104e单片机做了个学习型红外遥控开关程序
用STc15f104e做了个学习型红外遥控开关、 是上电学习的不带按键的,=上电学习指示灯闪烁,按遥控器,指示灯灭了下, 学习开机键成功。 指示灯继续闪,再按遥控器,指示灯灭了,学习关机键成功,进入待机状态。 上电2秒不学习退出,进入待机状态。 电路原理图如下: 这个是上电学习型红外遥控开关,须要学习开,和关,须要学习两只按键, 单片机源程序如下: #include STC15F104E.H #include intrins.h #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define CPU_Fos
[单片机]
用STc15f104e单片机做了个学习型<font color='red'>红外遥控</font>开关<font color='red'>程序</font>
HT6221发送红外HS0038解码程序
1 可以用,要弄懂的话就要去看看HT6221的时序图。 2 3 C51的红外解码程序,可以根据需要自己修改: 4 ///////////////////////////////////////////// 5 //12Mhz 6 //根据自己的接线来改 7 sbit IRIN = P3^2; //红外接收器数据线 8 ///////////////////////////////////////////// 9 10 //////////////////////////////////////////// 11 //定义数组IRCOM,分别装解码后得到的数据 12 //IRCOM 低8位地址码 13 /
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved