历史上的今天
返回首页

历史上的今天

今天是:2025年04月22日(星期二)

正在发生

2020年04月22日 | 51单片机实验14:红外通信模块应用

2020-04-22 来源:eefocus

目的:利用遥控器与单片机通信,并将遥控器按键所对应的编码在数码管上以十六进制的形式显示出来。


开发板红外传感器数据输出引脚对应的IO口为P3^2,该IO口同时为外部中断引脚,因此程序中采用下降沿触发的外部中断来判断是否接收到起始码。


51单片机中断系统的相关内容:https://blog.csdn.net/cax1165/article/details/86633086


数码管的相关内容:https://blog.csdn.net/cax1165/article/details/86557551


开发板红外模块电路图如下:

说明:程序中大量使用了如下代码片段:


err=***;

while((irin==*)&&(err>0))

{

    delay(*);

    err--;

}

该代码段起到延时作用(在位定义的时序图中,需要比较严格地控制高/低电平的持续时间,该代码段可以利用延时渡过某一电平持续时间,非常准确的停留在下一个电平来临的时候),并通过err递减的方式避免出现错误导致while语句死循环。


#include

#define uc unsigned char

#define ui unsigned int

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

sbit irin=P3^2;

 

uc code x[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0X76};//0x76表示H,为十六进制的标志符号

uc dig[8],irve[4];

uc t;

 

void delay(ui i)//延时i*10微秒

{

while(i--);

}

 

void digdisplay()

{

uc i;

for(i=1;i<=3;i++)

{

switch(i)

{

case(1):

LSA=0;LSB=0;LSC=0;break;

case(2):

LSA=1;LSB=0;LSC=0;break;

case(3):

LSA=0;LSB=1;LSC=0;break;

}

P0=dig[i];

delay(100);

P0=0x00;

}

}

 

void irinit()

{

IT0=1;

EX0=1;

EA=1;

irin=1;

}

 

void Ir () interrupt 0

{

uc i,j;ui err;t=0;

delay(700);

if(irin==0)

{

err=1000;

while((irin==0)&&(err>0))

{

delay(1);

err--;

}

if(irin==1)

{

err=500;

while((irin==1)&&(err>0))

{

delay(1);

err--;

}

for(i=1;i<=4;i++)

{

for(j=1;j<=8;j++)

{

err=60;

while((irin==0)&&(err>0))

{

delay(1);

err--;

}

err=500;

while((irin==1)&&(err>0))

{

delay(10);

t++;err--;

if(t>30)

{

return;

}

}

irve[i]>>=1;

if(t>8)

{

irve[i]|=0x80;

}

t=0;

}

}

}

if(irve[3]!=irve[4]) return;

}

}

 

void main()

{

irinit();

while(1)

{

dig[1]=x[16];

dig[2]=x[irve[3]%16];

dig[3]=x[irve[3]/16];

digdisplay();

}

}

推荐阅读

史海拾趣

AC Photonics Inc公司的发展小趣事

随着技术的成熟,AC Photonics Inc开始积极拓展市场。公司不仅在国内建立了完善的销售网络,还积极开拓海外市场。同时,AC Photonics Inc还与其他知名电子企业建立了战略合作关系,共同推动光电技术在各个领域的应用。这些合作不仅提升了公司的知名度和影响力,还为公司的长远发展提供了有力支持。

Elcos AG公司的发展小趣事

随着市场竞争的加剧,Elcos AG意识到持续创新的重要性。公司加大了研发投入,成立了专门的研发团队,专注于新产品的研发和现有产品的优化。经过数年的努力,Elcos AG成功推出了一系列具有行业领先性能的新型电子元器件,这些产品以其高性能、低功耗和稳定性强的特点,赢得了市场的广泛认可。

ETRI公司的发展小趣事

在光通信技术领域,ETRI也取得了显著成果。他们与Eldis公司合作,成功将一种电吸收调制光源(EML)商业化。这种光源能够在30公里内每秒传输250亿比特,且在高温和室温下都能稳定工作。这一技术的成功商业化,对于提高数据传输速度和效率具有重要意义。

Armel Electronics Inc公司的发展小趣事

Armel Electronics Inc公司的创立,源于几位电子工程领域的先驱者对于技术创新和市场前景的敏锐洞察。在创立初期,公司面临资金紧张、市场竞争激烈等多重挑战。然而,凭借对技术的热爱和对市场趋势的准确把握,Armel团队成功研发出了一系列具有竞争力的电子产品,奠定了公司的市场地位。

ADATA公司的发展小趣事

Armel Electronics Inc公司的创立,源于几位电子工程领域的先驱者对于技术创新和市场前景的敏锐洞察。在创立初期,公司面临资金紧张、市场竞争激烈等多重挑战。然而,凭借对技术的热爱和对市场趋势的准确把握,Armel团队成功研发出了一系列具有竞争力的电子产品,奠定了公司的市场地位。

Fischer Connectors公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。Armel Electronics Inc公司深知此道,始终坚持品质至上的原则。公司从原材料采购到生产流程,再到产品出厂,每一个环节都严格把控,确保产品质量的稳定性和可靠性。这种对品质的执着追求,使得Armel的产品在市场上赢得了良好的口碑,并逐渐树立了公司的品牌形象。

问答坊 | AI 解惑

三句座右铭之世界会因你而精彩

也许不能移动大山,但可以运作自我;也许不能左右天气,但可以调整心情;也许不能选择容颜,但可以展现笑容;也许不能号令他人,但可以指挥自己;也许不能预知将来,但可以开发现在;也许不能样样如意,但可以事事尽力;也许不能主宰生命的始终,但 ...…

查看全部问答>

BU 72435 ROHM热卖

本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 我们大量ROHM BU72435库存价格好,有需求请和我联系。 陈庭松 13138889236 …

查看全部问答>

有关无线技术的一些标准(一)

请想象一下,当您乔迁新居,要将电器的电源插头插进墙上插座里去,结果却发现根本不能匹配时是什么感受。应该感谢几十年之前设立的电气标准,发生这种事情的可能性已经很少了。其他还有一些标准也在为我们服务,比如我们可以跟与不同网络服务商打交 ...…

查看全部问答>

TTL触发器芯片的主要参数

TTL触发器芯片的主要参数     集成触发器的参数也可以分为直流参数和开关参数两大类。 下面以TTL集成JK触发器为例来简单介绍。         开关参数     1.最高时钟频率fmax     fmax就是触 ...…

查看全部问答>

自创寝室简易门铃

在我身边有一些喜好电子的网友和同学,想自己尝试做一些什么东西,却不知道该如何下手,或者说是很想学但有些畏怯,迟迟入不了门。        电子制作并不是什么很困难的事,关键就在于你是否肯动手,是否肯迈出第一步 ...…

查看全部问答>

又是RET返回错误,请高手指点,谢谢!

        org 0000h         ajmp main         org 0030h main:         ACALL INIT      &n ...…

查看全部问答>

关于嵌入式系统开发的经验

各位同道中人,欢迎各位谈谈自己入门的经验以及推荐一些好的资料,作为LZ,先为大家献上一点啦! 现面有几个不错的网站 ,仅供参考 http://162.105.146.27/cgi-bin/ftp_search?BeginWith=208&FType=255&word=Linux http://linux.ubuntu.org. ...…

查看全部问答>

skyeye 安装问题

我在安装skyeye是总是出现这个问题,重新安装了libxpm-dev,还是有同样的问题 make[2]: *** [skyeye] 错误 1 make[2]:正在离开目录 `/home/chonghui1001/skyeye/skyeye-1.3.0_rc1\' make[1]: *** [all-recursive] 错误 1 make[1]:正在离开目录 ...…

查看全部问答>

EVC4.0无法安装,新手求救!

我已经安装了EVT3.0,现想将其中的EVC升级到4.0,我从网上下载了EVC4.0安装程序安装后运行不了提示no CE platform SDK 于是我从网上去下载wince 5.0 SDK 可是无法安装,不是程序错误,像是缺少了什么东西 请问怎么才能安装EVC4.0 谢谢!…

查看全部问答>

高手请进!..郁闷的问题:

1、为什么我用NdisAllocateMemoryWithTag申请内存后,在NdisFreeMemory释放!有时候会蓝屏 我用 NdisAllocateMemoryWithTag(&pPacketContent,TotalPacketLength,TAG); 申请后 在释放的时候用 if(pPacketContent) NdisFreeMemory(pPacketConte ...…

查看全部问答>