热切期待高手 - 红外解码

[复制链接]
2744|7
 楼主| h292 发表于 2010-7-6 15:12 | 显示全部楼层 |阅读模式
本帖最后由 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;//计算高电平时间
       }
 楼主| h292 发表于 2010-7-6 16:45 | 显示全部楼层
哪位高手赐教一下
hxlwjn 发表于 2010-7-6 16:52 | 显示全部楼层
没看明白你这程序要做什么。hightime和lowtime保存的是最后一位的高低电平时间,如果用的是nec格式的红外编码,信号0的高低电平时间是一样的。

评分

参与人数 1威望 +1 收起 理由
h292 + 1

查看全部评分

hxlwjn 发表于 2010-7-6 16:54 | 显示全部楼层
高电平时间4.5MS左右,低电平应该为9MS ,这只是前导码。

评分

参与人数 1威望 +1 收起 理由
h292 + 1

查看全部评分

 楼主| h292 发表于 2010-7-6 17:00 | 显示全部楼层
4# hxlwjn
对是前导嘛,但低电平没9MS左右,和高电平差不多,是为什么,谢谢了
 楼主| h292 发表于 2010-7-6 17:02 | 显示全部楼层
3# hxlwjn

这个是前导码,前导码中的低电平时间和高电平差不多 在 4050 - 4500之间,为为什么?谢谢了
土憋ㄘ` 发表于 2010-7-6 17:53 | 显示全部楼层
我怎么知道引导码是在:4050 - 4500这间
zhiyonghe 发表于 2010-7-7 12:47 | 显示全部楼层
谁说了红外的编码就一定要按你们上面说的什么:高电平时间4.5MS左右,低电平应该为9MS,除非你的红外发射信号是独立的发射芯片,那编码是固定的,你找那芯片资料人家会有详细的电平说明。
要不你最好自己测试你接受到的红外编码信号的编码。
我曾经用单片机做过的红外编码就没按什么引导码高电平时间4.5MS左右,低电平应该为9MS做……

评分

参与人数 1威望 +1 收起 理由
h292 + 1

查看全部评分

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

本版积分规则

个人签名:http://iirobot.taobao.com/ 我爱机器人群:117064297 提供机器人 智能车配件 传感器 直流电机

0

主题

247

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部