设计一个简易红外通信系统

设计一个简易红外通信系统,第1张

其实作为简易系统你的要求就是个设计大纲了。对于实现细节可根据实际情况丰富。不敢说设计,提几点建议。

1.关于技术上的指标,必须参考国际标准做。我想你不可能自己研发个红外的接收装置吧。而且这种新硬件高与国际标准不同。现在的电子产品根据标准来做,其目的起码有三:1.不用制定新标准,减少投资成本。2.保证兼容性。3.采用通用元器件,节省生产成本。既然是大家都使用通用标准,你去查查标准就行了,最起码要选若干产品,筛选出符合要求的硬件。

2.对于程序上的设计,必须要得到厂家的接口说明,参考国际标准。这种属于程序开发范畴,不在赘述。

3.你给出的图不完全吧?试想什么系统都是有终端组成呢!

4.对于你的提问我看无人给出确定的答案,因为这种系统具有非通用性。和你选择的硬件,软件有直接关系。在不确定硬件和软件的基础上无人能做出完整的设计。

希望我的回答给你些帮助。找标准请访问IRDA官方网站,www.irda.org

给你一段430单片机遥控器解码的程序吧,也就是接收部分

毕竟世界太现实只能这么帮你

#ifndef _IR_

#define _IR_

char t0,t1,t2

uchar IR

void DelayIR()

{

uint i=130

while(i--)

}

void init_port2(void)

{

P2DIR&=~BIT0

P2SEL&=~BIT0

P2IES|=BIT0

P2IE|=BIT0

}

#pragma vector=PORT2_VECTOR

__interrupt void PORT2_ISR(void)

{

char CounterIR

P2IES&=~BIT0

if(P2IFG&BIT0)

{

P2IFG&=~BIT0

}

CounterIR=0

while(!(P2IN&BIT0))

{

DelayIR()

CounterIR++

}

if(CounterIR>85)

{

if(CounterIR<95)

{

t1++

for(char k=0k<17k++)

{

CounterIR=0

while((P2IN&BIT0)&&(CounterIR<50))

{

DelayIR()

CounterIR++

}

CounterIR=0

while((!(P2IN&BIT0))&&(CounterIR<10))

{

DelayIR()

CounterIR++

}

}

for(char j=0j<8j++)

{

CounterIR=0

while((P2IN&BIT0)&&(CounterIR<25))

{

DelayIR()

CounterIR++

}

IR<<=1

if(CounterIR>11)

IR|=BIT0

CounterIR=0

while((!(P2IN&BIT0))&&(CounterIR<10))

{

DelayIR()

CounterIR++

}

}

if((IR!=0xff)&&(IR!=0x00))

{

if(!(flag&dataflag))

{

if(IR==0x22)

{

flag|=runflag

}

else

{

Tar[0]=Tar[1]

Tar[1]=Tar[2]

Tar[2]=Tar[3]

Tar[3]=Tar[4]

switch (IR)

{

//case 0x22 : flag|=runflagbreak

case 0x68 : Tar[4]=0flag|=dataflagbreak

case 0x30 : Tar[4]=1flag|=dataflagbreak

case 0x18 : Tar[4]=2flag|=dataflagt2++break

case 0x7a : Tar[4]=3flag|=dataflagbreak

case 0x10 : Tar[4]=4flag|=dataflagbreak

case 0x38 : Tar[4]=5flag|=dataflagbreak

case 0x5a : Tar[4]=6flag|=dataflagbreak

case 0x42 : Tar[4]=7flag|=dataflagbreak

case 0x4a : Tar[4]=8flag|=dataflagbreak

case 0x52 : Tar[4]=9flag|=dataflagbreak

default : break

}

}

}

}

IR=0

}

}

for(int m=0m<250m++)

DelayIR()

P2IES|=BIT0

}

#endif

请采纳。

系统码是用来识别不同的设备,用户码用来识别不同的按键,例如同一厂家生产的电视机和DVD,都有音量调节,它们的用户码是有可能相同,但系统码不同,所以不会相互干扰,同一设备不同按键,用户码是不相同的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11015606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存