用C语言编写的红外发射与接收程序

用C语言编写的红外发射与接收程序,第1张

给你一段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

请采纳。

开机 关机顺序 先付后主

IE:只能改分机号。用户名:USER001 密码:111111

软件:用户名:TOPAZ 密码:12345678

EX: ASPIRE 密码:12345678

关于NEC TOPAZ编程设置注意事项

一、进入编程

SPK+#*#*+password:"12345678"(默认)+Hold 11-01-01 *digit 1

11-12-27 *

二、编程项目

1、 将语音应答改成振铃应答橡陵拿

20-02-12 改成1

2、 将储存拨号改为直接拨号

20-03-03 改为1(视情况而定) (改为直接拨号会影响IP路由和重拨)

3、 R键设置(相对于西门子话机100ms)

82-04-04 改为13 (不能设置为其它值)

82-04-07(一般不需要设置) 改为10

82-04-08(一般不需要设置) 改为15 (拍叉会断线,避免回铃)

4、 保持电话强制解除(避免回铃)

15-03-15 改为1

5、 呼入响铃设置

22-04-01 将需要响铃的分机放入,最多32台

如果安装双路话务员,则设置为循环振铃。

16-04-01

6、 限制中继呼出(未用的中继线要设置)〕

14-01-07 未用的中继号改为0

7、 分机号设置

(1)、位数设置

11-01-01 将需要的分机号字头位数改成2位(默认3位)

如:1X 将3改成2 2X 将3改成2

(2)、分机号更改

11-02-01 将原始分机号改成新的分机号

如果要用2位分机号,必须更改上一项,如果不设置,呼叫时将不振铃

如果设置7开头分机号,则在11-01-01项,音量选择7后,TYPE项把1改为2即可。

(3)、分机名称更改

15-01-01 将分机名称改成对应的分机号码或者删除

因普通分机呼叫功能话机只会显示分机名称,所以必须更改

9、 话务员分机

20-17-01 设为汪正功能话机的分机号

如果不设置,拨0则不起作用

10、来电显示设置

14-02-10将需要的外线改成1

14-02-16更改来显制式 0:FSK 1:DTMF

20-09-02分机是否来电显示 改成1

15-03-09普通分机来电显示

15-03-11普通分机来显制式0:FSK 1:DTM

11.最经济路由LCR设置:

14-01-23 TRUNK(N) 改1;

26-01-04 改1;

26-02-01 TBL1内设0;

26-02-06 TBL1 对应TBL2

26-05-02 TBL2内设17908+P(需要空开语音的加P,一个梁搭P 3秒,)

12.设置外置话务员

22-04-01 在呼入振铃组中设置话务员分机号码.

22-05-01 在振铃组中设置话务员的振铃组即可

13.计费: 35-01-01 1:COM 口 3:LAN 口

35-01-04 取消隐藏位数

10-21-02 波特率更改

(COM口线序如下:

LAN口:交叉线序

“我并非一点基础也没有”

很遗憾,从你提的这三个问题来看,你的基础比0只多出一点点。

(1)Tc是个16位整型。这是16位整型的基本算法。Tc保存的是抓出的脉宽。

(2)引导码就是指定宽度的脉冲,数据码是短一些的脉冲——所以才会那么大费周章地抓脉宽判断是引导码还是用户码。接收是否反相要查你所局银用接收头的手册,有可能跟你的程序是相桐祥宴反的。

(3)m不是字宴码节序号而是位序号。注意前面的/8。

加油啊


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

原文地址: http://outofmemory.cn/yw/12223852.html

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

发表评论

登录后才能评论

评论列表(0条)

保存