历史上的今天
返回首页

历史上的今天

今天是:2024年10月23日(星期三)

正在发生

2019年10月23日 | 51单片机红外接收代码加解码

2019-10-23 来源:51hei

头文件 stc12c5a.h下载: http://www.51hei.com/mcu/2564.html 

头文件 1602.h 下载: http://www.51hei.com/bbs/dpj-24671-1.html 

  ///*redPC838.c文件

* 红外接收数据,中断方式,并通过串口发送

* 晶振:11.0592M*/

#include

#include<1602.h>

typedef unsigned char uint8;

sbit Ir_Pin = P3^3;

uint8 Ir_Buf[4]; //用于保存解码结果

extern int keynum=1;

void int1_init(void)

{

IT1 = 1; //下降沿有效

EX1 = 1;

EA = 1;

TMOD = 0x01;

}

/*获取低电平时间*/

unsigned int Ir_Get_Low()

{

TL0 = 0;

TH0 = 0;

TR0 = 1;

while (!Ir_Pin && (TH0&0x80)==0);  

              

TR0 = 0;           

return (TH0 * 256 + TL0);

}

/* 获取高电平时间*/

unsigned int Ir_Get_High()

{

TL0 = 0;

TH0 = 0;

TR0 = 1;

while (Ir_Pin && (TH0&0x80)==0);

TR0 = 0;

return (TH0 * 256 + TL0);

}

//*******************************************

void PC838()

{ int1_init();

}

void int1_isr() interrupt 2

{

unsigned int temp;

char i,j;

temp = Ir_Get_Low();

if ((temp < 7833) || (temp > 8755))  //引导脉冲低电平8500~9500us

return;

temp = Ir_Get_High();

if ((temp < 3686) || (temp > 4608))  //引导脉冲高电平4000~5000us

return;

for (i=0; i<4; i++) //4个字节

{

for (j=0; j<8; j++) //每个字节8位

{

temp = Ir_Get_Low();

if ((temp < 184) || (temp > 737)) //200~800us

return;

temp = Ir_Get_High();

if ((temp < 184) || (temp > 1843)) //200~2000us

return;

Ir_Buf[ i] >>= 1;

if (temp > 1032) //1120us

Ir_Buf[ i] |= 0x80;

}

}

if( Ir_Buf[2]=~ Ir_Buf[3])  //验证键数据码和其反码是否相等,一般情况下不必验证用户码

{

if(Ir_Buf[2]==0x16)  keynum=0; //a[0]=00h;a[1]=ffh

if(Ir_Buf[2]==0x0c)  keynum=1; //a[0]=00h;a[1]=ffh

if(Ir_Buf[2]==0x18)  keynum=2; //a[0]=00h;a[1]=ffh

if(Ir_Buf[2]==0x5E)  keynum=3;

if(Ir_Buf[2]==0x08)  keynum=4;

if(Ir_Buf[2]==0x1C)  keynum=5;

if(Ir_Buf[2]==0x5A)  keynum=6;

if(Ir_Buf[2]==0x42)  keynum=7;

if(Ir_Buf[2]==0x52)  keynum=8;

if(Ir_Buf[2]==0x4A)  keynum=9;

if(Ir_Buf[2]==0x45)  keynum=10; //ON/OFF

if(Ir_Buf[2]==0x46)  keynum=11; //MODE

if(Ir_Buf[2]==0x47)  keynum=12; //静音

if(Ir_Buf[2]==0x44)  keynum=13; //暂停

if(Ir_Buf[2]==0x40)  keynum=14; //下一曲

if(Ir_Buf[2]==0x43)  keynum=15; //上一曲

if(Ir_Buf[2]==0x07)  keynum=16; //EQ

if(Ir_Buf[2]==0x15)  keynum=17; //VOL-

if(Ir_Buf[2]==0x09)  keynum=18; //VOL+

if(Ir_Buf[2]==0x19)  keynum=19; //RPT

if(Ir_Buf[2]==0x0D)  keynum=20; //U/SD

  //  beep();        //蜂鸣器响一声 提示解码成功




}


}

//******************8redPC838.h文件

#ifndef _redPC838_

#define _redPC838_

#define uchar unsigned char

#define uint  unsigned int

void PC838();

extern int keynum;

#endif 


推荐阅读

史海拾趣

Hoffman Engineering公司的发展小趣事

Hoffman Engineering始终将技术创新视为公司发展的核心驱动力。公司不断投入研发资源,推动产品迭代升级。在机柜系列产品中,Hoffman Engineering通过引入先进的设计理念和生产工艺,不断提升产品的性能和质量。同时,公司还积极关注行业动态和客户需求变化,及时调整产品策略和市场布局。这种持续的技术创新和产品迭代,使Hoffman Engineering在激烈的市场竞争中保持领先地位。

泽耀科技(Ashining)公司的发展小趣事

随着企业规模的扩大和影响力的提升,泽耀科技(Ashining)开始积极承担社会责任,推动可持续发展。公司注重环保和节能技术的应用,致力于生产环保型电子产品,减少生产过程中的能源消耗和环境污染。同时,泽耀科技还积极参与社会公益事业,为社会的发展贡献自己的力量。

这些故事展示了泽耀科技(Ashining)在电子行业中的发展历程和取得的成就,也体现了公司不断创新、追求卓越的精神。未来,泽耀科技将继续秉持这一精神,为电子行业的发展贡献更多的力量。

BLACK&DECKER公司的发展小趣事

BLACK&DECKER一直致力于产品革新和专利申请。1914年,公司为世界第一台配有枪式手柄、扳机开关和通用马达的便携式手电钻申请了专利。这一发明极大地提高了工作效率,并在市场上取得了巨大的成功。此后,BLACK&DECKER不断推出创新产品,如1946年发明的世界上第一台专为家用消费者设计的便携式电钻,以及后续的电动篱笆剪、全绝缘电钻等一系列重要发明。

Eastron Corp公司的发展小趣事

随着社会的不断发展,Eastron Corp深刻认识到企业的社会责任和可持续发展的重要性。公司积极参与社会公益事业,为当地社区和环境保护做出贡献。同时,Eastron还注重节能减排和环保生产,通过技术创新和工艺改进,降低生产过程中的能耗和排放。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了基础。

请注意,这些故事仅为虚构示例,不代表任何真实事件或公司历史。

Calex Mfg Co Inc公司的发展小趣事

品质是Calex Mfg. Co., Inc.的生命线。公司始终坚持以品质为核心,从原材料采购到生产制造,再到产品出厂,每一个环节都严格把控。这种对品质的执着追求,使得公司的产品赢得了客户的信赖和好评。同时,公司还注重品牌建设,通过广告宣传和参展等方式,不断提升品牌知名度和影响力。

DEVCON公司的发展小趣事

随着电子行业的快速发展,对材料性能的要求也越来越高。DEVCON公司不断投入研发力量,通过技术创新,成功开发出了一系列具有高性能、高可靠性的新材料。其中,甲基丙烯甲酸甲酯、环氧类、改性硅烷密封胶等产品,因其优异的性能和广泛的应用前景,成为了电子行业的明星产品。这些技术突破不仅提升了DEVCON公司的竞争力,也为整个电子行业的发展做出了重要贡献。

问答坊 | AI 解惑

影响FPGA设计中时钟因素的探讨

影响FPGA设计中时钟因素的探讨,个人推荐!…

查看全部问答>

电源问题

3.6V电池供电,想最终得到正负2.5V电压。 先用MAX770升压到5V,然后用ME7660进行负压变换得到正负5V电压。 然后通过电阻分压,得到正负2.5V电压。 不知道以上办法可不可行。 有没有更好的方法??用更简单的芯片来实现这个功能??…

查看全部问答>

汽车电子系统出现集成化供应新趋势

作为汽车产业与电子产业的完美结合,汽车电子业的发展相对于汽车市场而言更加迅猛。据估计,近几年的年增长率均超过50%,是拉动汽车工业发展的重要因素。到目前为止,绝大多数国外大型的跨国汽车电子企业已在中国设厂。为了进一步扩大在中国的市场 ...…

查看全部问答>

艾克赛尔(Axelwave)无线网络――无线监控在高速公路的应用

近年来中国经济的飞速发展,使中国的公路建设,尤其是高速公路的建设上了一个新台阶。而随着现代化高速公路的建设,新一代高速公路视频监控系统,日益成为高速公路监管的重要手段。无线监控凭借其简便、快速、受环境影响小的特点,也逐步成为高速公 ...…

查看全部问答>

采用MPC8260和FPGA的DMA接口设计

在基于软件无线电的某无线通信信号侦收平台的设计中,天线接收到的信号经过变频器处理和A/D变换之后,经过高速通道把采集的信号送入主控板进行数据分发处理。系统的结构框图如图1所示。 图1  主控板的系统结构框图  主控板的硬件核 ...…

查看全部问答>

自己动手设置STM32头文件配置系统PLL时钟及操作I/O口

自己动手设置STM32头文件配置系统PLL时钟及操作I/O口简单操作例程! …

查看全部问答>

急求WINCE5.0下录音成mp3的程序

wince提供的api只能录制成wave吧? 录成mp3需要使用开源的lame库? 我现在在模拟器上能录制成wave, 调用lame库把wave转成mp3不成功,似乎是lame库内存异常了. 哪位大侠有CE5.0下能用的lame库? 或者还有其它方式能直接录成mp3? 我的邮箱:victor_20 ...…

查看全部问答>

这个VHDL的信号赋初值语句怎么理解?

signal abc: std_logic_vector(5 downto 0):=(others=>\'0\');困扰很久,一直不明白。哪位大侠能给详解一下?谢谢!…

查看全部问答>

Altium Designer6.9破解文件

很好的一个破解文件啊,值得收藏!!!…

查看全部问答>

【有圖有真相】基于MSP430 LaunchPad 和2.4G RF Module 的聊天室

前段時間在論壇的活動中拿了MSP430 LaunchPad,總要起點作用吧。 就做了這個史上最無聊,最無用的聊天工具。辦公室的工程師每人分一塊LaunchPad,接上我們公司常用的2.4G RF Module 用VB寫了個上位機軟件 然后就可以大家一起吹水了。 史上最 ...…

查看全部问答>