本帖最后由 h292 于 2010-7-6 16:21 编辑  
 
大家好,向大家请教一下,关于红外解码,红外是HT6222,外部中断一,计时器0,晶振11.0592,为什么低电平和高电平的时间都在4050 - 4500之间?,这个好像计的是高电平时间4.5MS左右,低电平应该为9MS做右,为什么也在4050 - 4500之间? 
谢谢了 
 
下面是程序 
 
 
#include <reg52.h> 
#define uchar unsigned char 
#define uint unsigned int 
uint lowtime,hightime; 
sbit IRIN=P3^3; 
sbit led=P1^1; 
   
void main() 
{ 
IRIN=1; 
led=1; 
EA=1;//开总中断 
IT1=1;//外部中断为下降沿触发 
EX1=1;//开外部中断 
ET0=1;//开T0中断 
TMOD=0x01;//为工作方式1 
TR0=0;//关闭定时器0 
while(1);//等待 
 
} 
   void IR_IN(void) interrupt 2 
  { 
   EX1=0;//关外部中断1 
   TH0=0;//高8位清0 
   TL0=0;//低8位清0 
   TR0=1;//开计时器0 
   while(IRIN==0);//低电平一直计时,等待高电平 
   TR0=0;//高电平出现,关闭计时器0 
  lowtime=TH0*256+TL0;//计算低电平时间 
   TH0=0;//高8位清0 
   TL0=0;//低8位清0 
   TR0=1;//开计时器0 
   while(IRIN==1);//搞电平一直计时 
   TR0=0;//关闭计时器0 
   hightime=TH0*256+TL0;//计算高电平时间 
       } |   
     
  
 |