找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5268|回复: 4
收起左侧

红外线开发详解(电路图+程序)

  [复制链接]
ID:70941 发表于 2014-12-25 23:49 | 显示全部楼层 |阅读模式
一.TC9012
       TC9012是一块红外遥控系统专用的发射集成电路.可以外接32个按键.提供8种用户编码,3种双重按键功能.下图片是一块TC9012及其内部结构.
二.编码方式
TC9012一帧含32位码,包含两个8位用户码,8个数据码和8位数据码的反码以及最后位的同步位.
         引导码由4.5ms的载波和4.5ms的载波关断波形所构成.同步位SY是最后一位编码是0或1的标识位.它只有0.56ms.发射码的格式如下:

三.脉冲位置调制方式
             这种方式是通过脉冲之间的间隔时间来判断发送的是0还是1 .如下图片所示


             则红外发射端输出的波形即如下图


四.红外译码程式

红外接受端接在P3^4外部终端0引脚.程式如下:

#include<reg52.c>
#define  uchar unsigned char
#define  uint unsigned int
uchar irtime,startflag;         //记录中断时间间隔长,和开始标志
uchar irdata[33],bitnum;     //存认33个外部中断时间
uchar irreceok;                   //接收成功标志
uchar ircode[4];                  //用于存储解码后的四个值

void temer0init()                //计时器初始化
{
   TMOD=0x02;  
   TH0=0x00;
   TL0=0x00;
   ET0=1;
   EA=1;
   TR0=1;
}

void int0init()          //外部中断0初始化
{
  IT0=1;
  EX0=1;
  EA=1;
}
void irpros()   //根据记录的中断间隔时长解码
{
  uchar k,j,value;
  k:=1;
for(j=0;j<4;j++)  //解码成四个字节
{
  for(i=0;i<8;i++)
  {  
    value=value>>1;
    if (irdata[k]>6)      //间隔时间》6的表示为1.否则为0
        value=value|0x80;
     
     k++;
   }
   ircode[j]=value;  //记录解码后的数据。
  }
           
}
void main()
{
   temer0init()
   int0init()
   while(1)
   {
         这里处理收来的数据;
   }
}

void timer0()  interrupt 1  //计时器中断服务程序,记录红外中断时长
{
   irtime++;  //255
}
void int0() interrupt 0    //外部中断0服务程序
{
   if(startflag)         //起始标志
   {
      if (irtime>32)   //检测引导码,
            bitnum=0;  
      
       irdata[bitnum]=irtime;   //记录没个下降沿的间隔时间长
       irtime=0;
       bitnum++;
       if (bitnum==33)       //最后一个
       {
          bitnum=0;
          irreceok=1;        //标志收完了
       }
            
      }
   }
   else                   //如果没有起始标志.这认为这个脉冲是引导码,开始计数收数据.
   {
     startflag=1;
     irtime=0;
   }
  
}


回复

使用道具 举报

ID:71533 发表于 2015-1-6 09:06 来自手机 | 显示全部楼层
哈哈,我来顶一下
回复

使用道具 举报

ID:60706 发表于 2015-1-15 09:08 | 显示全部楼层
不错,学习学习,谢谢
回复

使用道具 举报

ID:72527 发表于 2015-1-20 10:04 | 显示全部楼层
学习了
回复

使用道具 举报

ID:316622 发表于 2018-4-25 21:28 | 显示全部楼层
TC9012F这个元件哪个软件能画出来啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表