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

📄 车库发射.c

📁 单片机车库巡检系统程序
💻 C
字号:
//ptr8000: DR=P3.2;   W8000: DR=P1.0;



#include <reg52.h>

#define  NRF905_BUFFER=0x20;

sfr AUXR=0x8e;
sfr SPCTL=0x85;
sfr SPSTAT=0x84;
sfr SPDAT=0x86;
sfr P1M0=0x91;
sfr P1M1=0x92;
	

sbit TX_EN=P1^2;
sbit TRX_CE=P1^3;
sbit PWR_UP=P1^1;
sbit DR=P1^0;
sbit ESPI=IE^5;
sbit SCLK=P1^7;
sbit MISO=P1^6;
sbit MOSI=P1^5;
sbit CSN=P1^4; 
sbit MCU_WORK_LED=P3^4;

void initial_SPI()
{  	P1M0=0x40;
	P1M1=0xa0;
	AUXR=0xf7;
	SPCTL=0xd0;
	SPSTAT=0xc0;
}


void spi_send_byte(byte_data)
{
	SPDAT=byte_data;
	while(!(SPSTAT&0x80));
	SPSTAT=0xc0;
}

void initial_nrf905()
{	
	CSN=0;
	spi_send_byte(0x00);
	spi_send_byte(0x6E);//433.4MHz
	spi_send_byte(0x0C);
	spi_send_byte(0x44);
	spi_send_byte(0x05);//发射有效数据长度5字节
	spi_send_byte(0x05);//接收有效数据长度5字节
	spi_send_byte(0xFE);
	spi_send_byte(0xFE);
	spi_send_byte(0xFE);
	spi_send_byte(0xFE);
	spi_send_byte(0xdb);
	CSN=1;
}


void nrf905_tx_add(unsigned char address)
{	unsigned char i;
	CSN=0;
	  spi_send_byte(0x22);
	  for(i=4;i>0;i--)
      spi_send_byte(address);
	 CSN=1;
}

void nrf905_data_send()
{unsigned char i,buffer;
	CSN=0;
		spi_send_byte(0x20);
		buffer=0x55;
   	  for(i=5;i>0;i--)
		spi_send_byte(buffer--);
	CSN=1;	
}

void delay()
{unsigned char i,j;
 for(i=10;i>0;i--)
	for(j=50;j>0;j--);
	}

void main()
{	unsigned char i;
	SP=0x7f;
	TX_EN=1;
	PWR_UP=1;
	TRX_CE=0;
	TX_EN=0;
	delay();
	initial_SPI();
	initial_nrf905();
	while(1)
		{ for(i=250;i>0;i--)
		 {	nrf905_tx_add(i);
		  	//MCU_WORK_LED=!MCU_WORK_LED;
		  	nrf905_data_send();
			TX_EN=1;
		  	TRX_CE=1;
		  	while(DR==0);
			delay();
			TX_EN=1;
		  	TRX_CE=0;}
		  	MCU_WORK_LED=!MCU_WORK_LED;
			
		}
}



	

⌨️ 快捷键说明

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