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

📄 main.c

📁 基于nRF9E5的无线通讯程序,该程序使用LM35做温度检测,并通过915M无线频率向外发射.适合做无线通讯的应用.
💻 C
字号:
/*= main.c (nRF9E5) ===================================================================
 *
 *
 * This file is distributed in the hope that it will be useful, but WITHOUT WARRANTY OF ANY KIND.
 *
 * Author(s): WL 
 *
 * COMPILER:
 *
 *   This program has been tested with Keil C51 V7.08 and 7.09
 *
 *  
 *
 *==================================================================================================
*/
 
       
#include <Nordic\reg9e5.h>
#include "util.h"
#include "uart.h"
#include "radio.h"
#include "lm35.h"
#include "ISD51.H"
void  TEST(void);

void ReceiveFile(void);
void send_data(unsigned char num);
void TransmitterID(void);
unsigned char getID(void);
unsigned int  Readinvter(void);
sbit KEYR  =P0^3; 
sbit KEYT  =P0^4;
const char  ID[] =  "9E5DEMO1234567907654"; 
static unsigned char idata buf[25];
static unsigned char idata epcID[12];    //

sbit LEDR  =P0^6;
sbit LEDG  =P0^5;
sbit PWM   =P0^7;
//sbit key1  =P0^4;
            
unsigned char aaa,SQC;
unsigned char bbb;
unsigned char ccc;
unsigned char ddd,EEE;
unsigned char conter;                   //
unsigned int bh;

void Init(void)
{
    unsigned char cklf;

    SPICLK = 0;                         // Max SPI clock
    SPI_CTRL = 0x02;                    // Connect internal SPI controller to Radio

    // Switch to 16MHz clock:
    RACSN = 0;
    SpiReadWrite(RRC | 0x09);
    cklf = SpiReadWrite(0) | 0x04;
    RACSN = 1;
    RACSN = 0;
    SpiReadWrite(WRC | 0x09);
    SpiReadWrite(cklf); 
    RACSN = 1;   
    P0_DIR=P0_DIR&0x1F;        //led p0.6  p0.5 P0.7 output
    LEDR=0;
	LEDG=0;
    P0_DIR |= 0x10;                     // P0.4 is input 
    InitTimer();
    EA = 1;
}



 void TransmitFile(void)
{
    unsigned int temp,j;
    unsigned char  n;
	n=0;
    InitTransmitter(20, 0);
    while(1)
    {   
         for (aaa=0;aaa<20;aaa++)
          {buf[aaa]=ID[aaa];} 
         n=n+1;
	     buf[19]=n;
    
	    temp= ( TransmitPacket(buf));
		           
		    if (temp==1)
			    {  LEDR=0;
 			    
				}
			else   {LEDG=0;                //Y LED OFF
			     
			       }
			 if (temp==1)
           {  for (j=0;j<25;j++)
	           {Delay100us(200);}      //LEDG  20mS
		    
             LEDR=1;
		     }
			 else {
			     for (j=0;j<25;j++)
	           {Delay100us(200);}      //LEDG  400mS
		       
                LEDG=1;
			       }
	      for (ccc=0;ccc<3;ccc++)           //2s
          {     
		  for (ddd=0;ddd<100;ddd++)        //delay 1s
          {Delay100us(100);}               //delay10ms
		  }
    }
}
//---------------------------------RECVIER-----------------------------
void ReceiveFile(void)
{
    unsigned char  n;
    InitReceiver(20, 0);   //TEST IS 8 BYTE/ 20BYTE
    while(1)
    {
        if (ReceivePacket(buf) != 0)
                {
                     
		           LEDG=0;
				   LEDR=1;
				
				  // for (i=0;i<20;i++)       
				         // { send_data(buf[i]);}
			                        						 
				 }
                else
                {
                    LEDR=0; 
				    LEDG=1;   // Indicates an error
                }      
        n = 1;        
    }
}

void main(void)
{    
 	//    unsigned int temp;
    Init();

    InitUart();     //init 28800bit
	ISDwait();

	LEDR = 1;
	LEDG = 1;

	for (aaa = 0; aaa < 100; aaa++)
	{
		Delay100us(50);
	}
  
    LEDR = 1;
	LEDG = 1;

   	for (aaa = 0; aaa < 100;aaa++)
    {
		Delay100us(100);
	}

    LEDR=1;
	LEDG=1;

  	while(1)
	{
        //    case 'R':
    	if (KEYR==0)
	  	{
		   	 LEDR=1;                                                    
	       	 LEDG=0;
           	//InitUart();
           	ReceiveFile();
       	}
        //    case 'T':
		if (KEYT==0)
		{
		   	LEDR=0;
	       	LEDG=1;
        	TransmitFile();
		}
    }
}



//----------------------------------UTAR OUT one byte-------------------
/*void send_data(unsigned char num)
  {
    int j;
	TI=0;
	SBUF=num;
	for (j=0;j<10000;j++)
	  {if (TI)
	     {TI=0;
		   break;
         }
	   }
  }   */


 






⌨️ 快捷键说明

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