PT2262⼀PT2272无线收发模块与单片机的C程序 麻烦你传给我下嘛 我正在写这方面的程序 不太懂 谢谢了

2024-12-01 11:18:12
推荐回答(3个)
回答1:

给你段程序 参考
重要的还要参考PT2262/2272说明书

#include

sbit RemPin = P3^2 ;

unsigned char receive[3],RemValue,*PRemValue;

void RemIn(void) interrupt 0 using 1
{
unsigned char i,j;
unsigned int temp;

EA=0;
TH0=0;
TL0=0;
while (!RemPin); //等待高电平
TR0=1;
while (RemPin) //等待低电平
if (TF0==1) goto RemExit; //超时就退出;
TR0=0;
temp=TH0;
temp=(temp<<8)+TL0;
if (temp>6000 || temp<4000) //判断同步码的宽度
{
temp=TH0;
goto RemExit;
}
//同步码检测成功
for (i=0; i<3; i++) //解 3*8=24 位码
for (j=0; j<8; j++)
{
while (!RemPin); //等待高电平
TH0=0;
TL0=0;
TR0=1;
while (RemPin) //等待低电平
if (TF0==1) goto RemExit; //超时就退出
TR0=0;
temp=TH0;
temp=((temp<<8)+TL0);
// /*
if (temp>400 && temp<600)
{
receive[i]=receive[i]<<1;
receive[i]=receive[i]+1; //保存 1
}
else if (temp>100 && temp<234)
{
receive[i]=receive[i]<<1; //保存0
}
else goto RemExit;
}
//解码完成,判断和转换键值
PRemValue=&RemValue;
if ((receive[0] ^ receive[1])!=0) goto RemExit;
else if (receive[2] == 0xf3)
{
*PRemValue = 1; //键值为0
}
else if (receive[2] == 0xfc)
{
*PRemValue = 2; //键值为1
}
RemExit:
{
TR0=0;
EA=1;
RemPin=1;
TF0=0;
return;
}
}

///*
main()
{
RemPin=1;
EA=1;
IT0=1; //设定INT0的触发方式为脉冲负边沿触发
EX0=1; //打开INT0中断请求
TMOD=0x01;
while (1);
//RemPin=1;
}

望对你有帮助

回答2:

解码IC。
单片机连接,PT2272信号输出直接与单片机连接就可以了。
需要PT2262/PT2272无线收发模块的资料和原理图,请在HI中加我,我传给你。

回答3:

我当时用的是CC2430,PT2262没用过,不好意思。