本帖最后由 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;//计算高电平时间
} |