OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6284|回复: 6

关于红外遥控的波形图

[复制链接]
头像被屏蔽

308

主题

400

帖子

0

精华

禁止访问

积分
1185
金钱
1185
注册时间
2011-7-29
在线时间
10 小时
发表于 2013-7-23 17:22:43 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2010-12-14
在线时间
3 小时
发表于 2013-7-23 18:52:18 | 显示全部楼层
这个找份NEC CODE看下,里面写得很清楚
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-23 18:58:07 | 显示全部楼层
找个示波器,看看波形,比较好理解.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

21

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
467
金钱
467
注册时间
2013-7-12
在线时间
86 小时
发表于 2013-7-23 20:13:11 | 显示全部楼层
/*******************************************************************************
function:NCE解码
date :2013.3.9
by   :SR_li
********************************************************************************/
#include <reg52.h>
#include"intrins.h"
#include<absacc.h>

#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long


/*******************************************************************************
function:端口定义
date :2013.3.9
by   :SR_li
********************************************************************************/
sbit signal=P3^2;                 //红外接收器数据线
sbit indict=P1^0;   //调试指示灯
sbit RCK=P1^2;                    //595数据开关
/*******************************************************************************
function:变量定义
date :2013.3.9
by   :SR_li
********************************************************************************/
uchar R_data[7];

/*******************************************************************************
function:子函数
date :2013.3.9
by   :SR_li
********************************************************************************/
void  delay_ms(uchar x);         //x*0.14MS
void  waitHL(bit HL);  //等待高低电平
uchar getkey(uchar R_data);  //识别按键
/*******************************************************************************
function:调用函数
date :2013.3.9
by   :SR_li
********************************************************************************/
#include "LCD1602.C"
/*******************************************************************************
function:main函数
date :2013.3.9
by   :SR_li
********************************************************************************/
main()
{

TCON=0X03;                       //外部中断0,低电平触发
IE  =0X81;                       //开中断EA,ET0
IP  =0X01;                       //优先级最高


lcd_intialize();
lcd_disp_num(1,1,1); 
while(1);
}
/*******************************************************************************
function:外部中断服务程序
date :2013.3.9
by   :SR_li
********************************************************************************/
void exit0() interrupt 0
{
    uchar j,k,N=0,q=0;
EX0 = 0;     //关中断 

delay_ms(15);      //15*0.14=2.1ms
if (signal==1) 
    { EX0 =1;return;}           //确认signal信号出现                            
    waitHL(1);                       //等signal变为高电平,跳过9ms的前导低电平信号。
waitHL(0);                       //等 signal 变为低电平,跳过4.5ms的前导高电平信号。
for (j=0;j<4;j++)                //收集四组数据

for (k=0;k<8;k++)            //每组数据有8位
{
     waitHL(1);               //等 signal 变为高电平
while (signal)           //计算signal高电平时长
{
delay_ms(1);
N++;           
if (N>=30)

EX0=1;
return;
}                                  //0.14ms计数过长自动离开。
}                                      //高电平计数完毕                
R_data[j]=R_data[j] >> 1;              //数据最高位补“0”
if(N>=8)
R_data[j] = R_data[j] | 0x80;    //数据最高位补“1”
N=0;
 }
 }

if(R_data[2]!=~R_data[3])

EX0=1;
return; 
}
q=getkey(R_data[3]);
        lcd_disp_num(q,4,1);
EX0 = 1; 
}
/*******************************************************************************
function:稳定等待
date :2013.3.9
by   :SR_li
********************************************************************************/
void delay_ms(uchar x)           //x*0.14MS
{
uchar i;
while(x--)
{
        for (i = 0; i<13; i++);
}
}
/*******************************************************************************
function:等待高低电平
date :2013.3.9
by   :SR_li
********************************************************************************/
void waitHL(bit HL)
{
if(HL==1)
{
while (!signal)                //等signal变为高电平,跳过9ms的前导低电平信号。
delay_ms(1);
delay_ms(1);    //确定信号稳定
}
else
{
while (!signal)                //等signal变为高电平,跳过9ms的前导低电平信号。
delay_ms(1);
delay_ms(1);    //确定信号稳定
}
}
/*******************************************************************************
function:识别按键
date :2013.3.9
by   :SR_li
********************************************************************************/
uchar getkey(uchar R_data)
{
switch(R_data)
{
case 139:return 1;break;
case 141:return 2;break;
case 143:return 3;break;
case 137:return 4;break;
case 129:return 5;break;
case 135:return 6;break;
case 15:return 7;break;
case 43:return 8;break;
case 19:return 9;break;
case 45:return 10;break;
case 51:return 11;break;
case 27:return 12;break;
case 25:return 13;break;
case 49:return 14;break;
case 189:return 15;break;
case 17:return 16;break;
case 57:return 17;break;
case 181:return 18;break;
case 133:return 19;break;
case 165:return 20;break;
case 149:return 21;break;
default:return 20;break;
}
}
/*******************************************************************************
function:end
date :2013.3.9
by   :SR_li
********************************************************************************/
回复 支持 反对

使用道具 举报

11

主题

125

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2012-6-21
在线时间
8 小时
发表于 2013-7-23 20:18:09 | 显示全部楼层
代码很好啊,我以前怎么没找到那么清楚的代码!
回复 支持 反对

使用道具 举报

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
发表于 2013-7-23 20:32:32 | 显示全部楼层
这边也有讲解原理..    参考看看 .

不过, 通常看的到的解码程序, 全部都是基于38KHZ振荡中心频率的.

有些遥控器用的不是这频率.    就会解码失败了 .   需要注意一下.





紅外波形編碼詳解.pdf

409.77 KB, 下载次数: 217

回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2014-4-16
在线时间
13 小时
发表于 2014-4-17 10:35:31 | 显示全部楼层
路过,学习了.
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 17:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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