⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wireless.c

📁 菜鸟,详细NRF24E1运用,程序,电路
💻 C
字号:

#include "reg24le1.h"
#include "config.h"
#include "wireless_api.h"
#include "rf24le1.h"
#include "LCD.h"
#include "Sys.h"
#include "Zlg7289.h"
#include "mp3.h"

#define SEND_24LE1	            //如果屏蔽就是接受,如果是有该宏定义就是发射

#define max  100
#define min   0	
#ifdef SEND_24LE1
char buffer[6]={1,0,1,4,0,0};   //存储定义
#else
char rbuffer[6]={0,0,0,4,0,0};
#endif			  
unsigned char xuhao=0;
char minute=0,second=0;  //时间积累
//定时器1初始化
void time1_init(void)
{
TMOD=0X10;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
ET1=1;
EA=1;
TR1=1;
}

void main(void) 
{  	
    char num=0;
    int step=0;
  	system_init();
	wireless_init();
	#ifdef SEND_24LE1
	baudinint(38400);    //波特率设置成38400
	time1_init();	     //定时器1初始化
	#else
	baudinint(9600);     //波特率设置成9600
	delay(20);
	MP3_rst();
	#endif
	 
    #ifdef SEND_24LE1
	delay(100);  
    DwinClear();
    DwinPicture(19); //设置启动界面

    while(step<200)
    {
    DwinJingdu(50,100,step);
    step++;
    delay(100);
    }
    delay(2000); 
    DwinClear();
	DwinPicture(20);
    dispword();	
    #endif

 	#ifdef SEND_24LE1
	Rf24L01_RxTx_Switch(PTX);
	#else
	Rf24L01_RxTx_Switch(PRX);
	#endif

	delay(10000);
	
	#ifdef SEND_24LE1
	DwinPicture(17);
	#endif

 	EA=1;

	while(1)
	{ 
        #ifdef SEND_24LE1                                   //无线数据发送端
		showvol(buffer[3]);									//
		showtitle(buffer[2],minute,second);	                //显示标题
        num=getkey(buffer);									//输入的状态
		switch(num)
		{
		 case stop:buffer[0]=1;buffer[1]=0;showstop();TR0=0;break;	//暂停和播放的状态位
		 case play:buffer[0]=0;buffer[1]=1;showplay();TR0=1;break;
		 case next:buffer[2]++;if(buffer[2]>max)buffer[2]=min;shownext();break;  //歌曲数目
		 case back:buffer[2]--;if(buffer[2]<min)buffer[2]=max;showback();break;
		 case volp:buffer[3]++;if(buffer[3]>7)buffer[3]=8;break;    //音量
		 case vold:buffer[3]--;if(buffer[3]<1)buffer[3]=0;break;
		 case voln:if(buffer[4])buffer[4]=0;else buffer[4]=1;break;
         default:break;				
		}  
		if(num!=0)                                          //发送控制命令出去                                              //显示音量
        {
		Rf24L01_TX((unsigned char*)buffer,6);                               //发送控制命令 
		delay(5);
		debug(buffer);
		P07=!P07;
		}
		#else  				                                    //无线接收端 
    
	     if (Rf24L01_Polling_IRQ((unsigned char *)rbuffer)==RX_DR)//receive the data
		 {
		 P07=!P07;
	   //debug(rbuffer); 
         if(rbuffer[0]==1)
		 {
		 MP3_stop();
		 }
		 else 
		 {
		  MP3_replay();
	  	// MP3_play(rbuffer[2]);
		 }
		 Vol_con(rbuffer[3]);
		 if(xuhao!=rbuffer[2])
		 {
		   MP3_play(rbuffer[2]);
		   xuhao=rbuffer[2];
		 }
		 if(rbuffer[4])
		 Vol_con(0);
		   
         }				
	    #endif 			
	}	
}

void timer1svr() interrupt INTERRUPT_TF1 
{
static char flag=0;
TR1=0;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
flag++;
if(flag==20)
{
flag=0;
second++;
P07=!P07;
if(second==60)
{
second=0;
minute++;
if(minute==60)
minute=0;
}

}

TR1=1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -