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

📄 nrf905.c

📁 NRF905芯片的C51接收子程序
💻 C
字号:
#include <at89x52.h>
#include <absacc.h>
#include <intrins.h>
#include <NRF905.h>

void main(void)
{
	init();
	while(1)
	{
		indata();
	}
}

void init(void)
{
	//P1=0x3d;	//00111101
	//P3=0xff;
	IE=0x00;	//EA=1,ES=1
	DIN=1;
	DOUT=1;
	CSN=1;
	PWR_UP=0;
	TXEN=0;
	TRX_CE=0;
	SPI_write(0x00,0x74);//0x6a);
	SPI_write(0x01,0x0e);//0x0c);
	SPI_write(0x02,0x44);
	SPI_write(0x03,0x0c);
	SPI_write(0x04,0x0c);
	SPI_write(0x05,0x00);
	SPI_write(0x06,0x00);
	SPI_write(0x07,0x00);
	SPI_write(0x08,0x40);		
	SPI_write(0x09,0xdf);
	delayms(100);
	PWR_UP=1;
	TRX_CE=1;
	delayms(100);
}


void indata(void)
{
	uchar *p1,i;
//	for(i=0;i<=15;i++)
//	{
	while(!DR);
	p1=&add[0];
	SPI_read_some(0x24,p1,12);
	if((add[0]==0xff)&&(add[11]==0x40))
	{
		P2=0x00;
		delayms(500);
		P2=0xff;
		delayms(200);
	}
	//a=SPI_read(0x24);
  	//add[i]=a;
//	}
//	SPI_write(0x20,0xa5);
//	for(i=0;i<=15;i++)
//	{
//		if(add[i]!=i)
//			_nop_();
//	}
//	PWR_UP=1;
//	TXEN=1;
//	TRX_CE=1;
//	SPI_write4(0x22,0xe7,0xe7,0xe7,0xe7);
//	a=SPI_read(0x10);
//	delayms(100);
//	PWR_UP=0;
}


void SPI_write(uchar a,uchar b)
{
	SCLK=0;
	CSN=0;
	write(a);
	write(b);
	CSN=1;
}


void SPI_write4(uchar a,uchar b,uchar c,uchar d,uchar e)
{
	SCLK=0;
	CSN=0;
	write(a);
	write(b);
	write(c);
	write(d);
	write(e);
	CSN=1;
}

void write(uchar a)
{
	uchar b,i;
	for(i=1;i<=8;i++)
	{
		b=a&0x80;
		if(b==0x80)
			DOUT=1;
		else
			DOUT=0;
		SCLK=1;
		a<<=1;
		_nop_();
		SCLK=0;
	}
}

uchar SPI_read(uchar a)
{
	SCLK=0;
	CSN=0;
	write(a);
	a=read();
	CSN=1;
	return(a);
}

SPI_read_some(uchar a,uchar *p1,uchar num)
{
	SCLK=0;
	CSN=0;
	write(a);
	while(num)
	{
		a=read();
		*p1=a;
		p1++;
		num--;
	}
	CSN=1;
}

uchar read(void)
{
	uchar i,a=0;
	for(i=1;i<=8;i++)
	{
		a<<=1;
		if(DIN==1)
			a|=0x01;
		SCLK=1;
		_nop_();
		SCLK=0;
		
	}
	return(a);
}

void delayms(uint n)
{
	uint b;
	while(n>0)
	{
		for(b=0;b<100;b++);
		n--;
	}
}

⌨️ 快捷键说明

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