红外遥控解码程序RC5解码

发布者:RadiantSerenity最新更新时间:2016-10-29 来源: eefocus关键字:红外遥控  解码程序  RC5解码 手机看文章 扫描二维码
随时随地手机看文章
主程序如下: 

/************************************************************ 
* Program: AVRGCC - RC5 Test 
* Comments: RC5 decoder 
* target mcu: 8515 
***********************************************************/ 
#include  
#include  
#include  
#include "lcd.h" 

unsigned int heartbeat=0; 

// RC5 variables & definitions 
#define PRSC1_SELECT 2 // timer CLK/8 
#define TRUE 1 
#define FALSE 0 
#define IRDet bit_is_set(PIND,PD2) 
volatile unsigned char RC5RxAddress, RC5RxCommand; 
volatile unsigned char RC5Avail=0, RC5Repeat, RC5PhaseErr; 

void delay(unsigned int p) 

unsigned int i; 
unsigned char j; 
for(i=0;i for (j=0;j<100;j++); 


/* signal handler for timer1 overflow interrupt */ 
SIGNAL(SIG_OVERFLOW1) 

static unsigned char RC5BitCnt=0; 
static unsigned int RC5Data; 
static unsigned char OldValue; 
static unsigned char ControlBit; 

// Load Timer again... 
outp(0xFC, TCNT1H); // set TCNT1 // 889us 
outp(0x87, TCNT1L); // set TCNT1 

if (RC5BitCnt==0) { 
RC5Data=0; 
OldValue=IRDet; 
RC5PhaseErr=FALSE; 


if (RC5BitCnt<24) { // sample 24 bits 
if (RC5BitCnt & 0x01) { 
if (OldValue!=IRDet) { // check for Biphase error 
RC5Data <<= 1; // next bit; 
if (IRDet) RC5Data &= 0xFFFE; else RC5Data |= 0x0001; 
} else RC5PhaseErr=TRUE; // biphase error 

RC5BitCnt++; 
OldValue=IRDet; // remember signal level 

} else { // if >24 then finish 
outp(0 , TCCR1B); // stop timer 1 
RC5BitCnt=0; // prepare for next time 
if (!RC5PhaseErr && !RC5Avail) { 
RC5Repeat=ControlBit==((RC5Data & 0x0800)==0x0800); // if new controlbit=old then RC5Repeat=1 
ControlBit=((RC5Data & 0x0800)==0x0800); // new controlbit 
RC5RxAddress=(unsigned char)((RC5Data & 0x07C0)>>6); 
RC5RxCommand=(unsigned char)(RC5Data & 0x003F); 
RC5Avail=TRUE; // RC5 code is vailable... 

RC5PhaseErr=FALSE; 
outp(0x40, GIMSK); 



/* signal handler for external interrupt int0 */ 
SIGNAL(SIG_INTERRUPT0) 

outp(0x00, GIMSK); // disable external int0 
outp(0xF3, TCNT1H); // set TCNT1 // 3111 us 
outp(0xD9, TCNT1L); // set TCNT1 
outp(PRSC1_SELECT, TCCR1B); // start timer1 


/* initialize RC5 decoder */ 
void RC5_init(void) 

cbi(DDRD,PD2); 
sbi(PORTD,PD2); 

outp((1< outp(0x40, GIMSK); // enable external int0 

outp(0x80, TIMSK); // enable timer1 Overflow interrupts 
outp(0x00, TCCR1A); // disable PWM and stuff 
outp(0x00, TCCR1B); 
outp(0xF3, TCNT1H); // set TCNT1 // 3111 us 
outp(0xD9, TCNT1L); // set TCNT1 


/* main routine for testing */ 
int main(void) 

sei(); // enable interrupts 

RC5_init(); 
lcd_init(); 

lcd_control(1,0,0); 
lcd_putstr("RC5 decoder"); 
lcd_goto(0x49); 
lcd_putstr("PErr="); 
while(1) 

lcd_goto(0x0E); 
printhex(heartbeat++); // heart beat :) 

if (RC5Avail) { // display new RC5 data 
lcd_goto(0x40); 
printhex(RC5Repeat); 
lcd_putch(' '); 
printhex(RC5RxAddress); 
lcd_putch(' '); 
printhex(RC5RxCommand); 
RC5Avail=FALSE; // ready to get new one 

lcd_goto(0x4E); 
printhex(RC5PhaseErr); // error check 
delay(1000); 

}
关键字:红外遥控  解码程序  RC5解码 引用地址:红外遥控解码程序RC5解码

上一篇:AVR驱动软驱电机程序
下一篇:M8,ICCAVR下的温度传感器18B20程序

推荐阅读最新更新时间:2024-03-16 15:18

一种简易红外遥控密码锁设计与实现
O 引言   随着科学技术的进步和社会经济的发展,电子密码锁取代传统的机械锁已成为一种必然的趋势。以往基于单片机的密码锁系统,直接将编好的密码程序存储在片内EPROM中,但不易实现密码的修改;如要完成修改密码功能,多采用片外串行E2PROM实现。本文研究并设计的一种基于单片机的红外遥控电子密码锁,不但具有普通密码锁智能控制上锁、开锁、报警等特点,而且在不扩展E2PROM的情况下,可以实现8位密码任意修改的功能,节省了硬件资源,减小了系统体积,这是本设计的一个创新点。另外还增加了遥控开锁的特点。所以该系统不但成本低、保密性强,更适用于那些正常人体不宜接近的特殊场合,比如高辐射区、高传染区等。 1 系统硬件设计方案   1.1
[安防电子]
一种简易<font color='red'>红外遥控</font>密码锁设计与实现
用单片机+DAC0832来解码wav音乐C51程序
本程序是从国外一个论坛下载的用51单片机+dac0832 播放wav音乐,音乐数据可以从串行输入,如果声音很小的话可以把数据接入功放的输入端.完整的程序源代码从这里下载 http://www.51hei.com/f/waefd.rar 下面是main文件: /*************************************************************** name : main.c desctiption : mp3 main file for testing serial port author : coolfire update : 6/17/07 /*************
[单片机]
单片机做红外遥控解码
你家里是否有一个电视机遥控器或者空调机遥控器呢?你是否也想让它遥控其他的电器甚至让它遥控您的电脑呢?那好,跟我一起做这个“红外遥控解码器”。 该小制作所需要的元件很少:单片机TA89C2051一只,RS232接口电平与TTL电平转换心片MAX232CPE 一只,红外接收管一只,晶振11.0592MHz,电解电容10uF4只,10uF一只,电阻1K1个,300欧姆左右1个,瓷片电容30P2个。发光二极管8个。价钱不足20元。 电路原理介绍: 主控制单元是单片机AT89C2051,中断口INT0跟红外接受管U1相连,接收红外信号的脉冲,8个发光二极管作为显示解码输出(也可以用来扩展接其他控制电路),U3是跟电脑串行口RS232相连
[单片机]
单片机解码万能红外遥控器C51程序
使用方法:打开串口调试助手,设置为9600 bps 单片机这边用11.0592MHz的晶振,使用sm0038或者其他型号的红外接收头按下面的电路连接好,其中out直接与单片机的p3.2脚相连.按下遥控器,串口调试助手便会出现解码值. /******************************************************************/ /* 本程序的蓝本从网上搜集,经修改并注释,万能遥控器解码成功 */ /* 晶振:11.0592MHz */ /* 整理与测试:单片机教程网 http://www.51hei.com 胡琴 2012.5.15
[单片机]
单片机<font color='red'>解码</font>万能<font color='red'>红外遥控</font>器C51<font color='red'>程序</font>
红外遥控器信号的接收和转发
摘要:介绍用51系列单片机采集家用电器红外遥控器信号,并将其转发原理。文中给出红外接收芯片的外围电路和测量接收波形的程序。 关键词:红外遥控 单片机系统 转发 红外遥控在家电产品中有广泛应用,但各产生的遥控器不能相互兼容。目前市场上常见的万能遥控器只能对某几种产品进行控制,不是真正的“万能”,而且不能对新上市的产品进行控制。本文介绍一种用单片机对红外遥控器信号接收和转发的方法,由于只关心发射信号波形中的高低电平的宽度,不管其如何编码,因此可以用来实现自学习万能遥控器。 一、红外信号的接收和波形测量 所有红外遥控器的输出都是用编码后串行数据对38~40kHz的方波进行脉冲幅度调制而产生的。如果直接对已调波进行测量,由于单片机
[网络通信]
Vishay为Minimold红外接收器增加侧开支架,降低组装成本
日前,Vishay Intertechnology, Inc.(NYSE 股市代号:VSH)宣布,针对用于红外遥控应用的TSOP33xxx和TSOP53xxx系列小型Minimold红外接收器模块,推出新款侧开金属支架,扩大了其光电子产品组合。Vishay Semiconductors P1xP支架的优点是支持红外回流焊,实现引脚浸锡膏(PiP)焊,从而降低组装成本,提高可靠性。   设计者不断用更高温的元器件替换通孔器件,因此具有良好性价比的PiP技术通过回流焊,作为一种贴装元器件的新方法与表面贴装封装一起出现在市场上。在PiP工艺中,后道的元器件被定位在PCB上,整个电路板用回流炉一次焊完,省掉了对通孔器件的波峰焊步骤。这样就
[半导体设计/制造]
51单片机红外遥控旋转LED数字电子钟二
将一张旧唱片按电机座的位置开孔,而定位用的挡光板应根据电路板上感光组件的位置确定。      二。电路板的制作   本制作品用51单片机控制,具体电原理图如下:         用Protel 99设计制作了电路板。            最后得到完成的作品。   遥控器用的是松下车载机的,只用了其中的六个键。      三。软件编程   因学的是C51(不懂汇编)这里只提供C语言源程序。并限制为无遥控功能。也可提供带遥控功能的hex文件。源程序.txt   四。运行效果   从开机,调整到最后完成。      开机时      调时状态      正常运行状态
[模拟电子]
51单片机<font color='red'>红外遥控</font>旋转LED数字电子钟二
单片机练习-RC-5红外遥控程序及简单制造DIY PC遥控器
本程序采用的芯片为SAA3010, 参考资料有: 1. 常用红外遥控接收头引脚图解 2. 红外遥控编码资料 3. RC-5红外遥控程序 4. GIRDER中文教程与电脑遥控器制作资料 5. Girder网站 (一个需要钱买的遥控) 6. 再度出击,20元打造经典PC遥控器! 7. SA A3010 DataSheet 这次主要是完成单片机接收红外摇控器发出的数据. 在此基础上, 我们可DIY出自己的PC摇控器, 也可自行发挥一些, 做出类似于很多Club里的点歌系统的硬件外红信号转换装置.... 本次实验依旧采用TX-1B实验板, 只需增加一个一体化红外接收头, 如下图: 本程序中, DataOut引脚接到P3.2口. 在
[单片机]
单片机练习-RC-5<font color='red'>红外遥控</font>器<font color='red'>程序</font>及简单制造DIY PC遥控器
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved