当前位置: 代码迷 >> 单片机 >> 51单片机,超再生无线模块,C语言,无线不能正常通信!调试方式都不知道!
  详细解决方案

51单片机,超再生无线模块,C语言,无线不能正常通信!调试方式都不知道!

热度:2668   发布时间:2013-02-26 00:00:00.0
51单片机,超再生无线模块,C语言,无线不能正常通信!调试方式都不知道!求救!
我先是仿写光碟里的代码,不能正常通信,监视灯有频率闪烁
然后全不要,重新自己写一个协议,还是不行,监视灯有频率闪烁
最后我没耐性了,直接吧光碟配的两程序直接分别下载到两单片机,
发射端DATA接P1^7;,如下源程序为光碟配的代码,
我只做了一些接口的调整,对程序功能是没影响的,发现竟然还是不行,监视灯有频率闪烁

求救!!我无语了3天了,稍后我会把实物连线图也一并发上来,大家帮帮我!!!




接受端按图示连接



#include <STC12C2052AD.H> //单片机头文件

sbit OUT  = P1 ^ 0; 
sbit LED  = P1 ^ 7; //

/*********************************************************************************************
函数名:毫秒级CPU延时函数
调  用:DELAY_MS (?);
参  数:1~65535(参数不可为0)
返回值:无
结  果:占用CPU方式延时与参数数值相同的毫秒时间
备  注:应用于1T单片机时i<600,应用于12T单片机时i<125
/*********************************************************************************************/
void DELAY_MS (unsigned int a){
unsigned int i;
while( a-- != 0){
for(i = 0; i < 600; i++);
}
}
/*********************************************************************************************/


/**********************************************************************************************/
void ST (void){//开始码
OUT = 1; //
DELAY_MS (6);
OUT = 0; //
DELAY_MS (4);
}
/**********************************************************************************************/
void BT (bit s){//数据位码
OUT = 1; 
DELAY_MS (1);
OUT = 0; 
DELAY_MS (1);
if(s){
DELAY_MS (1);
}
}
/**********************************************************************************************/
void MT (unsigned char a){//字节发送
unsigned char i,n;

for(i=0;i<8;i++){
n = a & 0x80;//1000 0000
a = a << 1;//0000 1010
if(n == 0x80){
BT(1);
}else{
BT(0);
}
}
}
/**********************************************************************************************/
void END (void){//开始码
MT(0x00); //
}
/**********************************************************************************************/

/*********************************************************************************************
函数名:主函数
调  用:无
参  数:无
返回值:无
结  果:程序开始处,无限循环
备  注:
/**********************************************************************************************/
void main (void){
while(1){

ST(); // 
MT(0x93); // 0x05 = 0000 0101
MT(0x94); // 0x05 = 0000 0101
MT(0x95); // 0x05 = 0000 0101
MT(0x96); // 0x05 = 0000 0101
END(); // 
DELAY_MS (1000);
}
}

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











#include <STC12C2052AD.H> //单片机头文件

sbit IN =P1^6;
sbit LED_PROGRESS=P1^7;
sbit LED=P3^7;

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

/*********************************************************************************************
函数名:毫秒级CPU延时函数
调  用:DELAY_MS (?);
参  数:1~65535(参数不可为0)
返回值:无
  相关解决方案