爱问知识人 爱问教育 医院库

单片机红外遥控程序

首页

单片机红外遥控程序

问题在程序的注释部分。
用中断底电平触发怎么没写IT0=1呢?请帮忙看看。
还有能不能说说在接收红外解码过程中,中断是怎么工作的?如接收头接收到数据给P3^2时就产生中断,说说这一系列的中断过程吧?拜托了!
void interrupt_ISR() interrupt 0
{
  EX0=0;   //D is able INT 0
  TR0=0;   //D is able Timer0
  IRint=1;   //为什么要把IRint置1(IRint接MCU单片机 P3^2)
  interval=TH0;
  TH0=0xb0;   //怎么算得TH0的值?
  TL0=0;
  TR0=1;   //Enable Timer0
  EX0=1;   //Enable INT0
}


bit IRdecode() 
{
  static Idata BYTE INTcount=0;     //这里可以用uchar INTcount;INTcount=0;代替吗?
  static ulong idata IRdata=0;
  BYTE IRdata1,IRdata2,IRdata3,IRdata4;
  if(IRint)
  {
    if((interval>0xde)&&(interval<0xe1))  //0xdfe2=13.5ms
    {
      IRdata=0;
      INTcount=0;
    }
    else if((interval>0xb6)&&(interval<0xb9))  //0xb7fb=2.25ms(data=1)
    {
      IRdata=(IRdata<<1)+1;
      INTcount++;
    }
    else if((interval>0xb2)&&(interval<0xb5))  //0xb3fd=1.125ms(data=0)
    {
      IRdata=IRdata<<1;
      INTcount++;
    }
    else if((interval>0xd6)&&(interval<0xd9))  //0xd7e7=11.25ms
    {
      IRint=0;
      IRdata=0;
      IRcommanddata=0xff;   //repeat重复 code flag有什么意义吗?
      return 1;         返回1值到哪去?
    }
    else
    {
      INTcount=33;
      IRdata=0;
    }
    IRint=0;
    if(INTcount==32)
    {
      IRdata1=(BYTE)(IRdata>>24);  //这部分是什么意思,有什么作用?
      IRdata2=(BYTE)(IRdata>>16);
      IRdata3=(BYTE)(IRdata>>8);
      IRdata4=(BYTE)(IRdata);
      IRdata=0;
      if(IRdata4==~IRdata3)
      {
        IRcommanddata=IRdata3;  //还原命令成功
        return 1;
      }
      else
      return 0;
    }
    else
    return 0;
  }
  return 0;         返回值0给谁??
}



#include<reg52.h>
void main()
{
  TH0=0XB0;
  EA=0;
  ET0=1;    //Enable Timer0 interrupt
  TMOD=0x21;//定时器0,工作模式1;定时器1,工作模式2(8位自动重装) 为什么要启用两个定时器??
  TCON=0x50; //TR0=TR1=1,start timers  
  EA=1;
  while(1)
  {
  }
} 

提交回答
好评回答
  • 2009-11-17 13:50:51
    红外遥控,世纪上是串口程序
    你写段串口的接收程序看看吧!!!

    o***

    2009-11-17 13:50:51

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):